From 8d37664dab90789eb6a0af84b88ffe5b196737ac Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Fri, 22 Nov 2019 12:01:19 -0600 Subject: [PATCH 01/19] docs: update contributing document with information about our workflows (#2176) --- CONTRIBUTING.md | 138 +++++++++++++++++++++++++++++++++++------------- README.md | 5 ++ 2 files changed, 107 insertions(+), 36 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 57f0d672a3..c99804cd2d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,22 +1,29 @@ # Contributing to Flux -## Bug reports -Before you file an issue, please search existing issues in case it has already -been filed, or perhaps even fixed. If you file an issue, please include the following. - -* Full details of your operating system (or distribution) e.g. 64-bit Ubuntu 14.04. -* The version of Flux you are running. -* Whether you installed it using a pre-built package, or built it from source. -* A small test case, if applicable, that demonstrates the issues. - -Remember the golden rule of bug reports: **The easier you make it for us to reproduce -the problem, the faster it will get fixed.** If you have never written a bug report -before, or if you want to brush up on your bug reporting skills, we recommend reading -[Simon Tatham's essay "How to Report Bugs Effectively."](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) - -Please note that issues are *not the place to file general questions* such as -"how do I use InfluxDB with Flux?" Questions of this nature should be sent to the -[InfluxData Community](https://community.influxdata.com/), not filed as issues. +## Community Slack Channel +When contributing to Flux, it is a good idea to join the [community Slack channel](https://www.influxdata.com/slack). +The development team for Flux is in the `#flux` channel and we will be able to answer any questions or give any recommendations for development work from there. + +## Filing issues +Filing issues on GitHub is one of the easiest and most useful ways to contribute to Flux. +We value every request and we intend to triage every community issue within a week after it has been created. +If it takes us longer than a week, then please try to contact us in the community Slack channel. + +Before you file an issue, please search existing issues in case it has already been filed or perhaps even resolved. + +### Bug reports +When submitting a bug report, please include the following: + +- Full details of your operating system (or distribution) e.g. 64-bit Ubuntu 14.04. +- The version of Flux you are running. +- Whether you installed it using a pre-built package or built it from source. +- A small test case that demonstrates the issue or steps to reproduce the issue. + +Remember the golden rule of bug reports: **The easier you make it for us to reproduce the problem, the faster it will get fixed. +**If you have never written a bug report before, or if you want to brush up on your bug reporting skills, we recommend reading [Simon Tatham's essay "How to Report Bugs Effectively."](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) + +Please note that issues are *not the place to file general questions* such as "how do I use InfluxDB with Flux?" +Questions of this nature should be sent to the [InfluxData Community](https://community.influxdata.com/), not filed as issues. Issues like this will be closed. ## Feature requests @@ -25,6 +32,17 @@ Please be clear about your requirements. Incomplete feature requests may simply be closed if we don't understand what you would like to see added to Flux. ## Contributing to the source code + +### Signing the CLA +In order to contribute back to Flux, you must sign the +[InfluxData Contributor License Agreement](https://www.influxdata.com/legal/cla/) (CLA). + +### Finding an issue +The Flux team regularly adds the [community](https://github.com/influxdata/flux/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity) label to issues that we think would be accessible for a community member to take. +Before starting to work on an issue, please inform us on GitHub about your intention to work on the issue by leaving a comment on the issue. +This allows us to know that you want to work on the issue, that the issue is updated with the needed information, and to be ready for a pull request when the work is done. + +### Contributing to the source code Flux uses Go modules and requires modules to be enabled to build from source. Please refer to the Go documentation on [modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) for more information about how to enable module builds. To build and test the software, the following developer dependencies are required: @@ -46,30 +64,21 @@ $ go test ./... If you use `go generate` on the scanner package, then the Ragel version above is needed to correctly generate the files. -## Submitting a pull request -To submit a pull request you should fork the Flux repository and make your change -on a feature branch of your fork. Then generate a pull request from your branch -against **master** of the Flux repository. Include in your pull request details of -your change -- the **why** *and* the **how** -- as well as the testing you performed. -Also, be sure to run the test suite with your change in place. Changes that cause -tests to fail cannot be merged. +### Regenerating the standard library +If you modify any `.flux` files in the repository, the standard library must be regenerated. +This is done by running `go generate` in the following way. -There will usually be some back and forth as we finalize the change, but once -that completes, it may be merged. - -To assist in review for the PR, please add the following to your pull request comment: - -```md -- [ ] Sign [CLA](https://www.influxdata.com/legal/cla/) (if not already signed) +```bash +$ go generate ./stdlib ``` -Flux uses _conventional commit message_ formats: https://www.conventionalcommits.org/en/v1.0.0-beta.3/. Please use this commit message format for commits that will be visible in influxdata/flux history. +## Pull request guidelines -## Signing the CLA -In order to contribute back to Flux, you must sign the -[InfluxData Contributor License Agreement](https://www.influxdata.com/legal/cla/) (CLA). +### Effective Go +The Flux codebase follows the guidelines from [Effective Go](https://golang.org/doc/effective_go.html). +Please familiarize yourself with these guidelines before submitting a pull request. -## Use of third-party packages +### Use of third-party packages A third-party package is defined as one that is not part of the standard Go distribution. Generally speaking, we prefer to minimize our use of third-party packages and avoid them unless absolutely necessarily. We'll often write a little bit of code rather @@ -78,6 +87,63 @@ use only the standard libraries, or the third-party packages we have decided to For rationale, check out the post [The Case Against Third Party Libraries](http://blog.gopheracademy.com/advent-2014/case-against-3pl/). +### Writing unit tests +Unit tests for Go code should be in the same package as the code itself. +It should be in a file named `filename_test.go` with the package name `mypackage_test` as the name of the package. +The tests should test functionality through public functions and methods. + +If access to internal members or functions is needed, then the test file should be named `filename_internal_test.go` and use the same package name as the package itself. +The tests written in this file will have access to the internals of the package. +This file can also be used to create testing-specific functions that can be exposed to the tests in `mypackage_test`. + +Pull requests require tests to be written for them and must pass our code coverage checks. + +### Public functions and methods +When writing code, try to avoid making functions and methods used by the code public. +When creating a library that needs to be used by multiple packages within the Flux repository, an internal package is preferred. +A public function or method should only be used if using the Flux library would require the function or method to be public. + +### Comments and documentation +Every new public function or method requires a valid GoDoc. +Comments within the code should be written with proper capitalization and punctuation at the end of the sentence. +Please refer to [this blog post](https://blog.golang.org/godoc-documenting-go-code) about documenting Go code. + +### Updating markdown files for documentation +The Flux team uses markdown for our documentation. +When writing markdown, please use the following guidelines: + +- Each sentence in a paragraph is on its own line. +- Use the `#` symbol for header sections. +- Use the `-` symbol for bullet points. + +## Submitting a pull request +To submit a pull request you should fork the Flux repository and make your change on a feature branch of your fork. +Then generate a pull request from your branch against **master** of the Flux repository. +Include in your pull request details of your change -- the **why** *and* the **how** -- as well as the testing you performed. +Also, be sure to run the test suite with your change in place. +Changes that cause tests to fail cannot be merged. +The code you write must be unit tested within the same package as the code that you changed. + +There will usually be some back and forth as we finalize the change, but once that completes, it may be merged. +When making changes based on the code review, please add new commits and please refrain from amending the original commit. +This helps us keep track of the changes that have been made during the course of the review. + +When your change is ready to be merged, the Flux developer who is reviewing your code will approve the pull request and squash your commits into a single commit. +The first commit in your changeset will be used as the final commit message. +This first commit must follow the _conventional commit message_ format: https://www.conventionalcommits.org/en/v1.0.0-beta.3/. +Please use this commit message format for commits that will be visible in influxdata/flux history. + +If your pull request only requires trivial changes before being approved and merged, the reviewer may make the change themselves and push to the branch in your fork. +This makes it easier for us to fix a small nitpick such as formatting without requiring an additional back and forth. +If the changes are non-trivial, we will always ask before changing any code. +If you do not want us to do this at all under any circumstance, then you can disable this by unselecting **Allow edits from maintainers** in the pull request itself. + +To assist in review for the PR, please add the following to your pull request comment: + +```md +- [ ] Sign [CLA](https://www.influxdata.com/legal/cla/) (if not already signed) +``` + ## Useful links - [Useful techniques in Go](https://arslan.io/2015/10/08/ten-useful-techniques-in-go/) - [Go in production](http://peter.bourgon.org/go-in-production/) diff --git a/README.md b/README.md index afb1ff0e25..b31899ce1e 100644 --- a/README.md +++ b/README.md @@ -144,3 +144,8 @@ Here are a few examples of the language to get an idea of the syntax. The above examples give only a taste of what is possible with Flux. See the complete [documentation](https://v2.docs.influxdata.com/v2.0/query-data/get-started/) for more complete examples and instructions for how to use Flux with InfluxDB 2.0. + +## Contributing +Flux welcomes contributions to the language and the runtime. + +If you are interested in contributing, please read out [contributing readme](https://github.com/influxdata/flux/blob/master/CONTRIBUTING.md) for information about how to contribute. From 46ad4cda2108c29dfcfe08cf979484047ed66146 Mon Sep 17 00:00:00 2001 From: Yiqun Zhang Date: Fri, 22 Nov 2019 14:47:18 -0500 Subject: [PATCH 02/19] feat: flatbuffers ast to go ast (#2162) --- Makefile | 2 +- ast/ast.fbs | 6 +- ast/ast.go | 16 +- ast/fbuffers.go | 663 +++++++++++++++++++ ast/flatbuffers_test.go | 116 +++- ast/internal/fbast/DateTimeLiteral.go | 46 +- ast/internal/fbast/Operator.go | 44 +- ast/json.go | 48 +- libflux/go/libflux/parser.go | 13 + libflux/include/influxdata/flux.h | 2 + libflux/src/ast/flatbuffers/ast_generated.rs | 102 +-- libflux/src/ast/flatbuffers/mod.rs | 13 +- libflux/src/ast/flatbuffers/tests.rs | 10 +- libflux/src/lib.rs | 46 +- 14 files changed, 1017 insertions(+), 110 deletions(-) create mode 100644 ast/fbuffers.go diff --git a/Makefile b/Makefile index 108ba2d3ec..95d12f55ce 100644 --- a/Makefile +++ b/Makefile @@ -36,10 +36,10 @@ default: build STDLIB_SOURCES = $(shell find . -name '*.flux') GENERATED_TARGETS = \ + ast/internal/fbast \ ast/asttest/cmpopts.go \ internal/scanner/scanner.gen.go \ stdlib/packages.go \ - ast/internal/fbast \ semantic/internal/fbsemantic \ libflux/src/ast/flatbuffers/ast_generated.rs \ libflux/src/semantic/flatbuffers/semantic_generated.rs \ diff --git a/ast/ast.fbs b/ast/ast.fbs index a43f0eb388..402d653fb3 100644 --- a/ast/ast.fbs +++ b/ast/ast.fbs @@ -147,6 +147,7 @@ table WrappedExpression { } enum Operator : byte { + InvalidOperator, MultiplicationOperator, DivisionOperator, ModuloOperator, @@ -167,7 +168,6 @@ enum Operator : byte { NotEqualOperator, RegexpMatchOperator, NotRegexpMatchOperator, - InvalidOperator, } enum LogicalOperator : byte { @@ -215,7 +215,9 @@ table BooleanLiteral { table DateTimeLiteral { base_node:BaseNode; - value:string; + secs:int64; + nsecs:uint32; + offset:int32; } table DurationLiteral { diff --git a/ast/ast.go b/ast/ast.go index 5e82f85ebd..fc64546ba7 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -368,6 +368,7 @@ type ReturnStatement struct { // Type is the abstract type func (*ReturnStatement) Type() string { return "ReturnStatement" } + func (s *ReturnStatement) Copy() Node { if s == nil { return s @@ -914,6 +915,7 @@ func (o LogicalOperatorKind) MarshalText() ([]byte, error) { } return []byte(text), nil } + func (o *LogicalOperatorKind) UnmarshalText(data []byte) error { var ok bool *o, ok = logOperators[string(data)] @@ -1124,14 +1126,14 @@ type PipeLiteral struct { // Type is the abstract type func (*PipeLiteral) Type() string { return "PipeLiteral" } -func (i *PipeLiteral) Copy() Node { - if i == nil { - return i +func (p *PipeLiteral) Copy() Node { + if p == nil { + return p } - ni := new(PipeLiteral) - *ni = *i - ni.BaseNode = i.BaseNode.Copy() - return ni + np := new(PipeLiteral) + *np = *p + np.BaseNode = p.BaseNode.Copy() + return np } // StringLiteral expressions begin and end with double quote marks. diff --git a/ast/fbuffers.go b/ast/fbuffers.go new file mode 100644 index 0000000000..02b61a3d4f --- /dev/null +++ b/ast/fbuffers.go @@ -0,0 +1,663 @@ +package ast + +import ( + "fmt" + "regexp" + "time" + + flatbuffers "github.com/google/flatbuffers/go" + "github.com/influxdata/flux/ast/internal/fbast" +) + +func (p *Position) FromBuf(buf *fbast.Position) { + p.Line = int(buf.Line()) + p.Column = int(buf.Column()) +} + +func (l SourceLocation) FromBuf(buf *fbast.SourceLocation) *SourceLocation { + l.File = string(buf.File()) + l.Start.FromBuf(buf.Start(nil)) + l.End.FromBuf(buf.End(nil)) + l.Source = string(buf.Source()) + return &l +} + +func (b *BaseNode) FromBuf(buf *fbast.BaseNode) { + b.Loc = SourceLocation{}.FromBuf(buf.Loc(nil)) + if !b.Loc.IsValid() { + b.Loc = nil + } + if buf.ErrorsLength() != 0 { + b.Errors = make([]Error, buf.ErrorsLength()) + for i := 0; i < buf.ErrorsLength(); i++ { + b.Errors[i] = Error{string(buf.Errors(i))} + } + } +} + +func (p Package) FromBuf(buf []byte) *Package { + fbp := fbast.GetRootAsPackage(buf, 0) + p.BaseNode.FromBuf(fbp.BaseNode(nil)) + p.Path = string(fbp.Path()) + p.Package = string(fbp.Package()) + p.Files = make([]*File, fbp.FilesLength()) + for i := 0; i < fbp.FilesLength(); i++ { + fbf := new(fbast.File) + if !fbp.Files(fbf, i) { + p.BaseNode.Errors = append(p.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing Package.Files[%d]", i)}) + } else { + p.Files[i] = File{}.FromBuf(fbf) + } + } + return &p +} + +func (f File) FromBuf(buf *fbast.File) *File { + f.BaseNode.FromBuf(buf.BaseNode(nil)) + f.Name = string(buf.Name()) + f.Package = PackageClause{}.FromBuf(buf.Package(nil)) + if buf.ImportsLength() > 0 { + f.Imports = make([]*ImportDeclaration, buf.ImportsLength()) + for i := 0; i < buf.ImportsLength(); i++ { + fbd := new(fbast.ImportDeclaration) + if !buf.Imports(fbd, i) { + f.BaseNode.Errors = append(f.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing File.Imports[%d]", i)}) + } else { + f.Imports[i] = ImportDeclaration{}.FromBuf(fbd) + } + } + } + if buf.BodyLength() > 0 { + var err []Error + f.Body, err = statementArrayFromBuf(buf.BodyLength(), buf.Body, "File.Body") + if len(err) > 0 { + f.BaseNode.Errors = append(f.BaseNode.Errors, err...) + } + } + return &f +} + +func (c PackageClause) FromBuf(buf *fbast.PackageClause) *PackageClause { + if buf == nil { + return nil + } + c.BaseNode.FromBuf(buf.BaseNode(nil)) + c.Name = Identifier{}.FromBuf(buf.Name(nil)) + return &c +} + +func (d ImportDeclaration) FromBuf(buf *fbast.ImportDeclaration) *ImportDeclaration { + d.BaseNode.FromBuf(buf.BaseNode(nil)) + d.As = Identifier{}.FromBuf(buf.As(nil)) + d.Path = StringLiteral{}.FromBuf(buf.Path(nil)) + return &d +} + +func (s Block) FromBuf(buf *fbast.Block) *Block { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + var err []Error + s.Body, err = statementArrayFromBuf(buf.BodyLength(), buf.Body, "Block.Body") + if len(err) > 0 { + s.BaseNode.Errors = append(s.BaseNode.Errors, err...) + } + return &s +} + +func (s BadStatement) FromBuf(buf *fbast.BadStatement) *BadStatement { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + s.Text = string(buf.Text()) + return &s +} + +func (s ExpressionStatement) FromBuf(buf *fbast.ExpressionStatement) *ExpressionStatement { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + s.Expression = exprFromBuf("ExpressionStatement.Expression", s.BaseNode, buf.Expression, buf.ExpressionType()) + return &s +} + +func (s ReturnStatement) FromBuf(buf *fbast.ReturnStatement) *ReturnStatement { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + s.Argument = exprFromBuf("ReturnStatement.Argument", s.BaseNode, buf.Argument, buf.ArgumentType()) + return &s +} + +func (s OptionStatement) FromBuf(buf *fbast.OptionStatement) *OptionStatement { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + s.Assignment = assignmentFromBuf("OptionStatement.Assignment", s.BaseNode, buf.Assignment, buf.AssignmentType()) + return &s +} + +func (s BuiltinStatement) FromBuf(buf *fbast.BuiltinStatement) *BuiltinStatement { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + s.ID = Identifier{}.FromBuf(buf.Id(nil)) + return &s +} + +func (s TestStatement) FromBuf(buf *fbast.TestStatement) *TestStatement { + s.BaseNode.FromBuf(buf.BaseNode(nil)) + s.Assignment = assignmentFromBuf("TestStatement.Assignment", + s.BaseNode, buf.Assignment, buf.AssignmentType()).(*VariableAssignment) + return &s +} + +func (d VariableAssignment) FromBuf(buf *fbast.VariableAssignment) *VariableAssignment { + d.BaseNode.FromBuf(buf.BaseNode(nil)) + d.ID = Identifier{}.FromBuf(buf.Id(nil)) + d.Init = exprFromBuf("VariableAssignment.Init", d.BaseNode, buf.Init_, buf.Init_type()) + return &d +} + +func (a MemberAssignment) FromBuf(buf *fbast.MemberAssignment) *MemberAssignment { + a.BaseNode.FromBuf(buf.BaseNode(nil)) + a.Member = MemberExpression{}.FromBuf(buf.Member(nil)) + a.Init = exprFromBuf("MemberAssignment.Init", a.BaseNode, buf.Init_, buf.Init_type()) + return &a +} + +func (e StringExpression) FromBuf(buf *fbast.StringExpression) *StringExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + if buf.PartsLength() > 0 { + e.Parts = make([]StringExpressionPart, buf.PartsLength()) + for i := 0; i < buf.PartsLength(); i++ { + fbp := new(fbast.StringExpressionPart) + if !buf.Parts(fbp, i) { + e.BaseNode.Errors = append(e.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing StringExpression.Parts[%d]", i)}) + } else if fbp.TextValue() != nil { + e.Parts[i] = TextPart{}.FromBuf(fbp) + } else { + e.Parts[i] = InterpolatedPart{}.FromBuf(fbp) + } + } + } + return &e +} + +func (p TextPart) FromBuf(buf *fbast.StringExpressionPart) *TextPart { + p.BaseNode.FromBuf(buf.BaseNode(nil)) + p.Value = string(buf.TextValue()) + return &p +} + +func (p InterpolatedPart) FromBuf(buf *fbast.StringExpressionPart) *InterpolatedPart { + p.BaseNode.FromBuf(buf.BaseNode(nil)) + p.Expression = exprFromBuf("InterpolatedPart.Expression", p.BaseNode, + buf.InterpolatedExpression, buf.InterpolatedExpressionType()) + return &p +} + +func (e ParenExpression) FromBuf(buf *fbast.ParenExpression) *ParenExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Expression = exprFromBuf("ParenExpression.Expression", e.BaseNode, buf.Expression, buf.ExpressionType()) + return &e +} + +func (e CallExpression) FromBuf(buf *fbast.CallExpression) *CallExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Callee = exprFromBuf("CallExpression.Callee", e.BaseNode, buf.Callee, buf.CalleeType()) + arg := buf.Arguments(nil) + if arg != nil { + e.Arguments = []Expression{ObjectExpression{}.FromBuf(arg)} + } + return &e +} + +func (e PipeExpression) FromBuf(buf *fbast.PipeExpression) *PipeExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Argument = exprFromBuf("PipeExpression.Argument", e.BaseNode, buf.Argument, buf.ArgumentType()) + e.Call = CallExpression{}.FromBuf(buf.Call(nil)) + return &e +} + +func (e MemberExpression) FromBuf(buf *fbast.MemberExpression) *MemberExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Object = exprFromBuf("MemberExpression.Object", e.BaseNode, buf.Object, buf.ObjectType()) + e.Property = propertyKeyFromBuf("MemberExpression.Property", e.BaseNode, buf.Property, buf.PropertyType()) + return &e +} + +func (e IndexExpression) FromBuf(buf *fbast.IndexExpression) *IndexExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Array = exprFromBuf("IndexExpression.Array", e.BaseNode, buf.Array, buf.ArrayType()) + e.Index = exprFromBuf("IndexExpression.Index", e.BaseNode, buf.Index, buf.IndexType()) + return &e +} + +func (e FunctionExpression) FromBuf(buf *fbast.FunctionExpression) *FunctionExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + if buf.ParamsLength() > 0 { + e.Params = make([]*Property, buf.ParamsLength()) + for i := 0; i < buf.ParamsLength(); i++ { + fbp := new(fbast.Property) + if !buf.Params(fbp, i) { + e.BaseNode.Errors = append(e.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing FunctionExpression.Params[%d]", i)}) + } else { + e.Params[i] = Property{}.FromBuf(fbp) + } + } + } + t := new(flatbuffers.Table) + if buf.Body(t) { + switch buf.BodyType() { + case fbast.ExpressionOrBlockBlock: + b := new(fbast.Block) + b.Init(t.Bytes, t.Pos) + e.Body = Block{}.FromBuf(b) + case fbast.ExpressionOrBlockWrappedExpression: + we := new(fbast.WrappedExpression) + we.Init(t.Bytes, t.Pos) + e.Body = exprFromBuf("FunctionExpression.Body", e.BaseNode, we.Expr, we.ExprType()) + default: + e.BaseNode.Errors = append(e.BaseNode.Errors, + Error{"Encountered error in deserializing FunctionExpression.Body"}) + } + } + return &e +} + +func (e BinaryExpression) FromBuf(buf *fbast.BinaryExpression) *BinaryExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Operator = opMap[buf.Operator()] + e.Left = exprFromBuf("BinaryExpression.Left", e.BaseNode, buf.Left, buf.LeftType()) + e.Right = exprFromBuf("BinaryExpression.Right", e.BaseNode, buf.Right, buf.RightType()) + return &e +} + +func (e UnaryExpression) FromBuf(buf *fbast.UnaryExpression) *UnaryExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Operator = opMap[buf.Operator()] + e.Argument = exprFromBuf("UnaryExpression.Argument", e.BaseNode, buf.Argument, buf.ArgumentType()) + return &e +} + +func (e LogicalExpression) FromBuf(buf *fbast.LogicalExpression) *LogicalExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Operator = logOpMap[buf.Operator()] + e.Left = exprFromBuf("LogicalExpression.Left", e.BaseNode, buf.Left, buf.LeftType()) + e.Right = exprFromBuf("LogicalExpression.Right", e.BaseNode, buf.Right, buf.RightType()) + return &e +} + +func (e ArrayExpression) FromBuf(buf *fbast.ArrayExpression) *ArrayExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + var err []Error + e.Elements, err = exprArrayFromBuf(buf.ElementsLength(), buf.Elements, "ArrayExpression.Elements") + if len(err) > 0 { + e.BaseNode.Errors = append(e.BaseNode.Errors, err...) + } + return &e +} + +func (e ObjectExpression) FromBuf(buf *fbast.ObjectExpression) *ObjectExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.With = Identifier{}.FromBuf(buf.With(nil)) + e.Properties = make([]*Property, buf.PropertiesLength()) + for i := 0; i < buf.PropertiesLength(); i++ { + fbp := new(fbast.Property) + if !buf.Properties(fbp, i) { + e.BaseNode.Errors = append(e.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing ObjectExpression.Properties[%d]", i)}) + } else { + e.Properties[i] = Property{}.FromBuf(fbp) + } + } + return &e +} + +func (e ConditionalExpression) FromBuf(buf *fbast.ConditionalExpression) *ConditionalExpression { + e.BaseNode.FromBuf(buf.BaseNode(nil)) + e.Test = exprFromBuf("ConditionalExpression.Test", e.BaseNode, buf.Test, buf.TestType()) + e.Consequent = exprFromBuf("ConditionalExpression.Consequent", e.BaseNode, buf.Consequent, buf.ConsequentType()) + e.Alternate = exprFromBuf("ConditionalExpression.Alternate", e.BaseNode, buf.Alternate, buf.AlternateType()) + return &e +} + +func (p Property) FromBuf(buf *fbast.Property) *Property { + p.BaseNode.FromBuf(buf.BaseNode(nil)) + // deserialize key + p.Key = propertyKeyFromBuf("Property.Key", p.BaseNode, buf.Key, buf.KeyType()) + // deserialize value + p.Value = exprFromBuf("Property.Value", p.BaseNode, buf.Value, buf.ValueType()) + return &p +} + +func (i Identifier) FromBuf(buf *fbast.Identifier) *Identifier { + if buf == nil { + return nil + } + i.BaseNode.FromBuf(buf.BaseNode(nil)) + i.Name = string(buf.Name()) + return &i +} + +func (p PipeLiteral) FromBuf(buf *fbast.PipeLiteral) *PipeLiteral { + p.BaseNode.FromBuf(buf.BaseNode(nil)) + return &p +} + +func (l StringLiteral) FromBuf(buf *fbast.StringLiteral) *StringLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Value = string(buf.Value()) + return &l +} + +func (l BooleanLiteral) FromBuf(buf *fbast.BooleanLiteral) *BooleanLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Value = buf.Value() + return &l +} + +func (l FloatLiteral) FromBuf(buf *fbast.FloatLiteral) *FloatLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Value = buf.Value() + return &l +} + +func (l IntegerLiteral) FromBuf(buf *fbast.IntegerLiteral) *IntegerLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Value = buf.Value() + return &l +} + +func (l UnsignedIntegerLiteral) FromBuf(buf *fbast.UnsignedIntegerLiteral) *UnsignedIntegerLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Value = buf.Value() + return &l +} + +func (l RegexpLiteral) FromBuf(buf *fbast.RegexpLiteral) *RegexpLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + var err error + if l.Value, err = regexp.Compile(string(buf.Value())); err != nil { + l.BaseNode.Errors = append(l.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing RegexpLiteral.Values: %s", err.Error())}) + } + return &l +} + +func (d Duration) FromBuf(buf *fbast.Duration) Duration { + d.Magnitude = buf.Magnitude() + d.Unit = fbast.EnumNamesTimeUnit[buf.Unit()] + return d +} + +func (l DurationLiteral) FromBuf(buf *fbast.DurationLiteral) *DurationLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Values = make([]Duration, buf.ValuesLength()) + for i := 0; i < buf.ValuesLength(); i++ { + d := new(fbast.Duration) + if !buf.Values(d, i) { + l.BaseNode.Errors = append(l.BaseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing DurationLiteral.Values[%d]", i)}) + } else { + l.Values[i] = Duration{}.FromBuf(d) + } + } + return &l +} + +func (l DateTimeLiteral) FromBuf(buf *fbast.DateTimeLiteral) *DateTimeLiteral { + l.BaseNode.FromBuf(buf.BaseNode(nil)) + l.Value = time.Unix(buf.Secs(), int64(buf.Nsecs())).In(time.FixedZone("DateTimeLiteral offset", int(buf.Offset()))) + return &l +} + +type stmtGetterFn func(obj *fbast.WrappedStatement, j int) bool + +func statementArrayFromBuf(len int, g stmtGetterFn, arrName string) ([]Statement, []Error) { + s := make([]Statement, len) + err := make([]Error, 0) + for i := 0; i < len; i++ { + fbs := new(fbast.WrappedStatement) + t := new(flatbuffers.Table) + if !g(fbs, i) || !fbs.Statement(t) || fbs.StatementType() == fbast.StatementNONE { + err = append(err, Error{fmt.Sprintf("Encountered error in deserializing %s[%d]", arrName, i)}) + } else { + s[i] = statementFromBuf(t, fbs.StatementType()) + } + } + return s, err +} + +func statementFromBuf(t *flatbuffers.Table, stype fbast.Statement) Statement { + switch stype { + case fbast.StatementBadStatement: + b := new(fbast.BadStatement) + b.Init(t.Bytes, t.Pos) + return BadStatement{}.FromBuf(b) + case fbast.StatementVariableAssignment: + a := new(fbast.VariableAssignment) + a.Init(t.Bytes, t.Pos) + return VariableAssignment{}.FromBuf(a) + case fbast.StatementMemberAssignment: + a := new(fbast.MemberAssignment) + a.Init(t.Bytes, t.Pos) + return MemberAssignment{}.FromBuf(a) + case fbast.StatementExpressionStatement: + e := new(fbast.ExpressionStatement) + e.Init(t.Bytes, t.Pos) + return ExpressionStatement{}.FromBuf(e) + case fbast.StatementReturnStatement: + r := new(fbast.ReturnStatement) + r.Init(t.Bytes, t.Pos) + return ReturnStatement{}.FromBuf(r) + case fbast.StatementOptionStatement: + o := new(fbast.OptionStatement) + o.Init(t.Bytes, t.Pos) + return OptionStatement{}.FromBuf(o) + case fbast.StatementBuiltinStatement: + b := new(fbast.BuiltinStatement) + b.Init(t.Bytes, t.Pos) + return BuiltinStatement{}.FromBuf(b) + case fbast.StatementTestStatement: + s := new(fbast.TestStatement) + s.Init(t.Bytes, t.Pos) + return TestStatement{}.FromBuf(s) + default: + // Ultimately we want to use bad statement/expression to store errors? + return nil + } +} + +type exprGetterFn func(obj *fbast.WrappedExpression, j int) bool + +func exprArrayFromBuf(len int, g exprGetterFn, arrName string) ([]Expression, []Error) { + s := make([]Expression, len) + err := make([]Error, 0) + for i := 0; i < len; i++ { + e := new(fbast.WrappedExpression) + t := new(flatbuffers.Table) + if !g(e, i) || !e.Expr(t) || e.ExprType() == fbast.ExpressionNONE { + err = append(err, Error{fmt.Sprintf("Encountered error in deserializing %s[%d]", arrName, i)}) + } else { + s[i] = exprFromBufTable(t, e.ExprType()) + } + } + return s, err +} + +type unionTableWriterFn func(t *flatbuffers.Table) bool + +func exprFromBuf(label string, baseNode BaseNode, f unionTableWriterFn, etype fbast.Expression) Expression { + t := new(flatbuffers.Table) + if !f(t) || etype == fbast.ExpressionNONE { + baseNode.Errors = append(baseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing %s", label)}) + return nil + } + return exprFromBufTable(t, etype) +} + +func exprFromBufTable(t *flatbuffers.Table, etype fbast.Expression) Expression { + switch etype { + case fbast.ExpressionStringExpression: + s := new(fbast.StringExpression) + s.Init(t.Bytes, t.Pos) + return StringExpression{}.FromBuf(s) + case fbast.ExpressionParenExpression: + p := new(fbast.ParenExpression) + p.Init(t.Bytes, t.Pos) + return ParenExpression{}.FromBuf(p) + case fbast.ExpressionArrayExpression: + a := new(fbast.ArrayExpression) + a.Init(t.Bytes, t.Pos) + return ArrayExpression{}.FromBuf(a) + case fbast.ExpressionFunctionExpression: + f := new(fbast.FunctionExpression) + f.Init(t.Bytes, t.Pos) + return FunctionExpression{}.FromBuf(f) + case fbast.ExpressionBinaryExpression: + b := new(fbast.BinaryExpression) + b.Init(t.Bytes, t.Pos) + return BinaryExpression{}.FromBuf(b) + case fbast.ExpressionBooleanLiteral: + b := new(fbast.BooleanLiteral) + b.Init(t.Bytes, t.Pos) + return BooleanLiteral{}.FromBuf(b) + case fbast.ExpressionCallExpression: + c := new(fbast.CallExpression) + c.Init(t.Bytes, t.Pos) + return CallExpression{}.FromBuf(c) + case fbast.ExpressionConditionalExpression: + c := new(fbast.ConditionalExpression) + c.Init(t.Bytes, t.Pos) + return ConditionalExpression{}.FromBuf(c) + case fbast.ExpressionDateTimeLiteral: + d := new(fbast.DateTimeLiteral) + d.Init(t.Bytes, t.Pos) + return DateTimeLiteral{}.FromBuf(d) + case fbast.ExpressionDurationLiteral: + d := new(fbast.DurationLiteral) + d.Init(t.Bytes, t.Pos) + return DurationLiteral{}.FromBuf(d) + case fbast.ExpressionFloatLiteral: + f := new(fbast.FloatLiteral) + f.Init(t.Bytes, t.Pos) + return FloatLiteral{}.FromBuf(f) + case fbast.ExpressionIdentifier: + i := new(fbast.Identifier) + i.Init(t.Bytes, t.Pos) + return Identifier{}.FromBuf(i) + case fbast.ExpressionIntegerLiteral: + i := new(fbast.IntegerLiteral) + i.Init(t.Bytes, t.Pos) + return IntegerLiteral{}.FromBuf(i) + case fbast.ExpressionLogicalExpression: + l := new(fbast.LogicalExpression) + l.Init(t.Bytes, t.Pos) + return LogicalExpression{}.FromBuf(l) + case fbast.ExpressionMemberExpression: + m := new(fbast.MemberExpression) + m.Init(t.Bytes, t.Pos) + return MemberExpression{}.FromBuf(m) + case fbast.ExpressionIndexExpression: + m := new(fbast.IndexExpression) + m.Init(t.Bytes, t.Pos) + return IndexExpression{}.FromBuf(m) + case fbast.ExpressionObjectExpression: + m := new(fbast.ObjectExpression) + m.Init(t.Bytes, t.Pos) + return ObjectExpression{}.FromBuf(m) + case fbast.ExpressionPipeExpression: + p := new(fbast.PipeExpression) + p.Init(t.Bytes, t.Pos) + return PipeExpression{}.FromBuf(p) + case fbast.ExpressionPipeLiteral: + p := new(fbast.PipeLiteral) + p.Init(t.Bytes, t.Pos) + return PipeLiteral{}.FromBuf(p) + case fbast.ExpressionRegexpLiteral: + r := new(fbast.RegexpLiteral) + r.Init(t.Bytes, t.Pos) + return RegexpLiteral{}.FromBuf(r) + case fbast.ExpressionStringLiteral: + r := new(fbast.StringLiteral) + r.Init(t.Bytes, t.Pos) + return StringLiteral{}.FromBuf(r) + case fbast.ExpressionUnaryExpression: + u := new(fbast.UnaryExpression) + u.Init(t.Bytes, t.Pos) + return UnaryExpression{}.FromBuf(u) + case fbast.ExpressionUnsignedIntegerLiteral: + u := new(fbast.UnsignedIntegerLiteral) + u.Init(t.Bytes, t.Pos) + return UnsignedIntegerLiteral{}.FromBuf(u) + case fbast.ExpressionBadExpression: + fallthrough + default: + return nil + } +} + +func assignmentFromBuf(label string, baseNode BaseNode, f unionTableWriterFn, atype fbast.Assignment) Assignment { + t := new(flatbuffers.Table) + if !f(t) || atype == fbast.AssignmentNONE { + baseNode.Errors = append(baseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing %s", label)}) + return nil + } + switch atype { + case fbast.AssignmentMemberAssignment: + fba := new(fbast.MemberAssignment) + fba.Init(t.Bytes, t.Pos) + return MemberAssignment{}.FromBuf(fba) + case fbast.AssignmentVariableAssignment: + fba := new(fbast.VariableAssignment) + fba.Init(t.Bytes, t.Pos) + return VariableAssignment{}.FromBuf(fba) + default: + return nil + } +} + +func propertyKeyFromBuf(label string, baseNode BaseNode, f unionTableWriterFn, atype fbast.PropertyKey) PropertyKey { + t := new(flatbuffers.Table) + if !f(t) || atype == fbast.PropertyKeyNONE { + baseNode.Errors = append(baseNode.Errors, + Error{fmt.Sprintf("Encountered error in deserializing %s", label)}) + return nil + } + switch atype { + case fbast.PropertyKeyIdentifier: + fbk := new(fbast.Identifier) + fbk.Init(t.Bytes, t.Pos) + return Identifier{}.FromBuf(fbk) + case fbast.PropertyKeyStringLiteral: + fbs := new(fbast.StringLiteral) + fbs.Init(t.Bytes, t.Pos) + return StringLiteral{}.FromBuf(fbs) + default: + return nil + } +} + +var opMap = map[fbast.Operator]OperatorKind{ + fbast.OperatorMultiplicationOperator: MultiplicationOperator, + fbast.OperatorDivisionOperator: DivisionOperator, + fbast.OperatorModuloOperator: ModuloOperator, + fbast.OperatorPowerOperator: PowerOperator, + fbast.OperatorAdditionOperator: AdditionOperator, + fbast.OperatorSubtractionOperator: SubtractionOperator, + fbast.OperatorLessThanEqualOperator: LessThanEqualOperator, + fbast.OperatorLessThanOperator: LessThanOperator, + fbast.OperatorGreaterThanEqualOperator: GreaterThanEqualOperator, + fbast.OperatorGreaterThanOperator: GreaterThanOperator, + fbast.OperatorStartsWithOperator: StartsWithOperator, + fbast.OperatorInOperator: InOperator, + fbast.OperatorNotOperator: NotOperator, + fbast.OperatorExistsOperator: ExistsOperator, + fbast.OperatorNotEmptyOperator: NotEmptyOperator, + fbast.OperatorEmptyOperator: EmptyOperator, + fbast.OperatorEqualOperator: EqualOperator, + fbast.OperatorNotEqualOperator: NotEqualOperator, + fbast.OperatorRegexpMatchOperator: RegexpMatchOperator, + fbast.OperatorNotRegexpMatchOperator: NotRegexpMatchOperator, +} + +var logOpMap = map[fbast.LogicalOperator]LogicalOperatorKind{ + fbast.LogicalOperatorAndOperator: AndOperator, + fbast.LogicalOperatorOrOperator: OrOperator, +} diff --git a/ast/flatbuffers_test.go b/ast/flatbuffers_test.go index 42db60e4df..214b39cebc 100644 --- a/ast/flatbuffers_test.go +++ b/ast/flatbuffers_test.go @@ -1,12 +1,122 @@ +// +build libflux + package ast_test import ( + "regexp" "testing" flatbuffers "github.com/google/flatbuffers/go" + "github.com/google/go-cmp/cmp" + "github.com/influxdata/flux/ast" "github.com/influxdata/flux/ast/internal/fbast" + gparser "github.com/influxdata/flux/internal/parser" + "github.com/influxdata/flux/internal/token" + "github.com/influxdata/flux/libflux/go/libflux" + //rparser "github.com/influxdata/flux/parser" ) +var CompareOptions = []cmp.Option{ + cmp.Transformer("", func(re *regexp.Regexp) string { + if re == nil { + return "" + } + return re.String() + }), +} + +func TestRoundTrip(t *testing.T) { + srcs := [2]string{` +package mypkg +import "my_other_pkg" +import "yet_another_pkg" +option now = () => (2030-01-01T00:00:00Z) +option foo.bar = "baz" +builtin foo + +# // bad stmt + +test aggregate_window_empty = () => ({ + input: testing.loadStorage(csv: inData), + want: testing.loadMem(csv: outData), + fn: (table=<-) => + table + |> range(start: 2018-05-22T19:53:26Z, stop: 2018-05-22T19:55:00Z) + |> aggregateWindow(every: 30s, fn: sum), +}) +`, ` +a + +arr = [0, 1, 2] +f = (i) => i +ff = (i=<-, j) => { + k = i + j + return k +} +b = z and y +b = z or y +o = {red: "red", "blue": 30} +m = o.red +i = arr[0] +n = 10 - 5 + 10 +n = 10 / 5 * 10 +m = 13 % 3 +p = 2^10 +b = 10 < 30 +b = 10 <= 30 +b = 10 > 30 +b = 10 >= 30 +eq = 10 == 10 +neq = 11 != 10 +b = not false +e = exists o.red +tables |> f() +fncall = id(v: 20) +fncall2 = foo(v: 20, w: "bar") +v = if true then 70.0 else 140.0 +ans = "the answer is ${v}" +paren = (1) + +i = 1 +f = 1.0 +s = "foo" +d = 10s +b = true +dt = 2030-01-01T00:00:00Z +re =~ /foo/ +re !~ /foo/ +bad_expr = 3 * + 1 +// bad_expr = 3 * / 1 +`} + for _, src := range srcs { + astFbs := libflux.ParseIntoFbs(src) + + srcb := []byte(src) + f := token.NewFile("", len(src)) + file := gparser.ParseFile(f, srcb) + packageName := "main" + if file.Package != nil && file.Package.Name != nil { + packageName = file.Package.Name.Name + } + astGo := &ast.Package{ + Package: packageName, + Files: []*ast.File{file}, + } + //astRust := rparser.ParseSource(src) + + if !cmp.Equal(astFbs, astGo, CompareOptions...) { + t.Errorf("AST roundtrip vs. Go unexpected packages -fbs/+go:\n%s", + cmp.Diff(astFbs, astGo, CompareOptions...)) + } + // TODO: https://github.com/influxdata/flux/issues/2187 + // TODO: https://github.com/influxdata/flux/issues/2186 + //if !cmp.Equal(astFbs, astRust, CompareOptions...) { + // t.Errorf("AST roundtrip vs. Rust unexpected packages -fbs/+rust:\n%s", + // cmp.Diff(astFbs, astRust, CompareOptions...)) + //} + } +} + func TestFlatBuffers(t *testing.T) { b := flatbuffers.NewBuilder(1024) @@ -33,9 +143,9 @@ func TestFlatBuffers(t *testing.T) { stmt := fbast.ExpressionStatementEnd(b) fbast.WrappedStatementStart(b) - fbast.WrappedExpressionAddExprType(b, fbast.StatementExpressionStatement) - fbast.WrappedExpressionAddExpr(b, stmt) - wrappedStmt := fbast.WrappedExpressionEnd(b) + fbast.WrappedStatementAddStatementType(b, fbast.StatementExpressionStatement) + fbast.WrappedStatementAddStatement(b, stmt) + wrappedStmt := fbast.WrappedStatementEnd(b) fbast.FileStartBodyVector(b, 1) b.PrependUOffsetT(wrappedStmt) diff --git a/ast/internal/fbast/DateTimeLiteral.go b/ast/internal/fbast/DateTimeLiteral.go index cad4cd7936..f0b463ba57 100644 --- a/ast/internal/fbast/DateTimeLiteral.go +++ b/ast/internal/fbast/DateTimeLiteral.go @@ -39,22 +39,56 @@ func (rcv *DateTimeLiteral) BaseNode(obj *BaseNode) *BaseNode { return nil } -func (rcv *DateTimeLiteral) Value() []byte { +func (rcv *DateTimeLiteral) Secs() int64 { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { - return rcv._tab.ByteVector(o + rcv._tab.Pos) + return rcv._tab.GetInt64(o + rcv._tab.Pos) } - return nil + return 0 +} + +func (rcv *DateTimeLiteral) MutateSecs(n int64) bool { + return rcv._tab.MutateInt64Slot(6, n) +} + +func (rcv *DateTimeLiteral) Nsecs() uint32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetUint32(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *DateTimeLiteral) MutateNsecs(n uint32) bool { + return rcv._tab.MutateUint32Slot(8, n) +} + +func (rcv *DateTimeLiteral) Offset() int32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + return rcv._tab.GetInt32(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *DateTimeLiteral) MutateOffset(n int32) bool { + return rcv._tab.MutateInt32Slot(10, n) } func DateTimeLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func DateTimeLiteralAddBaseNode(builder *flatbuffers.Builder, baseNode flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(baseNode), 0) } -func DateTimeLiteralAddValue(builder *flatbuffers.Builder, value flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(value), 0) +func DateTimeLiteralAddSecs(builder *flatbuffers.Builder, secs int64) { + builder.PrependInt64Slot(1, secs, 0) +} +func DateTimeLiteralAddNsecs(builder *flatbuffers.Builder, nsecs uint32) { + builder.PrependUint32Slot(2, nsecs, 0) +} +func DateTimeLiteralAddOffset(builder *flatbuffers.Builder, offset int32) { + builder.PrependInt32Slot(3, offset, 0) } func DateTimeLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() diff --git a/ast/internal/fbast/Operator.go b/ast/internal/fbast/Operator.go index 24300c65bd..2ff145c193 100644 --- a/ast/internal/fbast/Operator.go +++ b/ast/internal/fbast/Operator.go @@ -5,30 +5,31 @@ package fbast type Operator = int8 const ( - OperatorMultiplicationOperator Operator = 0 - OperatorDivisionOperator Operator = 1 - OperatorModuloOperator Operator = 2 - OperatorPowerOperator Operator = 3 - OperatorAdditionOperator Operator = 4 - OperatorSubtractionOperator Operator = 5 - OperatorLessThanEqualOperator Operator = 6 - OperatorLessThanOperator Operator = 7 - OperatorGreaterThanEqualOperator Operator = 8 - OperatorGreaterThanOperator Operator = 9 - OperatorStartsWithOperator Operator = 10 - OperatorInOperator Operator = 11 - OperatorNotOperator Operator = 12 - OperatorExistsOperator Operator = 13 - OperatorNotEmptyOperator Operator = 14 - OperatorEmptyOperator Operator = 15 - OperatorEqualOperator Operator = 16 - OperatorNotEqualOperator Operator = 17 - OperatorRegexpMatchOperator Operator = 18 - OperatorNotRegexpMatchOperator Operator = 19 - OperatorInvalidOperator Operator = 20 + OperatorInvalidOperator Operator = 0 + OperatorMultiplicationOperator Operator = 1 + OperatorDivisionOperator Operator = 2 + OperatorModuloOperator Operator = 3 + OperatorPowerOperator Operator = 4 + OperatorAdditionOperator Operator = 5 + OperatorSubtractionOperator Operator = 6 + OperatorLessThanEqualOperator Operator = 7 + OperatorLessThanOperator Operator = 8 + OperatorGreaterThanEqualOperator Operator = 9 + OperatorGreaterThanOperator Operator = 10 + OperatorStartsWithOperator Operator = 11 + OperatorInOperator Operator = 12 + OperatorNotOperator Operator = 13 + OperatorExistsOperator Operator = 14 + OperatorNotEmptyOperator Operator = 15 + OperatorEmptyOperator Operator = 16 + OperatorEqualOperator Operator = 17 + OperatorNotEqualOperator Operator = 18 + OperatorRegexpMatchOperator Operator = 19 + OperatorNotRegexpMatchOperator Operator = 20 ) var EnumNamesOperator = map[Operator]string{ + OperatorInvalidOperator: "InvalidOperator", OperatorMultiplicationOperator: "MultiplicationOperator", OperatorDivisionOperator: "DivisionOperator", OperatorModuloOperator: "ModuloOperator", @@ -49,5 +50,4 @@ var EnumNamesOperator = map[Operator]string{ OperatorNotEqualOperator: "NotEqualOperator", OperatorRegexpMatchOperator: "RegexpMatchOperator", OperatorNotRegexpMatchOperator: "NotRegexpMatchOperator", - OperatorInvalidOperator: "InvalidOperator", } diff --git a/ast/json.go b/ast/json.go index 3eb089fc84..bb84e4e7d6 100644 --- a/ast/json.go +++ b/ast/json.go @@ -52,14 +52,14 @@ func (f *File) UnmarshalJSON(data []byte) error { } return nil } -func (p *PackageClause) MarshalJSON() ([]byte, error) { +func (c *PackageClause) MarshalJSON() ([]byte, error) { type Alias PackageClause raw := struct { Type string `json:"type"` *Alias }{ - Type: p.Type(), - Alias: (*Alias)(p), + Type: c.Type(), + Alias: (*Alias)(c), } return json.Marshal(raw) } @@ -266,18 +266,18 @@ func (d *VariableAssignment) UnmarshalJSON(data []byte) error { d.Init = e return nil } -func (s *MemberAssignment) MarshalJSON() ([]byte, error) { +func (a *MemberAssignment) MarshalJSON() ([]byte, error) { type Alias MemberAssignment raw := struct { Type string `json:"type"` *Alias }{ - Type: s.Type(), - Alias: (*Alias)(s), + Type: a.Type(), + Alias: (*Alias)(a), } return json.Marshal(raw) } -func (s *MemberAssignment) UnmarshalJSON(data []byte) error { +func (a *MemberAssignment) UnmarshalJSON(data []byte) error { type Alias MemberAssignment raw := struct { *Alias @@ -287,14 +287,14 @@ func (s *MemberAssignment) UnmarshalJSON(data []byte) error { return err } if raw.Alias != nil { - *s = *(*MemberAssignment)(raw.Alias) + *a = *(*MemberAssignment)(raw.Alias) } e, err := unmarshalExpression(raw.Init) if err != nil { return err } - s.Init = e + a.Init = e return nil } func (e *CallExpression) MarshalJSON() ([]byte, error) { @@ -621,18 +621,18 @@ func (e *StringExpression) UnmarshalJSON(data []byte) error { } return nil } -func (e *TextPart) MarshalJSON() ([]byte, error) { +func (p *TextPart) MarshalJSON() ([]byte, error) { type Alias TextPart raw := struct { Type string `json:"type"` *Alias }{ - Type: e.Type(), - Alias: (*Alias)(e), + Type: p.Type(), + Alias: (*Alias)(p), } return json.Marshal(raw) } -func (e *TextPart) UnmarshalJSON(data []byte) error { +func (p *TextPart) UnmarshalJSON(data []byte) error { type Alias TextPart raw := struct { *Alias @@ -642,23 +642,23 @@ func (e *TextPart) UnmarshalJSON(data []byte) error { return err } if raw.Alias != nil { - *e = *(*TextPart)(raw.Alias) + *p = *(*TextPart)(raw.Alias) } - e.Value = raw.Value + p.Value = raw.Value return nil } -func (e *InterpolatedPart) MarshalJSON() ([]byte, error) { +func (p *InterpolatedPart) MarshalJSON() ([]byte, error) { type Alias InterpolatedPart raw := struct { Type string `json:"type"` *Alias }{ - Type: e.Type(), - Alias: (*Alias)(e), + Type: p.Type(), + Alias: (*Alias)(p), } return json.Marshal(raw) } -func (e *InterpolatedPart) UnmarshalJSON(data []byte) error { +func (p *InterpolatedPart) UnmarshalJSON(data []byte) error { type Alias InterpolatedPart raw := struct { *Alias @@ -668,14 +668,14 @@ func (e *InterpolatedPart) UnmarshalJSON(data []byte) error { return err } if raw.Alias != nil { - *e = *(*InterpolatedPart)(raw.Alias) + *p = *(*InterpolatedPart)(raw.Alias) } expr, err := unmarshalExpression(raw.Expression) if err != nil { return err } - e.Expression = expr + p.Expression = expr return nil } func (e *ParenExpression) MarshalJSON() ([]byte, error) { @@ -850,14 +850,14 @@ func (i *Identifier) MarshalJSON() ([]byte, error) { } return json.Marshal(raw) } -func (l *PipeLiteral) MarshalJSON() ([]byte, error) { +func (p *PipeLiteral) MarshalJSON() ([]byte, error) { type Alias PipeLiteral raw := struct { Type string `json:"type"` *Alias }{ - Type: l.Type(), - Alias: (*Alias)(l), + Type: p.Type(), + Alias: (*Alias)(p), } return json.Marshal(raw) } diff --git a/libflux/go/libflux/parser.go b/libflux/go/libflux/parser.go index ce0150bb61..b094115143 100644 --- a/libflux/go/libflux/parser.go +++ b/libflux/go/libflux/parser.go @@ -12,6 +12,8 @@ import ( "errors" "runtime" "unsafe" + + "github.com/influxdata/flux/ast" ) // freeable indicates a resource that has memory @@ -63,3 +65,14 @@ func Parse(s string) *ASTFile { runtime.SetFinalizer(f, free) return f } + +func ParseIntoFbs(s string) *ast.Package { + cstr := C.CString(s) + defer C.free(unsafe.Pointer(cstr)) + + ptr := C.flux_parse_fb(cstr) + defer C.free(unsafe.Pointer(ptr)) + + data := C.GoBytes(ptr.data, C.int(ptr.len)) + return ast.Package{}.FromBuf(data) +} diff --git a/libflux/include/influxdata/flux.h b/libflux/include/influxdata/flux.h index 605d1c81c5..824a2c1791 100644 --- a/libflux/include/influxdata/flux.h +++ b/libflux/include/influxdata/flux.h @@ -26,6 +26,8 @@ struct flux_error_t; // of the query. struct flux_ast_t *flux_parse(const char *); +struct flux_buffer_t *flux_parse_fb(const char *); + // flux_ast_marshal_json will marshal json and fill in the given buffer // with the data. If successful, memory will be allocated for the data // within the buffer and it is the caller's responsibility to free this diff --git a/libflux/src/ast/flatbuffers/ast_generated.rs b/libflux/src/ast/flatbuffers/ast_generated.rs index 8477f6dd4a..fe6677a631 100644 --- a/libflux/src/ast/flatbuffers/ast_generated.rs +++ b/libflux/src/ast/flatbuffers/ast_generated.rs @@ -297,27 +297,27 @@ pub struct ExpressionUnionTableOffset {} #[repr(i8)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] pub enum Operator { - MultiplicationOperator = 0, - DivisionOperator = 1, - ModuloOperator = 2, - PowerOperator = 3, - AdditionOperator = 4, - SubtractionOperator = 5, - LessThanEqualOperator = 6, - LessThanOperator = 7, - GreaterThanEqualOperator = 8, - GreaterThanOperator = 9, - StartsWithOperator = 10, - InOperator = 11, - NotOperator = 12, - ExistsOperator = 13, - NotEmptyOperator = 14, - EmptyOperator = 15, - EqualOperator = 16, - NotEqualOperator = 17, - RegexpMatchOperator = 18, - NotRegexpMatchOperator = 19, - InvalidOperator = 20, + InvalidOperator = 0, + MultiplicationOperator = 1, + DivisionOperator = 2, + ModuloOperator = 3, + PowerOperator = 4, + AdditionOperator = 5, + SubtractionOperator = 6, + LessThanEqualOperator = 7, + LessThanOperator = 8, + GreaterThanEqualOperator = 9, + GreaterThanOperator = 10, + StartsWithOperator = 11, + InOperator = 12, + NotOperator = 13, + ExistsOperator = 14, + NotEmptyOperator = 15, + EmptyOperator = 16, + EqualOperator = 17, + NotEqualOperator = 18, + RegexpMatchOperator = 19, + NotRegexpMatchOperator = 20, } @@ -357,6 +357,7 @@ impl flatbuffers::Push for Operator { #[allow(non_camel_case_types)] const ENUM_VALUES_OPERATOR:[Operator; 21] = [ + Operator::InvalidOperator, Operator::MultiplicationOperator, Operator::DivisionOperator, Operator::ModuloOperator, @@ -376,12 +377,12 @@ const ENUM_VALUES_OPERATOR:[Operator; 21] = [ Operator::EqualOperator, Operator::NotEqualOperator, Operator::RegexpMatchOperator, - Operator::NotRegexpMatchOperator, - Operator::InvalidOperator + Operator::NotRegexpMatchOperator ]; #[allow(non_camel_case_types)] const ENUM_NAMES_OPERATOR:[&'static str; 21] = [ + "InvalidOperator", "MultiplicationOperator", "DivisionOperator", "ModuloOperator", @@ -401,8 +402,7 @@ const ENUM_NAMES_OPERATOR:[&'static str; 21] = [ "EqualOperator", "NotEqualOperator", "RegexpMatchOperator", - "NotRegexpMatchOperator", - "InvalidOperator" + "NotRegexpMatchOperator" ]; pub fn enum_name_operator(e: Operator) -> &'static str { @@ -3714,7 +3714,7 @@ impl<'a> BinaryExpression<'a> { } #[inline] pub fn operator(&self) -> Operator { - self._tab.get::(BinaryExpression::VT_OPERATOR, Some(Operator::MultiplicationOperator)).unwrap() + self._tab.get::(BinaryExpression::VT_OPERATOR, Some(Operator::InvalidOperator)).unwrap() } #[inline] pub fn left_type(&self) -> Expression { @@ -4227,7 +4227,7 @@ impl<'a> Default for BinaryExpressionArgs<'a> { fn default() -> Self { BinaryExpressionArgs { base_node: None, - operator: Operator::MultiplicationOperator, + operator: Operator::InvalidOperator, left_type: Expression::NONE, left: None, right_type: Expression::NONE, @@ -4246,7 +4246,7 @@ impl<'a: 'b, 'b> BinaryExpressionBuilder<'a, 'b> { } #[inline] pub fn add_operator(&mut self, operator: Operator) { - self.fbb_.push_slot::(BinaryExpression::VT_OPERATOR, operator, Operator::MultiplicationOperator); + self.fbb_.push_slot::(BinaryExpression::VT_OPERATOR, operator, Operator::InvalidOperator); } #[inline] pub fn add_left_type(&mut self, left_type: Expression) { @@ -4942,7 +4942,7 @@ impl<'a> UnaryExpression<'a> { } #[inline] pub fn operator(&self) -> Operator { - self._tab.get::(UnaryExpression::VT_OPERATOR, Some(Operator::MultiplicationOperator)).unwrap() + self._tab.get::(UnaryExpression::VT_OPERATOR, Some(Operator::InvalidOperator)).unwrap() } #[inline] pub fn argument_type(&self) -> Expression { @@ -5205,7 +5205,7 @@ impl<'a> Default for UnaryExpressionArgs<'a> { fn default() -> Self { UnaryExpressionArgs { base_node: None, - operator: Operator::MultiplicationOperator, + operator: Operator::InvalidOperator, argument_type: Expression::NONE, argument: None, } @@ -5222,7 +5222,7 @@ impl<'a: 'b, 'b> UnaryExpressionBuilder<'a, 'b> { } #[inline] pub fn add_operator(&mut self, operator: Operator) { - self.fbb_.push_slot::(UnaryExpression::VT_OPERATOR, operator, Operator::MultiplicationOperator); + self.fbb_.push_slot::(UnaryExpression::VT_OPERATOR, operator, Operator::InvalidOperator); } #[inline] pub fn add_argument_type(&mut self, argument_type: Expression) { @@ -5364,34 +5364,50 @@ impl<'a> DateTimeLiteral<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args DateTimeLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = DateTimeLiteralBuilder::new(_fbb); - if let Some(x) = args.value { builder.add_value(x); } + builder.add_secs(args.secs); + builder.add_offset(args.offset); + builder.add_nsecs(args.nsecs); if let Some(x) = args.base_node { builder.add_base_node(x); } builder.finish() } pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_SECS: flatbuffers::VOffsetT = 6; + pub const VT_NSECS: flatbuffers::VOffsetT = 8; + pub const VT_OFFSET: flatbuffers::VOffsetT = 10; #[inline] pub fn base_node(&self) -> Option> { self._tab.get::>>(DateTimeLiteral::VT_BASE_NODE, None) } #[inline] - pub fn value(&self) -> Option<&'a str> { - self._tab.get::>(DateTimeLiteral::VT_VALUE, None) + pub fn secs(&self) -> i64 { + self._tab.get::(DateTimeLiteral::VT_SECS, Some(0)).unwrap() + } + #[inline] + pub fn nsecs(&self) -> u32 { + self._tab.get::(DateTimeLiteral::VT_NSECS, Some(0)).unwrap() + } + #[inline] + pub fn offset(&self) -> i32 { + self._tab.get::(DateTimeLiteral::VT_OFFSET, Some(0)).unwrap() } } pub struct DateTimeLiteralArgs<'a> { pub base_node: Option>>, - pub value: Option>, + pub secs: i64, + pub nsecs: u32, + pub offset: i32, } impl<'a> Default for DateTimeLiteralArgs<'a> { #[inline] fn default() -> Self { DateTimeLiteralArgs { base_node: None, - value: None, + secs: 0, + nsecs: 0, + offset: 0, } } } @@ -5405,8 +5421,16 @@ impl<'a: 'b, 'b> DateTimeLiteralBuilder<'a, 'b> { self.fbb_.push_slot_always::>(DateTimeLiteral::VT_BASE_NODE, base_node); } #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(DateTimeLiteral::VT_VALUE, value); + pub fn add_secs(&mut self, secs: i64) { + self.fbb_.push_slot::(DateTimeLiteral::VT_SECS, secs, 0); + } + #[inline] + pub fn add_nsecs(&mut self, nsecs: u32) { + self.fbb_.push_slot::(DateTimeLiteral::VT_NSECS, nsecs, 0); + } + #[inline] + pub fn add_offset(&mut self, offset: i32) { + self.fbb_.push_slot::(DateTimeLiteral::VT_OFFSET, offset, 0); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DateTimeLiteralBuilder<'a, 'b> { diff --git a/libflux/src/ast/flatbuffers/mod.rs b/libflux/src/ast/flatbuffers/mod.rs index c7609385f0..7c192563bb 100644 --- a/libflux/src/ast/flatbuffers/mod.rs +++ b/libflux/src/ast/flatbuffers/mod.rs @@ -7,6 +7,7 @@ use std::rc::Rc; use crate::ast; use crate::ast::walk; use ast_generated::fbast; +use chrono::Offset; use flatbuffers::{UnionWIPOffset, WIPOffset}; /// Accept the given AST package and return a FlatBuffers serialization of it as a Vec. @@ -163,11 +164,17 @@ impl<'a> ast::walk::Visitor<'a> for SerializingVisitor<'a> { .push((b.as_union_value(), fbast::Expression::BooleanLiteral)) } walk::Node::DateTimeLit(dtl) => { - let value = dtl.value.to_rfc3339(); - let value = v.create_string(&value); + let secs = dtl.value.timestamp(); + let nsecs = dtl.value.timestamp_subsec_nanos(); + let offset = dtl.value.offset().fix().local_minus_utc(); let dtl = fbast::DateTimeLiteral::create( &mut v.builder, - &fbast::DateTimeLiteralArgs { base_node, value }, + &fbast::DateTimeLiteralArgs { + base_node, + secs, + nsecs, + offset, + }, ); v.expr_stack .push((dtl.as_union_value(), fbast::Expression::DateTimeLiteral)); diff --git a/libflux/src/ast/flatbuffers/tests.rs b/libflux/src/ast/flatbuffers/tests.rs index 0425423f99..5558d6eeb0 100644 --- a/libflux/src/ast/flatbuffers/tests.rs +++ b/libflux/src/ast/flatbuffers/tests.rs @@ -3,6 +3,7 @@ extern crate walkdir; use super::ast_generated::fbast; use crate::ast; +use chrono::FixedOffset; #[test] fn test_flatbuffers_ast() { @@ -450,9 +451,14 @@ fn compare_exprs( } (ast::Expression::DateTime(ast_dtl), fbast::Expression::DateTimeLiteral) => { let fb_dtl = fbast::DateTimeLiteral::init_from_table(*fb_tbl); - let ast_value = ast_dtl.value.to_rfc3339(); + let dtl = chrono::DateTime::::from_utc( + chrono::NaiveDateTime::from_timestamp(fb_dtl.secs(), fb_dtl.nsecs()), + FixedOffset::east(fb_dtl.offset()), + ); compare_base(&ast_dtl.base, &fb_dtl.base_node())?; - compare_strings("date time literal value", &ast_value, &fb_dtl.value())?; + if ast_dtl.value != dtl { + return Err(String::from("invalid DateTimeLiteral value")); + } Ok(()) } (ast::Expression::Regexp(ast_rel), fbast::Expression::RegexpLiteral) => { diff --git a/libflux/src/lib.rs b/libflux/src/lib.rs index 3b46274c68..371634053a 100644 --- a/libflux/src/lib.rs +++ b/libflux/src/lib.rs @@ -16,6 +16,8 @@ use std::os::raw::{c_char, c_void}; use parser::Parser; +pub const DEFAULT_PACKAGE_NAME: &str = "main"; + #[allow(non_camel_case_types)] pub mod ctypes { include!(concat!(env!("OUT_DIR"), "/ctypes.rs")); @@ -26,6 +28,12 @@ struct ErrorHandle { err: Box, } +#[repr(C)] +pub struct flux_buffer_t { + pub data: *const u8, + pub len: usize, +} + #[no_mangle] pub extern "C" fn flux_parse(cstr: *mut c_char) -> *mut flux_ast_t { let buf = unsafe { CStr::from_ptr(cstr).to_bytes() }; @@ -35,6 +43,42 @@ pub extern "C" fn flux_parse(cstr: *mut c_char) -> *mut flux_ast_t { return Box::into_raw(Box::new(file)) as *mut flux_ast_t; } +#[no_mangle] +pub extern "C" fn flux_parse_fb(src_ptr: *const c_char) -> *mut flux_buffer_t { + let src_bytes = unsafe { CStr::from_ptr(src_ptr).to_bytes() }; + let src = String::from_utf8(src_bytes.to_vec()).unwrap(); + let mut p = Parser::new(&src); + let file = p.parse_file(String::from("")); + let package_name: String; + match &file.package { + Some(p) => { + package_name = p.name.name.clone(); + } + _ => { + package_name = DEFAULT_PACKAGE_NAME.to_string(); + } + } + let pkg = ast::Package { + base: ast::BaseNode { + ..ast::BaseNode::default() + }, + path: String::from(""), + package: package_name, + files: vec![file], + }; + let r = ast::flatbuffers::serialize(&pkg); + match r { + Ok((vec, offset)) => { + let data = &vec[offset..]; + return Box::into_raw(Box::new(flux_buffer_t { + data: data.as_ptr(), + len: data.len(), + })); + } + Err(_) => 1 as *mut flux_buffer_t, + } +} + #[no_mangle] pub extern "C" fn flux_ast_marshal_json( ast: *mut flux_ast_t, @@ -51,7 +95,7 @@ pub extern "C" fn flux_ast_marshal_json( let buffer = unsafe { &mut *buf }; buffer.len = data.len(); - buffer.data = Box::into_raw(data.into_boxed_slice()) as *mut c_void; + buffer.data = Box::into_raw(data.into_boxed_slice()) as *mut u8; return std::ptr::null_mut(); } From 9f43920f3369c2b3a7e46ff5a77cd7c150ff6408 Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Fri, 22 Nov 2019 14:31:27 -0600 Subject: [PATCH 03/19] perf(arrow): use resize instead of reserve (#2181) Reserve is meant for appending when you don't know the final size of the array. Resize is meant for when you know the exact size. When using Reserve, it changes the size to the closest power of 2 that fits the elements you are going to append while Resize gives you the exact amount. When using Reserve, the buffers are very likely to trigger a reallocation so it can resize the buffers to a smaller amount and incur a copy between these buffers. To avoid this, it is better to use Resize when we know the exact size which is true of all of these functions. --- arrow/bool.go | 2 +- arrow/float.go | 2 +- arrow/int.go | 2 +- arrow/repeat.go | 12 ++++++------ arrow/string.go | 2 +- arrow/uint.go | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/arrow/bool.go b/arrow/bool.go index f0cc291065..c9a3d46fec 100644 --- a/arrow/bool.go +++ b/arrow/bool.go @@ -7,7 +7,7 @@ import ( func NewBool(vs []bool, alloc *memory.Allocator) *array.Boolean { b := NewBoolBuilder(alloc) - b.Reserve(len(vs)) + b.Resize(len(vs)) for _, v := range vs { b.UnsafeAppend(v) } diff --git a/arrow/float.go b/arrow/float.go index eea490b044..e225769a30 100644 --- a/arrow/float.go +++ b/arrow/float.go @@ -7,7 +7,7 @@ import ( func NewFloat(vs []float64, alloc *memory.Allocator) *array.Float64 { b := NewFloatBuilder(alloc) - b.Reserve(len(vs)) + b.Resize(len(vs)) for _, v := range vs { b.UnsafeAppend(v) } diff --git a/arrow/int.go b/arrow/int.go index 5ecfa8c680..0866f8b83a 100644 --- a/arrow/int.go +++ b/arrow/int.go @@ -7,7 +7,7 @@ import ( func NewInt(vs []int64, alloc *memory.Allocator) *array.Int64 { b := NewIntBuilder(alloc) - b.Reserve(len(vs)) + b.Resize(len(vs)) for _, v := range vs { b.UnsafeAppend(v) } diff --git a/arrow/repeat.go b/arrow/repeat.go index e54cca1fcf..ce5c6a03fb 100644 --- a/arrow/repeat.go +++ b/arrow/repeat.go @@ -16,7 +16,7 @@ func Repeat(v values.Value, n int, mem memory.Allocator) array.Interface { switch v.Type() { case semantic.Int: b := array.NewInt64Builder(mem) - b.Reserve(n) + b.Resize(n) v := v.Int() for i := 0; i < n; i++ { b.Append(v) @@ -24,7 +24,7 @@ func Repeat(v values.Value, n int, mem memory.Allocator) array.Interface { return b.NewArray() case semantic.UInt: b := array.NewUint64Builder(mem) - b.Reserve(n) + b.Resize(n) v := v.UInt() for i := 0; i < n; i++ { b.Append(v) @@ -32,7 +32,7 @@ func Repeat(v values.Value, n int, mem memory.Allocator) array.Interface { return b.NewArray() case semantic.Float: b := array.NewFloat64Builder(mem) - b.Reserve(n) + b.Resize(n) v := v.Float() for i := 0; i < n; i++ { b.Append(v) @@ -40,7 +40,7 @@ func Repeat(v values.Value, n int, mem memory.Allocator) array.Interface { return b.NewArray() case semantic.String: b := array.NewBinaryBuilder(mem, arrow.BinaryTypes.String) - b.Reserve(n) + b.Resize(n) b.ReserveData(n * len(v.Str())) v := v.Str() for i := 0; i < n; i++ { @@ -49,7 +49,7 @@ func Repeat(v values.Value, n int, mem memory.Allocator) array.Interface { return b.NewArray() case semantic.Bool: b := array.NewBooleanBuilder(mem) - b.Reserve(n) + b.Resize(n) v := v.Bool() for i := 0; i < n; i++ { b.Append(v) @@ -57,7 +57,7 @@ func Repeat(v values.Value, n int, mem memory.Allocator) array.Interface { return b.NewArray() case semantic.Time: b := array.NewInt64Builder(mem) - b.Reserve(n) + b.Resize(n) v := int64(v.Time()) for i := 0; i < n; i++ { b.Append(v) diff --git a/arrow/string.go b/arrow/string.go index 6368bcbee8..2e97728ed4 100644 --- a/arrow/string.go +++ b/arrow/string.go @@ -8,7 +8,7 @@ import ( func NewString(vs []string, alloc *memory.Allocator) *array.Binary { b := NewStringBuilder(alloc) - b.Reserve(len(vs)) + b.Resize(len(vs)) sz := 0 for _, v := range vs { sz += len(v) diff --git a/arrow/uint.go b/arrow/uint.go index 5cfbfd3e86..cf37fc5b4d 100644 --- a/arrow/uint.go +++ b/arrow/uint.go @@ -7,7 +7,7 @@ import ( func NewUint(vs []uint64, alloc *memory.Allocator) *array.Uint64 { b := NewUintBuilder(alloc) - b.Reserve(len(vs)) + b.Resize(len(vs)) for _, v := range vs { b.UnsafeAppend(v) } From ceab43bb4b9309baaf6d6f5e2c5eaefe39baa580 Mon Sep 17 00:00:00 2001 From: Faith Chikwekwe Date: Fri, 22 Nov 2019 15:17:20 -0800 Subject: [PATCH 04/19] feat(libflux/semantic): update rust flatbuffers to more closely match rust semantic graph (#2193) --- .../flatbuffers/semantic_generated.rs | 650 +++++++----------- .../internal/fbsemantic/BuiltinStatement.go | 4 +- semantic/internal/fbsemantic/FunctionBlock.go | 82 --- .../internal/fbsemantic/FunctionExpression.go | 36 +- .../internal/fbsemantic/FunctionParameter.go | 50 +- .../internal/fbsemantic/FunctionParameters.go | 92 --- semantic/internal/fbsemantic/Identifier.go | 61 -- .../internal/fbsemantic/ImportDeclaration.go | 8 +- .../fbsemantic/NativeVariableAssignment.go | 4 +- semantic/internal/fbsemantic/PackageClause.go | 4 +- semantic/internal/fbsemantic/Property.go | 41 +- semantic/internal/fbsemantic/PropertyKey.go | 17 - semantic/semantic.fbs | 44 +- 13 files changed, 357 insertions(+), 736 deletions(-) delete mode 100644 semantic/internal/fbsemantic/FunctionBlock.go delete mode 100644 semantic/internal/fbsemantic/FunctionParameters.go delete mode 100644 semantic/internal/fbsemantic/Identifier.go delete mode 100644 semantic/internal/fbsemantic/PropertyKey.go diff --git a/libflux/src/semantic/flatbuffers/semantic_generated.rs b/libflux/src/semantic/flatbuffers/semantic_generated.rs index ad69222215..32761f2504 100644 --- a/libflux/src/semantic/flatbuffers/semantic_generated.rs +++ b/libflux/src/semantic/flatbuffers/semantic_generated.rs @@ -273,70 +273,6 @@ pub fn enum_name_expression(e: Expression) -> &'static str { pub struct ExpressionUnionTableOffset {} #[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum PropertyKey { - NONE = 0, - Identifier = 1, - StringLiteral = 2, - -} - -const ENUM_MIN_PROPERTY_KEY: u8 = 0; -const ENUM_MAX_PROPERTY_KEY: u8 = 2; - -impl<'a> flatbuffers::Follow<'a> for PropertyKey { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for PropertyKey { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const PropertyKey; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const PropertyKey; - unsafe { *p } - } -} - -impl flatbuffers::Push for PropertyKey { - type Output = PropertyKey; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_PROPERTY_KEY:[PropertyKey; 3] = [ - PropertyKey::NONE, - PropertyKey::Identifier, - PropertyKey::StringLiteral -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_PROPERTY_KEY:[&'static str; 3] = [ - "NONE", - "Identifier", - "StringLiteral" -]; - -pub fn enum_name_property_key(e: PropertyKey) -> &'static str { - let index = e as u8; - ENUM_NAMES_PROPERTY_KEY[index as usize] -} - -pub struct PropertyKeyUnionTableOffset {} -#[allow(non_camel_case_types)] #[repr(i8)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] pub enum Operator { @@ -912,14 +848,14 @@ impl<'a> PackageClause<'a> { self._tab.get::>>(PackageClause::VT_LOC, None) } #[inline] - pub fn name(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_NAME, None) + pub fn name(&self) -> Option> { + self._tab.get::>>(PackageClause::VT_NAME, None) } } pub struct PackageClauseArgs<'a> { pub loc: Option>>, - pub name: Option>>, + pub name: Option>>, } impl<'a> Default for PackageClauseArgs<'a> { #[inline] @@ -940,8 +876,8 @@ impl<'a: 'b, 'b> PackageClauseBuilder<'a, 'b> { self.fbb_.push_slot_always::>(PackageClause::VT_LOC, loc); } #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PackageClause::VT_NAME, name); + pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(PackageClause::VT_NAME, name); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageClauseBuilder<'a, 'b> { @@ -988,13 +924,13 @@ impl<'a> ImportDeclaration<'a> { args: &'args ImportDeclarationArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = ImportDeclarationBuilder::new(_fbb); if let Some(x) = args.path { builder.add_path(x); } - if let Some(x) = args.as_ { builder.add_as_(x); } + if let Some(x) = args.alias { builder.add_alias(x); } if let Some(x) = args.loc { builder.add_loc(x); } builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_AS_: flatbuffers::VOffsetT = 6; + pub const VT_ALIAS: flatbuffers::VOffsetT = 6; pub const VT_PATH: flatbuffers::VOffsetT = 8; #[inline] @@ -1002,8 +938,8 @@ impl<'a> ImportDeclaration<'a> { self._tab.get::>>(ImportDeclaration::VT_LOC, None) } #[inline] - pub fn as_(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_AS_, None) + pub fn alias(&self) -> Option> { + self._tab.get::>>(ImportDeclaration::VT_ALIAS, None) } #[inline] pub fn path(&self) -> Option> { @@ -1013,7 +949,7 @@ impl<'a> ImportDeclaration<'a> { pub struct ImportDeclarationArgs<'a> { pub loc: Option>>, - pub as_: Option>>, + pub alias: Option>>, pub path: Option>>, } impl<'a> Default for ImportDeclarationArgs<'a> { @@ -1021,7 +957,7 @@ impl<'a> Default for ImportDeclarationArgs<'a> { fn default() -> Self { ImportDeclarationArgs { loc: None, - as_: None, + alias: None, path: None, } } @@ -1036,8 +972,8 @@ impl<'a: 'b, 'b> ImportDeclarationBuilder<'a, 'b> { self.fbb_.push_slot_always::>(ImportDeclaration::VT_LOC, loc); } #[inline] - pub fn add_as_(&mut self, as_: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_AS_, as_); + pub fn add_alias(&mut self, alias: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(ImportDeclaration::VT_ALIAS, alias); } #[inline] pub fn add_path(&mut self, path: flatbuffers::WIPOffset>) { @@ -1558,14 +1494,14 @@ impl<'a> BuiltinStatement<'a> { self._tab.get::>>(BuiltinStatement::VT_LOC, None) } #[inline] - pub fn id(&self) -> Option> { - self._tab.get::>>(BuiltinStatement::VT_ID, None) + pub fn id(&self) -> Option> { + self._tab.get::>>(BuiltinStatement::VT_ID, None) } } pub struct BuiltinStatementArgs<'a> { pub loc: Option>>, - pub id: Option>>, + pub id: Option>>, } impl<'a> Default for BuiltinStatementArgs<'a> { #[inline] @@ -1586,8 +1522,8 @@ impl<'a: 'b, 'b> BuiltinStatementBuilder<'a, 'b> { self.fbb_.push_slot_always::>(BuiltinStatement::VT_LOC, loc); } #[inline] - pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BuiltinStatement::VT_ID, id); + pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(BuiltinStatement::VT_ID, id); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BuiltinStatementBuilder<'a, 'b> { @@ -2338,8 +2274,8 @@ impl<'a> NativeVariableAssignment<'a> { self._tab.get::>>(NativeVariableAssignment::VT_LOC, None) } #[inline] - pub fn identifier(&self) -> Option> { - self._tab.get::>>(NativeVariableAssignment::VT_IDENTIFIER, None) + pub fn identifier(&self) -> Option> { + self._tab.get::>>(NativeVariableAssignment::VT_IDENTIFIER, None) } #[inline] pub fn init__type(&self) -> Expression { @@ -2553,7 +2489,7 @@ impl<'a> NativeVariableAssignment<'a> { pub struct NativeVariableAssignmentArgs<'a> { pub loc: Option>>, - pub identifier: Option>>, + pub identifier: Option>>, pub init__type: Expression, pub init_: Option>, } @@ -2578,8 +2514,8 @@ impl<'a: 'b, 'b> NativeVariableAssignmentBuilder<'a, 'b> { self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_LOC, loc); } #[inline] - pub fn add_identifier(&mut self, identifier: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_IDENTIFIER, identifier); + pub fn add_identifier(&mut self, identifier: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_IDENTIFIER, identifier); } #[inline] pub fn add_init__type(&mut self, init__type: Expression) { @@ -3721,42 +3657,42 @@ impl<'a> FunctionExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args FunctionExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = FunctionExpressionBuilder::new(_fbb); - if let Some(x) = args.Block { builder.add_Block(x); } - if let Some(x) = args.defaults { builder.add_defaults(x); } + if let Some(x) = args.body { builder.add_body(x); } + if let Some(x) = args.params { builder.add_params(x); } if let Some(x) = args.loc { builder.add_loc(x); } builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_DEFAULTS: flatbuffers::VOffsetT = 6; - pub const VT_BLOCK: flatbuffers::VOffsetT = 8; + pub const VT_PARAMS: flatbuffers::VOffsetT = 6; + pub const VT_BODY: flatbuffers::VOffsetT = 8; #[inline] pub fn loc(&self) -> Option> { self._tab.get::>>(FunctionExpression::VT_LOC, None) } #[inline] - pub fn defaults(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_DEFAULTS, None) + pub fn params(&self) -> Option>>> { + self._tab.get::>>>>(FunctionExpression::VT_PARAMS, None) } #[inline] - pub fn Block(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_BLOCK, None) + pub fn body(&self) -> Option> { + self._tab.get::>>(FunctionExpression::VT_BODY, None) } } pub struct FunctionExpressionArgs<'a> { pub loc: Option>>, - pub defaults: Option>>, - pub Block: Option>>, + pub params: Option>>>>, + pub body: Option>>, } impl<'a> Default for FunctionExpressionArgs<'a> { #[inline] fn default() -> Self { FunctionExpressionArgs { loc: None, - defaults: None, - Block: None, + params: None, + body: None, } } } @@ -3770,12 +3706,12 @@ impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(FunctionExpression::VT_LOC, loc); } #[inline] - pub fn add_defaults(&mut self, defaults: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_DEFAULTS, defaults); + pub fn add_params(&mut self, params: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(FunctionExpression::VT_PARAMS, params); } #[inline] - pub fn add_Block(&mut self, Block: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_BLOCK, Block); + pub fn add_body(&mut self, body: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(FunctionExpression::VT_BODY, body); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionExpressionBuilder<'a, 'b> { @@ -3792,15 +3728,15 @@ impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { } } -pub enum FunctionBlockOffset {} +pub enum FunctionParameterOffset {} #[derive(Copy, Clone, Debug, PartialEq)] -pub struct FunctionBlock<'a> { +pub struct FunctionParameter<'a> { pub _tab: flatbuffers::Table<'a>, } -impl<'a> flatbuffers::Follow<'a> for FunctionBlock<'a> { - type Inner = FunctionBlock<'a>; +impl<'a> flatbuffers::Follow<'a> for FunctionParameter<'a> { + type Inner = FunctionParameter<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { @@ -3809,246 +3745,270 @@ impl<'a> flatbuffers::Follow<'a> for FunctionBlock<'a> { } } -impl<'a> FunctionBlock<'a> { +impl<'a> FunctionParameter<'a> { #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FunctionBlock { + FunctionParameter { _tab: table, } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunctionBlockArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunctionBlockBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.parameters { builder.add_parameters(x); } + args: &'args FunctionParameterArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = FunctionParameterBuilder::new(_fbb); + if let Some(x) = args.default { builder.add_default(x); } + if let Some(x) = args.key { builder.add_key(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_default_type(args.default_type); + builder.add_is_pipe(args.is_pipe); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PARAMETERS: flatbuffers::VOffsetT = 6; - pub const VT_BODY: flatbuffers::VOffsetT = 8; + pub const VT_IS_PIPE: flatbuffers::VOffsetT = 6; + pub const VT_KEY: flatbuffers::VOffsetT = 8; + pub const VT_DEFAULT_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_DEFAULT: flatbuffers::VOffsetT = 12; #[inline] pub fn loc(&self) -> Option> { - self._tab.get::>>(FunctionBlock::VT_LOC, None) + self._tab.get::>>(FunctionParameter::VT_LOC, None) } #[inline] - pub fn parameters(&self) -> Option> { - self._tab.get::>>(FunctionBlock::VT_PARAMETERS, None) + pub fn is_pipe(&self) -> bool { + self._tab.get::(FunctionParameter::VT_IS_PIPE, Some(false)).unwrap() } #[inline] - pub fn body(&self) -> Option> { - self._tab.get::>>(FunctionBlock::VT_BODY, None) + pub fn key(&self) -> Option> { + self._tab.get::>>(FunctionParameter::VT_KEY, None) } -} - -pub struct FunctionBlockArgs<'a> { - pub loc: Option>>, - pub parameters: Option>>, - pub body: Option>>, -} -impl<'a> Default for FunctionBlockArgs<'a> { - #[inline] - fn default() -> Self { - FunctionBlockArgs { - loc: None, - parameters: None, - body: None, - } - } -} -pub struct FunctionBlockBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FunctionBlockBuilder<'a, 'b> { #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionBlock::VT_LOC, loc); + pub fn default_type(&self) -> Expression { + self._tab.get::(FunctionParameter::VT_DEFAULT_TYPE, Some(Expression::NONE)).unwrap() } #[inline] - pub fn add_parameters(&mut self, parameters: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionBlock::VT_PARAMETERS, parameters); + pub fn default(&self) -> Option> { + self._tab.get::>>(FunctionParameter::VT_DEFAULT, None) } #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionBlock::VT_BODY, body); + #[allow(non_snake_case)] + pub fn default_as_string_expression(&self) -> Option> { + if self.default_type() == Expression::StringExpression { + self.default().map(|u| StringExpression::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionBlockBuilder<'a, 'b> { - let start = _fbb.start_table(); - FunctionBlockBuilder { - fbb_: _fbb, - start_: start, + #[allow(non_snake_case)] + pub fn default_as_array_expression(&self) -> Option> { + if self.default_type() == Expression::ArrayExpression { + self.default().map(|u| ArrayExpression::init_from_table(u)) + } else { + None } } + #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) + #[allow(non_snake_case)] + pub fn default_as_function_expression(&self) -> Option> { + if self.default_type() == Expression::FunctionExpression { + self.default().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } } -} - -pub enum FunctionParametersOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] -pub struct FunctionParameters<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for FunctionParameters<'a> { - type Inner = FunctionParameters<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + #[inline] + #[allow(non_snake_case)] + pub fn default_as_binary_expression(&self) -> Option> { + if self.default_type() == Expression::BinaryExpression { + self.default().map(|u| BinaryExpression::init_from_table(u)) + } else { + None } -} + } -impl<'a> FunctionParameters<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FunctionParameters { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunctionParametersArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunctionParametersBuilder::new(_fbb); - if let Some(x) = args.pipe { builder.add_pipe(x); } - if let Some(x) = args.list { builder.add_list(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() + #[inline] + #[allow(non_snake_case)] + pub fn default_as_call_expression(&self) -> Option> { + if self.default_type() == Expression::CallExpression { + self.default().map(|u| CallExpression::init_from_table(u)) + } else { + None } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_LIST: flatbuffers::VOffsetT = 6; - pub const VT_PIPE: flatbuffers::VOffsetT = 8; + } #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(FunctionParameters::VT_LOC, None) + #[allow(non_snake_case)] + pub fn default_as_conditional_expression(&self) -> Option> { + if self.default_type() == Expression::ConditionalExpression { + self.default().map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn list(&self) -> Option>>> { - self._tab.get::>>>>(FunctionParameters::VT_LIST, None) + #[allow(non_snake_case)] + pub fn default_as_identifier_expression(&self) -> Option> { + if self.default_type() == Expression::IdentifierExpression { + self.default().map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn pipe(&self) -> Option> { - self._tab.get::>>(FunctionParameters::VT_PIPE, None) + #[allow(non_snake_case)] + pub fn default_as_logical_expression(&self) -> Option> { + if self.default_type() == Expression::LogicalExpression { + self.default().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } } -} -pub struct FunctionParametersArgs<'a> { - pub loc: Option>>, - pub list: Option>>>>, - pub pipe: Option>>, -} -impl<'a> Default for FunctionParametersArgs<'a> { - #[inline] - fn default() -> Self { - FunctionParametersArgs { - loc: None, - list: None, - pipe: None, - } - } -} -pub struct FunctionParametersBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FunctionParametersBuilder<'a, 'b> { #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionParameters::VT_LOC, loc); + #[allow(non_snake_case)] + pub fn default_as_member_expression(&self) -> Option> { + if self.default_type() == Expression::MemberExpression { + self.default().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn add_list(&mut self, list: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(FunctionParameters::VT_LIST, list); + #[allow(non_snake_case)] + pub fn default_as_index_expression(&self) -> Option> { + if self.default_type() == Expression::IndexExpression { + self.default().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn add_pipe(&mut self, pipe: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionParameters::VT_PIPE, pipe); + #[allow(non_snake_case)] + pub fn default_as_object_expression(&self) -> Option> { + if self.default_type() == Expression::ObjectExpression { + self.default().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionParametersBuilder<'a, 'b> { - let start = _fbb.start_table(); - FunctionParametersBuilder { - fbb_: _fbb, - start_: start, + #[allow(non_snake_case)] + pub fn default_as_unary_expression(&self) -> Option> { + if self.default_type() == Expression::UnaryExpression { + self.default().map(|u| UnaryExpression::init_from_table(u)) + } else { + None } } + #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) + #[allow(non_snake_case)] + pub fn default_as_boolean_literal(&self) -> Option> { + if self.default_type() == Expression::BooleanLiteral { + self.default().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } } -} - -pub enum FunctionParameterOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] -pub struct FunctionParameter<'a> { - pub _tab: flatbuffers::Table<'a>, -} + #[inline] + #[allow(non_snake_case)] + pub fn default_as_date_time_literal(&self) -> Option> { + if self.default_type() == Expression::DateTimeLiteral { + self.default().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } -impl<'a> flatbuffers::Follow<'a> for FunctionParameter<'a> { - type Inner = FunctionParameter<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + #[inline] + #[allow(non_snake_case)] + pub fn default_as_duration_literal(&self) -> Option> { + if self.default_type() == Expression::DurationLiteral { + self.default().map(|u| DurationLiteral::init_from_table(u)) + } else { + None } -} + } -impl<'a> FunctionParameter<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FunctionParameter { - _tab: table, - } + #[inline] + #[allow(non_snake_case)] + pub fn default_as_float_literal(&self) -> Option> { + if self.default_type() == Expression::FloatLiteral { + self.default().map(|u| FloatLiteral::init_from_table(u)) + } else { + None } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunctionParameterArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunctionParameterBuilder::new(_fbb); - if let Some(x) = args.key { builder.add_key(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_integer_literal(&self) -> Option> { + if self.default_type() == Expression::IntegerLiteral { + self.default().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None } + } - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_KEY: flatbuffers::VOffsetT = 6; + #[inline] + #[allow(non_snake_case)] + pub fn default_as_string_literal(&self) -> Option> { + if self.default_type() == Expression::StringLiteral { + self.default().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(FunctionParameter::VT_LOC, None) + #[allow(non_snake_case)] + pub fn default_as_regexp_literal(&self) -> Option> { + if self.default_type() == Expression::RegexpLiteral { + self.default().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(FunctionParameter::VT_KEY, None) + #[allow(non_snake_case)] + pub fn default_as_unsigned_integer_literal(&self) -> Option> { + if self.default_type() == Expression::UnsignedIntegerLiteral { + self.default().map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } } + } pub struct FunctionParameterArgs<'a> { pub loc: Option>>, - pub key: Option>>, + pub is_pipe: bool, + pub key: Option>>, + pub default_type: Expression, + pub default: Option>, } impl<'a> Default for FunctionParameterArgs<'a> { #[inline] fn default() -> Self { FunctionParameterArgs { loc: None, + is_pipe: false, key: None, + default_type: Expression::NONE, + default: None, } } } @@ -4062,8 +4022,20 @@ impl<'a: 'b, 'b> FunctionParameterBuilder<'a, 'b> { self.fbb_.push_slot_always::>(FunctionParameter::VT_LOC, loc); } #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionParameter::VT_KEY, key); + pub fn add_is_pipe(&mut self, is_pipe: bool) { + self.fbb_.push_slot::(FunctionParameter::VT_IS_PIPE, is_pipe, false); + } + #[inline] + pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(FunctionParameter::VT_KEY, key); + } + #[inline] + pub fn add_default_type(&mut self, default_type: Expression) { + self.fbb_.push_slot::(FunctionParameter::VT_DEFAULT_TYPE, default_type, Expression::NONE); + } + #[inline] + pub fn add_default(&mut self, default: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(FunctionParameter::VT_DEFAULT, default); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionParameterBuilder<'a, 'b> { @@ -7717,27 +7689,21 @@ impl<'a> Property<'a> { if let Some(x) = args.key { builder.add_key(x); } if let Some(x) = args.loc { builder.add_loc(x); } builder.add_value_type(args.value_type); - builder.add_key_type(args.key_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_KEY_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_KEY: flatbuffers::VOffsetT = 8; - pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_VALUE: flatbuffers::VOffsetT = 12; + pub const VT_KEY: flatbuffers::VOffsetT = 6; + pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_VALUE: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { self._tab.get::>>(Property::VT_LOC, None) } #[inline] - pub fn key_type(&self) -> PropertyKey { - self._tab.get::(Property::VT_KEY_TYPE, Some(PropertyKey::NONE)).unwrap() - } - #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(Property::VT_KEY, None) + pub fn key(&self) -> Option> { + self._tab.get::>>(Property::VT_KEY, None) } #[inline] pub fn value_type(&self) -> Expression { @@ -7747,26 +7713,6 @@ impl<'a> Property<'a> { pub fn value(&self) -> Option> { self._tab.get::>>(Property::VT_VALUE, None) } - #[inline] - #[allow(non_snake_case)] - pub fn key_as_identifier(&self) -> Option> { - if self.key_type() == PropertyKey::Identifier { - self.key().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn key_as_string_literal(&self) -> Option> { - if self.key_type() == PropertyKey::StringLiteral { - self.key().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - #[inline] #[allow(non_snake_case)] pub fn value_as_string_expression(&self) -> Option> { @@ -7971,8 +7917,7 @@ impl<'a> Property<'a> { pub struct PropertyArgs<'a> { pub loc: Option>>, - pub key_type: PropertyKey, - pub key: Option>, + pub key: Option>>, pub value_type: Expression, pub value: Option>, } @@ -7981,7 +7926,6 @@ impl<'a> Default for PropertyArgs<'a> { fn default() -> Self { PropertyArgs { loc: None, - key_type: PropertyKey::NONE, key: None, value_type: Expression::NONE, value: None, @@ -7998,12 +7942,8 @@ impl<'a: 'b, 'b> PropertyBuilder<'a, 'b> { self.fbb_.push_slot_always::>(Property::VT_LOC, loc); } #[inline] - pub fn add_key_type(&mut self, key_type: PropertyKey) { - self.fbb_.push_slot::(Property::VT_KEY_TYPE, key_type, PropertyKey::NONE); - } - #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Property::VT_KEY, key); + pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(Property::VT_KEY, key); } #[inline] pub fn add_value_type(&mut self, value_type: Expression) { @@ -8116,94 +8056,6 @@ impl<'a: 'b, 'b> IdentifierExpressionBuilder<'a, 'b> { } } -pub enum IdentifierOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Identifier<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Identifier<'a> { - type Inner = Identifier<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} - -impl<'a> Identifier<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Identifier { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IdentifierArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IdentifierBuilder::new(_fbb); - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(Identifier::VT_LOC, None) - } - #[inline] - pub fn name(&self) -> Option<&'a str> { - self._tab.get::>(Identifier::VT_NAME, None) - } -} - -pub struct IdentifierArgs<'a> { - pub loc: Option>>, - pub name: Option>, -} -impl<'a> Default for IdentifierArgs<'a> { - #[inline] - fn default() -> Self { - IdentifierArgs { - loc: None, - name: None, - } - } -} -pub struct IdentifierBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IdentifierBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Identifier::VT_LOC, loc); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Identifier::VT_NAME, name); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierBuilder<'a, 'b> { - let start = _fbb.start_table(); - IdentifierBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - pub enum BooleanLiteralOffset {} #[derive(Copy, Clone, Debug, PartialEq)] diff --git a/semantic/internal/fbsemantic/BuiltinStatement.go b/semantic/internal/fbsemantic/BuiltinStatement.go index 8c0dcb0a24..078f487947 100644 --- a/semantic/internal/fbsemantic/BuiltinStatement.go +++ b/semantic/internal/fbsemantic/BuiltinStatement.go @@ -39,12 +39,12 @@ func (rcv *BuiltinStatement) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *BuiltinStatement) Id(obj *Identifier) *Identifier { +func (rcv *BuiltinStatement) Id(obj *IdentifierExpression) *IdentifierExpression { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(Identifier) + obj = new(IdentifierExpression) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/FunctionBlock.go b/semantic/internal/fbsemantic/FunctionBlock.go deleted file mode 100644 index 9767ae02dc..0000000000 --- a/semantic/internal/fbsemantic/FunctionBlock.go +++ /dev/null @@ -1,82 +0,0 @@ -// Code generated by the FlatBuffers compiler. DO NOT EDIT. - -package fbsemantic - -import ( - flatbuffers "github.com/google/flatbuffers/go" -) - -type FunctionBlock struct { - _tab flatbuffers.Table -} - -func GetRootAsFunctionBlock(buf []byte, offset flatbuffers.UOffsetT) *FunctionBlock { - n := flatbuffers.GetUOffsetT(buf[offset:]) - x := &FunctionBlock{} - x.Init(buf, n+offset) - return x -} - -func (rcv *FunctionBlock) Init(buf []byte, i flatbuffers.UOffsetT) { - rcv._tab.Bytes = buf - rcv._tab.Pos = i -} - -func (rcv *FunctionBlock) Table() flatbuffers.Table { - return rcv._tab -} - -func (rcv *FunctionBlock) Loc(obj *SourceLocation) *SourceLocation { - o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) - if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(SourceLocation) - } - obj.Init(rcv._tab.Bytes, x) - return obj - } - return nil -} - -func (rcv *FunctionBlock) Parameters(obj *FunctionParameters) *FunctionParameters { - o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) - if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(FunctionParameters) - } - obj.Init(rcv._tab.Bytes, x) - return obj - } - return nil -} - -func (rcv *FunctionBlock) Body(obj *Block) *Block { - o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) - if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(Block) - } - obj.Init(rcv._tab.Bytes, x) - return obj - } - return nil -} - -func FunctionBlockStart(builder *flatbuffers.Builder) { - builder.StartObject(3) -} -func FunctionBlockAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) -} -func FunctionBlockAddParameters(builder *flatbuffers.Builder, parameters flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(parameters), 0) -} -func FunctionBlockAddBody(builder *flatbuffers.Builder, body flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(body), 0) -} -func FunctionBlockEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - return builder.EndObject() -} diff --git a/semantic/internal/fbsemantic/FunctionExpression.go b/semantic/internal/fbsemantic/FunctionExpression.go index 9a840ab5f6..668f163a84 100644 --- a/semantic/internal/fbsemantic/FunctionExpression.go +++ b/semantic/internal/fbsemantic/FunctionExpression.go @@ -39,25 +39,32 @@ func (rcv *FunctionExpression) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *FunctionExpression) Defaults(obj *ObjectExpression) *ObjectExpression { +func (rcv *FunctionExpression) Params(obj *FunctionParameter, j int) bool { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(ObjectExpression) - } + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) obj.Init(rcv._tab.Bytes, x) - return obj + return true } - return nil + return false } -func (rcv *FunctionExpression) Block(obj *FunctionBlock) *FunctionBlock { +func (rcv *FunctionExpression) ParamsLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func (rcv *FunctionExpression) Body(obj *Block) *Block { o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(FunctionBlock) + obj = new(Block) } obj.Init(rcv._tab.Bytes, x) return obj @@ -71,11 +78,14 @@ func FunctionExpressionStart(builder *flatbuffers.Builder) { func FunctionExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) } -func FunctionExpressionAddDefaults(builder *flatbuffers.Builder, defaults flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(defaults), 0) +func FunctionExpressionAddParams(builder *flatbuffers.Builder, params flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(params), 0) +} +func FunctionExpressionStartParamsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) } -func FunctionExpressionAddBlock(builder *flatbuffers.Builder, Block flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(Block), 0) +func FunctionExpressionAddBody(builder *flatbuffers.Builder, body flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(body), 0) } func FunctionExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() diff --git a/semantic/internal/fbsemantic/FunctionParameter.go b/semantic/internal/fbsemantic/FunctionParameter.go index cdfb5c55a7..a2a02d0622 100644 --- a/semantic/internal/fbsemantic/FunctionParameter.go +++ b/semantic/internal/fbsemantic/FunctionParameter.go @@ -39,12 +39,24 @@ func (rcv *FunctionParameter) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *FunctionParameter) Key(obj *Identifier) *Identifier { +func (rcv *FunctionParameter) IsPipe() bool { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetBool(o + rcv._tab.Pos) + } + return false +} + +func (rcv *FunctionParameter) MutateIsPipe(n bool) bool { + return rcv._tab.MutateBoolSlot(6, n) +} + +func (rcv *FunctionParameter) Key(obj *IdentifierExpression) *IdentifierExpression { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(Identifier) + obj = new(IdentifierExpression) } obj.Init(rcv._tab.Bytes, x) return obj @@ -52,14 +64,44 @@ func (rcv *FunctionParameter) Key(obj *Identifier) *Identifier { return nil } +func (rcv *FunctionParameter) DefaultType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *FunctionParameter) MutateDefaultType(n byte) bool { + return rcv._tab.MutateByteSlot(10, n) +} + +func (rcv *FunctionParameter) Default(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func FunctionParameterStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(5) } func FunctionParameterAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) } +func FunctionParameterAddIsPipe(builder *flatbuffers.Builder, isPipe bool) { + builder.PrependBoolSlot(1, isPipe, false) +} func FunctionParameterAddKey(builder *flatbuffers.Builder, key flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(key), 0) + builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(key), 0) +} +func FunctionParameterAddDefaultType(builder *flatbuffers.Builder, defaultType byte) { + builder.PrependByteSlot(3, defaultType, 0) +} +func FunctionParameterAddDefault(builder *flatbuffers.Builder, default_ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(default_), 0) } func FunctionParameterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() diff --git a/semantic/internal/fbsemantic/FunctionParameters.go b/semantic/internal/fbsemantic/FunctionParameters.go deleted file mode 100644 index 4ea7c36dd6..0000000000 --- a/semantic/internal/fbsemantic/FunctionParameters.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by the FlatBuffers compiler. DO NOT EDIT. - -package fbsemantic - -import ( - flatbuffers "github.com/google/flatbuffers/go" -) - -type FunctionParameters struct { - _tab flatbuffers.Table -} - -func GetRootAsFunctionParameters(buf []byte, offset flatbuffers.UOffsetT) *FunctionParameters { - n := flatbuffers.GetUOffsetT(buf[offset:]) - x := &FunctionParameters{} - x.Init(buf, n+offset) - return x -} - -func (rcv *FunctionParameters) Init(buf []byte, i flatbuffers.UOffsetT) { - rcv._tab.Bytes = buf - rcv._tab.Pos = i -} - -func (rcv *FunctionParameters) Table() flatbuffers.Table { - return rcv._tab -} - -func (rcv *FunctionParameters) Loc(obj *SourceLocation) *SourceLocation { - o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) - if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(SourceLocation) - } - obj.Init(rcv._tab.Bytes, x) - return obj - } - return nil -} - -func (rcv *FunctionParameters) List(obj *FunctionParameter, j int) bool { - o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) - if o != 0 { - x := rcv._tab.Vector(o) - x += flatbuffers.UOffsetT(j) * 4 - x = rcv._tab.Indirect(x) - obj.Init(rcv._tab.Bytes, x) - return true - } - return false -} - -func (rcv *FunctionParameters) ListLength() int { - o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) - if o != 0 { - return rcv._tab.VectorLen(o) - } - return 0 -} - -func (rcv *FunctionParameters) Pipe(obj *Identifier) *Identifier { - o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) - if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(Identifier) - } - obj.Init(rcv._tab.Bytes, x) - return obj - } - return nil -} - -func FunctionParametersStart(builder *flatbuffers.Builder) { - builder.StartObject(3) -} -func FunctionParametersAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) -} -func FunctionParametersAddList(builder *flatbuffers.Builder, list flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(list), 0) -} -func FunctionParametersStartListVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { - return builder.StartVector(4, numElems, 4) -} -func FunctionParametersAddPipe(builder *flatbuffers.Builder, pipe flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(pipe), 0) -} -func FunctionParametersEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - return builder.EndObject() -} diff --git a/semantic/internal/fbsemantic/Identifier.go b/semantic/internal/fbsemantic/Identifier.go deleted file mode 100644 index 20f791dfd9..0000000000 --- a/semantic/internal/fbsemantic/Identifier.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by the FlatBuffers compiler. DO NOT EDIT. - -package fbsemantic - -import ( - flatbuffers "github.com/google/flatbuffers/go" -) - -type Identifier struct { - _tab flatbuffers.Table -} - -func GetRootAsIdentifier(buf []byte, offset flatbuffers.UOffsetT) *Identifier { - n := flatbuffers.GetUOffsetT(buf[offset:]) - x := &Identifier{} - x.Init(buf, n+offset) - return x -} - -func (rcv *Identifier) Init(buf []byte, i flatbuffers.UOffsetT) { - rcv._tab.Bytes = buf - rcv._tab.Pos = i -} - -func (rcv *Identifier) Table() flatbuffers.Table { - return rcv._tab -} - -func (rcv *Identifier) Loc(obj *SourceLocation) *SourceLocation { - o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) - if o != 0 { - x := rcv._tab.Indirect(o + rcv._tab.Pos) - if obj == nil { - obj = new(SourceLocation) - } - obj.Init(rcv._tab.Bytes, x) - return obj - } - return nil -} - -func (rcv *Identifier) Name() []byte { - o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) - if o != 0 { - return rcv._tab.ByteVector(o + rcv._tab.Pos) - } - return nil -} - -func IdentifierStart(builder *flatbuffers.Builder) { - builder.StartObject(2) -} -func IdentifierAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) -} -func IdentifierAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(name), 0) -} -func IdentifierEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - return builder.EndObject() -} diff --git a/semantic/internal/fbsemantic/ImportDeclaration.go b/semantic/internal/fbsemantic/ImportDeclaration.go index 1d4bfb4373..9661e5df99 100644 --- a/semantic/internal/fbsemantic/ImportDeclaration.go +++ b/semantic/internal/fbsemantic/ImportDeclaration.go @@ -39,12 +39,12 @@ func (rcv *ImportDeclaration) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *ImportDeclaration) As(obj *Identifier) *Identifier { +func (rcv *ImportDeclaration) Alias(obj *IdentifierExpression) *IdentifierExpression { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(Identifier) + obj = new(IdentifierExpression) } obj.Init(rcv._tab.Bytes, x) return obj @@ -71,8 +71,8 @@ func ImportDeclarationStart(builder *flatbuffers.Builder) { func ImportDeclarationAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) } -func ImportDeclarationAddAs(builder *flatbuffers.Builder, as flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(as), 0) +func ImportDeclarationAddAlias(builder *flatbuffers.Builder, alias flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(alias), 0) } func ImportDeclarationAddPath(builder *flatbuffers.Builder, path flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(path), 0) diff --git a/semantic/internal/fbsemantic/NativeVariableAssignment.go b/semantic/internal/fbsemantic/NativeVariableAssignment.go index 28d3002040..8626f2eb8e 100644 --- a/semantic/internal/fbsemantic/NativeVariableAssignment.go +++ b/semantic/internal/fbsemantic/NativeVariableAssignment.go @@ -39,12 +39,12 @@ func (rcv *NativeVariableAssignment) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *NativeVariableAssignment) Identifier(obj *Identifier) *Identifier { +func (rcv *NativeVariableAssignment) Identifier(obj *IdentifierExpression) *IdentifierExpression { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(Identifier) + obj = new(IdentifierExpression) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/PackageClause.go b/semantic/internal/fbsemantic/PackageClause.go index 53a0c61144..dfd1184d21 100644 --- a/semantic/internal/fbsemantic/PackageClause.go +++ b/semantic/internal/fbsemantic/PackageClause.go @@ -39,12 +39,12 @@ func (rcv *PackageClause) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *PackageClause) Name(obj *Identifier) *Identifier { +func (rcv *PackageClause) Name(obj *IdentifierExpression) *IdentifierExpression { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(Identifier) + obj = new(IdentifierExpression) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/Property.go b/semantic/internal/fbsemantic/Property.go index 0a3533041a..da9d750cd9 100644 --- a/semantic/internal/fbsemantic/Property.go +++ b/semantic/internal/fbsemantic/Property.go @@ -39,29 +39,21 @@ func (rcv *Property) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *Property) KeyType() byte { +func (rcv *Property) Key(obj *IdentifierExpression) *IdentifierExpression { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { - return rcv._tab.GetByte(o + rcv._tab.Pos) - } - return 0 -} - -func (rcv *Property) MutateKeyType(n byte) bool { - return rcv._tab.MutateByteSlot(6, n) -} - -func (rcv *Property) Key(obj *flatbuffers.Table) bool { - o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) - if o != 0 { - rcv._tab.Union(obj, o) - return true + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(IdentifierExpression) + } + obj.Init(rcv._tab.Bytes, x) + return obj } - return false + return nil } func (rcv *Property) ValueType() byte { - o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) if o != 0 { return rcv._tab.GetByte(o + rcv._tab.Pos) } @@ -69,11 +61,11 @@ func (rcv *Property) ValueType() byte { } func (rcv *Property) MutateValueType(n byte) bool { - return rcv._tab.MutateByteSlot(10, n) + return rcv._tab.MutateByteSlot(8, n) } func (rcv *Property) Value(obj *flatbuffers.Table) bool { - o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) if o != 0 { rcv._tab.Union(obj, o) return true @@ -82,22 +74,19 @@ func (rcv *Property) Value(obj *flatbuffers.Table) bool { } func PropertyStart(builder *flatbuffers.Builder) { - builder.StartObject(5) + builder.StartObject(4) } func PropertyAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) } -func PropertyAddKeyType(builder *flatbuffers.Builder, keyType byte) { - builder.PrependByteSlot(1, keyType, 0) -} func PropertyAddKey(builder *flatbuffers.Builder, key flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(key), 0) + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(key), 0) } func PropertyAddValueType(builder *flatbuffers.Builder, valueType byte) { - builder.PrependByteSlot(3, valueType, 0) + builder.PrependByteSlot(2, valueType, 0) } func PropertyAddValue(builder *flatbuffers.Builder, value flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(value), 0) + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(value), 0) } func PropertyEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() diff --git a/semantic/internal/fbsemantic/PropertyKey.go b/semantic/internal/fbsemantic/PropertyKey.go deleted file mode 100644 index 76cc176f34..0000000000 --- a/semantic/internal/fbsemantic/PropertyKey.go +++ /dev/null @@ -1,17 +0,0 @@ -// Code generated by the FlatBuffers compiler. DO NOT EDIT. - -package fbsemantic - -type PropertyKey = byte - -const ( - PropertyKeyNONE PropertyKey = 0 - PropertyKeyIdentifier PropertyKey = 1 - PropertyKeyStringLiteral PropertyKey = 2 -) - -var EnumNamesPropertyKey = map[PropertyKey]string{ - PropertyKeyNONE: "NONE", - PropertyKeyIdentifier: "Identifier", - PropertyKeyStringLiteral: "StringLiteral", -} diff --git a/semantic/semantic.fbs b/semantic/semantic.fbs index 8d27c3c216..b9f186602e 100644 --- a/semantic/semantic.fbs +++ b/semantic/semantic.fbs @@ -36,11 +36,6 @@ union Expression { UnsignedIntegerLiteral, } -union PropertyKey { - Identifier, - StringLiteral, -} - table Package { loc:SourceLocation; package:string; @@ -56,12 +51,12 @@ table File { table PackageClause { loc:SourceLocation; - name:Identifier; + name:IdentifierExpression; } table ImportDeclaration { loc:SourceLocation; - as:Identifier; + alias:IdentifierExpression; path:StringLiteral; } @@ -97,7 +92,7 @@ table OptionStatement { table BuiltinStatement { loc:SourceLocation; - id:Identifier; + id:IdentifierExpression; } table TestStatement { @@ -117,7 +112,7 @@ table ReturnStatement { table NativeVariableAssignment { loc:SourceLocation; - identifier:Identifier; + identifier:IdentifierExpression; init_:Expression; } @@ -154,25 +149,15 @@ table ArrayExpression { table FunctionExpression { loc:SourceLocation; - defaults:ObjectExpression; - Block:FunctionBlock; -} - -table FunctionBlock { - loc:SourceLocation; - parameters:FunctionParameters; + params:[FunctionParameter]; body:Block; } -table FunctionParameters { - loc:SourceLocation; - list:[FunctionParameter]; - pipe:Identifier; -} - table FunctionParameter { loc:SourceLocation; - key:Identifier; + is_pipe: bool; + key:IdentifierExpression; + default:Expression; } enum Operator : byte { @@ -258,7 +243,7 @@ table UnaryExpression { table Property { loc:SourceLocation; - key:PropertyKey; + key:IdentifierExpression; value:Expression; } @@ -267,11 +252,6 @@ table IdentifierExpression { name:string; } -table Identifier { - loc:SourceLocation; - name:string; -} - table BooleanLiteral { loc:SourceLocation; value:bool; @@ -313,12 +293,12 @@ table Duration { table IntegerLiteral { loc:SourceLocation; - value:long; + value:int64; } table FloatLiteral { loc:SourceLocation; - value:double; + value:float64; } table RegexpLiteral { @@ -333,7 +313,7 @@ table StringLiteral { table UnsignedIntegerLiteral { loc:SourceLocation; - value:ulong; + value:uint64; } root_type Package; From a93e72de4d9586cc77346cb063c47a0267fc0c3d Mon Sep 17 00:00:00 2001 From: "Christopher M. Wolff" Date: Mon, 25 Nov 2019 11:03:25 -0800 Subject: [PATCH 05/19] fix(semantic): update semantic graph FlatBuffers schema for identifiers (#2199) --- .../flatbuffers/semantic_generated.rs | 148 ++++++++++++++---- .../internal/fbsemantic/BuiltinStatement.go | 4 +- .../internal/fbsemantic/FunctionParameter.go | 4 +- semantic/internal/fbsemantic/Identifier.go | 61 ++++++++ .../internal/fbsemantic/ImportDeclaration.go | 4 +- .../fbsemantic/NativeVariableAssignment.go | 4 +- semantic/internal/fbsemantic/PackageClause.go | 4 +- semantic/internal/fbsemantic/Property.go | 4 +- semantic/semantic.fbs | 17 +- 9 files changed, 202 insertions(+), 48 deletions(-) create mode 100644 semantic/internal/fbsemantic/Identifier.go diff --git a/libflux/src/semantic/flatbuffers/semantic_generated.rs b/libflux/src/semantic/flatbuffers/semantic_generated.rs index 32761f2504..a9b5b5102f 100644 --- a/libflux/src/semantic/flatbuffers/semantic_generated.rs +++ b/libflux/src/semantic/flatbuffers/semantic_generated.rs @@ -848,14 +848,14 @@ impl<'a> PackageClause<'a> { self._tab.get::>>(PackageClause::VT_LOC, None) } #[inline] - pub fn name(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_NAME, None) + pub fn name(&self) -> Option> { + self._tab.get::>>(PackageClause::VT_NAME, None) } } pub struct PackageClauseArgs<'a> { pub loc: Option>>, - pub name: Option>>, + pub name: Option>>, } impl<'a> Default for PackageClauseArgs<'a> { #[inline] @@ -876,8 +876,8 @@ impl<'a: 'b, 'b> PackageClauseBuilder<'a, 'b> { self.fbb_.push_slot_always::>(PackageClause::VT_LOC, loc); } #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PackageClause::VT_NAME, name); + pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(PackageClause::VT_NAME, name); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageClauseBuilder<'a, 'b> { @@ -938,8 +938,8 @@ impl<'a> ImportDeclaration<'a> { self._tab.get::>>(ImportDeclaration::VT_LOC, None) } #[inline] - pub fn alias(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_ALIAS, None) + pub fn alias(&self) -> Option> { + self._tab.get::>>(ImportDeclaration::VT_ALIAS, None) } #[inline] pub fn path(&self) -> Option> { @@ -949,7 +949,7 @@ impl<'a> ImportDeclaration<'a> { pub struct ImportDeclarationArgs<'a> { pub loc: Option>>, - pub alias: Option>>, + pub alias: Option>>, pub path: Option>>, } impl<'a> Default for ImportDeclarationArgs<'a> { @@ -972,8 +972,8 @@ impl<'a: 'b, 'b> ImportDeclarationBuilder<'a, 'b> { self.fbb_.push_slot_always::>(ImportDeclaration::VT_LOC, loc); } #[inline] - pub fn add_alias(&mut self, alias: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_ALIAS, alias); + pub fn add_alias(&mut self, alias: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(ImportDeclaration::VT_ALIAS, alias); } #[inline] pub fn add_path(&mut self, path: flatbuffers::WIPOffset>) { @@ -1494,14 +1494,14 @@ impl<'a> BuiltinStatement<'a> { self._tab.get::>>(BuiltinStatement::VT_LOC, None) } #[inline] - pub fn id(&self) -> Option> { - self._tab.get::>>(BuiltinStatement::VT_ID, None) + pub fn id(&self) -> Option> { + self._tab.get::>>(BuiltinStatement::VT_ID, None) } } pub struct BuiltinStatementArgs<'a> { pub loc: Option>>, - pub id: Option>>, + pub id: Option>>, } impl<'a> Default for BuiltinStatementArgs<'a> { #[inline] @@ -1522,8 +1522,8 @@ impl<'a: 'b, 'b> BuiltinStatementBuilder<'a, 'b> { self.fbb_.push_slot_always::>(BuiltinStatement::VT_LOC, loc); } #[inline] - pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BuiltinStatement::VT_ID, id); + pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(BuiltinStatement::VT_ID, id); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BuiltinStatementBuilder<'a, 'b> { @@ -2274,8 +2274,8 @@ impl<'a> NativeVariableAssignment<'a> { self._tab.get::>>(NativeVariableAssignment::VT_LOC, None) } #[inline] - pub fn identifier(&self) -> Option> { - self._tab.get::>>(NativeVariableAssignment::VT_IDENTIFIER, None) + pub fn identifier(&self) -> Option> { + self._tab.get::>>(NativeVariableAssignment::VT_IDENTIFIER, None) } #[inline] pub fn init__type(&self) -> Expression { @@ -2489,7 +2489,7 @@ impl<'a> NativeVariableAssignment<'a> { pub struct NativeVariableAssignmentArgs<'a> { pub loc: Option>>, - pub identifier: Option>>, + pub identifier: Option>>, pub init__type: Expression, pub init_: Option>, } @@ -2514,8 +2514,8 @@ impl<'a: 'b, 'b> NativeVariableAssignmentBuilder<'a, 'b> { self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_LOC, loc); } #[inline] - pub fn add_identifier(&mut self, identifier: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_IDENTIFIER, identifier); + pub fn add_identifier(&mut self, identifier: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_IDENTIFIER, identifier); } #[inline] pub fn add_init__type(&mut self, init__type: Expression) { @@ -3780,8 +3780,8 @@ impl<'a> FunctionParameter<'a> { self._tab.get::(FunctionParameter::VT_IS_PIPE, Some(false)).unwrap() } #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(FunctionParameter::VT_KEY, None) + pub fn key(&self) -> Option> { + self._tab.get::>>(FunctionParameter::VT_KEY, None) } #[inline] pub fn default_type(&self) -> Expression { @@ -3996,7 +3996,7 @@ impl<'a> FunctionParameter<'a> { pub struct FunctionParameterArgs<'a> { pub loc: Option>>, pub is_pipe: bool, - pub key: Option>>, + pub key: Option>>, pub default_type: Expression, pub default: Option>, } @@ -4026,8 +4026,8 @@ impl<'a: 'b, 'b> FunctionParameterBuilder<'a, 'b> { self.fbb_.push_slot::(FunctionParameter::VT_IS_PIPE, is_pipe, false); } #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionParameter::VT_KEY, key); + pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(FunctionParameter::VT_KEY, key); } #[inline] pub fn add_default_type(&mut self, default_type: Expression) { @@ -7702,8 +7702,8 @@ impl<'a> Property<'a> { self._tab.get::>>(Property::VT_LOC, None) } #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(Property::VT_KEY, None) + pub fn key(&self) -> Option> { + self._tab.get::>>(Property::VT_KEY, None) } #[inline] pub fn value_type(&self) -> Expression { @@ -7917,7 +7917,7 @@ impl<'a> Property<'a> { pub struct PropertyArgs<'a> { pub loc: Option>>, - pub key: Option>>, + pub key: Option>>, pub value_type: Expression, pub value: Option>, } @@ -7942,8 +7942,8 @@ impl<'a: 'b, 'b> PropertyBuilder<'a, 'b> { self.fbb_.push_slot_always::>(Property::VT_LOC, loc); } #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Property::VT_KEY, key); + pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(Property::VT_KEY, key); } #[inline] pub fn add_value_type(&mut self, value_type: Expression) { @@ -8056,6 +8056,94 @@ impl<'a: 'b, 'b> IdentifierExpressionBuilder<'a, 'b> { } } +pub enum IdentifierOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Identifier<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Identifier<'a> { + type Inner = Identifier<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Identifier<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Identifier { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IdentifierArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = IdentifierBuilder::new(_fbb); + if let Some(x) = args.name { builder.add_name(x); } + if let Some(x) = args.loc { builder.add_loc(x); } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab.get::>>(Identifier::VT_LOC, None) + } + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab.get::>(Identifier::VT_NAME, None) + } +} + +pub struct IdentifierArgs<'a> { + pub loc: Option>>, + pub name: Option>, +} +impl<'a> Default for IdentifierArgs<'a> { + #[inline] + fn default() -> Self { + IdentifierArgs { + loc: None, + name: None, + } + } +} +pub struct IdentifierBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> IdentifierBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(Identifier::VT_LOC, loc); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>(Identifier::VT_NAME, name); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierBuilder<'a, 'b> { + let start = _fbb.start_table(); + IdentifierBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + pub enum BooleanLiteralOffset {} #[derive(Copy, Clone, Debug, PartialEq)] diff --git a/semantic/internal/fbsemantic/BuiltinStatement.go b/semantic/internal/fbsemantic/BuiltinStatement.go index 078f487947..8c0dcb0a24 100644 --- a/semantic/internal/fbsemantic/BuiltinStatement.go +++ b/semantic/internal/fbsemantic/BuiltinStatement.go @@ -39,12 +39,12 @@ func (rcv *BuiltinStatement) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *BuiltinStatement) Id(obj *IdentifierExpression) *IdentifierExpression { +func (rcv *BuiltinStatement) Id(obj *Identifier) *Identifier { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(IdentifierExpression) + obj = new(Identifier) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/FunctionParameter.go b/semantic/internal/fbsemantic/FunctionParameter.go index a2a02d0622..8886601377 100644 --- a/semantic/internal/fbsemantic/FunctionParameter.go +++ b/semantic/internal/fbsemantic/FunctionParameter.go @@ -51,12 +51,12 @@ func (rcv *FunctionParameter) MutateIsPipe(n bool) bool { return rcv._tab.MutateBoolSlot(6, n) } -func (rcv *FunctionParameter) Key(obj *IdentifierExpression) *IdentifierExpression { +func (rcv *FunctionParameter) Key(obj *Identifier) *Identifier { o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(IdentifierExpression) + obj = new(Identifier) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/Identifier.go b/semantic/internal/fbsemantic/Identifier.go new file mode 100644 index 0000000000..20f791dfd9 --- /dev/null +++ b/semantic/internal/fbsemantic/Identifier.go @@ -0,0 +1,61 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Identifier struct { + _tab flatbuffers.Table +} + +func GetRootAsIdentifier(buf []byte, offset flatbuffers.UOffsetT) *Identifier { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Identifier{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Identifier) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Identifier) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Identifier) Loc(obj *SourceLocation) *SourceLocation { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(SourceLocation) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func (rcv *Identifier) Name() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func IdentifierStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func IdentifierAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) +} +func IdentifierAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(name), 0) +} +func IdentifierEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/ImportDeclaration.go b/semantic/internal/fbsemantic/ImportDeclaration.go index 9661e5df99..3ff4351499 100644 --- a/semantic/internal/fbsemantic/ImportDeclaration.go +++ b/semantic/internal/fbsemantic/ImportDeclaration.go @@ -39,12 +39,12 @@ func (rcv *ImportDeclaration) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *ImportDeclaration) Alias(obj *IdentifierExpression) *IdentifierExpression { +func (rcv *ImportDeclaration) Alias(obj *Identifier) *Identifier { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(IdentifierExpression) + obj = new(Identifier) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/NativeVariableAssignment.go b/semantic/internal/fbsemantic/NativeVariableAssignment.go index 8626f2eb8e..28d3002040 100644 --- a/semantic/internal/fbsemantic/NativeVariableAssignment.go +++ b/semantic/internal/fbsemantic/NativeVariableAssignment.go @@ -39,12 +39,12 @@ func (rcv *NativeVariableAssignment) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *NativeVariableAssignment) Identifier(obj *IdentifierExpression) *IdentifierExpression { +func (rcv *NativeVariableAssignment) Identifier(obj *Identifier) *Identifier { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(IdentifierExpression) + obj = new(Identifier) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/PackageClause.go b/semantic/internal/fbsemantic/PackageClause.go index dfd1184d21..53a0c61144 100644 --- a/semantic/internal/fbsemantic/PackageClause.go +++ b/semantic/internal/fbsemantic/PackageClause.go @@ -39,12 +39,12 @@ func (rcv *PackageClause) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *PackageClause) Name(obj *IdentifierExpression) *IdentifierExpression { +func (rcv *PackageClause) Name(obj *Identifier) *Identifier { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(IdentifierExpression) + obj = new(Identifier) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/internal/fbsemantic/Property.go b/semantic/internal/fbsemantic/Property.go index da9d750cd9..0b2ea40620 100644 --- a/semantic/internal/fbsemantic/Property.go +++ b/semantic/internal/fbsemantic/Property.go @@ -39,12 +39,12 @@ func (rcv *Property) Loc(obj *SourceLocation) *SourceLocation { return nil } -func (rcv *Property) Key(obj *IdentifierExpression) *IdentifierExpression { +func (rcv *Property) Key(obj *Identifier) *Identifier { o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) if o != 0 { x := rcv._tab.Indirect(o + rcv._tab.Pos) if obj == nil { - obj = new(IdentifierExpression) + obj = new(Identifier) } obj.Init(rcv._tab.Bytes, x) return obj diff --git a/semantic/semantic.fbs b/semantic/semantic.fbs index b9f186602e..0f7fa5ab3f 100644 --- a/semantic/semantic.fbs +++ b/semantic/semantic.fbs @@ -51,12 +51,12 @@ table File { table PackageClause { loc:SourceLocation; - name:IdentifierExpression; + name:Identifier; } table ImportDeclaration { loc:SourceLocation; - alias:IdentifierExpression; + alias:Identifier; path:StringLiteral; } @@ -92,7 +92,7 @@ table OptionStatement { table BuiltinStatement { loc:SourceLocation; - id:IdentifierExpression; + id:Identifier; } table TestStatement { @@ -112,7 +112,7 @@ table ReturnStatement { table NativeVariableAssignment { loc:SourceLocation; - identifier:IdentifierExpression; + identifier:Identifier; init_:Expression; } @@ -156,7 +156,7 @@ table FunctionExpression { table FunctionParameter { loc:SourceLocation; is_pipe: bool; - key:IdentifierExpression; + key:Identifier; default:Expression; } @@ -243,7 +243,7 @@ table UnaryExpression { table Property { loc:SourceLocation; - key:IdentifierExpression; + key:Identifier; value:Expression; } @@ -252,6 +252,11 @@ table IdentifierExpression { name:string; } +table Identifier { + loc:SourceLocation; + name:string; +} + table BooleanLiteral { loc:SourceLocation; value:bool; From c0b1d337ee494cde6aa63949092c938ad8f7a6c0 Mon Sep 17 00:00:00 2001 From: jlapacik Date: Mon, 25 Nov 2019 11:18:11 -0800 Subject: [PATCH 06/19] feat(libflux): MonoType and PolyType flatbuffer schemas --- .../flatbuffers/semantic_generated.rs | 3175 ++++++++++++++++- libflux/src/semantic/mod.rs | 3 + semantic/internal/fbsemantic/Argument.go | 102 + semantic/internal/fbsemantic/Arr.go | 61 + .../internal/fbsemantic/ArrayExpression.go | 29 +- semantic/internal/fbsemantic/Basic.go | 49 + .../internal/fbsemantic/BinaryExpression.go | 29 +- .../internal/fbsemantic/BooleanLiteral.go | 29 +- .../internal/fbsemantic/CallExpression.go | 29 +- .../fbsemantic/ConditionalExpression.go | 29 +- semantic/internal/fbsemantic/Constraint.go | 65 + .../internal/fbsemantic/DateTimeLiteral.go | 29 +- .../internal/fbsemantic/DurationLiteral.go | 29 +- semantic/internal/fbsemantic/FloatLiteral.go | 29 +- semantic/internal/fbsemantic/Fun.go | 87 + .../internal/fbsemantic/FunctionExpression.go | 29 +- .../fbsemantic/IdentifierExpression.go | 29 +- .../internal/fbsemantic/IndexExpression.go | 29 +- .../internal/fbsemantic/IntegerLiteral.go | 29 +- semantic/internal/fbsemantic/Kind.go | 23 + .../internal/fbsemantic/LogicalExpression.go | 29 +- .../internal/fbsemantic/MemberExpression.go | 29 +- semantic/internal/fbsemantic/MonoType.go | 23 + .../fbsemantic/NativeVariableAssignment.go | 29 +- .../internal/fbsemantic/ObjectExpression.go | 29 +- semantic/internal/fbsemantic/PolyType.go | 113 + semantic/internal/fbsemantic/Prop.go | 72 + semantic/internal/fbsemantic/RegexpLiteral.go | 29 +- semantic/internal/fbsemantic/Row.go | 76 + .../internal/fbsemantic/StringExpression.go | 29 +- semantic/internal/fbsemantic/StringLiteral.go | 29 +- semantic/internal/fbsemantic/Type.go | 27 + .../internal/fbsemantic/UnaryExpression.go | 29 +- .../fbsemantic/UnsignedIntegerLiteral.go | 29 +- semantic/internal/fbsemantic/Var.go | 49 + semantic/semantic.fbs | 372 +- 36 files changed, 4601 insertions(+), 305 deletions(-) create mode 100644 semantic/internal/fbsemantic/Argument.go create mode 100644 semantic/internal/fbsemantic/Arr.go create mode 100644 semantic/internal/fbsemantic/Basic.go create mode 100644 semantic/internal/fbsemantic/Constraint.go create mode 100644 semantic/internal/fbsemantic/Fun.go create mode 100644 semantic/internal/fbsemantic/Kind.go create mode 100644 semantic/internal/fbsemantic/MonoType.go create mode 100644 semantic/internal/fbsemantic/PolyType.go create mode 100644 semantic/internal/fbsemantic/Prop.go create mode 100644 semantic/internal/fbsemantic/Row.go create mode 100644 semantic/internal/fbsemantic/Type.go create mode 100644 semantic/internal/fbsemantic/Var.go diff --git a/libflux/src/semantic/flatbuffers/semantic_generated.rs b/libflux/src/semantic/flatbuffers/semantic_generated.rs index a9b5b5102f..804f62799d 100644 --- a/libflux/src/semantic/flatbuffers/semantic_generated.rs +++ b/libflux/src/semantic/flatbuffers/semantic_generated.rs @@ -17,6 +17,229 @@ pub mod fbsemantic { extern crate flatbuffers; use self::flatbuffers::EndianScalar; +#[allow(non_camel_case_types)] +#[repr(u8)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] +pub enum MonoType { + NONE = 0, + Basic = 1, + Var = 2, + Arr = 3, + Row = 4, + Fun = 5, + +} + +const ENUM_MIN_MONO_TYPE: u8 = 0; +const ENUM_MAX_MONO_TYPE: u8 = 5; + +impl<'a> flatbuffers::Follow<'a> for MonoType { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } +} + +impl flatbuffers::EndianScalar for MonoType { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const MonoType; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const MonoType; + unsafe { *p } + } +} + +impl flatbuffers::Push for MonoType { + type Output = MonoType; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } +} + +#[allow(non_camel_case_types)] +const ENUM_VALUES_MONO_TYPE:[MonoType; 6] = [ + MonoType::NONE, + MonoType::Basic, + MonoType::Var, + MonoType::Arr, + MonoType::Row, + MonoType::Fun +]; + +#[allow(non_camel_case_types)] +const ENUM_NAMES_MONO_TYPE:[&'static str; 6] = [ + "NONE", + "Basic", + "Var", + "Arr", + "Row", + "Fun" +]; + +pub fn enum_name_mono_type(e: MonoType) -> &'static str { + let index = e as u8; + ENUM_NAMES_MONO_TYPE[index as usize] +} + +pub struct MonoTypeUnionTableOffset {} +#[allow(non_camel_case_types)] +#[repr(u8)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] +pub enum Type { + Bool = 0, + Int = 1, + Uint = 2, + Float = 3, + String = 4, + Duration = 5, + Time = 6, + Regexp = 7, + +} + +const ENUM_MIN_TYPE: u8 = 0; +const ENUM_MAX_TYPE: u8 = 7; + +impl<'a> flatbuffers::Follow<'a> for Type { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } +} + +impl flatbuffers::EndianScalar for Type { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Type; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Type; + unsafe { *p } + } +} + +impl flatbuffers::Push for Type { + type Output = Type; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } +} + +#[allow(non_camel_case_types)] +const ENUM_VALUES_TYPE:[Type; 8] = [ + Type::Bool, + Type::Int, + Type::Uint, + Type::Float, + Type::String, + Type::Duration, + Type::Time, + Type::Regexp +]; + +#[allow(non_camel_case_types)] +const ENUM_NAMES_TYPE:[&'static str; 8] = [ + "Bool", + "Int", + "Uint", + "Float", + "String", + "Duration", + "Time", + "Regexp" +]; + +pub fn enum_name_type(e: Type) -> &'static str { + let index = e as u8; + ENUM_NAMES_TYPE[index as usize] +} + +#[allow(non_camel_case_types)] +#[repr(u8)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] +pub enum Kind { + Addable = 0, + Subtractable = 1, + Divisible = 2, + Comparable = 3, + Equatable = 4, + Nullable = 5, + +} + +const ENUM_MIN_KIND: u8 = 0; +const ENUM_MAX_KIND: u8 = 5; + +impl<'a> flatbuffers::Follow<'a> for Kind { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } +} + +impl flatbuffers::EndianScalar for Kind { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Kind; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Kind; + unsafe { *p } + } +} + +impl flatbuffers::Push for Kind { + type Output = Kind; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } +} + +#[allow(non_camel_case_types)] +const ENUM_VALUES_KIND:[Kind; 6] = [ + Kind::Addable, + Kind::Subtractable, + Kind::Divisible, + Kind::Comparable, + Kind::Equatable, + Kind::Nullable +]; + +#[allow(non_camel_case_types)] +const ENUM_NAMES_KIND:[&'static str; 6] = [ + "Addable", + "Subtractable", + "Divisible", + "Comparable", + "Equatable", + "Nullable" +]; + +pub fn enum_name_kind(e: Kind) -> &'static str { + let index = e as u8; + ENUM_NAMES_KIND[index as usize] +} + #[allow(non_camel_case_types)] #[repr(u8)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] @@ -594,15 +817,15 @@ impl Position { } } -pub enum PackageOffset {} +pub enum VarOffset {} #[derive(Copy, Clone, Debug, PartialEq)] -pub struct Package<'a> { +pub struct Var<'a> { pub _tab: flatbuffers::Table<'a>, } -impl<'a> flatbuffers::Follow<'a> for Package<'a> { - type Inner = Package<'a>; +impl<'a> flatbuffers::Follow<'a> for Var<'a> { + type Inner = Var<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { @@ -611,98 +834,74 @@ impl<'a> flatbuffers::Follow<'a> for Package<'a> { } } -impl<'a> Package<'a> { +impl<'a> Var<'a> { #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Package { + Var { _tab: table, } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PackageArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PackageBuilder::new(_fbb); - if let Some(x) = args.files { builder.add_files(x); } - if let Some(x) = args.package { builder.add_package(x); } - if let Some(x) = args.loc { builder.add_loc(x); } + args: &'args VarArgs) -> flatbuffers::WIPOffset> { + let mut builder = VarBuilder::new(_fbb); + builder.add_i(args.i); builder.finish() } - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; - pub const VT_FILES: flatbuffers::VOffsetT = 8; + pub const VT_I: flatbuffers::VOffsetT = 4; #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(Package::VT_LOC, None) - } - #[inline] - pub fn package(&self) -> Option<&'a str> { - self._tab.get::>(Package::VT_PACKAGE, None) - } - #[inline] - pub fn files(&self) -> Option>>> { - self._tab.get::>>>>(Package::VT_FILES, None) + pub fn i(&self) -> u64 { + self._tab.get::(Var::VT_I, Some(0)).unwrap() } } -pub struct PackageArgs<'a> { - pub loc: Option>>, - pub package: Option>, - pub files: Option>>>>, +pub struct VarArgs { + pub i: u64, } -impl<'a> Default for PackageArgs<'a> { +impl<'a> Default for VarArgs { #[inline] fn default() -> Self { - PackageArgs { - loc: None, - package: None, - files: None, + VarArgs { + i: 0, } } } -pub struct PackageBuilder<'a: 'b, 'b> { +pub struct VarBuilder<'a: 'b, 'b> { fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, start_: flatbuffers::WIPOffset, } -impl<'a: 'b, 'b> PackageBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Package::VT_LOC, loc); - } - #[inline] - pub fn add_package(&mut self, package: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Package::VT_PACKAGE, package); - } +impl<'a: 'b, 'b> VarBuilder<'a, 'b> { #[inline] - pub fn add_files(&mut self, files: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Package::VT_FILES, files); + pub fn add_i(&mut self, i: u64) { + self.fbb_.push_slot::(Var::VT_I, i, 0); } #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageBuilder<'a, 'b> { + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> VarBuilder<'a, 'b> { let start = _fbb.start_table(); - PackageBuilder { + VarBuilder { fbb_: _fbb, start_: start, } } #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { + pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); flatbuffers::WIPOffset::new(o.value()) } } -pub enum FileOffset {} +pub enum BasicOffset {} #[derive(Copy, Clone, Debug, PartialEq)] -pub struct File<'a> { +pub struct Basic<'a> { pub _tab: flatbuffers::Table<'a>, } -impl<'a> flatbuffers::Follow<'a> for File<'a> { - type Inner = File<'a>; +impl<'a> flatbuffers::Follow<'a> for Basic<'a> { + type Inner = Basic<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { @@ -711,110 +910,74 @@ impl<'a> flatbuffers::Follow<'a> for File<'a> { } } -impl<'a> File<'a> { +impl<'a> Basic<'a> { #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - File { + Basic { _tab: table, } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FileArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FileBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.imports { builder.add_imports(x); } - if let Some(x) = args.package { builder.add_package(x); } - if let Some(x) = args.loc { builder.add_loc(x); } + args: &'args BasicArgs) -> flatbuffers::WIPOffset> { + let mut builder = BasicBuilder::new(_fbb); + builder.add_t(args.t); builder.finish() } - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; - pub const VT_IMPORTS: flatbuffers::VOffsetT = 8; - pub const VT_BODY: flatbuffers::VOffsetT = 10; + pub const VT_T: flatbuffers::VOffsetT = 4; #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(File::VT_LOC, None) - } - #[inline] - pub fn package(&self) -> Option> { - self._tab.get::>>(File::VT_PACKAGE, None) - } - #[inline] - pub fn imports(&self) -> Option>>> { - self._tab.get::>>>>(File::VT_IMPORTS, None) - } - #[inline] - pub fn body(&self) -> Option>>> { - self._tab.get::>>>>(File::VT_BODY, None) + pub fn t(&self) -> Type { + self._tab.get::(Basic::VT_T, Some(Type::Bool)).unwrap() } } -pub struct FileArgs<'a> { - pub loc: Option>>, - pub package: Option>>, - pub imports: Option>>>>, - pub body: Option>>>>, +pub struct BasicArgs { + pub t: Type, } -impl<'a> Default for FileArgs<'a> { +impl<'a> Default for BasicArgs { #[inline] fn default() -> Self { - FileArgs { - loc: None, - package: None, - imports: None, - body: None, + BasicArgs { + t: Type::Bool, } } } -pub struct FileBuilder<'a: 'b, 'b> { +pub struct BasicBuilder<'a: 'b, 'b> { fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, start_: flatbuffers::WIPOffset, } -impl<'a: 'b, 'b> FileBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(File::VT_LOC, loc); - } - #[inline] - pub fn add_package(&mut self, package: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(File::VT_PACKAGE, package); - } - #[inline] - pub fn add_imports(&mut self, imports: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(File::VT_IMPORTS, imports); - } +impl<'a: 'b, 'b> BasicBuilder<'a, 'b> { #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(File::VT_BODY, body); + pub fn add_t(&mut self, t: Type) { + self.fbb_.push_slot::(Basic::VT_T, t, Type::Bool); } #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FileBuilder<'a, 'b> { + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BasicBuilder<'a, 'b> { let start = _fbb.start_table(); - FileBuilder { + BasicBuilder { fbb_: _fbb, start_: start, } } #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { + pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); flatbuffers::WIPOffset::new(o.value()) } } -pub enum PackageClauseOffset {} +pub enum ArrOffset {} #[derive(Copy, Clone, Debug, PartialEq)] -pub struct PackageClause<'a> { +pub struct Arr<'a> { pub _tab: flatbuffers::Table<'a>, } -impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { - type Inner = PackageClause<'a>; +impl<'a> flatbuffers::Follow<'a> for Arr<'a> { + type Inner = Arr<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { @@ -823,39 +986,1201 @@ impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { } } -impl<'a> PackageClause<'a> { +impl<'a> Arr<'a> { #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - PackageClause { + Arr { _tab: table, } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PackageClauseArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PackageClauseBuilder::new(_fbb); - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.loc { builder.add_loc(x); } + args: &'args ArrArgs) -> flatbuffers::WIPOffset> { + let mut builder = ArrBuilder::new(_fbb); + if let Some(x) = args.t { builder.add_t(x); } + builder.add_t_type(args.t_type); builder.finish() } - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; + pub const VT_T_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_T: flatbuffers::VOffsetT = 6; #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_LOC, None) + pub fn t_type(&self) -> MonoType { + self._tab.get::(Arr::VT_T_TYPE, Some(MonoType::NONE)).unwrap() } #[inline] - pub fn name(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_NAME, None) + pub fn t(&self) -> Option> { + self._tab.get::>>(Arr::VT_T, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn t_as_basic(&self) -> Option> { + if self.t_type() == MonoType::Basic { + self.t().map(|u| Basic::init_from_table(u)) + } else { + None + } } -} -pub struct PackageClauseArgs<'a> { - pub loc: Option>>, - pub name: Option>>, + #[inline] + #[allow(non_snake_case)] + pub fn t_as_var(&self) -> Option> { + if self.t_type() == MonoType::Var { + self.t().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_arr(&self) -> Option> { + if self.t_type() == MonoType::Arr { + self.t().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_row(&self) -> Option> { + if self.t_type() == MonoType::Row { + self.t().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_fun(&self) -> Option> { + if self.t_type() == MonoType::Fun { + self.t().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + +} + +pub struct ArrArgs { + pub t_type: MonoType, + pub t: Option>, +} +impl<'a> Default for ArrArgs { + #[inline] + fn default() -> Self { + ArrArgs { + t_type: MonoType::NONE, + t: None, + } + } +} +pub struct ArrBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> ArrBuilder<'a, 'b> { + #[inline] + pub fn add_t_type(&mut self, t_type: MonoType) { + self.fbb_.push_slot::(Arr::VT_T_TYPE, t_type, MonoType::NONE); + } + #[inline] + pub fn add_t(&mut self, t: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(Arr::VT_T, t); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArrBuilder<'a, 'b> { + let start = _fbb.start_table(); + ArrBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum RowOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Row<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Row<'a> { + type Inner = Row<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Row<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Row { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args RowArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = RowBuilder::new(_fbb); + if let Some(x) = args.extends { builder.add_extends(x); } + if let Some(x) = args.props { builder.add_props(x); } + builder.finish() + } + + pub const VT_PROPS: flatbuffers::VOffsetT = 4; + pub const VT_EXTENDS: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn props(&self) -> Option>>> { + self._tab.get::>>>>(Row::VT_PROPS, None) + } + #[inline] + pub fn extends(&self) -> Option> { + self._tab.get::>>(Row::VT_EXTENDS, None) + } +} + +pub struct RowArgs<'a> { + pub props: Option>>>>, + pub extends: Option>>, +} +impl<'a> Default for RowArgs<'a> { + #[inline] + fn default() -> Self { + RowArgs { + props: None, + extends: None, + } + } +} +pub struct RowBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> RowBuilder<'a, 'b> { + #[inline] + pub fn add_props(&mut self, props: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(Row::VT_PROPS, props); + } + #[inline] + pub fn add_extends(&mut self, extends: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(Row::VT_EXTENDS, extends); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RowBuilder<'a, 'b> { + let start = _fbb.start_table(); + RowBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum FunOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Fun<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Fun<'a> { + type Inner = Fun<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Fun<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Fun { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FunArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = FunBuilder::new(_fbb); + if let Some(x) = args.retn { builder.add_retn(x); } + if let Some(x) = args.args { builder.add_args(x); } + builder.add_retn_type(args.retn_type); + builder.finish() + } + + pub const VT_ARGS: flatbuffers::VOffsetT = 4; + pub const VT_RETN_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_RETN: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn args(&self) -> Option>>> { + self._tab.get::>>>>(Fun::VT_ARGS, None) + } + #[inline] + pub fn retn_type(&self) -> MonoType { + self._tab.get::(Fun::VT_RETN_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn retn(&self) -> Option> { + self._tab.get::>>(Fun::VT_RETN, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_basic(&self) -> Option> { + if self.retn_type() == MonoType::Basic { + self.retn().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_var(&self) -> Option> { + if self.retn_type() == MonoType::Var { + self.retn().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_arr(&self) -> Option> { + if self.retn_type() == MonoType::Arr { + self.retn().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_row(&self) -> Option> { + if self.retn_type() == MonoType::Row { + self.retn().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_fun(&self) -> Option> { + if self.retn_type() == MonoType::Fun { + self.retn().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + +} + +pub struct FunArgs<'a> { + pub args: Option>>>>, + pub retn_type: MonoType, + pub retn: Option>, +} +impl<'a> Default for FunArgs<'a> { + #[inline] + fn default() -> Self { + FunArgs { + args: None, + retn_type: MonoType::NONE, + retn: None, + } + } +} +pub struct FunBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> FunBuilder<'a, 'b> { + #[inline] + pub fn add_args(&mut self, args: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(Fun::VT_ARGS, args); + } + #[inline] + pub fn add_retn_type(&mut self, retn_type: MonoType) { + self.fbb_.push_slot::(Fun::VT_RETN_TYPE, retn_type, MonoType::NONE); + } + #[inline] + pub fn add_retn(&mut self, retn: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(Fun::VT_RETN, retn); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunBuilder<'a, 'b> { + let start = _fbb.start_table(); + FunBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum ArgumentOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Argument<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Argument<'a> { + type Inner = Argument<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Argument<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Argument { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ArgumentArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = ArgumentBuilder::new(_fbb); + if let Some(x) = args.t { builder.add_t(x); } + if let Some(x) = args.name { builder.add_name(x); } + builder.add_optional(args.optional); + builder.add_pipe(args.pipe); + builder.add_t_type(args.t_type); + builder.finish() + } + + pub const VT_NAME: flatbuffers::VOffsetT = 4; + pub const VT_T_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_T: flatbuffers::VOffsetT = 8; + pub const VT_PIPE: flatbuffers::VOffsetT = 10; + pub const VT_OPTIONAL: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab.get::>(Argument::VT_NAME, None) + } + #[inline] + pub fn t_type(&self) -> MonoType { + self._tab.get::(Argument::VT_T_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn t(&self) -> Option> { + self._tab.get::>>(Argument::VT_T, None) + } + #[inline] + pub fn pipe(&self) -> bool { + self._tab.get::(Argument::VT_PIPE, Some(false)).unwrap() + } + #[inline] + pub fn optional(&self) -> bool { + self._tab.get::(Argument::VT_OPTIONAL, Some(false)).unwrap() + } + #[inline] + #[allow(non_snake_case)] + pub fn t_as_basic(&self) -> Option> { + if self.t_type() == MonoType::Basic { + self.t().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_var(&self) -> Option> { + if self.t_type() == MonoType::Var { + self.t().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_arr(&self) -> Option> { + if self.t_type() == MonoType::Arr { + self.t().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_row(&self) -> Option> { + if self.t_type() == MonoType::Row { + self.t().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_fun(&self) -> Option> { + if self.t_type() == MonoType::Fun { + self.t().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + +} + +pub struct ArgumentArgs<'a> { + pub name: Option>, + pub t_type: MonoType, + pub t: Option>, + pub pipe: bool, + pub optional: bool, +} +impl<'a> Default for ArgumentArgs<'a> { + #[inline] + fn default() -> Self { + ArgumentArgs { + name: None, + t_type: MonoType::NONE, + t: None, + pipe: false, + optional: false, + } + } +} +pub struct ArgumentBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> ArgumentBuilder<'a, 'b> { + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>(Argument::VT_NAME, name); + } + #[inline] + pub fn add_t_type(&mut self, t_type: MonoType) { + self.fbb_.push_slot::(Argument::VT_T_TYPE, t_type, MonoType::NONE); + } + #[inline] + pub fn add_t(&mut self, t: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(Argument::VT_T, t); + } + #[inline] + pub fn add_pipe(&mut self, pipe: bool) { + self.fbb_.push_slot::(Argument::VT_PIPE, pipe, false); + } + #[inline] + pub fn add_optional(&mut self, optional: bool) { + self.fbb_.push_slot::(Argument::VT_OPTIONAL, optional, false); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArgumentBuilder<'a, 'b> { + let start = _fbb.start_table(); + ArgumentBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum PropOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Prop<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Prop<'a> { + type Inner = Prop<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Prop<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Prop { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PropArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = PropBuilder::new(_fbb); + if let Some(x) = args.v { builder.add_v(x); } + if let Some(x) = args.k { builder.add_k(x); } + builder.add_v_type(args.v_type); + builder.finish() + } + + pub const VT_K: flatbuffers::VOffsetT = 4; + pub const VT_V_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_V: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn k(&self) -> Option<&'a str> { + self._tab.get::>(Prop::VT_K, None) + } + #[inline] + pub fn v_type(&self) -> MonoType { + self._tab.get::(Prop::VT_V_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn v(&self) -> Option> { + self._tab.get::>>(Prop::VT_V, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn v_as_basic(&self) -> Option> { + if self.v_type() == MonoType::Basic { + self.v().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_var(&self) -> Option> { + if self.v_type() == MonoType::Var { + self.v().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_arr(&self) -> Option> { + if self.v_type() == MonoType::Arr { + self.v().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_row(&self) -> Option> { + if self.v_type() == MonoType::Row { + self.v().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_fun(&self) -> Option> { + if self.v_type() == MonoType::Fun { + self.v().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + +} + +pub struct PropArgs<'a> { + pub k: Option>, + pub v_type: MonoType, + pub v: Option>, +} +impl<'a> Default for PropArgs<'a> { + #[inline] + fn default() -> Self { + PropArgs { + k: None, + v_type: MonoType::NONE, + v: None, + } + } +} +pub struct PropBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> PropBuilder<'a, 'b> { + #[inline] + pub fn add_k(&mut self, k: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>(Prop::VT_K, k); + } + #[inline] + pub fn add_v_type(&mut self, v_type: MonoType) { + self.fbb_.push_slot::(Prop::VT_V_TYPE, v_type, MonoType::NONE); + } + #[inline] + pub fn add_v(&mut self, v: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(Prop::VT_V, v); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropBuilder<'a, 'b> { + let start = _fbb.start_table(); + PropBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum PolyTypeOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct PolyType<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for PolyType<'a> { + type Inner = PolyType<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> PolyType<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PolyType { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PolyTypeArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = PolyTypeBuilder::new(_fbb); + if let Some(x) = args.expr { builder.add_expr(x); } + if let Some(x) = args.cons { builder.add_cons(x); } + if let Some(x) = args.vars { builder.add_vars(x); } + builder.add_expr_type(args.expr_type); + builder.finish() + } + + pub const VT_VARS: flatbuffers::VOffsetT = 4; + pub const VT_CONS: flatbuffers::VOffsetT = 6; + pub const VT_EXPR_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_EXPR: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn vars(&self) -> Option>>> { + self._tab.get::>>>>(PolyType::VT_VARS, None) + } + #[inline] + pub fn cons(&self) -> Option>>> { + self._tab.get::>>>>(PolyType::VT_CONS, None) + } + #[inline] + pub fn expr_type(&self) -> MonoType { + self._tab.get::(PolyType::VT_EXPR_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn expr(&self) -> Option> { + self._tab.get::>>(PolyType::VT_EXPR, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_basic(&self) -> Option> { + if self.expr_type() == MonoType::Basic { + self.expr().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_var(&self) -> Option> { + if self.expr_type() == MonoType::Var { + self.expr().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_arr(&self) -> Option> { + if self.expr_type() == MonoType::Arr { + self.expr().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_row(&self) -> Option> { + if self.expr_type() == MonoType::Row { + self.expr().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_fun(&self) -> Option> { + if self.expr_type() == MonoType::Fun { + self.expr().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + +} + +pub struct PolyTypeArgs<'a> { + pub vars: Option>>>>, + pub cons: Option>>>>, + pub expr_type: MonoType, + pub expr: Option>, +} +impl<'a> Default for PolyTypeArgs<'a> { + #[inline] + fn default() -> Self { + PolyTypeArgs { + vars: None, + cons: None, + expr_type: MonoType::NONE, + expr: None, + } + } +} +pub struct PolyTypeBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> PolyTypeBuilder<'a, 'b> { + #[inline] + pub fn add_vars(&mut self, vars: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(PolyType::VT_VARS, vars); + } + #[inline] + pub fn add_cons(&mut self, cons: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(PolyType::VT_CONS, cons); + } + #[inline] + pub fn add_expr_type(&mut self, expr_type: MonoType) { + self.fbb_.push_slot::(PolyType::VT_EXPR_TYPE, expr_type, MonoType::NONE); + } + #[inline] + pub fn add_expr(&mut self, expr: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(PolyType::VT_EXPR, expr); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PolyTypeBuilder<'a, 'b> { + let start = _fbb.start_table(); + PolyTypeBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum ConstraintOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Constraint<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Constraint<'a> { + type Inner = Constraint<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Constraint<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Constraint { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ConstraintArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = ConstraintBuilder::new(_fbb); + if let Some(x) = args.tvar { builder.add_tvar(x); } + builder.add_kind(args.kind); + builder.finish() + } + + pub const VT_TVAR: flatbuffers::VOffsetT = 4; + pub const VT_KIND: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn tvar(&self) -> Option> { + self._tab.get::>>(Constraint::VT_TVAR, None) + } + #[inline] + pub fn kind(&self) -> Kind { + self._tab.get::(Constraint::VT_KIND, Some(Kind::Addable)).unwrap() + } +} + +pub struct ConstraintArgs<'a> { + pub tvar: Option>>, + pub kind: Kind, +} +impl<'a> Default for ConstraintArgs<'a> { + #[inline] + fn default() -> Self { + ConstraintArgs { + tvar: None, + kind: Kind::Addable, + } + } +} +pub struct ConstraintBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> ConstraintBuilder<'a, 'b> { + #[inline] + pub fn add_tvar(&mut self, tvar: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(Constraint::VT_TVAR, tvar); + } + #[inline] + pub fn add_kind(&mut self, kind: Kind) { + self.fbb_.push_slot::(Constraint::VT_KIND, kind, Kind::Addable); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ConstraintBuilder<'a, 'b> { + let start = _fbb.start_table(); + ConstraintBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum PackageOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct Package<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Package<'a> { + type Inner = Package<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> Package<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Package { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PackageArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = PackageBuilder::new(_fbb); + if let Some(x) = args.files { builder.add_files(x); } + if let Some(x) = args.package { builder.add_package(x); } + if let Some(x) = args.loc { builder.add_loc(x); } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; + pub const VT_FILES: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab.get::>>(Package::VT_LOC, None) + } + #[inline] + pub fn package(&self) -> Option<&'a str> { + self._tab.get::>(Package::VT_PACKAGE, None) + } + #[inline] + pub fn files(&self) -> Option>>> { + self._tab.get::>>>>(Package::VT_FILES, None) + } +} + +pub struct PackageArgs<'a> { + pub loc: Option>>, + pub package: Option>, + pub files: Option>>>>, +} +impl<'a> Default for PackageArgs<'a> { + #[inline] + fn default() -> Self { + PackageArgs { + loc: None, + package: None, + files: None, + } + } +} +pub struct PackageBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> PackageBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(Package::VT_LOC, loc); + } + #[inline] + pub fn add_package(&mut self, package: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>(Package::VT_PACKAGE, package); + } + #[inline] + pub fn add_files(&mut self, files: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(Package::VT_FILES, files); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageBuilder<'a, 'b> { + let start = _fbb.start_table(); + PackageBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum FileOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct File<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for File<'a> { + type Inner = File<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> File<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + File { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FileArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = FileBuilder::new(_fbb); + if let Some(x) = args.body { builder.add_body(x); } + if let Some(x) = args.imports { builder.add_imports(x); } + if let Some(x) = args.package { builder.add_package(x); } + if let Some(x) = args.loc { builder.add_loc(x); } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; + pub const VT_IMPORTS: flatbuffers::VOffsetT = 8; + pub const VT_BODY: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab.get::>>(File::VT_LOC, None) + } + #[inline] + pub fn package(&self) -> Option> { + self._tab.get::>>(File::VT_PACKAGE, None) + } + #[inline] + pub fn imports(&self) -> Option>>> { + self._tab.get::>>>>(File::VT_IMPORTS, None) + } + #[inline] + pub fn body(&self) -> Option>>> { + self._tab.get::>>>>(File::VT_BODY, None) + } +} + +pub struct FileArgs<'a> { + pub loc: Option>>, + pub package: Option>>, + pub imports: Option>>>>, + pub body: Option>>>>, +} +impl<'a> Default for FileArgs<'a> { + #[inline] + fn default() -> Self { + FileArgs { + loc: None, + package: None, + imports: None, + body: None, + } + } +} +pub struct FileBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> FileBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(File::VT_LOC, loc); + } + #[inline] + pub fn add_package(&mut self, package: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>(File::VT_PACKAGE, package); + } + #[inline] + pub fn add_imports(&mut self, imports: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(File::VT_IMPORTS, imports); + } + #[inline] + pub fn add_body(&mut self, body: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(File::VT_BODY, body); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FileBuilder<'a, 'b> { + let start = _fbb.start_table(); + FileBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +pub enum PackageClauseOffset {} +#[derive(Copy, Clone, Debug, PartialEq)] + +pub struct PackageClause<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { + type Inner = PackageClause<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } +} + +impl<'a> PackageClause<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PackageClause { + _tab: table, + } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PackageClauseArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = PackageClauseBuilder::new(_fbb); + if let Some(x) = args.name { builder.add_name(x); } + if let Some(x) = args.loc { builder.add_loc(x); } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab.get::>>(PackageClause::VT_LOC, None) + } + #[inline] + pub fn name(&self) -> Option> { + self._tab.get::>>(PackageClause::VT_NAME, None) + } +} + +pub struct PackageClauseArgs<'a> { + pub loc: Option>>, + pub name: Option>>, } impl<'a> Default for PackageClauseArgs<'a> { #[inline] @@ -2257,9 +3582,11 @@ impl<'a> NativeVariableAssignment<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args NativeVariableAssignmentArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = NativeVariableAssignmentBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.init_ { builder.add_init_(x); } if let Some(x) = args.identifier { builder.add_identifier(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_init__type(args.init__type); builder.finish() } @@ -2268,6 +3595,8 @@ impl<'a> NativeVariableAssignment<'a> { pub const VT_IDENTIFIER: flatbuffers::VOffsetT = 6; pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; pub const VT_INIT_: flatbuffers::VOffsetT = 10; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_TYP: flatbuffers::VOffsetT = 14; #[inline] pub fn loc(&self) -> Option> { @@ -2286,6 +3615,14 @@ impl<'a> NativeVariableAssignment<'a> { self._tab.get::>>(NativeVariableAssignment::VT_INIT_, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(NativeVariableAssignment::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(NativeVariableAssignment::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn init__as_string_expression(&self) -> Option> { if self.init__type() == Expression::StringExpression { @@ -2485,6 +3822,56 @@ impl<'a> NativeVariableAssignment<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct NativeVariableAssignmentArgs<'a> { @@ -2492,6 +3879,8 @@ pub struct NativeVariableAssignmentArgs<'a> { pub identifier: Option>>, pub init__type: Expression, pub init_: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for NativeVariableAssignmentArgs<'a> { #[inline] @@ -2501,6 +3890,8 @@ impl<'a> Default for NativeVariableAssignmentArgs<'a> { identifier: None, init__type: Expression::NONE, init_: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -2526,6 +3917,14 @@ impl<'a: 'b, 'b> NativeVariableAssignmentBuilder<'a, 'b> { self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_INIT_, init_); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(NativeVariableAssignment::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> NativeVariableAssignmentBuilder<'a, 'b> { let start = _fbb.start_table(); NativeVariableAssignmentBuilder { @@ -3169,13 +4568,17 @@ impl<'a> StringExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args StringExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = StringExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.parts { builder.add_parts(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_PARTS: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -3185,11 +4588,71 @@ impl<'a> StringExpression<'a> { pub fn parts(&self) -> Option>>> { self._tab.get::>>>>(StringExpression::VT_PARTS, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(StringExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(StringExpression::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct StringExpressionArgs<'a> { pub loc: Option>>, pub parts: Option>>>>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for StringExpressionArgs<'a> { #[inline] @@ -3197,6 +4660,8 @@ impl<'a> Default for StringExpressionArgs<'a> { StringExpressionArgs { loc: None, parts: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -3214,6 +4679,14 @@ impl<'a: 'b, 'b> StringExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(StringExpression::VT_PARTS, parts); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(StringExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(StringExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); StringExpressionBuilder { @@ -3569,13 +5042,17 @@ impl<'a> ArrayExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args ArrayExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = ArrayExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.elements { builder.add_elements(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_ELEMENTS: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -3585,11 +5062,71 @@ impl<'a> ArrayExpression<'a> { pub fn elements(&self) -> Option>>> { self._tab.get::>>>>(ArrayExpression::VT_ELEMENTS, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(ArrayExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(ArrayExpression::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct ArrayExpressionArgs<'a> { pub loc: Option>>, pub elements: Option>>>>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for ArrayExpressionArgs<'a> { #[inline] @@ -3597,6 +5134,8 @@ impl<'a> Default for ArrayExpressionArgs<'a> { ArrayExpressionArgs { loc: None, elements: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -3614,6 +5153,14 @@ impl<'a: 'b, 'b> ArrayExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(ArrayExpression::VT_ELEMENTS, elements); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(ArrayExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(ArrayExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArrayExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); ArrayExpressionBuilder { @@ -3657,15 +5204,19 @@ impl<'a> FunctionExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args FunctionExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = FunctionExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.body { builder.add_body(x); } if let Some(x) = args.params { builder.add_params(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_PARAMS: flatbuffers::VOffsetT = 6; pub const VT_BODY: flatbuffers::VOffsetT = 8; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_TYP: flatbuffers::VOffsetT = 12; #[inline] pub fn loc(&self) -> Option> { @@ -3679,12 +5230,72 @@ impl<'a> FunctionExpression<'a> { pub fn body(&self) -> Option> { self._tab.get::>>(FunctionExpression::VT_BODY, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(FunctionExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(FunctionExpression::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct FunctionExpressionArgs<'a> { pub loc: Option>>, pub params: Option>>>>, pub body: Option>>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for FunctionExpressionArgs<'a> { #[inline] @@ -3693,6 +5304,8 @@ impl<'a> Default for FunctionExpressionArgs<'a> { loc: None, params: None, body: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -3714,6 +5327,14 @@ impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(FunctionExpression::VT_BODY, body); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(FunctionExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(FunctionExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); FunctionExpressionBuilder { @@ -4081,9 +5702,11 @@ impl<'a> BinaryExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args BinaryExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = BinaryExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.right { builder.add_right(x); } if let Some(x) = args.left { builder.add_left(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_right_type(args.right_type); builder.add_left_type(args.left_type); builder.add_operator(args.operator); @@ -4096,6 +5719,8 @@ impl<'a> BinaryExpression<'a> { pub const VT_LEFT: flatbuffers::VOffsetT = 10; pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; pub const VT_RIGHT: flatbuffers::VOffsetT = 14; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; + pub const VT_TYP: flatbuffers::VOffsetT = 18; #[inline] pub fn loc(&self) -> Option> { @@ -4122,6 +5747,14 @@ impl<'a> BinaryExpression<'a> { self._tab.get::>>(BinaryExpression::VT_RIGHT, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(BinaryExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(BinaryExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn left_as_string_expression(&self) -> Option> { if self.left_type() == Expression::StringExpression { @@ -4521,6 +6154,56 @@ impl<'a> BinaryExpression<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct BinaryExpressionArgs<'a> { @@ -4530,6 +6213,8 @@ pub struct BinaryExpressionArgs<'a> { pub left: Option>, pub right_type: Expression, pub right: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for BinaryExpressionArgs<'a> { #[inline] @@ -4541,6 +6226,8 @@ impl<'a> Default for BinaryExpressionArgs<'a> { left: None, right_type: Expression::NONE, right: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -4574,6 +6261,14 @@ impl<'a: 'b, 'b> BinaryExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(BinaryExpression::VT_RIGHT, right); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(BinaryExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(BinaryExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BinaryExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); BinaryExpressionBuilder { @@ -4617,10 +6312,12 @@ impl<'a> CallExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args CallExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = CallExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.pipe { builder.add_pipe(x); } if let Some(x) = args.arguments { builder.add_arguments(x); } if let Some(x) = args.callee { builder.add_callee(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_pipe_type(args.pipe_type); builder.add_callee_type(args.callee_type); builder.finish() @@ -4632,6 +6329,8 @@ impl<'a> CallExpression<'a> { pub const VT_ARGUMENTS: flatbuffers::VOffsetT = 10; pub const VT_PIPE_TYPE: flatbuffers::VOffsetT = 12; pub const VT_PIPE: flatbuffers::VOffsetT = 14; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; + pub const VT_TYP: flatbuffers::VOffsetT = 18; #[inline] pub fn loc(&self) -> Option> { @@ -4658,6 +6357,14 @@ impl<'a> CallExpression<'a> { self._tab.get::>>(CallExpression::VT_PIPE, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(CallExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(CallExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn callee_as_string_expression(&self) -> Option> { if self.callee_type() == Expression::StringExpression { @@ -5057,6 +6764,56 @@ impl<'a> CallExpression<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct CallExpressionArgs<'a> { @@ -5066,6 +6823,8 @@ pub struct CallExpressionArgs<'a> { pub arguments: Option>>, pub pipe_type: Expression, pub pipe: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for CallExpressionArgs<'a> { #[inline] @@ -5077,6 +6836,8 @@ impl<'a> Default for CallExpressionArgs<'a> { arguments: None, pipe_type: Expression::NONE, pipe: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -5110,6 +6871,14 @@ impl<'a: 'b, 'b> CallExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(CallExpression::VT_PIPE, pipe); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(CallExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(CallExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> CallExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); CallExpressionBuilder { @@ -5153,10 +6922,12 @@ impl<'a> ConditionalExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args ConditionalExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = ConditionalExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.consequent { builder.add_consequent(x); } if let Some(x) = args.alternate { builder.add_alternate(x); } if let Some(x) = args.test { builder.add_test(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_consequent_type(args.consequent_type); builder.add_alternate_type(args.alternate_type); builder.add_test_type(args.test_type); @@ -5170,6 +6941,8 @@ impl<'a> ConditionalExpression<'a> { pub const VT_ALTERNATE: flatbuffers::VOffsetT = 12; pub const VT_CONSEQUENT_TYPE: flatbuffers::VOffsetT = 14; pub const VT_CONSEQUENT: flatbuffers::VOffsetT = 16; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 18; + pub const VT_TYP: flatbuffers::VOffsetT = 20; #[inline] pub fn loc(&self) -> Option> { @@ -5200,6 +6973,14 @@ impl<'a> ConditionalExpression<'a> { self._tab.get::>>(ConditionalExpression::VT_CONSEQUENT, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(ConditionalExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(ConditionalExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn test_as_string_expression(&self) -> Option> { if self.test_type() == Expression::StringExpression { @@ -5799,6 +7580,56 @@ impl<'a> ConditionalExpression<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct ConditionalExpressionArgs<'a> { @@ -5809,6 +7640,8 @@ pub struct ConditionalExpressionArgs<'a> { pub alternate: Option>, pub consequent_type: Expression, pub consequent: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for ConditionalExpressionArgs<'a> { #[inline] @@ -5821,6 +7654,8 @@ impl<'a> Default for ConditionalExpressionArgs<'a> { alternate: None, consequent_type: Expression::NONE, consequent: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -5858,6 +7693,14 @@ impl<'a: 'b, 'b> ConditionalExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(ConditionalExpression::VT_CONSEQUENT, consequent); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(ConditionalExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(ConditionalExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ConditionalExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); ConditionalExpressionBuilder { @@ -5901,9 +7744,11 @@ impl<'a> LogicalExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args LogicalExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = LogicalExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.right { builder.add_right(x); } if let Some(x) = args.left { builder.add_left(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_right_type(args.right_type); builder.add_left_type(args.left_type); builder.add_operator(args.operator); @@ -5916,6 +7761,8 @@ impl<'a> LogicalExpression<'a> { pub const VT_LEFT: flatbuffers::VOffsetT = 10; pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; pub const VT_RIGHT: flatbuffers::VOffsetT = 14; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; + pub const VT_TYP: flatbuffers::VOffsetT = 18; #[inline] pub fn loc(&self) -> Option> { @@ -5942,6 +7789,14 @@ impl<'a> LogicalExpression<'a> { self._tab.get::>>(LogicalExpression::VT_RIGHT, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(LogicalExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(LogicalExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn left_as_string_expression(&self) -> Option> { if self.left_type() == Expression::StringExpression { @@ -6341,6 +8196,56 @@ impl<'a> LogicalExpression<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct LogicalExpressionArgs<'a> { @@ -6350,6 +8255,8 @@ pub struct LogicalExpressionArgs<'a> { pub left: Option>, pub right_type: Expression, pub right: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for LogicalExpressionArgs<'a> { #[inline] @@ -6361,6 +8268,8 @@ impl<'a> Default for LogicalExpressionArgs<'a> { left: None, right_type: Expression::NONE, right: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -6394,6 +8303,14 @@ impl<'a: 'b, 'b> LogicalExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(LogicalExpression::VT_RIGHT, right); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(LogicalExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(LogicalExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> LogicalExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); LogicalExpressionBuilder { @@ -6437,9 +8354,11 @@ impl<'a> MemberExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args MemberExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = MemberExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.property { builder.add_property(x); } if let Some(x) = args.object { builder.add_object(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_object_type(args.object_type); builder.finish() } @@ -6448,6 +8367,8 @@ impl<'a> MemberExpression<'a> { pub const VT_OBJECT_TYPE: flatbuffers::VOffsetT = 6; pub const VT_OBJECT: flatbuffers::VOffsetT = 8; pub const VT_PROPERTY: flatbuffers::VOffsetT = 10; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_TYP: flatbuffers::VOffsetT = 14; #[inline] pub fn loc(&self) -> Option> { @@ -6466,6 +8387,14 @@ impl<'a> MemberExpression<'a> { self._tab.get::>(MemberExpression::VT_PROPERTY, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(MemberExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(MemberExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn object_as_string_expression(&self) -> Option> { if self.object_type() == Expression::StringExpression { @@ -6665,6 +8594,56 @@ impl<'a> MemberExpression<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct MemberExpressionArgs<'a> { @@ -6672,6 +8651,8 @@ pub struct MemberExpressionArgs<'a> { pub object_type: Expression, pub object: Option>, pub property: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for MemberExpressionArgs<'a> { #[inline] @@ -6681,6 +8662,8 @@ impl<'a> Default for MemberExpressionArgs<'a> { object_type: Expression::NONE, object: None, property: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -6706,6 +8689,14 @@ impl<'a: 'b, 'b> MemberExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(MemberExpression::VT_PROPERTY, property); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(MemberExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(MemberExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MemberExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); MemberExpressionBuilder { @@ -6749,9 +8740,11 @@ impl<'a> IndexExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args IndexExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = IndexExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.index { builder.add_index(x); } if let Some(x) = args.array { builder.add_array(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_index_type(args.index_type); builder.add_array_type(args.array_type); builder.finish() @@ -6762,6 +8755,8 @@ impl<'a> IndexExpression<'a> { pub const VT_ARRAY: flatbuffers::VOffsetT = 8; pub const VT_INDEX_TYPE: flatbuffers::VOffsetT = 10; pub const VT_INDEX: flatbuffers::VOffsetT = 12; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 14; + pub const VT_TYP: flatbuffers::VOffsetT = 16; #[inline] pub fn loc(&self) -> Option> { @@ -6784,6 +8779,14 @@ impl<'a> IndexExpression<'a> { self._tab.get::>>(IndexExpression::VT_INDEX, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(IndexExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(IndexExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn array_as_string_expression(&self) -> Option> { if self.array_type() == Expression::StringExpression { @@ -7165,9 +9168,59 @@ impl<'a> IndexExpression<'a> { #[inline] #[allow(non_snake_case)] - pub fn index_as_regexp_literal(&self) -> Option> { - if self.index_type() == Expression::RegexpLiteral { - self.index().map(|u| RegexpLiteral::init_from_table(u)) + pub fn index_as_regexp_literal(&self) -> Option> { + if self.index_type() == Expression::RegexpLiteral { + self.index().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_unsigned_integer_literal(&self) -> Option> { + if self.index_type() == Expression::UnsignedIntegerLiteral { + self.index().map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) } else { None } @@ -7175,9 +9228,9 @@ impl<'a> IndexExpression<'a> { #[inline] #[allow(non_snake_case)] - pub fn index_as_unsigned_integer_literal(&self) -> Option> { - if self.index_type() == Expression::UnsignedIntegerLiteral { - self.index().map(|u| UnsignedIntegerLiteral::init_from_table(u)) + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) } else { None } @@ -7191,6 +9244,8 @@ pub struct IndexExpressionArgs<'a> { pub array: Option>, pub index_type: Expression, pub index: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for IndexExpressionArgs<'a> { #[inline] @@ -7201,6 +9256,8 @@ impl<'a> Default for IndexExpressionArgs<'a> { array: None, index_type: Expression::NONE, index: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -7230,6 +9287,14 @@ impl<'a: 'b, 'b> IndexExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(IndexExpression::VT_INDEX, index); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(IndexExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(IndexExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IndexExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); IndexExpressionBuilder { @@ -7273,15 +9338,19 @@ impl<'a> ObjectExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args ObjectExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = ObjectExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.properties { builder.add_properties(x); } if let Some(x) = args.with { builder.add_with(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_WITH: flatbuffers::VOffsetT = 6; pub const VT_PROPERTIES: flatbuffers::VOffsetT = 8; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_TYP: flatbuffers::VOffsetT = 12; #[inline] pub fn loc(&self) -> Option> { @@ -7295,12 +9364,72 @@ impl<'a> ObjectExpression<'a> { pub fn properties(&self) -> Option>>> { self._tab.get::>>>>(ObjectExpression::VT_PROPERTIES, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(ObjectExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(ObjectExpression::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct ObjectExpressionArgs<'a> { pub loc: Option>>, pub with: Option>>, pub properties: Option>>>>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for ObjectExpressionArgs<'a> { #[inline] @@ -7309,6 +9438,8 @@ impl<'a> Default for ObjectExpressionArgs<'a> { loc: None, with: None, properties: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -7330,6 +9461,14 @@ impl<'a: 'b, 'b> ObjectExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(ObjectExpression::VT_PROPERTIES, properties); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(ObjectExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(ObjectExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ObjectExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); ObjectExpressionBuilder { @@ -7373,8 +9512,10 @@ impl<'a> UnaryExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args UnaryExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = UnaryExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.argument { builder.add_argument(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_argument_type(args.argument_type); builder.add_operator(args.operator); builder.finish() @@ -7384,6 +9525,8 @@ impl<'a> UnaryExpression<'a> { pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 8; pub const VT_ARGUMENT: flatbuffers::VOffsetT = 10; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_TYP: flatbuffers::VOffsetT = 14; #[inline] pub fn loc(&self) -> Option> { @@ -7402,6 +9545,14 @@ impl<'a> UnaryExpression<'a> { self._tab.get::>>(UnaryExpression::VT_ARGUMENT, None) } #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(UnaryExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(UnaryExpression::VT_TYP, None) + } + #[inline] #[allow(non_snake_case)] pub fn argument_as_string_expression(&self) -> Option> { if self.argument_type() == Expression::StringExpression { @@ -7601,6 +9752,56 @@ impl<'a> UnaryExpression<'a> { } } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct UnaryExpressionArgs<'a> { @@ -7608,6 +9809,8 @@ pub struct UnaryExpressionArgs<'a> { pub operator: Operator, pub argument_type: Expression, pub argument: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for UnaryExpressionArgs<'a> { #[inline] @@ -7617,6 +9820,8 @@ impl<'a> Default for UnaryExpressionArgs<'a> { operator: Operator::MultiplicationOperator, argument_type: Expression::NONE, argument: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -7642,6 +9847,14 @@ impl<'a: 'b, 'b> UnaryExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(UnaryExpression::VT_ARGUMENT, argument); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(UnaryExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(UnaryExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UnaryExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); UnaryExpressionBuilder { @@ -7997,13 +10210,17 @@ impl<'a> IdentifierExpression<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args IdentifierExpressionArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = IdentifierExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.name { builder.add_name(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_NAME: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8013,11 +10230,71 @@ impl<'a> IdentifierExpression<'a> { pub fn name(&self) -> Option<&'a str> { self._tab.get::>(IdentifierExpression::VT_NAME, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(IdentifierExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(IdentifierExpression::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct IdentifierExpressionArgs<'a> { pub loc: Option>>, pub name: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for IdentifierExpressionArgs<'a> { #[inline] @@ -8025,6 +10302,8 @@ impl<'a> Default for IdentifierExpressionArgs<'a> { IdentifierExpressionArgs { loc: None, name: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8042,6 +10321,14 @@ impl<'a: 'b, 'b> IdentifierExpressionBuilder<'a, 'b> { self.fbb_.push_slot_always::>(IdentifierExpression::VT_NAME, name); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(IdentifierExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(IdentifierExpression::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierExpressionBuilder<'a, 'b> { let start = _fbb.start_table(); IdentifierExpressionBuilder { @@ -8173,13 +10460,17 @@ impl<'a> BooleanLiteral<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args BooleanLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = BooleanLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.add_value(args.value); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8189,11 +10480,71 @@ impl<'a> BooleanLiteral<'a> { pub fn value(&self) -> bool { self._tab.get::(BooleanLiteral::VT_VALUE, Some(false)).unwrap() } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(BooleanLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(BooleanLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct BooleanLiteralArgs<'a> { pub loc: Option>>, pub value: bool, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for BooleanLiteralArgs<'a> { #[inline] @@ -8201,6 +10552,8 @@ impl<'a> Default for BooleanLiteralArgs<'a> { BooleanLiteralArgs { loc: None, value: false, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8218,6 +10571,14 @@ impl<'a: 'b, 'b> BooleanLiteralBuilder<'a, 'b> { self.fbb_.push_slot::(BooleanLiteral::VT_VALUE, value, false); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(BooleanLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(BooleanLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BooleanLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); BooleanLiteralBuilder { @@ -8261,13 +10622,17 @@ impl<'a> DateTimeLiteral<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args DateTimeLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = DateTimeLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.value { builder.add_value(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8277,11 +10642,71 @@ impl<'a> DateTimeLiteral<'a> { pub fn value(&self) -> Option> { self._tab.get::>>(DateTimeLiteral::VT_VALUE, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(DateTimeLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(DateTimeLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct DateTimeLiteralArgs<'a> { pub loc: Option>>, pub value: Option>>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for DateTimeLiteralArgs<'a> { #[inline] @@ -8289,6 +10714,8 @@ impl<'a> Default for DateTimeLiteralArgs<'a> { DateTimeLiteralArgs { loc: None, value: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8306,6 +10733,14 @@ impl<'a: 'b, 'b> DateTimeLiteralBuilder<'a, 'b> { self.fbb_.push_slot_always::>(DateTimeLiteral::VT_VALUE, value); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(DateTimeLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(DateTimeLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DateTimeLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); DateTimeLiteralBuilder { @@ -8444,32 +10879,96 @@ impl<'a> DurationLiteral<'a> { _tab: table, } } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DurationLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = DurationLiteralBuilder::new(_fbb); - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DurationLiteralArgs<'args>) -> flatbuffers::WIPOffset> { + let mut builder = DurationLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } + if let Some(x) = args.value { builder.add_value(x); } + if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab.get::>>(DurationLiteral::VT_LOC, None) + } + #[inline] + pub fn value(&self) -> Option>>> { + self._tab.get::>>>>(DurationLiteral::VT_VALUE, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(DurationLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(DurationLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None } + } - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(DurationLiteral::VT_LOC, None) + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } } + #[inline] - pub fn value(&self) -> Option>>> { - self._tab.get::>>>>(DurationLiteral::VT_VALUE, None) + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } } + } pub struct DurationLiteralArgs<'a> { pub loc: Option>>, pub value: Option>>>>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for DurationLiteralArgs<'a> { #[inline] @@ -8477,6 +10976,8 @@ impl<'a> Default for DurationLiteralArgs<'a> { DurationLiteralArgs { loc: None, value: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8494,6 +10995,14 @@ impl<'a: 'b, 'b> DurationLiteralBuilder<'a, 'b> { self.fbb_.push_slot_always::>(DurationLiteral::VT_VALUE, value); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(DurationLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(DurationLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); DurationLiteralBuilder { @@ -8626,12 +11135,16 @@ impl<'a> IntegerLiteral<'a> { args: &'args IntegerLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = IntegerLiteralBuilder::new(_fbb); builder.add_value(args.value); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8641,11 +11154,71 @@ impl<'a> IntegerLiteral<'a> { pub fn value(&self) -> i64 { self._tab.get::(IntegerLiteral::VT_VALUE, Some(0)).unwrap() } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(IntegerLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(IntegerLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct IntegerLiteralArgs<'a> { pub loc: Option>>, pub value: i64, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for IntegerLiteralArgs<'a> { #[inline] @@ -8653,6 +11226,8 @@ impl<'a> Default for IntegerLiteralArgs<'a> { IntegerLiteralArgs { loc: None, value: 0, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8670,6 +11245,14 @@ impl<'a: 'b, 'b> IntegerLiteralBuilder<'a, 'b> { self.fbb_.push_slot::(IntegerLiteral::VT_VALUE, value, 0); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(IntegerLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(IntegerLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IntegerLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); IntegerLiteralBuilder { @@ -8714,12 +11297,16 @@ impl<'a> FloatLiteral<'a> { args: &'args FloatLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = FloatLiteralBuilder::new(_fbb); builder.add_value(args.value); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8729,11 +11316,71 @@ impl<'a> FloatLiteral<'a> { pub fn value(&self) -> f64 { self._tab.get::(FloatLiteral::VT_VALUE, Some(0.0)).unwrap() } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(FloatLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(FloatLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct FloatLiteralArgs<'a> { pub loc: Option>>, pub value: f64, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for FloatLiteralArgs<'a> { #[inline] @@ -8741,6 +11388,8 @@ impl<'a> Default for FloatLiteralArgs<'a> { FloatLiteralArgs { loc: None, value: 0.0, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8758,6 +11407,14 @@ impl<'a: 'b, 'b> FloatLiteralBuilder<'a, 'b> { self.fbb_.push_slot::(FloatLiteral::VT_VALUE, value, 0.0); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(FloatLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(FloatLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FloatLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); FloatLiteralBuilder { @@ -8801,13 +11458,17 @@ impl<'a> RegexpLiteral<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args RegexpLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = RegexpLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.value { builder.add_value(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8817,11 +11478,71 @@ impl<'a> RegexpLiteral<'a> { pub fn value(&self) -> Option<&'a str> { self._tab.get::>(RegexpLiteral::VT_VALUE, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(RegexpLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(RegexpLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct RegexpLiteralArgs<'a> { pub loc: Option>>, pub value: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for RegexpLiteralArgs<'a> { #[inline] @@ -8829,6 +11550,8 @@ impl<'a> Default for RegexpLiteralArgs<'a> { RegexpLiteralArgs { loc: None, value: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8846,6 +11569,14 @@ impl<'a: 'b, 'b> RegexpLiteralBuilder<'a, 'b> { self.fbb_.push_slot_always::>(RegexpLiteral::VT_VALUE, value); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(RegexpLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(RegexpLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RegexpLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); RegexpLiteralBuilder { @@ -8889,13 +11620,17 @@ impl<'a> StringLiteral<'a> { _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args StringLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = StringLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.value { builder.add_value(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8905,11 +11640,71 @@ impl<'a> StringLiteral<'a> { pub fn value(&self) -> Option<&'a str> { self._tab.get::>(StringLiteral::VT_VALUE, None) } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(StringLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(StringLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct StringLiteralArgs<'a> { pub loc: Option>>, pub value: Option>, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for StringLiteralArgs<'a> { #[inline] @@ -8917,6 +11712,8 @@ impl<'a> Default for StringLiteralArgs<'a> { StringLiteralArgs { loc: None, value: None, + typ_type: MonoType::NONE, + typ: None, } } } @@ -8934,6 +11731,14 @@ impl<'a: 'b, 'b> StringLiteralBuilder<'a, 'b> { self.fbb_.push_slot_always::>(StringLiteral::VT_VALUE, value); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(StringLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(StringLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); StringLiteralBuilder { @@ -8978,12 +11783,16 @@ impl<'a> UnsignedIntegerLiteral<'a> { args: &'args UnsignedIntegerLiteralArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = UnsignedIntegerLiteralBuilder::new(_fbb); builder.add_value(args.value); + if let Some(x) = args.typ { builder.add_typ(x); } if let Some(x) = args.loc { builder.add_loc(x); } + builder.add_typ_type(args.typ_type); builder.finish() } pub const VT_LOC: flatbuffers::VOffsetT = 4; pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; #[inline] pub fn loc(&self) -> Option> { @@ -8993,11 +11802,71 @@ impl<'a> UnsignedIntegerLiteral<'a> { pub fn value(&self) -> u64 { self._tab.get::(UnsignedIntegerLiteral::VT_VALUE, Some(0)).unwrap() } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab.get::(UnsignedIntegerLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab.get::>>(UnsignedIntegerLiteral::VT_TYP, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } pub struct UnsignedIntegerLiteralArgs<'a> { pub loc: Option>>, pub value: u64, + pub typ_type: MonoType, + pub typ: Option>, } impl<'a> Default for UnsignedIntegerLiteralArgs<'a> { #[inline] @@ -9005,6 +11874,8 @@ impl<'a> Default for UnsignedIntegerLiteralArgs<'a> { UnsignedIntegerLiteralArgs { loc: None, value: 0, + typ_type: MonoType::NONE, + typ: None, } } } @@ -9022,6 +11893,14 @@ impl<'a: 'b, 'b> UnsignedIntegerLiteralBuilder<'a, 'b> { self.fbb_.push_slot::(UnsignedIntegerLiteral::VT_VALUE, value, 0); } #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::(UnsignedIntegerLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(UnsignedIntegerLiteral::VT_TYP, typ); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UnsignedIntegerLiteralBuilder<'a, 'b> { let start = _fbb.start_table(); UnsignedIntegerLiteralBuilder { diff --git a/libflux/src/semantic/mod.rs b/libflux/src/semantic/mod.rs index 05960ecc09..986bf2a6da 100644 --- a/libflux/src/semantic/mod.rs +++ b/libflux/src/semantic/mod.rs @@ -17,6 +17,9 @@ mod parser; #[cfg(test)] mod tests; +#[allow(unused, non_snake_case)] +mod flatbuffers; + use crate::ast; use crate::parser::parse_string; use crate::semantic::analyze::Result; diff --git a/semantic/internal/fbsemantic/Argument.go b/semantic/internal/fbsemantic/Argument.go new file mode 100644 index 0000000000..c5ac91c16a --- /dev/null +++ b/semantic/internal/fbsemantic/Argument.go @@ -0,0 +1,102 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Argument struct { + _tab flatbuffers.Table +} + +func GetRootAsArgument(buf []byte, offset flatbuffers.UOffsetT) *Argument { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Argument{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Argument) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Argument) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Argument) Name() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func (rcv *Argument) TType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Argument) MutateTType(n byte) bool { + return rcv._tab.MutateByteSlot(6, n) +} + +func (rcv *Argument) T(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + +func (rcv *Argument) Pipe() bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + return rcv._tab.GetBool(o + rcv._tab.Pos) + } + return false +} + +func (rcv *Argument) MutatePipe(n bool) bool { + return rcv._tab.MutateBoolSlot(10, n) +} + +func (rcv *Argument) Optional() bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + return rcv._tab.GetBool(o + rcv._tab.Pos) + } + return false +} + +func (rcv *Argument) MutateOptional(n bool) bool { + return rcv._tab.MutateBoolSlot(12, n) +} + +func ArgumentStart(builder *flatbuffers.Builder) { + builder.StartObject(5) +} +func ArgumentAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(name), 0) +} +func ArgumentAddTType(builder *flatbuffers.Builder, tType byte) { + builder.PrependByteSlot(1, tType, 0) +} +func ArgumentAddT(builder *flatbuffers.Builder, t flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(t), 0) +} +func ArgumentAddPipe(builder *flatbuffers.Builder, pipe bool) { + builder.PrependBoolSlot(3, pipe, false) +} +func ArgumentAddOptional(builder *flatbuffers.Builder, optional bool) { + builder.PrependBoolSlot(4, optional, false) +} +func ArgumentEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/Arr.go b/semantic/internal/fbsemantic/Arr.go new file mode 100644 index 0000000000..e2e9077008 --- /dev/null +++ b/semantic/internal/fbsemantic/Arr.go @@ -0,0 +1,61 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Arr struct { + _tab flatbuffers.Table +} + +func GetRootAsArr(buf []byte, offset flatbuffers.UOffsetT) *Arr { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Arr{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Arr) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Arr) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Arr) TType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Arr) MutateTType(n byte) bool { + return rcv._tab.MutateByteSlot(4, n) +} + +func (rcv *Arr) T(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + +func ArrStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func ArrAddTType(builder *flatbuffers.Builder, tType byte) { + builder.PrependByteSlot(0, tType, 0) +} +func ArrAddT(builder *flatbuffers.Builder, t flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(t), 0) +} +func ArrEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/ArrayExpression.go b/semantic/internal/fbsemantic/ArrayExpression.go index 328b5b44b0..512edab069 100644 --- a/semantic/internal/fbsemantic/ArrayExpression.go +++ b/semantic/internal/fbsemantic/ArrayExpression.go @@ -59,8 +59,29 @@ func (rcv *ArrayExpression) ElementsLength() int { return 0 } +func (rcv *ArrayExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *ArrayExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *ArrayExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func ArrayExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func ArrayExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -71,6 +92,12 @@ func ArrayExpressionAddElements(builder *flatbuffers.Builder, elements flatbuffe func ArrayExpressionStartElementsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4) } +func ArrayExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func ArrayExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func ArrayExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Basic.go b/semantic/internal/fbsemantic/Basic.go new file mode 100644 index 0000000000..3cc893609c --- /dev/null +++ b/semantic/internal/fbsemantic/Basic.go @@ -0,0 +1,49 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Basic struct { + _tab flatbuffers.Table +} + +func GetRootAsBasic(buf []byte, offset flatbuffers.UOffsetT) *Basic { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Basic{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Basic) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Basic) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Basic) T() Type { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Basic) MutateT(n Type) bool { + return rcv._tab.MutateByteSlot(4, n) +} + +func BasicStart(builder *flatbuffers.Builder) { + builder.StartObject(1) +} +func BasicAddT(builder *flatbuffers.Builder, t byte) { + builder.PrependByteSlot(0, t, 0) +} +func BasicEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/BinaryExpression.go b/semantic/internal/fbsemantic/BinaryExpression.go index 3a76e158ee..16e36bc4b7 100644 --- a/semantic/internal/fbsemantic/BinaryExpression.go +++ b/semantic/internal/fbsemantic/BinaryExpression.go @@ -93,8 +93,29 @@ func (rcv *BinaryExpression) Right(obj *flatbuffers.Table) bool { return false } +func (rcv *BinaryExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(16)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *BinaryExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(16, n) +} + +func (rcv *BinaryExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(18)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func BinaryExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(6) + builder.StartObject(8) } func BinaryExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -114,6 +135,12 @@ func BinaryExpressionAddRightType(builder *flatbuffers.Builder, rightType byte) func BinaryExpressionAddRight(builder *flatbuffers.Builder, right flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(right), 0) } +func BinaryExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(6, typType, 0) +} +func BinaryExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(typ), 0) +} func BinaryExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/BooleanLiteral.go b/semantic/internal/fbsemantic/BooleanLiteral.go index 8c0947f4af..9ad87ee8a3 100644 --- a/semantic/internal/fbsemantic/BooleanLiteral.go +++ b/semantic/internal/fbsemantic/BooleanLiteral.go @@ -51,8 +51,29 @@ func (rcv *BooleanLiteral) MutateValue(n bool) bool { return rcv._tab.MutateBoolSlot(6, n) } +func (rcv *BooleanLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *BooleanLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *BooleanLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func BooleanLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func BooleanLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -60,6 +81,12 @@ func BooleanLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT func BooleanLiteralAddValue(builder *flatbuffers.Builder, value bool) { builder.PrependBoolSlot(1, value, false) } +func BooleanLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func BooleanLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func BooleanLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/CallExpression.go b/semantic/internal/fbsemantic/CallExpression.go index f514d2788e..6b57bb8a0a 100644 --- a/semantic/internal/fbsemantic/CallExpression.go +++ b/semantic/internal/fbsemantic/CallExpression.go @@ -94,8 +94,29 @@ func (rcv *CallExpression) Pipe(obj *flatbuffers.Table) bool { return false } +func (rcv *CallExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(16)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *CallExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(16, n) +} + +func (rcv *CallExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(18)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func CallExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(6) + builder.StartObject(8) } func CallExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -115,6 +136,12 @@ func CallExpressionAddPipeType(builder *flatbuffers.Builder, pipeType byte) { func CallExpressionAddPipe(builder *flatbuffers.Builder, pipe flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(pipe), 0) } +func CallExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(6, typType, 0) +} +func CallExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(typ), 0) +} func CallExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/ConditionalExpression.go b/semantic/internal/fbsemantic/ConditionalExpression.go index dbaaa254c5..ceb60b6435 100644 --- a/semantic/internal/fbsemantic/ConditionalExpression.go +++ b/semantic/internal/fbsemantic/ConditionalExpression.go @@ -102,8 +102,29 @@ func (rcv *ConditionalExpression) Consequent(obj *flatbuffers.Table) bool { return false } +func (rcv *ConditionalExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(18)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *ConditionalExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(18, n) +} + +func (rcv *ConditionalExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(20)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func ConditionalExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(7) + builder.StartObject(9) } func ConditionalExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -126,6 +147,12 @@ func ConditionalExpressionAddConsequentType(builder *flatbuffers.Builder, conseq func ConditionalExpressionAddConsequent(builder *flatbuffers.Builder, consequent flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(consequent), 0) } +func ConditionalExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(7, typType, 0) +} +func ConditionalExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(8, flatbuffers.UOffsetT(typ), 0) +} func ConditionalExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Constraint.go b/semantic/internal/fbsemantic/Constraint.go new file mode 100644 index 0000000000..7256d04a2d --- /dev/null +++ b/semantic/internal/fbsemantic/Constraint.go @@ -0,0 +1,65 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Constraint struct { + _tab flatbuffers.Table +} + +func GetRootAsConstraint(buf []byte, offset flatbuffers.UOffsetT) *Constraint { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Constraint{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Constraint) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Constraint) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Constraint) Tvar(obj *Var) *Var { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(Var) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func (rcv *Constraint) Kind() Kind { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Constraint) MutateKind(n Kind) bool { + return rcv._tab.MutateByteSlot(6, n) +} + +func ConstraintStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func ConstraintAddTvar(builder *flatbuffers.Builder, tvar flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(tvar), 0) +} +func ConstraintAddKind(builder *flatbuffers.Builder, kind byte) { + builder.PrependByteSlot(1, kind, 0) +} +func ConstraintEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/DateTimeLiteral.go b/semantic/internal/fbsemantic/DateTimeLiteral.go index 9fc2f964e4..33d937fe4f 100644 --- a/semantic/internal/fbsemantic/DateTimeLiteral.go +++ b/semantic/internal/fbsemantic/DateTimeLiteral.go @@ -52,8 +52,29 @@ func (rcv *DateTimeLiteral) Value(obj *Time) *Time { return nil } +func (rcv *DateTimeLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *DateTimeLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *DateTimeLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func DateTimeLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func DateTimeLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -61,6 +82,12 @@ func DateTimeLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffset func DateTimeLiteralAddValue(builder *flatbuffers.Builder, value flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(value), 0) } +func DateTimeLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func DateTimeLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func DateTimeLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/DurationLiteral.go b/semantic/internal/fbsemantic/DurationLiteral.go index 16293e7568..4ca7515edf 100644 --- a/semantic/internal/fbsemantic/DurationLiteral.go +++ b/semantic/internal/fbsemantic/DurationLiteral.go @@ -59,8 +59,29 @@ func (rcv *DurationLiteral) ValueLength() int { return 0 } +func (rcv *DurationLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *DurationLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *DurationLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func DurationLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func DurationLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -71,6 +92,12 @@ func DurationLiteralAddValue(builder *flatbuffers.Builder, value flatbuffers.UOf func DurationLiteralStartValueVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4) } +func DurationLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func DurationLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func DurationLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/FloatLiteral.go b/semantic/internal/fbsemantic/FloatLiteral.go index 3718a2f7a0..b37bf5ec03 100644 --- a/semantic/internal/fbsemantic/FloatLiteral.go +++ b/semantic/internal/fbsemantic/FloatLiteral.go @@ -51,8 +51,29 @@ func (rcv *FloatLiteral) MutateValue(n float64) bool { return rcv._tab.MutateFloat64Slot(6, n) } +func (rcv *FloatLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *FloatLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *FloatLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func FloatLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func FloatLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -60,6 +81,12 @@ func FloatLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) func FloatLiteralAddValue(builder *flatbuffers.Builder, value float64) { builder.PrependFloat64Slot(1, value, 0.0) } +func FloatLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func FloatLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func FloatLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Fun.go b/semantic/internal/fbsemantic/Fun.go new file mode 100644 index 0000000000..3cbebbc065 --- /dev/null +++ b/semantic/internal/fbsemantic/Fun.go @@ -0,0 +1,87 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Fun struct { + _tab flatbuffers.Table +} + +func GetRootAsFun(buf []byte, offset flatbuffers.UOffsetT) *Fun { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Fun{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Fun) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Fun) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Fun) Args(obj *Argument, j int) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) + obj.Init(rcv._tab.Bytes, x) + return true + } + return false +} + +func (rcv *Fun) ArgsLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func (rcv *Fun) RetnType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Fun) MutateRetnType(n byte) bool { + return rcv._tab.MutateByteSlot(6, n) +} + +func (rcv *Fun) Retn(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + +func FunStart(builder *flatbuffers.Builder) { + builder.StartObject(3) +} +func FunAddArgs(builder *flatbuffers.Builder, args flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(args), 0) +} +func FunStartArgsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) +} +func FunAddRetnType(builder *flatbuffers.Builder, retnType byte) { + builder.PrependByteSlot(1, retnType, 0) +} +func FunAddRetn(builder *flatbuffers.Builder, retn flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(retn), 0) +} +func FunEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/FunctionExpression.go b/semantic/internal/fbsemantic/FunctionExpression.go index 668f163a84..3becc833a1 100644 --- a/semantic/internal/fbsemantic/FunctionExpression.go +++ b/semantic/internal/fbsemantic/FunctionExpression.go @@ -72,8 +72,29 @@ func (rcv *FunctionExpression) Body(obj *Block) *Block { return nil } +func (rcv *FunctionExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *FunctionExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(10, n) +} + +func (rcv *FunctionExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func FunctionExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(3) + builder.StartObject(5) } func FunctionExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -87,6 +108,12 @@ func FunctionExpressionStartParamsVector(builder *flatbuffers.Builder, numElems func FunctionExpressionAddBody(builder *flatbuffers.Builder, body flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(body), 0) } +func FunctionExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(3, typType, 0) +} +func FunctionExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(typ), 0) +} func FunctionExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/IdentifierExpression.go b/semantic/internal/fbsemantic/IdentifierExpression.go index 07b920a4ba..d740636442 100644 --- a/semantic/internal/fbsemantic/IdentifierExpression.go +++ b/semantic/internal/fbsemantic/IdentifierExpression.go @@ -47,8 +47,29 @@ func (rcv *IdentifierExpression) Name() []byte { return nil } +func (rcv *IdentifierExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *IdentifierExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *IdentifierExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func IdentifierExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func IdentifierExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -56,6 +77,12 @@ func IdentifierExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UO func IdentifierExpressionAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(name), 0) } +func IdentifierExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func IdentifierExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func IdentifierExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/IndexExpression.go b/semantic/internal/fbsemantic/IndexExpression.go index 92c2df6b5c..02fe681df6 100644 --- a/semantic/internal/fbsemantic/IndexExpression.go +++ b/semantic/internal/fbsemantic/IndexExpression.go @@ -81,8 +81,29 @@ func (rcv *IndexExpression) Index(obj *flatbuffers.Table) bool { return false } +func (rcv *IndexExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(14)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *IndexExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(14, n) +} + +func (rcv *IndexExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(16)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func IndexExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(5) + builder.StartObject(7) } func IndexExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -99,6 +120,12 @@ func IndexExpressionAddIndexType(builder *flatbuffers.Builder, indexType byte) { func IndexExpressionAddIndex(builder *flatbuffers.Builder, index flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(index), 0) } +func IndexExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(5, typType, 0) +} +func IndexExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(typ), 0) +} func IndexExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/IntegerLiteral.go b/semantic/internal/fbsemantic/IntegerLiteral.go index ba2bf64e36..b44524c165 100644 --- a/semantic/internal/fbsemantic/IntegerLiteral.go +++ b/semantic/internal/fbsemantic/IntegerLiteral.go @@ -51,8 +51,29 @@ func (rcv *IntegerLiteral) MutateValue(n int64) bool { return rcv._tab.MutateInt64Slot(6, n) } +func (rcv *IntegerLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *IntegerLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *IntegerLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func IntegerLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func IntegerLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -60,6 +81,12 @@ func IntegerLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT func IntegerLiteralAddValue(builder *flatbuffers.Builder, value int64) { builder.PrependInt64Slot(1, value, 0) } +func IntegerLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func IntegerLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func IntegerLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Kind.go b/semantic/internal/fbsemantic/Kind.go new file mode 100644 index 0000000000..55114cfde2 --- /dev/null +++ b/semantic/internal/fbsemantic/Kind.go @@ -0,0 +1,23 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +type Kind = byte + +const ( + KindAddable Kind = 0 + KindSubtractable Kind = 1 + KindDivisible Kind = 2 + KindComparable Kind = 3 + KindEquatable Kind = 4 + KindNullable Kind = 5 +) + +var EnumNamesKind = map[Kind]string{ + KindAddable: "Addable", + KindSubtractable: "Subtractable", + KindDivisible: "Divisible", + KindComparable: "Comparable", + KindEquatable: "Equatable", + KindNullable: "Nullable", +} diff --git a/semantic/internal/fbsemantic/LogicalExpression.go b/semantic/internal/fbsemantic/LogicalExpression.go index 9f435e3757..d5eb09147a 100644 --- a/semantic/internal/fbsemantic/LogicalExpression.go +++ b/semantic/internal/fbsemantic/LogicalExpression.go @@ -93,8 +93,29 @@ func (rcv *LogicalExpression) Right(obj *flatbuffers.Table) bool { return false } +func (rcv *LogicalExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(16)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *LogicalExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(16, n) +} + +func (rcv *LogicalExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(18)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func LogicalExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(6) + builder.StartObject(8) } func LogicalExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -114,6 +135,12 @@ func LogicalExpressionAddRightType(builder *flatbuffers.Builder, rightType byte) func LogicalExpressionAddRight(builder *flatbuffers.Builder, right flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(right), 0) } +func LogicalExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(6, typType, 0) +} +func LogicalExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(typ), 0) +} func LogicalExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/MemberExpression.go b/semantic/internal/fbsemantic/MemberExpression.go index 14709e666a..f5f6d9b073 100644 --- a/semantic/internal/fbsemantic/MemberExpression.go +++ b/semantic/internal/fbsemantic/MemberExpression.go @@ -68,8 +68,29 @@ func (rcv *MemberExpression) Property() []byte { return nil } +func (rcv *MemberExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *MemberExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(12, n) +} + +func (rcv *MemberExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(14)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func MemberExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(4) + builder.StartObject(6) } func MemberExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -83,6 +104,12 @@ func MemberExpressionAddObject(builder *flatbuffers.Builder, object flatbuffers. func MemberExpressionAddProperty(builder *flatbuffers.Builder, property flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(property), 0) } +func MemberExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(4, typType, 0) +} +func MemberExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(typ), 0) +} func MemberExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/MonoType.go b/semantic/internal/fbsemantic/MonoType.go new file mode 100644 index 0000000000..505ac9547f --- /dev/null +++ b/semantic/internal/fbsemantic/MonoType.go @@ -0,0 +1,23 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +type MonoType = byte + +const ( + MonoTypeNONE MonoType = 0 + MonoTypeBasic MonoType = 1 + MonoTypeVar MonoType = 2 + MonoTypeArr MonoType = 3 + MonoTypeRow MonoType = 4 + MonoTypeFun MonoType = 5 +) + +var EnumNamesMonoType = map[MonoType]string{ + MonoTypeNONE: "NONE", + MonoTypeBasic: "Basic", + MonoTypeVar: "Var", + MonoTypeArr: "Arr", + MonoTypeRow: "Row", + MonoTypeFun: "Fun", +} diff --git a/semantic/internal/fbsemantic/NativeVariableAssignment.go b/semantic/internal/fbsemantic/NativeVariableAssignment.go index 28d3002040..6030009a22 100644 --- a/semantic/internal/fbsemantic/NativeVariableAssignment.go +++ b/semantic/internal/fbsemantic/NativeVariableAssignment.go @@ -73,8 +73,29 @@ func (rcv *NativeVariableAssignment) Init_(obj *flatbuffers.Table) bool { return false } +func (rcv *NativeVariableAssignment) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *NativeVariableAssignment) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(12, n) +} + +func (rcv *NativeVariableAssignment) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(14)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func NativeVariableAssignmentStart(builder *flatbuffers.Builder) { - builder.StartObject(4) + builder.StartObject(6) } func NativeVariableAssignmentAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -88,6 +109,12 @@ func NativeVariableAssignmentAddInit_type(builder *flatbuffers.Builder, init_typ func NativeVariableAssignmentAddInit_(builder *flatbuffers.Builder, init_ flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(init_), 0) } +func NativeVariableAssignmentAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(4, typType, 0) +} +func NativeVariableAssignmentAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(typ), 0) +} func NativeVariableAssignmentEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/ObjectExpression.go b/semantic/internal/fbsemantic/ObjectExpression.go index 8aefc7e615..e9be77d686 100644 --- a/semantic/internal/fbsemantic/ObjectExpression.go +++ b/semantic/internal/fbsemantic/ObjectExpression.go @@ -72,8 +72,29 @@ func (rcv *ObjectExpression) PropertiesLength() int { return 0 } +func (rcv *ObjectExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *ObjectExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(10, n) +} + +func (rcv *ObjectExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func ObjectExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(3) + builder.StartObject(5) } func ObjectExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -87,6 +108,12 @@ func ObjectExpressionAddProperties(builder *flatbuffers.Builder, properties flat func ObjectExpressionStartPropertiesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4) } +func ObjectExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(3, typType, 0) +} +func ObjectExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(typ), 0) +} func ObjectExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/PolyType.go b/semantic/internal/fbsemantic/PolyType.go new file mode 100644 index 0000000000..27a713e486 --- /dev/null +++ b/semantic/internal/fbsemantic/PolyType.go @@ -0,0 +1,113 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type PolyType struct { + _tab flatbuffers.Table +} + +func GetRootAsPolyType(buf []byte, offset flatbuffers.UOffsetT) *PolyType { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &PolyType{} + x.Init(buf, n+offset) + return x +} + +func (rcv *PolyType) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *PolyType) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *PolyType) Vars(obj *Var, j int) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) + obj.Init(rcv._tab.Bytes, x) + return true + } + return false +} + +func (rcv *PolyType) VarsLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func (rcv *PolyType) Cons(obj *Constraint, j int) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) + obj.Init(rcv._tab.Bytes, x) + return true + } + return false +} + +func (rcv *PolyType) ConsLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func (rcv *PolyType) ExprType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *PolyType) MutateExprType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *PolyType) Expr(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + +func PolyTypeStart(builder *flatbuffers.Builder) { + builder.StartObject(4) +} +func PolyTypeAddVars(builder *flatbuffers.Builder, vars flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(vars), 0) +} +func PolyTypeStartVarsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) +} +func PolyTypeAddCons(builder *flatbuffers.Builder, cons flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(cons), 0) +} +func PolyTypeStartConsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) +} +func PolyTypeAddExprType(builder *flatbuffers.Builder, exprType byte) { + builder.PrependByteSlot(2, exprType, 0) +} +func PolyTypeAddExpr(builder *flatbuffers.Builder, expr flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(expr), 0) +} +func PolyTypeEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/Prop.go b/semantic/internal/fbsemantic/Prop.go new file mode 100644 index 0000000000..ad6f411e4e --- /dev/null +++ b/semantic/internal/fbsemantic/Prop.go @@ -0,0 +1,72 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Prop struct { + _tab flatbuffers.Table +} + +func GetRootAsProp(buf []byte, offset flatbuffers.UOffsetT) *Prop { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Prop{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Prop) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Prop) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Prop) K() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func (rcv *Prop) VType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Prop) MutateVType(n byte) bool { + return rcv._tab.MutateByteSlot(6, n) +} + +func (rcv *Prop) V(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + +func PropStart(builder *flatbuffers.Builder) { + builder.StartObject(3) +} +func PropAddK(builder *flatbuffers.Builder, k flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(k), 0) +} +func PropAddVType(builder *flatbuffers.Builder, vType byte) { + builder.PrependByteSlot(1, vType, 0) +} +func PropAddV(builder *flatbuffers.Builder, v flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(v), 0) +} +func PropEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/RegexpLiteral.go b/semantic/internal/fbsemantic/RegexpLiteral.go index 369f8f9cc8..598f95859a 100644 --- a/semantic/internal/fbsemantic/RegexpLiteral.go +++ b/semantic/internal/fbsemantic/RegexpLiteral.go @@ -47,8 +47,29 @@ func (rcv *RegexpLiteral) Value() []byte { return nil } +func (rcv *RegexpLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *RegexpLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *RegexpLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func RegexpLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func RegexpLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -56,6 +77,12 @@ func RegexpLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) func RegexpLiteralAddValue(builder *flatbuffers.Builder, value flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(value), 0) } +func RegexpLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func RegexpLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func RegexpLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Row.go b/semantic/internal/fbsemantic/Row.go new file mode 100644 index 0000000000..64856de2ef --- /dev/null +++ b/semantic/internal/fbsemantic/Row.go @@ -0,0 +1,76 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Row struct { + _tab flatbuffers.Table +} + +func GetRootAsRow(buf []byte, offset flatbuffers.UOffsetT) *Row { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Row{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Row) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Row) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Row) Props(obj *Prop, j int) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) + obj.Init(rcv._tab.Bytes, x) + return true + } + return false +} + +func (rcv *Row) PropsLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func (rcv *Row) Extends(obj *Var) *Var { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(Var) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func RowStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func RowAddProps(builder *flatbuffers.Builder, props flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(props), 0) +} +func RowStartPropsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) +} +func RowAddExtends(builder *flatbuffers.Builder, extends flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(extends), 0) +} +func RowEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/internal/fbsemantic/StringExpression.go b/semantic/internal/fbsemantic/StringExpression.go index 21fff40926..8a92fbd39e 100644 --- a/semantic/internal/fbsemantic/StringExpression.go +++ b/semantic/internal/fbsemantic/StringExpression.go @@ -59,8 +59,29 @@ func (rcv *StringExpression) PartsLength() int { return 0 } +func (rcv *StringExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *StringExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *StringExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func StringExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func StringExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -71,6 +92,12 @@ func StringExpressionAddParts(builder *flatbuffers.Builder, parts flatbuffers.UO func StringExpressionStartPartsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4) } +func StringExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func StringExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func StringExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/StringLiteral.go b/semantic/internal/fbsemantic/StringLiteral.go index dba703c953..3e2def7641 100644 --- a/semantic/internal/fbsemantic/StringLiteral.go +++ b/semantic/internal/fbsemantic/StringLiteral.go @@ -47,8 +47,29 @@ func (rcv *StringLiteral) Value() []byte { return nil } +func (rcv *StringLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *StringLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *StringLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func StringLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func StringLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -56,6 +77,12 @@ func StringLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) func StringLiteralAddValue(builder *flatbuffers.Builder, value flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(value), 0) } +func StringLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func StringLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func StringLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Type.go b/semantic/internal/fbsemantic/Type.go new file mode 100644 index 0000000000..46757fcf6c --- /dev/null +++ b/semantic/internal/fbsemantic/Type.go @@ -0,0 +1,27 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +type Type = byte + +const ( + TypeBool Type = 0 + TypeInt Type = 1 + TypeUint Type = 2 + TypeFloat Type = 3 + TypeString Type = 4 + TypeDuration Type = 5 + TypeTime Type = 6 + TypeRegexp Type = 7 +) + +var EnumNamesType = map[Type]string{ + TypeBool: "Bool", + TypeInt: "Int", + TypeUint: "Uint", + TypeFloat: "Float", + TypeString: "String", + TypeDuration: "Duration", + TypeTime: "Time", + TypeRegexp: "Regexp", +} diff --git a/semantic/internal/fbsemantic/UnaryExpression.go b/semantic/internal/fbsemantic/UnaryExpression.go index f632811716..b2fe32a7d9 100644 --- a/semantic/internal/fbsemantic/UnaryExpression.go +++ b/semantic/internal/fbsemantic/UnaryExpression.go @@ -72,8 +72,29 @@ func (rcv *UnaryExpression) Argument(obj *flatbuffers.Table) bool { return false } +func (rcv *UnaryExpression) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *UnaryExpression) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(12, n) +} + +func (rcv *UnaryExpression) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(14)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func UnaryExpressionStart(builder *flatbuffers.Builder) { - builder.StartObject(4) + builder.StartObject(6) } func UnaryExpressionAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -87,6 +108,12 @@ func UnaryExpressionAddArgumentType(builder *flatbuffers.Builder, argumentType b func UnaryExpressionAddArgument(builder *flatbuffers.Builder, argument flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(argument), 0) } +func UnaryExpressionAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(4, typType, 0) +} +func UnaryExpressionAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(typ), 0) +} func UnaryExpressionEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/UnsignedIntegerLiteral.go b/semantic/internal/fbsemantic/UnsignedIntegerLiteral.go index 9f32adb7c8..8574057d9e 100644 --- a/semantic/internal/fbsemantic/UnsignedIntegerLiteral.go +++ b/semantic/internal/fbsemantic/UnsignedIntegerLiteral.go @@ -51,8 +51,29 @@ func (rcv *UnsignedIntegerLiteral) MutateValue(n uint64) bool { return rcv._tab.MutateUint64Slot(6, n) } +func (rcv *UnsignedIntegerLiteral) TypType() byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetByte(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *UnsignedIntegerLiteral) MutateTypType(n byte) bool { + return rcv._tab.MutateByteSlot(8, n) +} + +func (rcv *UnsignedIntegerLiteral) Typ(obj *flatbuffers.Table) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + rcv._tab.Union(obj, o) + return true + } + return false +} + func UnsignedIntegerLiteralStart(builder *flatbuffers.Builder) { - builder.StartObject(2) + builder.StartObject(4) } func UnsignedIntegerLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(loc), 0) @@ -60,6 +81,12 @@ func UnsignedIntegerLiteralAddLoc(builder *flatbuffers.Builder, loc flatbuffers. func UnsignedIntegerLiteralAddValue(builder *flatbuffers.Builder, value uint64) { builder.PrependUint64Slot(1, value, 0) } +func UnsignedIntegerLiteralAddTypType(builder *flatbuffers.Builder, typType byte) { + builder.PrependByteSlot(2, typType, 0) +} +func UnsignedIntegerLiteralAddTyp(builder *flatbuffers.Builder, typ flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(typ), 0) +} func UnsignedIntegerLiteralEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/semantic/internal/fbsemantic/Var.go b/semantic/internal/fbsemantic/Var.go new file mode 100644 index 0000000000..79c09ee54d --- /dev/null +++ b/semantic/internal/fbsemantic/Var.go @@ -0,0 +1,49 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package fbsemantic + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Var struct { + _tab flatbuffers.Table +} + +func GetRootAsVar(buf []byte, offset flatbuffers.UOffsetT) *Var { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Var{} + x.Init(buf, n+offset) + return x +} + +func (rcv *Var) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Var) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Var) I() uint64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetUint64(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Var) MutateI(n uint64) bool { + return rcv._tab.MutateUint64Slot(4, n) +} + +func VarStart(builder *flatbuffers.Builder) { + builder.StartObject(1) +} +func VarAddI(builder *flatbuffers.Builder, i uint64) { + builder.PrependUint64Slot(0, i, 0) +} +func VarEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/semantic/semantic.fbs b/semantic/semantic.fbs index 0f7fa5ab3f..6d8f92116d 100644 --- a/semantic/semantic.fbs +++ b/semantic/semantic.fbs @@ -1,80 +1,159 @@ -namespace fbsemantic; +namespace fbsemantic; + +union MonoType { + Basic, + Var, + Arr, + Row, + Fun, +} + +enum Type : ubyte { + Bool, + Int, + Uint, + Float, + String, + Duration, + Time, + Regexp, +} + +table Var { + i:ulong; +} + +table Basic { + t:Type; +} + +// TODO: required directives have been commented out due to the following issue: +// https://github.com/google/flatbuffers/issues/5055 +// +// Uncomment when the fix https://github.com/google/flatbuffers/pull/5056 has +// been released. + +table Arr { + t:MonoType /*(required)*/; +} + +table Row { + props:[Prop] /*(required)*/; + extends:Var; +} + +table Fun { + args:[Argument] /*(required)*/; + retn:MonoType /*(required)*/; +} + +table Argument { + name:string /*(required)*/; + t:MonoType /*(required)*/; + pipe:bool; + optional:bool; +} + +table Prop { + k:string /*(required)*/; + v:MonoType /*(required)*/; +} + +table PolyType { + vars:[Var] /*(required)*/; + cons:[Constraint] /*(required)*/; + expr:MonoType /*(required)*/; +} + +enum Kind : ubyte { + Addable, + Subtractable, + Divisible, + Comparable, + Equatable, + Nullable, +} + +table Constraint { + tvar:Var /*(required)*/; + kind:Kind; +} union Statement { - OptionStatement, - BuiltinStatement, - TestStatement, - ExpressionStatement, - ReturnStatement, + OptionStatement, + BuiltinStatement, + TestStatement, + ExpressionStatement, + ReturnStatement, } union Assignment { - MemberAssignment, - NativeVariableAssignment, + MemberAssignment, + NativeVariableAssignment, } union Expression { - StringExpression, - ArrayExpression, - FunctionExpression, - BinaryExpression, - CallExpression, - ConditionalExpression, - IdentifierExpression, - LogicalExpression, - MemberExpression, - IndexExpression, - ObjectExpression, - UnaryExpression, - BooleanLiteral, - DateTimeLiteral, - DurationLiteral, - FloatLiteral, - IntegerLiteral, - StringLiteral, - RegexpLiteral, - UnsignedIntegerLiteral, + StringExpression, + ArrayExpression, + FunctionExpression, + BinaryExpression, + CallExpression, + ConditionalExpression, + IdentifierExpression, + LogicalExpression, + MemberExpression, + IndexExpression, + ObjectExpression, + UnaryExpression, + BooleanLiteral, + DateTimeLiteral, + DurationLiteral, + FloatLiteral, + IntegerLiteral, + StringLiteral, + RegexpLiteral, + UnsignedIntegerLiteral, } table Package { - loc:SourceLocation; - package:string; - files:[File]; + loc:SourceLocation; + package:string; + files:[File]; } table File { - loc:SourceLocation; - package:PackageClause; - imports:[ImportDeclaration]; - body:[WrappedStatement]; + loc:SourceLocation; + package:PackageClause; + imports:[ImportDeclaration]; + body:[WrappedStatement]; } table PackageClause { - loc:SourceLocation; - name:Identifier; + loc:SourceLocation; + name:Identifier; } table ImportDeclaration { - loc:SourceLocation; - alias:Identifier; - path:StringLiteral; + loc:SourceLocation; + alias:Identifier; + path:StringLiteral; } table Block { - loc:SourceLocation; - body:[WrappedStatement]; + loc:SourceLocation; + body:[WrappedStatement]; } table SourceLocation { - file:string; - start:Position; - end:Position; - source:string; + file:string; + start:Position; + end:Position; + source:string; } struct Position { - line:int; - column:int; + line:int; + column:int; } // Statements @@ -82,44 +161,45 @@ struct Position { // Unions cannot be vector elements, // so wrap the union in a table. table WrappedStatement { - statement:Statement; + statement:Statement; } table OptionStatement { - loc:SourceLocation; - assignment:Assignment; + loc:SourceLocation; + assignment:Assignment; } table BuiltinStatement { - loc:SourceLocation; - id:Identifier; + loc:SourceLocation; + id:Identifier; } table TestStatement { - loc:SourceLocation; - assignment:NativeVariableAssignment; + loc:SourceLocation; + assignment:NativeVariableAssignment; } table ExpressionStatement { - loc:SourceLocation; - expression:Expression; + loc:SourceLocation; + expression:Expression; } table ReturnStatement { - loc:SourceLocation; - argument:Expression; + loc:SourceLocation; + argument:Expression; } table NativeVariableAssignment { - loc:SourceLocation; - identifier:Identifier; - init_:Expression; + loc:SourceLocation; + identifier:Identifier; + init_:Expression; + typ:MonoType; } table MemberAssignment { - loc:SourceLocation; - member:MemberExpression; - init_:Expression; + loc:SourceLocation; + member:MemberExpression; + init_:Expression; } // Expressions @@ -127,37 +207,40 @@ table MemberAssignment { // Unions cannot be vector elements, // so wrap the union in a table. table WrappedExpression { - expression:Expression; + expression:Expression; } table StringExpression { - loc:SourceLocation; - parts:[StringExpressionPart]; + loc:SourceLocation; + parts:[StringExpressionPart]; + typ:MonoType; } table StringExpressionPart { - loc:SourceLocation; - // Following two fields are mutually exclusive: - text_value:string; // for TextPart - interpolated_expression:Expression; // for InterpolatedPart + loc:SourceLocation; + // Following two fields are mutually exclusive: + text_value:string;// for TextPart + interpolated_expression:Expression;// for InterpolatedPart } table ArrayExpression { - loc:SourceLocation; - elements:[WrappedExpression]; + loc:SourceLocation; + elements:[WrappedExpression]; + typ:MonoType; } table FunctionExpression { - loc:SourceLocation; - params:[FunctionParameter]; - body:Block; + loc:SourceLocation; + params:[FunctionParameter]; + body:Block; + typ:MonoType; } table FunctionParameter { - loc:SourceLocation; - is_pipe: bool; - key:Identifier; - default:Expression; + loc:SourceLocation; + is_pipe: bool; + key:Identifier; + default:Expression; } enum Operator : byte { @@ -190,92 +273,104 @@ enum LogicalOperator : byte { } table BinaryExpression { - loc:SourceLocation; - operator:Operator; - left: Expression; - right: Expression; + loc:SourceLocation; + operator:Operator; + left: Expression; + right: Expression; + typ:MonoType; } table CallExpression { - loc:SourceLocation; - callee:Expression; - arguments:ObjectExpression; - pipe:Expression; + loc:SourceLocation; + callee:Expression; + arguments:ObjectExpression; + pipe:Expression; + typ:MonoType; } table ConditionalExpression { - loc:SourceLocation; - test:Expression; - alternate:Expression; - consequent:Expression; + loc:SourceLocation; + test:Expression; + alternate:Expression; + consequent:Expression; + typ:MonoType; } table LogicalExpression { - loc:SourceLocation; - operator:LogicalOperator; - left:Expression; - right:Expression; + loc:SourceLocation; + operator:LogicalOperator; + left:Expression; + right:Expression; + typ:MonoType; } table MemberExpression { - loc:SourceLocation; - object:Expression; - property:string; + loc:SourceLocation; + object:Expression; + property:string; + typ:MonoType; } table IndexExpression { - loc:SourceLocation; - array:Expression; - index:Expression; + loc:SourceLocation; + array:Expression; + index:Expression; + typ:MonoType; } table ObjectExpression { - loc:SourceLocation; - with:IdentifierExpression; - properties:[Property]; + loc:SourceLocation; + with:IdentifierExpression; + properties:[Property]; + typ:MonoType; } table UnaryExpression { - loc:SourceLocation; - operator:Operator; - argument:Expression; + loc:SourceLocation; + operator:Operator; + argument:Expression; + typ:MonoType; } table Property { - loc:SourceLocation; - key:Identifier; - value:Expression; + loc:SourceLocation; + key:Identifier; + value:Expression; } -table IdentifierExpression { - loc:SourceLocation; - name:string; +table IdentifierExpression { + loc:SourceLocation; + name:string; + typ:MonoType; } table Identifier { - loc:SourceLocation; - name:string; + loc:SourceLocation; + name:string; } table BooleanLiteral { - loc:SourceLocation; - value:bool; + loc:SourceLocation; + value:bool; + typ:MonoType; } table DateTimeLiteral { - loc:SourceLocation; - value:Time; + loc:SourceLocation; + value:Time; + typ:MonoType; } table Time { - secs:int64; - nsecs:uint32; - offset:int32; + secs:int64; + nsecs:uint32; + offset:int32; } table DurationLiteral { - loc:SourceLocation; - value:[Duration]; + loc:SourceLocation; + value:[Duration]; + typ:MonoType; } enum TimeUnit : byte { @@ -297,28 +392,33 @@ table Duration { } table IntegerLiteral { - loc:SourceLocation; - value:int64; + loc:SourceLocation; + value:int64; + typ:MonoType; } table FloatLiteral { - loc:SourceLocation; - value:float64; + loc:SourceLocation; + value:float64; + typ:MonoType; } table RegexpLiteral { - loc:SourceLocation; - value:string; + loc:SourceLocation; + value:string; + typ:MonoType; } table StringLiteral { - loc:SourceLocation; - value:string; + loc:SourceLocation; + value:string; + typ:MonoType; } table UnsignedIntegerLiteral { - loc:SourceLocation; - value:uint64; + loc:SourceLocation; + value:uint64; + typ:MonoType; } root_type Package; From 91e6a7991bf2c21c3e8bddd757811380c2cdc81b Mon Sep 17 00:00:00 2001 From: jlapacik Date: Mon, 25 Nov 2019 11:19:05 -0800 Subject: [PATCH 07/19] feat(libflux): MonoType and PolyType flatbuffer encodings --- libflux/src/semantic/flatbuffers/mod.rs | 2 + libflux/src/semantic/flatbuffers/tests.rs | 67 --- libflux/src/semantic/flatbuffers/types.rs | 577 ++++++++++++++++++++++ 3 files changed, 579 insertions(+), 67 deletions(-) create mode 100644 libflux/src/semantic/flatbuffers/mod.rs delete mode 100644 libflux/src/semantic/flatbuffers/tests.rs create mode 100644 libflux/src/semantic/flatbuffers/types.rs diff --git a/libflux/src/semantic/flatbuffers/mod.rs b/libflux/src/semantic/flatbuffers/mod.rs new file mode 100644 index 0000000000..6c04a1b4eb --- /dev/null +++ b/libflux/src/semantic/flatbuffers/mod.rs @@ -0,0 +1,2 @@ +mod semantic_generated; +mod types; diff --git a/libflux/src/semantic/flatbuffers/tests.rs b/libflux/src/semantic/flatbuffers/tests.rs deleted file mode 100644 index 78e4d702ba..0000000000 --- a/libflux/src/semantic/flatbuffers/tests.rs +++ /dev/null @@ -1,67 +0,0 @@ -extern crate flatbuffers; - -use super::fbsemantic::fbsemantic::*; - -#[test] -fn test_flatbuffers_semantic() { - let mut builder = flatbuffers::FlatBufferBuilder::new_with_capacity(256); - - // Testing out a unary expression using a float - let floatval = FloatLiteral::create( - &mut builder, - &FloatLiteralArgs { - value: 3.5, - ..FloatLiteralArgs::default() - }, - ); - - let increment = UnaryExpression::create( - &mut builder, - &UnaryExpressionArgs { - operator: Operator::SubtractionOperator, - argument: Expression::FloatLiteral, - ..UnaryExpressionArgs::default() - }, - ); - - let statement = ExpressionStatement::create( - &mut builder, - &ExpressionStatementArgs { - expression_type: Expression::UnaryExpression, - expression: Some(add.as_union_value()), - ..ExpressionStatementArgs::default() - }, - ); - - let wrappedStatement = WrappedStatement::create( - &mut builder, - &WrappedStatementArgs { - statement_type: Statement::ExpressionStatement, - statement: Some(statement.as_union_value()), - }, - ); - - let statements = b.create_vector(&[wrappedStatement]); - - let file = File::create( - &mut builder, - &FileArgs { - body: Some(statements), - ..FileArgs::default() - }, - ); - - let files = b.create_vector(&[file]); - - let pkg = Package::create( - &mut builder, - &PackageArgs { - files: Some(files), - ..PackageArgs::default() - }, - ); - - builder.finish(pkg, None); - let bytes = builder.finished_data(); - assert_ne!(bytes.len(), 0); -} diff --git a/libflux/src/semantic/flatbuffers/types.rs b/libflux/src/semantic/flatbuffers/types.rs new file mode 100644 index 0000000000..9f686974c0 --- /dev/null +++ b/libflux/src/semantic/flatbuffers/types.rs @@ -0,0 +1,577 @@ +//! This module defines methods for serializing and deserializing MonoTypes +//! and PolyTypes using the flatbuffer encoding. +//! +use crate::semantic::flatbuffers::semantic_generated::fbsemantic as fb; + +use flatbuffers; +use std::collections::HashMap; + +#[rustfmt::skip] +use crate::semantic::types::{ + Array, + Function, + Kind, + MonoType, + PolyType, + Property, + Row, + Tvar, +}; + +/// Decodes a PolyType from a flatbuffer +impl From> for Option { + fn from(t: fb::PolyType) -> Option { + let v = t.vars()?; + let mut vars = Vec::new(); + for i in 0..v.len() { + vars.push(v.get(i).into()); + } + let c = t.cons()?; + let mut cons = HashMap::new(); + for i in 0..c.len() { + let constraint: Option<(Tvar, Kind)> = c.get(i).into(); + let (tv, kind) = constraint?; + cons.entry(tv).or_insert(Vec::new()).push(kind); + } + Some(PolyType { + vars, + cons, + expr: from_table(t.expr()?, t.expr_type())?, + }) + } +} + +impl From> for Option<(Tvar, Kind)> { + fn from(c: fb::Constraint) -> Option<(Tvar, Kind)> { + Some((c.tvar()?.into(), c.kind().into())) + } +} + +impl From for Kind { + fn from(kind: fb::Kind) -> Kind { + match kind { + fb::Kind::Addable => Kind::Addable, + fb::Kind::Subtractable => Kind::Subtractable, + fb::Kind::Divisible => Kind::Divisible, + fb::Kind::Comparable => Kind::Comparable, + fb::Kind::Equatable => Kind::Equatable, + fb::Kind::Nullable => Kind::Nullable, + } + } +} + +impl From for fb::Kind { + fn from(kind: Kind) -> fb::Kind { + match kind { + Kind::Addable => fb::Kind::Addable, + Kind::Subtractable => fb::Kind::Subtractable, + Kind::Divisible => fb::Kind::Divisible, + Kind::Comparable => fb::Kind::Comparable, + Kind::Equatable => fb::Kind::Equatable, + Kind::Nullable => fb::Kind::Nullable, + } + } +} + +fn from_table(table: flatbuffers::Table, t: fb::MonoType) -> Option { + match t { + fb::MonoType::Basic => { + let basic = fb::Basic::init_from_table(table); + Some(basic.into()) + } + fb::MonoType::Var => { + let var = fb::Var::init_from_table(table); + Some(MonoType::Var(Tvar::from(var))) + } + fb::MonoType::Arr => { + let opt: Option = fb::Arr::init_from_table(table).into(); + Some(MonoType::Arr(Box::new(opt?))) + } + fb::MonoType::Fun => { + let opt: Option = fb::Fun::init_from_table(table).into(); + Some(MonoType::Fun(Box::new(opt?))) + } + fb::MonoType::Row => fb::Row::init_from_table(table).into(), + fb::MonoType::NONE => None, + } +} + +impl From> for MonoType { + fn from(t: fb::Basic) -> MonoType { + match t.t() { + fb::Type::Bool => MonoType::Bool, + fb::Type::Int => MonoType::Int, + fb::Type::Uint => MonoType::Uint, + fb::Type::Float => MonoType::Float, + fb::Type::String => MonoType::String, + fb::Type::Duration => MonoType::Duration, + fb::Type::Time => MonoType::Time, + fb::Type::Regexp => MonoType::Regexp, + } + } +} + +impl From> for Tvar { + fn from(t: fb::Var) -> Tvar { + Tvar(t.i()) + } +} + +impl From> for Option { + fn from(t: fb::Arr) -> Option { + Some(Array(from_table(t.t()?, t.t_type())?)) + } +} + +impl From> for Option { + fn from(t: fb::Row) -> Option { + let mut r = match t.extends() { + None => MonoType::Row(Box::new(Row::Empty)), + Some(tv) => MonoType::Var(tv.into()), + }; + let p = t.props()?; + for i in (0..p.len()).rev() { + let prop: Option = p.get(i).into(); + r = MonoType::Row(Box::new(Row::Extension { + head: prop?, + tail: r, + })); + } + Some(r) + } +} + +impl From> for Option { + fn from(t: fb::Prop) -> Option { + Some(Property { + k: t.k()?.to_owned(), + v: from_table(t.v()?, t.v_type())?, + }) + } +} + +impl From> for Option { + fn from(t: fb::Fun) -> Option { + let args = t.args()?; + let mut req = HashMap::new(); + let mut opt = HashMap::new(); + let mut pipe = None; + for i in 0..args.len() { + match args.get(i).into() { + None => { + return None; + } + Some((k, v, true, _)) => { + pipe = Some(Property { k, v }); + } + Some((name, t, _, true)) => { + opt.insert(name, t); + } + Some((name, t, false, false)) => { + req.insert(name, t); + } + }; + } + Some(Function { + req, + opt, + pipe, + retn: from_table(t.retn()?, t.retn_type())?, + }) + } +} + +impl From> for Option<(String, MonoType, bool, bool)> { + fn from(t: fb::Argument) -> Option<(String, MonoType, bool, bool)> { + Some(( + t.name()?.to_owned(), + from_table(t.t()?, t.t_type())?, + t.pipe(), + t.optional(), + )) + } +} + +fn build_vec(v: Vec, b: &mut B, f: F) -> Vec +where + F: Fn(&mut B, T) -> S, +{ + let mut mapped = Vec::new(); + for t in v { + mapped.push(f(b, t)); + } + mapped +} + +/// Encodes a polytype as a flatbuffer +fn build_polytype<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + t: PolyType, +) -> flatbuffers::WIPOffset> { + let vars = build_vec(t.vars, builder, build_var); + let vars = builder.create_vector(vars.as_slice()); + + let mut cons = Vec::new(); + for (tv, kinds) in t.cons { + for k in kinds { + cons.push((tv, k)); + } + } + let cons = build_vec(cons, builder, build_constraint); + let cons = builder.create_vector(cons.as_slice()); + + let (buf_offset, expr) = build_type(builder, t.expr); + fb::PolyType::create( + builder, + &fb::PolyTypeArgs { + vars: Some(vars), + cons: Some(cons), + expr_type: expr, + expr: Some(buf_offset), + }, + ) +} + +fn build_constraint<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + constraint: (Tvar, Kind), +) -> flatbuffers::WIPOffset> { + let tvar = build_var(builder, constraint.0); + fb::Constraint::create( + builder, + &fb::ConstraintArgs { + tvar: Some(tvar), + kind: constraint.1.into(), + }, + ) +} + +fn build_type<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + t: MonoType, +) -> ( + flatbuffers::WIPOffset, + fb::MonoType, +) { + match t { + MonoType::Bool => { + let a = fb::BasicArgs { t: fb::Type::Bool }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Int => { + let a = fb::BasicArgs { t: fb::Type::Int }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Uint => { + let a = fb::BasicArgs { t: fb::Type::Uint }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Float => { + let a = fb::BasicArgs { t: fb::Type::Float }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::String => { + let a = fb::BasicArgs { + t: fb::Type::String, + }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Duration => { + let a = fb::BasicArgs { + t: fb::Type::Duration, + }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Time => { + let a = fb::BasicArgs { t: fb::Type::Time }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Regexp => { + let a = fb::BasicArgs { + t: fb::Type::Regexp, + }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } + MonoType::Var(tvr) => { + let offset = build_var(builder, tvr); + (offset.as_union_value(), fb::MonoType::Var) + } + MonoType::Arr(arr) => { + let offset = build_arr(builder, *arr); + (offset.as_union_value(), fb::MonoType::Arr) + } + MonoType::Row(row) => { + let offset = build_row(builder, *row); + (offset.as_union_value(), fb::MonoType::Row) + } + MonoType::Fun(fun) => { + let offset = build_fun(builder, *fun); + (offset.as_union_value(), fb::MonoType::Fun) + } + } +} + +fn build_var<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + var: Tvar, +) -> flatbuffers::WIPOffset> { + fb::Var::create(builder, &fb::VarArgs { i: var.0 }) +} + +fn build_arr<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + mut arr: Array, +) -> flatbuffers::WIPOffset> { + let (off, typ) = build_type(builder, arr.0); + fb::Arr::create( + builder, + &fb::ArrArgs { + t_type: typ, + t: Some(off), + }, + ) +} + +fn build_row<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + mut row: Row, +) -> flatbuffers::WIPOffset> { + let mut props = Vec::new(); + let extends = loop { + match row { + Row::Empty => { + break None; + } + Row::Extension { + head, + tail: MonoType::Row(o), + } => { + props.push(head); + row = *o; + } + Row::Extension { + head, + tail: MonoType::Var(t), + } => { + props.push(head); + break Some(t); + } + Row::Extension { head, tail } => { + break None; + } + } + }; + let props = build_vec(props, builder, build_prop); + let props = builder.create_vector(props.as_slice()); + let extends = match extends { + None => None, + Some(tv) => Some(build_var(builder, tv)), + }; + fb::Row::create( + builder, + &fb::RowArgs { + props: Some(props), + extends, + }, + ) +} + +fn build_prop<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + prop: Property, +) -> flatbuffers::WIPOffset> { + let (off, typ) = build_type(builder, prop.v); + let k = builder.create_string(&prop.k); + fb::Prop::create( + builder, + &fb::PropArgs { + k: Some(k), + v_type: typ, + v: Some(off), + }, + ) +} + +fn build_fun<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + mut fun: Function, +) -> flatbuffers::WIPOffset> { + let mut args = Vec::new(); + if let Some(pipe) = fun.pipe { + args.push((pipe.k, pipe.v, true, false)) + }; + for (k, v) in fun.req { + args.push((k, v, false, false)); + } + for (k, v) in fun.opt { + args.push((k, v, false, true)); + } + let args = build_vec(args, builder, build_arg); + let args = builder.create_vector(args.as_slice()); + + let (ret, typ) = build_type(builder, fun.retn); + fb::Fun::create( + builder, + &fb::FunArgs { + args: Some(args), + retn_type: typ, + retn: Some(ret), + }, + ) +} + +fn build_arg<'a>( + builder: &mut flatbuffers::FlatBufferBuilder<'a>, + arg: (String, MonoType, bool, bool), +) -> flatbuffers::WIPOffset> { + let name = builder.create_string(&arg.0); + let (buf_offset, typ) = build_type(builder, arg.1); + fb::Argument::create( + builder, + &fb::ArgumentArgs { + name: Some(name), + t_type: typ, + t: Some(buf_offset), + pipe: arg.2, + optional: arg.3, + }, + ) +} + +#[cfg(test)] +mod tests { + use super::*; + use maplit; + + use crate::semantic::parser; + + #[rustfmt::skip] + use crate::semantic::flatbuffers::semantic_generated::fbsemantic::{ + Expression, + ExpressionStatement, + ExpressionStatementArgs, + File, + FileArgs, + FloatLiteral, + FloatLiteralArgs, + Operator, + Package, + PackageArgs, + Statement, + UnaryExpression, + UnaryExpressionArgs, + WrappedStatement, + WrappedStatementArgs, + }; + + fn fb_serde(t: PolyType) -> Option { + let mut fb = flatbuffers::FlatBufferBuilder::new(); + let off = build_polytype(&mut fb, t); + fb.finish(off, None); + let buf = fb.finished_data(); + flatbuffers::get_root::(buf).into() + } + + fn test_serde(expr: &'static str) { + let want = parser::parse(expr).unwrap(); + assert_eq!(want.clone(), fb_serde(want).unwrap()) + } + + #[test] + fn serde_basic_types() { + test_serde("forall [] bool"); + test_serde("forall [] int"); + test_serde("forall [] uint"); + test_serde("forall [] float"); + test_serde("forall [] string"); + test_serde("forall [] duration"); + test_serde("forall [] time"); + test_serde("forall [] regexp"); + } + #[test] + fn serde_array_type() { + test_serde("forall [t0] [t0]"); + } + #[test] + fn serde_function_types() { + test_serde("forall [t0] (<-tables: [t0], ?flag: bool, fn: (r: t0) -> bool) -> [t0]"); + test_serde("forall [t0, t1] where t0: Addable, t1: Divisible (a: t0, b: t1) -> bool"); + } + #[test] + fn serde_record_types() { + test_serde( + "forall [t0] {a: int | b: float | c: {d: string | d: string | d: time | d: {}} | t0}", + ); + } + #[test] + fn test_flatbuffers_semantic() { + let mut builder = flatbuffers::FlatBufferBuilder::new_with_capacity(256); + + // Testing out a unary expression using a float + let floatval = FloatLiteral::create( + &mut builder, + &FloatLiteralArgs { + value: 3.5, + ..FloatLiteralArgs::default() + }, + ); + + let increment = UnaryExpression::create( + &mut builder, + &UnaryExpressionArgs { + operator: Operator::SubtractionOperator, + argument: Some(floatval.as_union_value()), + ..UnaryExpressionArgs::default() + }, + ); + + let statement = ExpressionStatement::create( + &mut builder, + &ExpressionStatementArgs { + expression_type: Expression::UnaryExpression, + expression: Some(increment.as_union_value()), + ..ExpressionStatementArgs::default() + }, + ); + + let wrappedStatement = WrappedStatement::create( + &mut builder, + &WrappedStatementArgs { + statement_type: Statement::ExpressionStatement, + statement: Some(statement.as_union_value()), + }, + ); + + let statements = builder.create_vector(&[wrappedStatement]); + + let file = File::create( + &mut builder, + &FileArgs { + body: Some(statements), + ..FileArgs::default() + }, + ); + + let files = builder.create_vector(&[file]); + + let pkg = Package::create( + &mut builder, + &PackageArgs { + files: Some(files), + ..PackageArgs::default() + }, + ); + + builder.finish(pkg, None); + let bytes = builder.finished_data(); + assert_ne!(bytes.len(), 0); + } +} From 70b314c547c442dfa0ef90d7bcbd295237e7cdaf Mon Sep 17 00:00:00 2001 From: Lorenzo Affetti Date: Mon, 25 Nov 2019 20:44:25 +0100 Subject: [PATCH 08/19] feat(libflux): inject types in the semantic graph (#2183) --- libflux/src/semantic/mod.rs | 22 +- libflux/src/semantic/nodes.rs | 420 +++++++++++++++++++++++- libflux/src/semantic/sub.rs | 9 +- libflux/src/semantic/walk/mod.rs | 3 + libflux/src/semantic/walk/test_utils.rs | 19 ++ libflux/src/semantic/walk/walk.rs | 37 ++- libflux/src/semantic/walk/walk_mut.rs | 174 +++++----- libflux/tests/analyze_test.rs | 175 ++++++++++ 8 files changed, 755 insertions(+), 104 deletions(-) create mode 100644 libflux/src/semantic/walk/test_utils.rs create mode 100644 libflux/tests/analyze_test.rs diff --git a/libflux/src/semantic/mod.rs b/libflux/src/semantic/mod.rs index 986bf2a6da..f1ba5ee803 100644 --- a/libflux/src/semantic/mod.rs +++ b/libflux/src/semantic/mod.rs @@ -22,9 +22,21 @@ mod flatbuffers; use crate::ast; use crate::parser::parse_string; -use crate::semantic::analyze::Result; +use crate::semantic::analyze::analyze_with; +use crate::semantic::analyze::Result as AnalysisResult; +use crate::semantic::analyze::SemanticError; +use crate::semantic::env::Environment; +use crate::semantic::fresh::Fresher; +use crate::semantic::nodes::Error as InferError; +use crate::semantic::nodes::{infer_pkg_types, inject_pkg_types, Importer}; + +impl From for SemanticError { + fn from(err: InferError) -> SemanticError { + err.msg.clone() + } +} -pub fn analyze_source(source: &str) -> Result { +pub fn analyze_source(source: &str) -> AnalysisResult { let file = parse_string("", source); let errs = ast::check::check(ast::walk::Node::File(&file)); if errs.len() > 0 { @@ -36,5 +48,9 @@ pub fn analyze_source(source: &str) -> Result { package: "main".to_string(), files: vec![file], }; - analyze(ast_pkg) + let mut f = Fresher::new(); + let mut sem_pkg = analyze_with(ast_pkg, &mut f)?; + // TODO(affo): add a stdlib Importer. + let (_, sub) = infer_pkg_types(&mut sem_pkg, Environment::empty(), &mut f, &Importer::new())?; + Ok(inject_pkg_types(sem_pkg, &sub)) } diff --git a/libflux/src/semantic/nodes.rs b/libflux/src/semantic/nodes.rs index 72f1f4caab..ec17ee5730 100644 --- a/libflux/src/semantic/nodes.rs +++ b/libflux/src/semantic/nodes.rs @@ -31,11 +31,11 @@ use std::vec::Vec; // Result returned from the various 'infer' methods defined in this // module. The result of inferring an expression or statment is an // updated type environment and a set of type constraints to be solved. -type Result = std::result::Result<(Environment, Constraints), Error>; +pub type Result = std::result::Result<(Environment, Constraints), Error>; #[derive(Debug)] pub struct Error { - msg: String, + pub msg: String, } impl fmt::Display for Error { @@ -88,12 +88,34 @@ pub enum Statement { Builtin(BuiltinStmt), } +impl Statement { + fn apply(self, sub: &Substitution) -> Self { + match self { + Statement::Expr(stmt) => Statement::Expr(stmt.apply(&sub)), + Statement::Variable(stmt) => Statement::Variable(stmt.apply(&sub)), + Statement::Option(stmt) => Statement::Option(stmt.apply(&sub)), + Statement::Return(stmt) => Statement::Return(stmt.apply(&sub)), + Statement::Test(stmt) => Statement::Test(stmt.apply(&sub)), + Statement::Builtin(stmt) => Statement::Builtin(stmt.apply(&sub)), + } + } +} + #[derive(Debug, PartialEq, Clone)] pub enum Assignment { Variable(VariableAssgn), Member(MemberAssgn), } +impl Assignment { + fn apply(self, sub: &Substitution) -> Self { + match self { + Assignment::Variable(ass) => Assignment::Variable(ass.apply(&sub)), + Assignment::Member(ass) => Assignment::Member(ass.apply(&sub)), + } + } +} + #[derive(Debug, PartialEq, Clone)] pub enum Expression { Identifier(IdentifierExpr), @@ -192,12 +214,44 @@ impl Expression { Expression::Regexp(lit) => lit.infer(env), } } + fn apply(self, sub: &Substitution) -> Self { + match self { + Expression::Identifier(e) => Expression::Identifier(e.apply(&sub)), + Expression::Array(e) => Expression::Array(Box::new(e.apply(&sub))), + Expression::Function(e) => Expression::Function(Box::new(e.apply(&sub))), + Expression::Logical(e) => Expression::Logical(Box::new(e.apply(&sub))), + Expression::Object(e) => Expression::Object(Box::new(e.apply(&sub))), + Expression::Member(e) => Expression::Member(Box::new(e.apply(&sub))), + Expression::Index(e) => Expression::Index(Box::new(e.apply(&sub))), + Expression::Binary(e) => Expression::Binary(Box::new(e.apply(&sub))), + Expression::Unary(e) => Expression::Unary(Box::new(e.apply(&sub))), + Expression::Call(e) => Expression::Call(Box::new(e.apply(&sub))), + Expression::Conditional(e) => Expression::Conditional(Box::new(e.apply(&sub))), + Expression::StringExpr(e) => Expression::StringExpr(Box::new(e.apply(&sub))), + Expression::Integer(lit) => Expression::Integer(lit.apply(&sub)), + Expression::Float(lit) => Expression::Float(lit.apply(&sub)), + Expression::StringLit(lit) => Expression::StringLit(lit.apply(&sub)), + Expression::Duration(lit) => Expression::Duration(lit.apply(&sub)), + Expression::Uint(lit) => Expression::Uint(lit.apply(&sub)), + Expression::Boolean(lit) => Expression::Boolean(lit.apply(&sub)), + Expression::DateTime(lit) => Expression::DateTime(lit.apply(&sub)), + Expression::Regexp(lit) => Expression::Regexp(lit.apply(&sub)), + } + } } pub struct Importer<'a> { values: HashMap<&'a str, PolyType>, } +impl<'a> Importer<'a> { + pub fn new() -> Importer<'a> { + Importer { + values: HashMap::new(), + } + } +} + impl<'a> From> for Importer<'a> { fn from(m: HashMap<&'a str, PolyType>) -> Importer<'a> { Importer { values: m } @@ -221,6 +275,10 @@ pub fn infer_pkg_types( Ok((env, infer::solve(&cons, &mut HashMap::new(), f)?)) } +pub fn inject_pkg_types(pkg: Package, sub: &Substitution) -> Package { + pkg.apply(&sub) +} + #[derive(Debug, PartialEq, Clone)] pub struct Package { pub loc: ast::SourceLocation, @@ -238,6 +296,14 @@ impl Package { Ok((env, cons + rest)) }) } + fn apply(mut self, sub: &Substitution) -> Self { + self.files = self + .files + .into_iter() + .map(|file| file.apply(&sub)) + .collect(); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -302,6 +368,10 @@ impl File { } Ok((env, constraints)) } + fn apply(mut self, sub: &Substitution) -> Self { + self.body = self.body.into_iter().map(|stmt| stmt.apply(&sub)).collect(); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -345,6 +415,10 @@ impl OptionStmt { Assignment::Variable(stmt) => stmt.infer(env, f), } } + fn apply(mut self, sub: &Substitution) -> Self { + self.assignment = self.assignment.apply(&sub); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -358,6 +432,9 @@ impl BuiltinStmt { fn infer(&self, _: Environment, _: &mut Fresher) -> Result { unimplemented!(); } + fn apply(self, _sub: &Substitution) -> Self { + unimplemented!() + } } #[derive(Debug, PartialEq, Clone)] @@ -371,6 +448,10 @@ impl TestStmt { fn infer(&mut self, env: Environment, f: &mut Fresher) -> Result { self.assignment.infer(env, f) } + fn apply(mut self, sub: &Substitution) -> Self { + self.assignment = self.assignment.apply(&sub); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -386,6 +467,10 @@ impl ExprStmt { let sub = infer::solve(&cons, &mut HashMap::new(), f)?; Ok((env.apply(&sub), cons)) } + fn apply(mut self, sub: &Substitution) -> Self { + self.expression = self.expression.apply(&sub); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -400,9 +485,14 @@ impl ReturnStmt { fn infer(&mut self, env: Environment, f: &mut Fresher) -> Result { self.argument.infer(env, f) } + fn apply(mut self, sub: &Substitution) -> Self { + self.argument = self.argument.apply(&sub); + self + } } -#[derive(Debug, Derivative, PartialEq, Clone)] +#[derive(Debug, Derivative, Clone)] +#[derivative(PartialEq)] pub struct VariableAssgn { #[derivative(PartialEq = "ignore")] vars: Vec, @@ -466,6 +556,10 @@ impl VariableAssgn { &mut env.add(String::from(&self.id.name), p); Ok((env, constraints)) } + fn apply(mut self, sub: &Substitution) -> Self { + self.init = self.init.apply(&sub); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -476,6 +570,14 @@ pub struct MemberAssgn { pub init: Expression, } +impl MemberAssgn { + fn apply(mut self, sub: &Substitution) -> Self { + self.member = self.member.apply(&sub); + self.init = self.init.apply(&sub); + self + } +} + #[derive(Derivative)] #[derivative(Debug, PartialEq, Clone)] pub struct StringExpr { @@ -504,6 +606,15 @@ impl StringExpr { constraints.push(Constraint::Equal(self.typ.clone(), MonoType::String)); return Ok((env, Constraints::from(constraints))); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.parts = self + .parts + .into_iter() + .map(|part| part.apply(&sub)) + .collect(); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -512,6 +623,15 @@ pub enum StringExprPart { Interpolated(InterpolatedPart), } +impl StringExprPart { + fn apply(self, sub: &Substitution) -> Self { + match self { + StringExprPart::Interpolated(part) => StringExprPart::Interpolated(part.apply(&sub)), + StringExprPart::Text(_) => self, + } + } +} + #[derive(Debug, PartialEq, Clone)] pub struct TextPart { pub loc: ast::SourceLocation, @@ -526,6 +646,13 @@ pub struct InterpolatedPart { pub expression: Expression, } +impl InterpolatedPart { + fn apply(mut self, sub: &Substitution) -> Self { + self.expression = self.expression.apply(&sub); + self + } +} + #[derive(Derivative)] #[derivative(Debug, PartialEq, Clone)] pub struct ArrayExpr { @@ -550,6 +677,15 @@ impl ArrayExpr { cons.push(Constraint::Equal(at, self.typ.clone())); return Ok((env, cons.into())); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.elements = self + .elements + .into_iter() + .map(|element| element.apply(&sub)) + .collect(); + self + } } // FunctionExpr represents the definition of a function @@ -634,7 +770,6 @@ impl FunctionExpr { cons.add(Constraint::Equal(func, self.typ.clone())); return Ok((env, cons)); } - pub fn pipe(&self) -> Option<&FunctionParameter> { for p in &self.params { if p.is_pipe { @@ -643,7 +778,6 @@ impl FunctionExpr { } None } - pub fn defaults(&self) -> Vec<&FunctionParameter> { let mut ds = Vec::new(); for p in &self.params { @@ -654,6 +788,16 @@ impl FunctionExpr { } ds } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.params = self + .params + .into_iter() + .map(|param| param.apply(&sub)) + .collect(); + self.body = self.body.apply(&sub); + self + } } // Block represents a function block and is equivalent to a let-expression @@ -705,6 +849,15 @@ impl Block { } } } + fn apply(self, sub: &Substitution) -> Self { + match self { + Block::Variable(ass, next) => { + Block::Variable(ass.apply(&sub), Box::new(next.apply(&sub))) + } + Block::Expr(es, next) => Block::Expr(es.apply(&sub), Box::new(next.apply(&sub))), + Block::Return(e) => Block::Return(e.apply(&sub)), + } + } } // FunctionParameter represents a function parameter. @@ -717,6 +870,18 @@ pub struct FunctionParameter { pub default: Option, } +impl FunctionParameter { + fn apply(mut self, sub: &Substitution) -> Self { + match self.default { + Some(e) => { + self.default = Some(e.apply(&sub)); + self + } + None => self, + } + } +} + #[derive(Derivative)] #[derivative(Debug, PartialEq, Clone)] pub struct BinaryExpr { @@ -817,6 +982,12 @@ impl BinaryExpr { // Otherwise, add the constraints together and return them. return Ok((env, lcons + rcons + cons)); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.left = self.left.apply(&sub); + self.right = self.right.apply(&sub); + self + } } #[derive(Derivative)] @@ -881,6 +1052,22 @@ impl CallExpr { )); Ok((env, cons)) } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.callee = self.callee.apply(&sub); + self.arguments = self + .arguments + .into_iter() + .map(|arg| arg.apply(&sub)) + .collect(); + match self.pipe { + Some(e) => { + self.pipe = Some(e.apply(&sub)); + self + } + None => self, + } + } } #[derive(Derivative)] @@ -913,6 +1100,13 @@ impl ConditionalExpr { ]); return Ok((env, cons)); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.test = self.test.apply(&sub); + self.consequent = self.consequent.apply(&sub); + self.alternate = self.alternate.apply(&sub); + self + } } #[derive(Derivative)] @@ -940,6 +1134,12 @@ impl LogicalExpr { ]); return Ok((env, cons)); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.left = self.left.apply(&sub); + self.right = self.right.apply(&sub); + self + } } #[derive(Derivative)] @@ -973,6 +1173,11 @@ impl MemberExpr { let (env, cons) = self.object.infer(env, f)?; Ok((env, cons + vec![Constraint::Equal(t, r)].into())) } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.object = self.object.apply(&sub); + self + } } #[derive(Derivative)] @@ -1001,6 +1206,12 @@ impl IndexExpr { ]); return Ok((env, cons)); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.array = self.array.apply(&sub); + self.index = self.index.apply(&sub); + self + } } #[derive(Derivative)] @@ -1046,6 +1257,18 @@ impl ObjectExpr { cons + vec![Constraint::Equal(self.typ.to_owned(), r)].into(), )) } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + if let Some(e) = self.with { + self.with = Some(e.apply(&sub)); + } + self.properties = self + .properties + .into_iter() + .map(|prop| prop.apply(&sub)) + .collect(); + self + } } #[derive(Derivative)] @@ -1082,6 +1305,11 @@ impl UnaryExpr { }; return Ok((env, acons + cons)); } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self.argument = self.argument.apply(&sub); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -1092,6 +1320,13 @@ pub struct Property { pub value: Expression, } +impl Property { + fn apply(mut self, sub: &Substitution) -> Self { + self.value = self.value.apply(&sub); + self + } +} + #[derive(Derivative)] #[derivative(Debug, PartialEq, Clone)] pub struct IdentifierExpr { @@ -1115,6 +1350,10 @@ impl IdentifierExpr { None => Err(Error::undeclared_variable(self.name.to_string())), } } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self + } } #[derive(Debug, PartialEq, Clone)] @@ -1136,7 +1375,11 @@ pub struct BooleanLit { impl BooleanLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Bool); + infer_literal(env, &self.typ, MonoType::Bool) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1152,7 +1395,11 @@ pub struct IntegerLit { impl IntegerLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Int); + infer_literal(env, &self.typ, MonoType::Int) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1168,7 +1415,11 @@ pub struct FloatLit { impl FloatLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Float); + infer_literal(env, &self.typ, MonoType::Float) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1185,7 +1436,11 @@ pub struct RegexpLit { impl RegexpLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Regexp); + infer_literal(env, &self.typ, MonoType::Regexp) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1201,7 +1456,11 @@ pub struct StringLit { impl StringLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::String); + infer_literal(env, &self.typ, MonoType::String) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1217,7 +1476,11 @@ pub struct UintLit { impl UintLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Uint); + infer_literal(env, &self.typ, MonoType::Uint) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1233,7 +1496,11 @@ pub struct DateTimeLit { impl DateTimeLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Time); + infer_literal(env, &self.typ, MonoType::Time) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } @@ -1249,13 +1516,17 @@ pub struct DurationLit { impl DurationLit { fn infer(&self, env: Environment) -> Result { - return infer_literal(env, &self.typ, MonoType::Duration); + infer_literal(env, &self.typ, MonoType::Duration) + } + fn apply(mut self, sub: &Substitution) -> Self { + self.typ = self.typ.apply(&sub); + self } } fn infer_literal(env: Environment, typ: &MonoType, is: MonoType) -> Result { let constraints = Constraints::from(vec![Constraint::Equal(typ.clone(), is)]); - return Ok((env, constraints)); + Ok((env, constraints)) } const NANOS: i64 = 1; @@ -1294,10 +1565,14 @@ pub fn convert_duration(duration: &Vec) -> std::result::Result MonoType::Int, + Tvar(1) => MonoType::Int, + Tvar(2) => MonoType::Int, + Tvar(3) => MonoType::Int, + Tvar(4) => MonoType::Int, + Tvar(5) => MonoType::Int, + Tvar(6) => MonoType::Int, + Tvar(7) => MonoType::Int, + } + .into(); + let pkg = inject_pkg_types(pkg, &sub); + let mut no_types_checked = 0; + walk( + &mut |node: Rc| { + let typ = node.type_of(); + if let Some(typ) = typ { + assert_eq!(typ, &MonoType::Int); + no_types_checked += 1; + } + }, + Rc::new(Node::Package(&pkg)), + ); + assert_eq!(no_types_checked, 8); + } } diff --git a/libflux/src/semantic/sub.rs b/libflux/src/semantic/sub.rs index 194dc1ce04..3272515ee9 100644 --- a/libflux/src/semantic/sub.rs +++ b/libflux/src/semantic/sub.rs @@ -11,13 +11,20 @@ use std::collections::HashMap; #[derive(Debug, PartialEq)] pub struct Substitution(HashMap); -// Derive a substitution from a hash map +// Derive a substitution from a hash map. impl From> for Substitution { fn from(values: HashMap) -> Substitution { Substitution(values) } } +// Derive a hash map from a substitution. +impl From for HashMap { + fn from(sub: Substitution) -> HashMap { + sub.0 + } +} + impl Substitution { pub fn empty() -> Substitution { Substitution(HashMap::new()) diff --git a/libflux/src/semantic/walk/mod.rs b/libflux/src/semantic/walk/mod.rs index 315e033674..99afc80ae2 100644 --- a/libflux/src/semantic/walk/mod.rs +++ b/libflux/src/semantic/walk/mod.rs @@ -2,3 +2,6 @@ mod walk; mod walk_mut; pub use walk::*; pub use walk_mut::*; + +#[cfg(test)] +mod test_utils; diff --git a/libflux/src/semantic/walk/test_utils.rs b/libflux/src/semantic/walk/test_utils.rs new file mode 100644 index 0000000000..ec98d39fb7 --- /dev/null +++ b/libflux/src/semantic/walk/test_utils.rs @@ -0,0 +1,19 @@ +use crate::ast; +use crate::parser::parse_string; +use crate::semantic::analyze; +use crate::semantic::nodes; + +pub fn compile(source: &str) -> nodes::Package { + let file = parse_string("", source); + let errs = ast::check::check(ast::walk::Node::File(&file)); + if errs.len() > 0 { + panic!(format!("got errors on parsing: {:?}", errs)); + } + let ast_pkg = ast::Package { + base: file.base.clone(), + path: "".to_string(), + package: "main".to_string(), + files: vec![file], + }; + analyze(ast_pkg).unwrap() +} diff --git a/libflux/src/semantic/walk/walk.rs b/libflux/src/semantic/walk/walk.rs index 2779ac41fc..ac253e2950 100644 --- a/libflux/src/semantic/walk/walk.rs +++ b/libflux/src/semantic/walk/walk.rs @@ -1,5 +1,6 @@ use crate::ast::SourceLocation; use crate::semantic::nodes::*; +use crate::semantic::types::MonoType; use std::fmt; use std::rc::Rc; @@ -143,6 +144,31 @@ impl<'a> Node<'a> { Node::MemberAssgn(n) => &n.loc, } } + pub fn type_of(&self) -> Option<&MonoType> { + match self { + Node::IdentifierExpr(n) => Some(&n.typ), + Node::ArrayExpr(n) => Some(&n.typ), + Node::FunctionExpr(n) => Some(&n.typ), + Node::LogicalExpr(n) => Some(&n.typ), + Node::ObjectExpr(n) => Some(&n.typ), + Node::MemberExpr(n) => Some(&n.typ), + Node::IndexExpr(n) => Some(&n.typ), + Node::BinaryExpr(n) => Some(&n.typ), + Node::UnaryExpr(n) => Some(&n.typ), + Node::CallExpr(n) => Some(&n.typ), + Node::ConditionalExpr(n) => Some(&n.typ), + Node::StringExpr(n) => Some(&n.typ), + Node::IntegerLit(n) => Some(&n.typ), + Node::FloatLit(n) => Some(&n.typ), + Node::StringLit(n) => Some(&n.typ), + Node::DurationLit(n) => Some(&n.typ), + Node::UintLit(n) => Some(&n.typ), + Node::BooleanLit(n) => Some(&n.typ), + Node::DateTimeLit(n) => Some(&n.typ), + Node::RegexpLit(n) => Some(&n.typ), + _ => None, + } + } } // Private utility functions. @@ -448,12 +474,7 @@ where #[cfg(test)] mod tests { use super::*; - use crate::semantic::analyze_source; - use crate::semantic::nodes; - - fn compile(source: &str) -> nodes::Package { - analyze_source(source).unwrap() - } + use crate::semantic::walk::test_utils::compile; mod node_ids { use super::*; @@ -834,7 +855,7 @@ mod tests { #[test] fn test_nesting_count() { - let mut pkg = compile( + let pkg = compile( r#" f = () => { // 1 @@ -859,7 +880,7 @@ g() "#, ); let mut v = NestingCounter { count: 0 }; - walk(&mut v, Rc::new(Node::Package(&mut pkg))); + walk(&mut v, Rc::new(Node::Package(&pkg))); assert_eq!(v.count, 5); } diff --git a/libflux/src/semantic/walk/walk_mut.rs b/libflux/src/semantic/walk/walk_mut.rs index 56a08bf263..616d20ff74 100644 --- a/libflux/src/semantic/walk/walk_mut.rs +++ b/libflux/src/semantic/walk/walk_mut.rs @@ -1,5 +1,6 @@ use crate::ast::SourceLocation; use crate::semantic::nodes::*; +use crate::semantic::types::MonoType; use std::fmt; /// NodeMut represents any structure that can appear in the semantic graph. @@ -142,6 +143,100 @@ impl<'a> NodeMut<'a> { NodeMut::MemberAssgn(n) => &n.loc, } } + pub fn type_of(&self) -> Option<&MonoType> { + match self { + NodeMut::IdentifierExpr(n) => Some(&n.typ), + NodeMut::ArrayExpr(n) => Some(&n.typ), + NodeMut::FunctionExpr(n) => Some(&n.typ), + NodeMut::LogicalExpr(n) => Some(&n.typ), + NodeMut::ObjectExpr(n) => Some(&n.typ), + NodeMut::MemberExpr(n) => Some(&n.typ), + NodeMut::IndexExpr(n) => Some(&n.typ), + NodeMut::BinaryExpr(n) => Some(&n.typ), + NodeMut::UnaryExpr(n) => Some(&n.typ), + NodeMut::CallExpr(n) => Some(&n.typ), + NodeMut::ConditionalExpr(n) => Some(&n.typ), + NodeMut::StringExpr(n) => Some(&n.typ), + NodeMut::IntegerLit(n) => Some(&n.typ), + NodeMut::FloatLit(n) => Some(&n.typ), + NodeMut::StringLit(n) => Some(&n.typ), + NodeMut::DurationLit(n) => Some(&n.typ), + NodeMut::UintLit(n) => Some(&n.typ), + NodeMut::BooleanLit(n) => Some(&n.typ), + NodeMut::DateTimeLit(n) => Some(&n.typ), + NodeMut::RegexpLit(n) => Some(&n.typ), + _ => None, + } + } + pub fn set_loc(&mut self, loc: SourceLocation) { + let mut_expr_loc = |expr: &mut Expression, loc: SourceLocation| { + match expr { + Expression::Identifier(ref mut e) => e.loc = loc, + Expression::Array(ref mut e) => e.loc = loc, + Expression::Function(ref mut e) => e.loc = loc, + Expression::Logical(ref mut e) => e.loc = loc, + Expression::Object(ref mut e) => e.loc = loc, + Expression::Member(ref mut e) => e.loc = loc, + Expression::Index(ref mut e) => e.loc = loc, + Expression::Binary(ref mut e) => e.loc = loc, + Expression::Unary(ref mut e) => e.loc = loc, + Expression::Call(ref mut e) => e.loc = loc, + Expression::Conditional(ref mut e) => e.loc = loc, + Expression::StringExpr(ref mut e) => e.loc = loc, + Expression::Integer(ref mut e) => e.loc = loc, + Expression::Float(ref mut e) => e.loc = loc, + Expression::StringLit(ref mut e) => e.loc = loc, + Expression::Duration(ref mut e) => e.loc = loc, + Expression::Uint(ref mut e) => e.loc = loc, + Expression::Boolean(ref mut e) => e.loc = loc, + Expression::DateTime(ref mut e) => e.loc = loc, + Expression::Regexp(ref mut e) => e.loc = loc, + }; + }; + match self { + NodeMut::Package(ref mut n) => n.loc = loc, + NodeMut::File(ref mut n) => n.loc = loc, + NodeMut::PackageClause(ref mut n) => n.loc = loc, + NodeMut::ImportDeclaration(ref mut n) => n.loc = loc, + NodeMut::Identifier(ref mut n) => n.loc = loc, + NodeMut::IdentifierExpr(ref mut n) => n.loc = loc, + NodeMut::ArrayExpr(ref mut n) => n.loc = loc, + NodeMut::FunctionExpr(ref mut n) => n.loc = loc, + NodeMut::FunctionParameter(ref mut n) => n.loc = loc, + NodeMut::LogicalExpr(ref mut n) => n.loc = loc, + NodeMut::ObjectExpr(ref mut n) => n.loc = loc, + NodeMut::MemberExpr(ref mut n) => n.loc = loc, + NodeMut::IndexExpr(ref mut n) => n.loc = loc, + NodeMut::BinaryExpr(ref mut n) => n.loc = loc, + NodeMut::UnaryExpr(ref mut n) => n.loc = loc, + NodeMut::CallExpr(ref mut n) => n.loc = loc, + NodeMut::ConditionalExpr(ref mut n) => n.loc = loc, + NodeMut::StringExpr(ref mut n) => n.loc = loc, + NodeMut::IntegerLit(ref mut n) => n.loc = loc, + NodeMut::FloatLit(ref mut n) => n.loc = loc, + NodeMut::StringLit(ref mut n) => n.loc = loc, + NodeMut::DurationLit(ref mut n) => n.loc = loc, + NodeMut::UintLit(ref mut n) => n.loc = loc, + NodeMut::BooleanLit(ref mut n) => n.loc = loc, + NodeMut::DateTimeLit(ref mut n) => n.loc = loc, + NodeMut::RegexpLit(ref mut n) => n.loc = loc, + NodeMut::ExprStmt(ref mut n) => n.loc = loc, + NodeMut::OptionStmt(ref mut n) => n.loc = loc, + NodeMut::ReturnStmt(ref mut n) => n.loc = loc, + NodeMut::TestStmt(ref mut n) => n.loc = loc, + NodeMut::BuiltinStmt(ref mut n) => n.loc = loc, + NodeMut::Block(Block::Variable(ref mut assgn, _)) => assgn.loc = loc, + NodeMut::Block(Block::Expr(ref mut estmt, _)) => { + mut_expr_loc(&mut estmt.expression, loc) + } + NodeMut::Block(Block::Return(ref mut expr)) => mut_expr_loc(expr, loc), + NodeMut::Property(ref mut n) => n.loc = loc, + NodeMut::TextPart(ref mut n) => n.loc = loc, + NodeMut::InterpolatedPart(ref mut n) => n.loc = loc, + NodeMut::VariableAssgn(ref mut n) => n.loc = loc, + NodeMut::MemberAssgn(ref mut n) => n.loc = loc, + }; + } } // Private utility functions. @@ -422,12 +517,7 @@ where mod tests { use super::*; use crate::ast; - use crate::semantic::analyze_source; - use crate::semantic::nodes; - - fn compile(source: &str) -> nodes::Package { - analyze_source(source).unwrap() - } + use crate::semantic::walk::test_utils::compile; mod node_ids { use super::*; @@ -876,78 +966,8 @@ join(tables:[a,b], on:["t1"], fn: (a,b) => (a["_field"] - b["_field"]) / b["_fie assert_ne!(loc, base_loc); } // now mutate the locations - let mut_expr_loc = |expr: &mut Expression| { - match expr { - Expression::Identifier(ref mut e) => e.loc = base_loc.clone(), - Expression::Array(ref mut e) => e.loc = base_loc.clone(), - Expression::Function(ref mut e) => e.loc = base_loc.clone(), - Expression::Logical(ref mut e) => e.loc = base_loc.clone(), - Expression::Object(ref mut e) => e.loc = base_loc.clone(), - Expression::Member(ref mut e) => e.loc = base_loc.clone(), - Expression::Index(ref mut e) => e.loc = base_loc.clone(), - Expression::Binary(ref mut e) => e.loc = base_loc.clone(), - Expression::Unary(ref mut e) => e.loc = base_loc.clone(), - Expression::Call(ref mut e) => e.loc = base_loc.clone(), - Expression::Conditional(ref mut e) => e.loc = base_loc.clone(), - Expression::StringExpr(ref mut e) => e.loc = base_loc.clone(), - Expression::Integer(ref mut e) => e.loc = base_loc.clone(), - Expression::Float(ref mut e) => e.loc = base_loc.clone(), - Expression::StringLit(ref mut e) => e.loc = base_loc.clone(), - Expression::Duration(ref mut e) => e.loc = base_loc.clone(), - Expression::Uint(ref mut e) => e.loc = base_loc.clone(), - Expression::Boolean(ref mut e) => e.loc = base_loc.clone(), - Expression::DateTime(ref mut e) => e.loc = base_loc.clone(), - Expression::Regexp(ref mut e) => e.loc = base_loc.clone(), - }; - }; walk_mut( - &mut |n: &mut NodeMut| { - match n { - NodeMut::Package(ref mut n) => n.loc = base_loc.clone(), - NodeMut::File(ref mut n) => n.loc = base_loc.clone(), - NodeMut::PackageClause(ref mut n) => n.loc = base_loc.clone(), - NodeMut::ImportDeclaration(ref mut n) => n.loc = base_loc.clone(), - NodeMut::Identifier(ref mut n) => n.loc = base_loc.clone(), - NodeMut::IdentifierExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::ArrayExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::FunctionExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::FunctionParameter(ref mut n) => n.loc = base_loc.clone(), - NodeMut::LogicalExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::ObjectExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::MemberExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::IndexExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::BinaryExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::UnaryExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::CallExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::ConditionalExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::StringExpr(ref mut n) => n.loc = base_loc.clone(), - NodeMut::IntegerLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::FloatLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::StringLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::DurationLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::UintLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::BooleanLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::DateTimeLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::RegexpLit(ref mut n) => n.loc = base_loc.clone(), - NodeMut::ExprStmt(ref mut n) => n.loc = base_loc.clone(), - NodeMut::OptionStmt(ref mut n) => n.loc = base_loc.clone(), - NodeMut::ReturnStmt(ref mut n) => n.loc = base_loc.clone(), - NodeMut::TestStmt(ref mut n) => n.loc = base_loc.clone(), - NodeMut::BuiltinStmt(ref mut n) => n.loc = base_loc.clone(), - NodeMut::Block(Block::Variable(ref mut assgn, _)) => { - assgn.loc = base_loc.clone() - } - NodeMut::Block(Block::Expr(ref mut estmt, _)) => { - mut_expr_loc(&mut estmt.expression) - } - NodeMut::Block(Block::Return(ref mut expr)) => mut_expr_loc(expr), - NodeMut::Property(ref mut n) => n.loc = base_loc.clone(), - NodeMut::TextPart(ref mut n) => n.loc = base_loc.clone(), - NodeMut::InterpolatedPart(ref mut n) => n.loc = base_loc.clone(), - NodeMut::VariableAssgn(ref mut n) => n.loc = base_loc.clone(), - NodeMut::MemberAssgn(ref mut n) => n.loc = base_loc.clone(), - }; - }, + &mut |n: &mut NodeMut| n.set_loc(base_loc.clone()), &mut NodeMut::Package(&mut pkg), ); // now assert that every location is the base one diff --git a/libflux/tests/analyze_test.rs b/libflux/tests/analyze_test.rs new file mode 100644 index 0000000000..b0488a3084 --- /dev/null +++ b/libflux/tests/analyze_test.rs @@ -0,0 +1,175 @@ +extern crate flux; + +use flux::ast; +use flux::semantic::analyze_source; +use flux::semantic::nodes::*; +use flux::semantic::types::{Function, MonoType, Tvar}; +use flux::semantic::walk::{walk_mut, NodeMut}; +use maplit; +use std::collections::HashMap; + +use pretty_assertions::assert_eq; + +#[test] +fn analyze_end_to_end() { + let mut got = analyze_source( + r#" +n = 1 +s = "string" +f = (a) => a + a +f(a: n) +f(a: s) + "#, + ) + .unwrap(); + let f_type = Function { + req: maplit::hashmap! { + "a".to_string() => MonoType::Var(Tvar(4)), + }, + opt: HashMap::new(), + pipe: None, + retn: MonoType::Var(Tvar(4)), + }; + let f_call_int_type = Function { + req: maplit::hashmap! { + "a".to_string() => MonoType::Int, + }, + opt: HashMap::new(), + pipe: None, + retn: MonoType::Int, + }; + let f_call_string_type = Function { + req: maplit::hashmap! { + "a".to_string() => MonoType::String, + }, + opt: HashMap::new(), + pipe: None, + retn: MonoType::String, + }; + let want = Package { + loc: ast::BaseNode::default().location, + package: "main".to_string(), + files: vec![File { + loc: ast::BaseNode::default().location, + package: None, + imports: Vec::new(), + body: vec![ + Statement::Variable(VariableAssgn::new( + Identifier { + loc: ast::BaseNode::default().location, + name: "n".to_string(), + }, + Expression::Integer(IntegerLit { + loc: ast::BaseNode::default().location, + typ: MonoType::Int, + value: 1, + }), + ast::BaseNode::default().location, + )), + Statement::Variable(VariableAssgn::new( + Identifier { + loc: ast::BaseNode::default().location, + name: "s".to_string(), + }, + Expression::StringLit(StringLit { + loc: ast::BaseNode::default().location, + typ: MonoType::String, + value: "string".to_string(), + }), + ast::BaseNode::default().location, + )), + Statement::Variable(VariableAssgn::new( + Identifier { + loc: ast::BaseNode::default().location, + name: "f".to_string(), + }, + Expression::Function(Box::new(FunctionExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Fun(Box::new(f_type)), + params: vec![FunctionParameter { + loc: ast::BaseNode::default().location, + is_pipe: false, + key: Identifier { + loc: ast::BaseNode::default().location, + name: "a".to_string(), + }, + default: None, + }], + body: Block::Return(Expression::Binary(Box::new(BinaryExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Var(Tvar(4)), + operator: ast::Operator::AdditionOperator, + left: Expression::Identifier(IdentifierExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Var(Tvar(4)), + name: "a".to_string(), + }), + right: Expression::Identifier(IdentifierExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Var(Tvar(4)), + name: "a".to_string(), + }), + }))), + })), + ast::BaseNode::default().location, + )), + Statement::Expr(ExprStmt { + loc: ast::BaseNode::default().location, + expression: Expression::Call(Box::new(CallExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Int, + pipe: None, + callee: Expression::Identifier(IdentifierExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Fun(Box::new(f_call_int_type)), + name: "f".to_string(), + }), + arguments: vec![Property { + loc: ast::BaseNode::default().location, + key: Identifier { + loc: ast::BaseNode::default().location, + name: "a".to_string(), + }, + value: Expression::Identifier(IdentifierExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Int, + name: "n".to_string(), + }), + }], + })), + }), + Statement::Expr(ExprStmt { + loc: ast::BaseNode::default().location, + expression: Expression::Call(Box::new(CallExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::String, + pipe: None, + callee: Expression::Identifier(IdentifierExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::Fun(Box::new(f_call_string_type)), + name: "f".to_string(), + }), + arguments: vec![Property { + loc: ast::BaseNode::default().location, + key: Identifier { + loc: ast::BaseNode::default().location, + name: "a".to_string(), + }, + value: Expression::Identifier(IdentifierExpr { + loc: ast::BaseNode::default().location, + typ: MonoType::String, + name: "s".to_string(), + }), + }], + })), + }), + ], + }], + }; + // We don't want to test the locations, so we override those with the base one. + walk_mut( + &mut |n: &mut NodeMut| n.set_loc(ast::BaseNode::default().location), + &mut NodeMut::Package(&mut got), + ); + assert_eq!(want, got); +} From b48f026241853c1e8b23ce77fd402a1a6ae11317 Mon Sep 17 00:00:00 2001 From: "Christopher M. Wolff" Date: Mon, 25 Nov 2019 15:21:11 -0800 Subject: [PATCH 09/19] feat(internal/cmd/gorust): create a tool that measures performance of calling Rust from Go (#1967) --- libflux/go/libflux/bench_test.go | 112 +++++++++++++++++++++++++ libflux/go/libflux/testdata/bench.flux | 109 ++++++++++++++++++++++++ 2 files changed, 221 insertions(+) create mode 100644 libflux/go/libflux/bench_test.go create mode 100644 libflux/go/libflux/testdata/bench.flux diff --git a/libflux/go/libflux/bench_test.go b/libflux/go/libflux/bench_test.go new file mode 100644 index 0000000000..ef67d059a0 --- /dev/null +++ b/libflux/go/libflux/bench_test.go @@ -0,0 +1,112 @@ +// +build libflux + +package libflux_test + +import ( + "bytes" + "encoding/json" + "io/ioutil" + "os" + "testing" + + "github.com/influxdata/flux/ast" + gparser "github.com/influxdata/flux/internal/parser" + "github.com/influxdata/flux/internal/token" + "github.com/influxdata/flux/libflux/go/libflux" +) + +func BenchmarkRustParse(b *testing.B) { + var fluxFile string + func() { + f, err := os.Open("./testdata/bench.flux") + if err != nil { + b.Fatalf("could not open testdata file: %v", err) + } + defer func() { + _ = f.Close() + }() + bs, err := ioutil.ReadAll(f) + fluxFile = string(bs) + }() + + bcs := []struct { + name string + fn func(string) error + }{ + { + name: "rust parse and return handle", + fn: ParseReturnHandle, + }, + { + name: "rust parse and return JSON", + fn: ParseReturnJSON, + }, + { + name: "rust parse and deserialize JSON", + fn: ParseAndDeserializeJSON, + }, + { + name: "rust parse and deserialize flatbuffer", + fn: ParseAndDeserializeFB, + }, + { + name: "go parse", + fn: GoParse, + }, + } + for _, bc := range bcs { + bc := bc + if success := b.Run(bc.name, func(b *testing.B) { + for i := 0; i < b.N; i++ { + if err := bc.fn(fluxFile); err != nil { + b.Fatal(err) + } + } + }); !success { + b.Fatalf("benchmark %q failed", bc.name) + } + } +} + +func ParseReturnHandle(fluxFile string) error { + p := libflux.Parse(fluxFile) + p.Free() + return nil +} + +func ParseReturnJSON(fluxFile string) error { + p := libflux.Parse(fluxFile) + defer p.Free() + if _, err := p.MarshalJSON(); err != nil { + return err + } + return nil +} + +func ParseAndDeserializeJSON(fluxFile string) error { + p := libflux.Parse(fluxFile) + defer p.Free() + bs, err := p.MarshalJSON() + if err != nil { + return err + } + var bb = bytes.NewBuffer(bs) + d := json.NewDecoder(bb) + pkg := &ast.File{} + if err := d.Decode(pkg); err != nil { + return err + } + return nil +} + +func ParseAndDeserializeFB(fluxFile string) error { + _ = libflux.ParseIntoFbs(fluxFile) + return nil +} + + +func GoParse(fluxFile string) error { + f := token.NewFile("", len(fluxFile)) + _ = gparser.ParseFile(f, []byte(fluxFile)) + return nil +} diff --git a/libflux/go/libflux/testdata/bench.flux b/libflux/go/libflux/testdata/bench.flux new file mode 100644 index 0000000000..965aba7d13 --- /dev/null +++ b/libflux/go/libflux/testdata/bench.flux @@ -0,0 +1,109 @@ +package pagerduty + +import "http" +import "json" +import "strings" + +// `dedupKey` - adds a newline concatinated value of the sorted group key that is then sha256-hashed and hex-encoded to a column with the key `_pagerdutyDedupKey`. +builtin dedupKey + +option defaultURL = "https://events.pagerduty.com/v2/enqueue" + + +// severity levels on status objects can be one of the following: ok,info,warn,crit,unknown +// but pagerduty only accepts critical, error, warning or info. +// severityFromLevel turns a level from the status object into a pagerduty severity +severityFromLevel = (level) => { + lvl = strings.toLower(v:level) + sev = if lvl == "warn" then "warning" + else if lvl == "crit" then "critical" + else if lvl == "info" then "info" + else if lvl == "ok" then "info" + else "error" + return sev +} + +// `actionFromLevel` converts a monitoring level to an action; "ok" becomes "resolve" everything else converts to "trigger". +actionFromLevel = (level)=> if strings.toLower(v:level) == "ok" then "resolve" else "trigger" + +// `sendEvent` sends an event to PagerDuty, the description of some of these parameters taken from the pagerduty documentation at https://v2.developer.pagerduty.com/docs/send-an-event-events-api-v2 +// `pagerdutyURL` - sring - URL of the pagerduty endpoint. Defaults to: `option defaultURL = "https://events.pagerduty.com/v2/enqueue"` +// `routingKey` - string - routingKey. +// `client` - string - name of the client sending the alert. +// `clientURL` - string - url of the client sending the alert. +// `dedupkey` - string - a per alert ID. It acts as deduplication key, that allows you to ack or change the severity of previous messages. Supports a maximum of 255 characters. +// `class` - string - The class/type of the event, for example ping failure or cpu load. +// `group` - string - Logical grouping of components of a service, for example app-stack. +// `severity` - string - The perceived severity of the status the event is describing with respect to the affected system. This can be critical, error, warning or info. +// `eventAction` - string - The type of event to send to PagerDuty (ex. trigger, resolve, acknowledge) +// `component` - string - Component of the source machine that is responsible for the event, for example mysql or eth0. +// `source` - string - The unique location of the affected system, preferably a hostname or FQDN. +// `summary` - string - A brief text summary of the event, used to generate the summaries/titles of any associated alerts. The maximum permitted length of this property is 1024 characters. +// `timestamp` - string - The time at which the emitting tool detected or generated the event, in RFC 3339 nano format. +sendEvent = (pagerdutyURL=defaultURL, + routingKey, + client, + clientURL, + dedupKey, + class, + group, + severity, + eventAction, + component, + source, + summary, + timestamp) => { + + payload = { + summary: summary, + timestamp: timestamp, + source: source, + severity: severity, + component: component, + group: group, + class: class, + } + data = { + payload: payload, + routing_key: routingKey, + dedup_key: dedupKey, + event_action: eventAction, + client: client, + client_url: clientURL, + } + + headers = { + "Accept": "application/vnd.pagerduty+json;version=2", + "Content-Type": "application/json", + } + enc = json.encode(v: data) + return http.post(headers: headers, url: pagerdutyURL, data: enc) +} + +// `endpoint` creates the endpoint for the PagerDuty external service. +// `url` - string - URL of the Pagerduty endpoint. Defaults to: "https://events.pagerduty.com/v2/enqueue". +// The returned factory function accepts a `mapFn` parameter. +// The `mapFn` parameter must be a function that returns an object with `routingKey`, `client`, `client_url`, `class`, `group`, `severity`, `eventAction`, `component`, `source`, `summary`, and `timestamp` as defined in the sendEvent function. +// Note that while sendEvent accepts a dedup key, endpoint gets the dedupkey from the groupkey of the input table instead of it being handled by the `mapFn`. +endpoint = (url=defaultURL) => + (mapFn) => + (tables=<-) => tables + |> dedupKey() + |> map(fn: (r) => { + obj = mapFn(r: r) + + return {r with _sent: string(v: 2 == (sendEvent(pagerdutyURL: url, + routingKey: obj.routingKey, + client: obj.client, + clientURL: obj.clientURL, + dedupKey: r._pagerdutyDedupKey, + class: obj.class, + group: obj.group, + severity: obj.severity, + eventAction: obj.eventAction, + component: obj.component, + source: obj.source, + summary: obj.summary, + timestamp: obj.timestamp, + ) / 100))} + }) \ No newline at end of file From 760e89d723aad9f81104bdea29dab6bb5bf3bd4f Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Wed, 27 Nov 2019 10:11:38 -0600 Subject: [PATCH 10/19] feat(libflux): create utility program for building libflux (#2200) The utility program will build libflux in the go build cache and then print out command line options to be used with a compiler. This matches the same interface as `pkg-config` and can be used in a similar way. Co-authored-by: Lorenzo Affetti --- Makefile | 10 +- go.mod | 2 +- internal/cmd/flux-config/build.go | 152 ++++++++++++++++++++++++++++++ internal/cmd/flux-config/main.go | 66 +++++++++++++ libflux/go/libflux/flux.h | 53 +++++++++++ libflux/go/libflux/parser.go | 6 +- 6 files changed, 282 insertions(+), 7 deletions(-) create mode 100644 internal/cmd/flux-config/build.go create mode 100644 internal/cmd/flux-config/main.go create mode 100644 libflux/go/libflux/flux.h diff --git a/Makefile b/Makefile index 95d12f55ce..a20ca58b95 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,4 @@ -# Top level Makefile for the entire project -# -# This Makefile encodes the "go generate" prerequeisites ensuring that the proper tooling is installed and +# This Makefile encodes the "go generate" prerequisites ensuring that the proper tooling is installed and # that the generate steps are executed when their prerequeisites files change. # # This Makefile follows a few conventions: @@ -43,7 +41,8 @@ GENERATED_TARGETS = \ semantic/internal/fbsemantic \ libflux/src/ast/flatbuffers/ast_generated.rs \ libflux/src/semantic/flatbuffers/semantic_generated.rs \ - libflux/scanner.c + libflux/scanner.c \ + libflux/go/libflux/flux.h generate: $(GENERATED_TARGETS) @@ -79,6 +78,9 @@ libflux: libflux/target/debug/libflux.a libflux/target/debug/libflux.a: cd libflux && $(CARGO) build $(CARGO_ARGS) +libflux/go/libflux/flux.h: libflux/include/influxdata/flux.h + $(GO_GENERATE) ./libflux/go/libflux + # The dependency file produced by Rust appears to be wrong and uses # absolute paths while we use relative paths everywhere. So we need # to do some post processing of the file to ensure that the diff --git a/go.mod b/go.mod index b35f8f804f..50811d4d01 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/segmentio/kafka-go v0.1.0 github.com/sergi/go-diff v1.0.0 // indirect github.com/spf13/cobra v0.0.3 - github.com/spf13/pflag v1.0.3 // indirect + github.com/spf13/pflag v1.0.3 go.uber.org/atomic v1.3.2 // indirect go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.9.1 diff --git a/internal/cmd/flux-config/build.go b/internal/cmd/flux-config/build.go new file mode 100644 index 0000000000..d2800b64b2 --- /dev/null +++ b/internal/cmd/flux-config/build.go @@ -0,0 +1,152 @@ +package main + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "os" + "os/exec" + "path/filepath" + "strings" +) + +const modulePath = "github.com/influxdata/flux" + +type Module struct { + Path string + Version string + Dir string + GoMod string + GoVersion string +} + +func getGoCache() (string, error) { + var buf strings.Builder + cmd := exec.Command("go", "env", "GOCACHE") + cmd.Stdout = &buf + if err := cmd.Run(); err != nil { + return "", err + } + return strings.TrimSpace(buf.String()), nil +} + +func getModule() (*Module, error) { + cmd := exec.Command("go", "list", "-m", "-json", modulePath) + r, err := cmd.StdoutPipe() + if err != nil { + return nil, err + } + defer func() { _ = r.Close() }() + + if err := cmd.Start(); err != nil { + return nil, err + } + + var m Module + if err := json.NewDecoder(r).Decode(&m); err != nil { + return nil, err + } + + if err := cmd.Wait(); err != nil { + return nil, err + } + return &m, nil +} + +func copySources(srcdir string, mod *Module) error { + // Retrieve the sources from the module. + root := filepath.Join(mod.Dir, "libflux") + if _, err := os.Stat(root); err != nil { + return fmt.Errorf("libflux sources not present: %s", err) + } + return filepath.Walk(root, func(path string, info os.FileInfo, err error) error { + if path == root || err != nil { + return nil + } else if info.IsDir() && info.Name() == "target" { + return filepath.SkipDir + } + + relpath, err := filepath.Rel(root, path) + if err != nil { + return err + } + + target := filepath.Join(srcdir, relpath) + if _, err := os.Lstat(target); err == nil { + _ = os.Remove(target) + } + if err := os.Symlink(path, target); err != nil { + return err + } + + if info.IsDir() { + return filepath.SkipDir + } + return nil + }) +} + +func runCargo(srcdir string) error { + var out io.Writer = os.Stderr + if !flags.Verbose { + out = &bytes.Buffer{} + } + cmd := exec.Command("cargo", "build", "--release") + cmd.Stdout = out + cmd.Stderr = out + cmd.Dir = srcdir + if err := cmd.Run(); err != nil { + if r, ok := out.(io.Reader); ok { + _, _ = io.Copy(os.Stderr, r) + } + return err + } + return nil +} + +func build() (string, error) { + mod, err := getModule() + if err != nil { + return "", err + } + + gocache, err := getGoCache() + if err != nil { + return "", err + } + + version := mod.Version + if version == "" { + version = "latest" + } + srcdir := filepath.Join(gocache, "libflux", "@"+mod.Version) + if err := os.MkdirAll(srcdir, 0755); err != nil { + return "", err + } + if err := copySources(srcdir, mod); err != nil { + return "", err + } + + // Run cargo to build the library. + if err := runCargo(srcdir); err != nil { + return "", err + } + // Create a directory for the library and static link it there. + // This is done to avoid picking up the dynamic library when linking. + libDir := filepath.Join(srcdir, "lib") + if err := os.MkdirAll(libDir, 0755); err != nil { + return "", err + } + target := filepath.Join(libDir, "libflux.a") + if _, err := os.Stat(target); err == nil { + _ = os.Remove(target) + } + if err := os.Link( + filepath.Join(srcdir, "target/release/libflux.a"), + target, + ); err != nil { + return "", err + } + return libDir, nil +} diff --git a/internal/cmd/flux-config/main.go b/internal/cmd/flux-config/main.go new file mode 100644 index 0000000000..8ce07927ac --- /dev/null +++ b/internal/cmd/flux-config/main.go @@ -0,0 +1,66 @@ +package main + +import ( + "errors" + "fmt" + "os" + "strings" + + "github.com/spf13/pflag" +) + +var flags struct { + Cflags bool + Libs bool + Verbose bool +} + +func getCflags() (string, error) { + // TODO(jsternberg): Output the location of influxdata/flux.h. + return "", errors.New("not supported yet") +} + +func getLdflags() (string, error) { + dir, err := build() + if err != nil { + return "", err + } + return fmt.Sprintf("-L%s", dir), nil +} + +func main() { + pflag.BoolVar(&flags.Cflags, "cflags", false, "output all pre-processor and compiler flags") + pflag.BoolVar(&flags.Libs, "libs", false, "output all linker flags") + pflag.BoolVarP(&flags.Verbose, "verbose", "v", false, "verbose output from builds") + pflag.Parse() + + var out strings.Builder + if flags.Cflags { + cflags, err := getCflags() + if err != nil { + _, _ = fmt.Fprintf(os.Stderr, "error: cflags: %s.\n", err) + os.Exit(1) + } + if len(cflags) > 0 { + if out.Len() > 0 { + out.WriteByte(' ') + } + out.WriteString(cflags) + } + } + + if flags.Libs { + ldflags, err := getLdflags() + if err != nil { + _, _ = fmt.Fprintf(os.Stderr, "error: ldflags: %s.\n", err) + os.Exit(1) + } + if len(ldflags) > 0 { + if out.Len() > 0 { + out.WriteByte(' ') + } + out.WriteString(ldflags) + } + } + fmt.Println(out.String()) +} diff --git a/libflux/go/libflux/flux.h b/libflux/go/libflux/flux.h new file mode 100644 index 0000000000..824a2c1791 --- /dev/null +++ b/libflux/go/libflux/flux.h @@ -0,0 +1,53 @@ +#ifndef _INFLUXDATA_FLUX_H +#define _INFLUXDATA_FLUX_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// flux_ast_t is the AST representation of a flux query. +struct flux_ast_t; + +// flux_buffer_t is a reference to a byte-slice. +struct flux_buffer_t { + // data is a pointer to the data contained within the buffer. + void *data; + + // len is the length of the buffer. + size_t len; +}; + +// flux_error_t represents a flux error. +struct flux_error_t; + +// flux_parse will take in a string and return the AST representation +// of the query. +struct flux_ast_t *flux_parse(const char *); + +struct flux_buffer_t *flux_parse_fb(const char *); + +// flux_ast_marshal_json will marshal json and fill in the given buffer +// with the data. If successful, memory will be allocated for the data +// within the buffer and it is the caller's responsibility to free this +// data. If an error happens it will be returned. The error must be freed +// using flux_free if it is non-null. +struct flux_error_t *flux_ast_marshal_json(struct flux_ast_t *, struct flux_buffer_t *); + +// flux_buffer_free will free the memory that was allocated for a buffer. +// This should only be called if the caller is the one who owns the data. +void flux_buffer_free(struct flux_buffer_t *); + +// flux_error_str will return a string representation of the error. +// This will allocate memory for the returned string. +const char *flux_error_str(struct flux_error_t *); + +// flux_free will free a resource. +void flux_free(void *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/libflux/go/libflux/parser.go b/libflux/go/libflux/parser.go index b094115143..c331425a4c 100644 --- a/libflux/go/libflux/parser.go +++ b/libflux/go/libflux/parser.go @@ -2,9 +2,9 @@ package libflux -// #cgo CFLAGS: -I${SRCDIR}/../../include +// #cgo CFLAGS: -I. // #cgo LDFLAGS: -L. -lflux -// #include +// #include "flux.h" // #include import "C" @@ -16,6 +16,8 @@ import ( "github.com/influxdata/flux/ast" ) +//go:generate cp ../../include/influxdata/flux.h flux.h + // freeable indicates a resource that has memory // allocated to it outside of Go and must be freed. type freeable interface { From 68232adcc541ea4bf3c3df198c3b628b783c73c2 Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Wed, 27 Nov 2019 14:05:45 -0600 Subject: [PATCH 11/19] perf(stdlib): optimize pivot for common scenarios (#2161) This optimizes pivot for the common scenario of a single row and single column key where the column key is part of the group key. It will perform a pivot by reading all of the relevant tables and it will then merge all of the keys together in sorted order. After it has done that, it will build each column by matching the value with the appropriate key. This causes the algorithm to run in `O(n)` time and avoid unnecessary reallocations because it determines the size before it attempts to build any arrays. --- arrow/bool.go | 4 +- arrow/float.go | 4 +- arrow/int.go | 4 +- arrow/string.go | 4 +- arrow/uint.go | 4 +- arrow/utils.go | 15 + execute/executetest/transformation.go | 87 +- execute/group_lookup.go | 19 + execute/group_lookup_test.go | 88 +- go.sum | 2 + internal/arrowutil/builder.gen.go | 43 + internal/arrowutil/builder.gen.go.tmpl | 17 + internal/arrowutil/gen.go | 6 + internal/arrowutil/iterator.gen.go | 339 ++++ internal/arrowutil/iterator.gen.go.tmpl | 71 + internal/arrowutil/iterator.gen_test.go | 192 +++ internal/arrowutil/iterator.gen_test.go.tmpl | 48 + internal/arrowutil/iterator_test.go | 41 + internal/arrowutil/types.tmpldata | 47 + internal/execute/tableutil/buffered.go | 74 + .../tableutil/buffered_internal_test.go | 13 + internal/execute/tableutil/buffered_test.go | 124 ++ internal/execute/tableutil/stream_test.go | 11 - internal/execute/tableutil/utils_test.go | 14 + internal/gen/input.go | 51 +- internal/tools/go.mod | 1 + internal/tools/go.sum | 13 + internal/tools/tools.go | 1 + internal/types.tmpldata | 92 + stdlib/universe/pivot.gen.go | 1480 +++++++++++++++++ stdlib/universe/pivot.gen.go.tmpl | 155 ++ stdlib/universe/pivot.go | 290 ++++ stdlib/universe/pivot_internal_test.go | 16 + stdlib/universe/pivot_test.go | 673 ++++++++ 34 files changed, 3990 insertions(+), 53 deletions(-) create mode 100644 internal/arrowutil/builder.gen.go create mode 100644 internal/arrowutil/builder.gen.go.tmpl create mode 100644 internal/arrowutil/gen.go create mode 100644 internal/arrowutil/iterator.gen.go create mode 100644 internal/arrowutil/iterator.gen.go.tmpl create mode 100644 internal/arrowutil/iterator.gen_test.go create mode 100644 internal/arrowutil/iterator.gen_test.go.tmpl create mode 100644 internal/arrowutil/iterator_test.go create mode 100644 internal/arrowutil/types.tmpldata create mode 100644 internal/execute/tableutil/buffered.go create mode 100644 internal/execute/tableutil/buffered_internal_test.go create mode 100644 internal/execute/tableutil/buffered_test.go create mode 100644 internal/execute/tableutil/utils_test.go create mode 100644 internal/types.tmpldata create mode 100644 stdlib/universe/pivot.gen.go create mode 100644 stdlib/universe/pivot.gen.go.tmpl create mode 100644 stdlib/universe/pivot_internal_test.go diff --git a/arrow/bool.go b/arrow/bool.go index c9a3d46fec..bd772b10d3 100644 --- a/arrow/bool.go +++ b/arrow/bool.go @@ -17,9 +17,7 @@ func NewBool(vs []bool, alloc *memory.Allocator) *array.Boolean { } func BoolSlice(arr *array.Boolean, i, j int) *array.Boolean { - data := array.NewSliceData(arr.Data(), int64(i), int64(j)) - defer data.Release() - return array.NewBooleanData(data) + return Slice(arr, int64(i), int64(j)).(*array.Boolean) } func NewBoolBuilder(a *memory.Allocator) *array.BooleanBuilder { diff --git a/arrow/float.go b/arrow/float.go index e225769a30..bdcfb900fc 100644 --- a/arrow/float.go +++ b/arrow/float.go @@ -17,9 +17,7 @@ func NewFloat(vs []float64, alloc *memory.Allocator) *array.Float64 { } func FloatSlice(arr *array.Float64, i, j int) *array.Float64 { - data := array.NewSliceData(arr.Data(), int64(i), int64(j)) - defer data.Release() - return array.NewFloat64Data(data) + return Slice(arr, int64(i), int64(j)).(*array.Float64) } func NewFloatBuilder(a *memory.Allocator) *array.Float64Builder { diff --git a/arrow/int.go b/arrow/int.go index 0866f8b83a..a5c4350ed8 100644 --- a/arrow/int.go +++ b/arrow/int.go @@ -17,9 +17,7 @@ func NewInt(vs []int64, alloc *memory.Allocator) *array.Int64 { } func IntSlice(arr *array.Int64, i, j int) *array.Int64 { - data := array.NewSliceData(arr.Data(), int64(i), int64(j)) - defer data.Release() - return array.NewInt64Data(data) + return Slice(arr, int64(i), int64(j)).(*array.Int64) } func NewIntBuilder(a *memory.Allocator) *array.Int64Builder { diff --git a/arrow/string.go b/arrow/string.go index 2e97728ed4..1cd8b11e42 100644 --- a/arrow/string.go +++ b/arrow/string.go @@ -23,9 +23,7 @@ func NewString(vs []string, alloc *memory.Allocator) *array.Binary { } func StringSlice(arr *array.Binary, i, j int) *array.Binary { - data := array.NewSliceData(arr.Data(), int64(i), int64(j)) - defer data.Release() - return array.NewBinaryData(data) + return Slice(arr, int64(i), int64(j)).(*array.Binary) } func NewStringBuilder(a *memory.Allocator) *array.BinaryBuilder { diff --git a/arrow/uint.go b/arrow/uint.go index cf37fc5b4d..2ff7f3b167 100644 --- a/arrow/uint.go +++ b/arrow/uint.go @@ -17,9 +17,7 @@ func NewUint(vs []uint64, alloc *memory.Allocator) *array.Uint64 { } func UintSlice(arr *array.Uint64, i, j int) *array.Uint64 { - data := array.NewSliceData(arr.Data(), int64(i), int64(j)) - defer data.Release() - return array.NewUint64Data(data) + return Slice(arr, int64(i), int64(j)).(*array.Uint64) } func NewUintBuilder(a *memory.Allocator) *array.Uint64Builder { diff --git a/arrow/utils.go b/arrow/utils.go index 480e4e47c8..1e2ca14f6a 100644 --- a/arrow/utils.go +++ b/arrow/utils.go @@ -120,3 +120,18 @@ func AppendTime(b array.Builder, v values.Time) error { vb.Append(int64(v)) return nil } + +// Slice will construct a new slice of the array using the given +// start and stop index. The returned array must be released. +// +// This is functionally equivalent to using array.NewSlice, +// but array.NewSlice will construct an array.String when +// the data type is a string rather than an array.Binary. +func Slice(arr array.Interface, i, j int64) array.Interface { + data := array.NewSliceData(arr.Data(), i, j) + defer data.Release() + if _, ok := arr.(*array.Binary); ok { + return array.NewBinaryData(data) + } + return array.MakeFromData(data) +} diff --git a/execute/executetest/transformation.go b/execute/executetest/transformation.go index 2c5b4b6c5d..2df0d207fa 100644 --- a/execute/executetest/transformation.go +++ b/execute/executetest/transformation.go @@ -132,7 +132,7 @@ func ProcessTestHelper2( }() alloc := &memory.Allocator{} - store := newDataStore() + store := NewDataStore() tx, d := create(RandomDatasetID(), alloc) d.SetTriggerSpec(plan.DefaultTriggerSpec) d.AddTransformation(store) @@ -179,24 +179,24 @@ func ProcessTestHelper2( } } -// dataStore will store the incoming tables from an upstream transformation or source. -type dataStore struct { +// DataStore will store the incoming tables from an upstream transformation or source. +type DataStore struct { tables *execute.GroupLookup err error } -func newDataStore() *dataStore { - return &dataStore{ +func NewDataStore() *DataStore { + return &DataStore{ tables: execute.NewGroupLookup(), } } -func (d *dataStore) RetractTable(id execute.DatasetID, key flux.GroupKey) error { +func (d *DataStore) RetractTable(id execute.DatasetID, key flux.GroupKey) error { d.tables.Delete(key) return nil } -func (d *dataStore) Process(id execute.DatasetID, tbl flux.Table) error { +func (d *DataStore) Process(id execute.DatasetID, tbl flux.Table) error { tbl, err := execute.CopyTable(tbl) if err != nil { return err @@ -205,21 +205,21 @@ func (d *dataStore) Process(id execute.DatasetID, tbl flux.Table) error { return nil } -func (d *dataStore) UpdateWatermark(id execute.DatasetID, t execute.Time) error { +func (d *DataStore) UpdateWatermark(id execute.DatasetID, t execute.Time) error { return nil } -func (d *dataStore) UpdateProcessingTime(id execute.DatasetID, t execute.Time) error { +func (d *DataStore) UpdateProcessingTime(id execute.DatasetID, t execute.Time) error { return nil } -func (d *dataStore) Finish(id execute.DatasetID, err error) { +func (d *DataStore) Finish(id execute.DatasetID, err error) { if err != nil { d.err = err } } -func (d *dataStore) Table(key flux.GroupKey) (flux.Table, error) { +func (d *DataStore) Table(key flux.GroupKey) (flux.Table, error) { data, ok := d.tables.Lookup(key) if !ok { return nil, errors.Newf(codes.Internal, "table with key %v not found", key) @@ -227,13 +227,15 @@ func (d *dataStore) Table(key flux.GroupKey) (flux.Table, error) { return data.(flux.Table), nil } -func (d *dataStore) ForEach(f func(key flux.GroupKey)) { +func (d *DataStore) Err() error { return d.err } + +func (d *DataStore) ForEach(f func(key flux.GroupKey)) { d.tables.Range(func(key flux.GroupKey, _ interface{}) { f(key) }) } -func (d *dataStore) ForEachWithContext(f func(flux.GroupKey, execute.Trigger, execute.TableContext)) { +func (d *DataStore) ForEachWithContext(f func(flux.GroupKey, execute.Trigger, execute.TableContext)) { d.tables.Range(func(key flux.GroupKey, _ interface{}) { f(key, nil, execute.TableContext{ Key: key, @@ -241,16 +243,69 @@ func (d *dataStore) ForEachWithContext(f func(flux.GroupKey, execute.Trigger, ex }) } -func (d *dataStore) DiscardTable(key flux.GroupKey) { +func (d *DataStore) DiscardTable(key flux.GroupKey) { d.tables.Delete(key) } -func (d *dataStore) ExpireTable(key flux.GroupKey) { +func (d *DataStore) ExpireTable(key flux.GroupKey) { d.tables.Delete(key) } -func (d *dataStore) SetTriggerSpec(t plan.TriggerSpec) { +func (d *DataStore) SetTriggerSpec(t plan.TriggerSpec) { +} + +func ProcessBenchmarkHelper( + b *testing.B, + genInput func(alloc *memory.Allocator) (flux.TableIterator, error), + create func(id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset), +) { + b.Helper() + + defer func() { + if err := recover(); err != nil { + debug.PrintStack() + b.Fatalf("caught panic: %v", err) + } + }() + + alloc := &memory.Allocator{} + parentID := RandomDatasetID() + tables, err := genInput(alloc) + if err != nil { + b.Fatalf("unexpected error: %s", err) + } + + store := NewDevNullStore() + tx, d := create(RandomDatasetID(), alloc) + d.SetTriggerSpec(plan.DefaultTriggerSpec) + d.AddTransformation(store) + + if err := tables.Do(func(table flux.Table) error { + return tx.Process(parentID, table) + }); err != nil { + b.Fatalf("unexpected error: %s", err) + } + + // We always return a fatal error on failure so + // we only get here when the error is nil. + tx.Finish(parentID, nil) +} + +type devNullStore struct{} + +func NewDevNullStore() execute.Transformation { + return devNullStore{} +} + +func (d devNullStore) RetractTable(id execute.DatasetID, key flux.GroupKey) error { return nil } +func (d devNullStore) Process(id execute.DatasetID, tbl flux.Table) error { + return tbl.Do(func(flux.ColReader) error { + return nil + }) } +func (d devNullStore) UpdateWatermark(id execute.DatasetID, t execute.Time) error { return nil } +func (d devNullStore) UpdateProcessingTime(id execute.DatasetID, t execute.Time) error { return nil } +func (d devNullStore) Finish(id execute.DatasetID, err error) {} // Some transformations need to take a URL e.g. sql.to, kafka.to // the URL/DSN supplied by the user need to be validated by a URLValidator{} diff --git a/execute/group_lookup.go b/execute/group_lookup.go index 6f51506e37..6d6d52d969 100644 --- a/execute/group_lookup.go +++ b/execute/group_lookup.go @@ -128,12 +128,31 @@ func (l *GroupLookup) Lookup(key flux.GroupKey) (interface{}, bool) { return nil, false } +// LookupOrCreate will retrieve the value associated with the given key or, +// if it does not exist, will invoke the function to create one and set +// it in the group lookup. +func (l *GroupLookup) LookupOrCreate(key flux.GroupKey, fn func() interface{}) interface{} { + group, ok := l.Lookup(key) + if !ok { + group = fn() + l.Set(key, group) + } + return group +} + // Set will set the value for the given key. It will overwrite an existing value. func (l *GroupLookup) Set(key flux.GroupKey, value interface{}) { group := l.lookupGroup(key) l.createOrSetInGroup(group, key, value) } +// Clear will clear the group lookup and reset it to contain nothing. +func (l *GroupLookup) Clear() { + l.lastIndex = -1 + l.nextID = 1 + l.groups = nil +} + // lookupGroup finds the group index where this key would be located if it were to // be found or inserted. If no suitable group can be found, then this will return -1 // which indicates that a group has to be created at index 0. diff --git a/execute/group_lookup_test.go b/execute/group_lookup_test.go index b8fb616682..1a02cc66f5 100644 --- a/execute/group_lookup_test.go +++ b/execute/group_lookup_test.go @@ -221,7 +221,9 @@ type entry struct { Value int } -func testGroupLookup_LookupOrCreate(tb testing.TB, run func(name string, keys []flux.GroupKey)) { +func testGroupLookupHelper(tb testing.TB, run func(name string, keys []flux.GroupKey)) { + tb.Helper() + // Generate a small schema to use for the group lookup. schema := gen.Schema{ Start: time.Now(), @@ -321,8 +323,8 @@ func testGroupLookup_LookupOrCreate(tb testing.TB, run func(name string, keys [] }()) } -func TestGroupLookup_LookupOrCreate(t *testing.T) { - testGroupLookup_LookupOrCreate(t, func(name string, keys []flux.GroupKey) { +func TestGroupLookup_LookupOrSet(t *testing.T) { + testGroupLookupHelper(t, func(name string, keys []flux.GroupKey) { t.Run(name, func(t *testing.T) { l := execute.NewGroupLookup() for _, key := range keys { @@ -343,8 +345,8 @@ func TestGroupLookup_LookupOrCreate(t *testing.T) { }) } -func BenchmarkGroupLookup_LookupOrCreate(b *testing.B) { - testGroupLookup_LookupOrCreate(b, func(name string, keys []flux.GroupKey) { +func BenchmarkGroupLookup_LookupOrSet(b *testing.B) { + testGroupLookupHelper(b, func(name string, keys []flux.GroupKey) { b.Run(name, func(b *testing.B) { b.ResetTimer() b.ReportAllocs() @@ -360,3 +362,79 @@ func BenchmarkGroupLookup_LookupOrCreate(b *testing.B) { }) }) } + +func TestGroupLookup_LookupOrCreate(t *testing.T) { + testGroupLookupHelper(t, func(name string, keys []flux.GroupKey) { + t.Run(name, func(t *testing.T) { + l := execute.NewGroupLookup() + for _, key := range keys { + want := &struct{}{} + if got := l.LookupOrCreate(key, func() interface{} { + return want + }); want != got { + t.Errorf("unexpected value for key: %s", key) + } + + // Do the same thing, but allocate a random pointer + // that will compare differently if it is used instead. + if got := l.LookupOrCreate(key, func() interface{} { + return &struct{}{} + }); want != got { + t.Errorf("unexpected value for key: %s", key) + } + } + + // Run through the keys again and lookup the value. + // Then use lookup or create to ensure that it doesn't + // replace that value. This is the same as the above check, + // but verifies that this works properly even after setting + // other entries. + for _, key := range keys { + want, ok := l.Lookup(key) + if !ok { + t.Errorf("unexpected key lookup: %s", key) + } else if got := l.LookupOrCreate(key, func() interface{} { + return &struct{}{} + }); want != got { + t.Errorf("unexpected value for key: %s", key) + } + } + }) + }) +} + +func TestGroupLookup_Clear(t *testing.T) { + testGroupLookupHelper(t, func(name string, keys []flux.GroupKey) { + t.Run(name, func(t *testing.T) { + l := execute.NewGroupLookup() + for _, key := range keys { + l.Set(key, true) + } + + count := 0 + l.Range(func(key flux.GroupKey, value interface{}) { + count++ + }) + + if count == 0 { + t.Errorf("expected at least one element, got %d", count) + } + + l.Clear() + count = 0 + l.Range(func(key flux.GroupKey, value interface{}) { + count++ + }) + + if count > 0 { + t.Errorf("expected zero elements, got %d", count) + } + + for _, key := range keys { + if _, ok := l.Lookup(key); ok { + t.Errorf("unexpected key lookup for %s", key) + } + } + }) + }) +} diff --git a/go.sum b/go.sum index 714ccef60b..6021c0bdba 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db h1:nxAtV4VajJDhKysp2kdcJZsq8Ss1xSA0vZTkVHHJd0E= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db h1:nxAtV4VajJDhKysp2kdcJZsq8Ss1xSA0vZTkVHHJd0E= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= diff --git a/internal/arrowutil/builder.gen.go b/internal/arrowutil/builder.gen.go new file mode 100644 index 0000000000..bbd660fa8c --- /dev/null +++ b/internal/arrowutil/builder.gen.go @@ -0,0 +1,43 @@ +// Generated by tmpl +// https://github.com/benbjohnson/tmpl +// +// DO NOT EDIT! +// Source: builder.gen.go.tmpl + +package arrowutil + +import ( + "github.com/apache/arrow/go/arrow" + "github.com/apache/arrow/go/arrow/array" + "github.com/apache/arrow/go/arrow/memory" +) + +func NewInt64Builder(mem memory.Allocator) *array.Int64Builder { + + return array.NewInt64Builder(mem) + +} + +func NewUint64Builder(mem memory.Allocator) *array.Uint64Builder { + + return array.NewUint64Builder(mem) + +} + +func NewFloat64Builder(mem memory.Allocator) *array.Float64Builder { + + return array.NewFloat64Builder(mem) + +} + +func NewBooleanBuilder(mem memory.Allocator) *array.BooleanBuilder { + + return array.NewBooleanBuilder(mem) + +} + +func NewStringBuilder(mem memory.Allocator) *array.BinaryBuilder { + + return array.NewBinaryBuilder(mem, arrow.BinaryTypes.String) + +} diff --git a/internal/arrowutil/builder.gen.go.tmpl b/internal/arrowutil/builder.gen.go.tmpl new file mode 100644 index 0000000000..c1f2461c6f --- /dev/null +++ b/internal/arrowutil/builder.gen.go.tmpl @@ -0,0 +1,17 @@ +package arrowutil + +import ( + "github.com/apache/arrow/go/arrow" + "github.com/apache/arrow/go/arrow/array" + "github.com/apache/arrow/go/arrow/memory" +) + +{{range .}} +func New{{.Name}}Builder(mem memory.Allocator) *{{.Type}}Builder { + {{if eq .Name "String"}} + return array.NewBinaryBuilder(mem, arrow.BinaryTypes.String) + {{else}} + return array.New{{.Name}}Builder(mem) + {{end}} +} +{{end}} diff --git a/internal/arrowutil/gen.go b/internal/arrowutil/gen.go new file mode 100644 index 0000000000..beed79008b --- /dev/null +++ b/internal/arrowutil/gen.go @@ -0,0 +1,6 @@ +package arrowutil + +//go:generate -command tmpl ../../gotool.sh github.com/benbjohnson/tmpl +//go:generate tmpl -data=@types.tmpldata -o builder.gen.go builder.gen.go.tmpl +//go:generate tmpl -data=@types.tmpldata -o iterator.gen.go iterator.gen.go.tmpl +//go:generate tmpl -data=@types.tmpldata -o iterator.gen_test.go iterator.gen_test.go.tmpl diff --git a/internal/arrowutil/iterator.gen.go b/internal/arrowutil/iterator.gen.go new file mode 100644 index 0000000000..3d2f52d871 --- /dev/null +++ b/internal/arrowutil/iterator.gen.go @@ -0,0 +1,339 @@ +// Generated by tmpl +// https://github.com/benbjohnson/tmpl +// +// DO NOT EDIT! +// Source: iterator.gen.go.tmpl + +package arrowutil + +import "github.com/apache/arrow/go/arrow/array" + +type Int64Iterator struct { + Values []*array.Int64 + i int + init bool +} + +func IterateInt64s(arrs []array.Interface) Int64Iterator { + if len(arrs) == 0 { + return Int64Iterator{} + } + values := make([]*array.Int64, 0, len(arrs)) + for _, arr := range arrs { + values = append(values, arr.(*array.Int64)) + } + return Int64Iterator{Values: values} +} + +// Value returns the current value in the iterator. +func (i *Int64Iterator) Value() int64 { + vs := i.Values[0] + return vs.Value(i.i) +} + +// IsValid returns if the current value is valid. +func (i *Int64Iterator) IsValid() bool { + vs := i.Values[0] + return vs.IsValid(i.i) +} + +// IsNull returns if the current value is null. +func (i *Int64Iterator) IsNull() bool { + vs := i.Values[0] + return vs.IsNull(i.i) +} + +// Next will move to the next value. It will return false +// if there are no more values to be read. This will +// initialize the iterator if this is the first time it +// is called and return true if there is at least one element. +func (i *Int64Iterator) Next() bool { + if !i.init { + i.init = true + return i.peek() + } + i.i++ + return i.peek() +} + +// IsEmpty returns true if the iterator has no values to read. +func (i *Int64Iterator) IsEmpty() bool { + return i.peek() +} + +// peek will return whether another value is available. +// It will iterate through the iterators until it finds a valid one. +func (i *Int64Iterator) peek() bool { + for len(i.Values) > 0 { + if i.i < i.Values[0].Len() { + return true + } + i.i = 0 + i.Values = i.Values[1:] + } + return false +} + +type Uint64Iterator struct { + Values []*array.Uint64 + i int + init bool +} + +func IterateUint64s(arrs []array.Interface) Uint64Iterator { + if len(arrs) == 0 { + return Uint64Iterator{} + } + values := make([]*array.Uint64, 0, len(arrs)) + for _, arr := range arrs { + values = append(values, arr.(*array.Uint64)) + } + return Uint64Iterator{Values: values} +} + +// Value returns the current value in the iterator. +func (i *Uint64Iterator) Value() uint64 { + vs := i.Values[0] + return vs.Value(i.i) +} + +// IsValid returns if the current value is valid. +func (i *Uint64Iterator) IsValid() bool { + vs := i.Values[0] + return vs.IsValid(i.i) +} + +// IsNull returns if the current value is null. +func (i *Uint64Iterator) IsNull() bool { + vs := i.Values[0] + return vs.IsNull(i.i) +} + +// Next will move to the next value. It will return false +// if there are no more values to be read. This will +// initialize the iterator if this is the first time it +// is called and return true if there is at least one element. +func (i *Uint64Iterator) Next() bool { + if !i.init { + i.init = true + return i.peek() + } + i.i++ + return i.peek() +} + +// IsEmpty returns true if the iterator has no values to read. +func (i *Uint64Iterator) IsEmpty() bool { + return i.peek() +} + +// peek will return whether another value is available. +// It will iterate through the iterators until it finds a valid one. +func (i *Uint64Iterator) peek() bool { + for len(i.Values) > 0 { + if i.i < i.Values[0].Len() { + return true + } + i.i = 0 + i.Values = i.Values[1:] + } + return false +} + +type Float64Iterator struct { + Values []*array.Float64 + i int + init bool +} + +func IterateFloat64s(arrs []array.Interface) Float64Iterator { + if len(arrs) == 0 { + return Float64Iterator{} + } + values := make([]*array.Float64, 0, len(arrs)) + for _, arr := range arrs { + values = append(values, arr.(*array.Float64)) + } + return Float64Iterator{Values: values} +} + +// Value returns the current value in the iterator. +func (i *Float64Iterator) Value() float64 { + vs := i.Values[0] + return vs.Value(i.i) +} + +// IsValid returns if the current value is valid. +func (i *Float64Iterator) IsValid() bool { + vs := i.Values[0] + return vs.IsValid(i.i) +} + +// IsNull returns if the current value is null. +func (i *Float64Iterator) IsNull() bool { + vs := i.Values[0] + return vs.IsNull(i.i) +} + +// Next will move to the next value. It will return false +// if there are no more values to be read. This will +// initialize the iterator if this is the first time it +// is called and return true if there is at least one element. +func (i *Float64Iterator) Next() bool { + if !i.init { + i.init = true + return i.peek() + } + i.i++ + return i.peek() +} + +// IsEmpty returns true if the iterator has no values to read. +func (i *Float64Iterator) IsEmpty() bool { + return i.peek() +} + +// peek will return whether another value is available. +// It will iterate through the iterators until it finds a valid one. +func (i *Float64Iterator) peek() bool { + for len(i.Values) > 0 { + if i.i < i.Values[0].Len() { + return true + } + i.i = 0 + i.Values = i.Values[1:] + } + return false +} + +type BooleanIterator struct { + Values []*array.Boolean + i int + init bool +} + +func IterateBooleans(arrs []array.Interface) BooleanIterator { + if len(arrs) == 0 { + return BooleanIterator{} + } + values := make([]*array.Boolean, 0, len(arrs)) + for _, arr := range arrs { + values = append(values, arr.(*array.Boolean)) + } + return BooleanIterator{Values: values} +} + +// Value returns the current value in the iterator. +func (i *BooleanIterator) Value() bool { + vs := i.Values[0] + return vs.Value(i.i) +} + +// IsValid returns if the current value is valid. +func (i *BooleanIterator) IsValid() bool { + vs := i.Values[0] + return vs.IsValid(i.i) +} + +// IsNull returns if the current value is null. +func (i *BooleanIterator) IsNull() bool { + vs := i.Values[0] + return vs.IsNull(i.i) +} + +// Next will move to the next value. It will return false +// if there are no more values to be read. This will +// initialize the iterator if this is the first time it +// is called and return true if there is at least one element. +func (i *BooleanIterator) Next() bool { + if !i.init { + i.init = true + return i.peek() + } + i.i++ + return i.peek() +} + +// IsEmpty returns true if the iterator has no values to read. +func (i *BooleanIterator) IsEmpty() bool { + return i.peek() +} + +// peek will return whether another value is available. +// It will iterate through the iterators until it finds a valid one. +func (i *BooleanIterator) peek() bool { + for len(i.Values) > 0 { + if i.i < i.Values[0].Len() { + return true + } + i.i = 0 + i.Values = i.Values[1:] + } + return false +} + +type StringIterator struct { + Values []*array.Binary + i int + init bool +} + +func IterateStrings(arrs []array.Interface) StringIterator { + if len(arrs) == 0 { + return StringIterator{} + } + values := make([]*array.Binary, 0, len(arrs)) + for _, arr := range arrs { + values = append(values, arr.(*array.Binary)) + } + return StringIterator{Values: values} +} + +// ValueString returns the current value in the iterator. +func (i *StringIterator) ValueString() string { + vs := i.Values[0] + return vs.ValueString(i.i) +} + +// IsValid returns if the current value is valid. +func (i *StringIterator) IsValid() bool { + vs := i.Values[0] + return vs.IsValid(i.i) +} + +// IsNull returns if the current value is null. +func (i *StringIterator) IsNull() bool { + vs := i.Values[0] + return vs.IsNull(i.i) +} + +// Next will move to the next value. It will return false +// if there are no more values to be read. This will +// initialize the iterator if this is the first time it +// is called and return true if there is at least one element. +func (i *StringIterator) Next() bool { + if !i.init { + i.init = true + return i.peek() + } + i.i++ + return i.peek() +} + +// IsEmpty returns true if the iterator has no values to read. +func (i *StringIterator) IsEmpty() bool { + return i.peek() +} + +// peek will return whether another value is available. +// It will iterate through the iterators until it finds a valid one. +func (i *StringIterator) peek() bool { + for len(i.Values) > 0 { + if i.i < i.Values[0].Len() { + return true + } + i.i = 0 + i.Values = i.Values[1:] + } + return false +} diff --git a/internal/arrowutil/iterator.gen.go.tmpl b/internal/arrowutil/iterator.gen.go.tmpl new file mode 100644 index 0000000000..359c61cb77 --- /dev/null +++ b/internal/arrowutil/iterator.gen.go.tmpl @@ -0,0 +1,71 @@ +package arrowutil + +import "github.com/apache/arrow/go/arrow/array" + +{{range .}} +type {{.Name}}Iterator struct { + Values []*{{.Type}} + i int + init bool +} + +func Iterate{{.Name}}s(arrs []array.Interface) {{.Name}}Iterator { + if len(arrs) == 0 { + return {{.Name}}Iterator{} + } + values := make([]*{{.Type}}, 0, len(arrs)) + for _, arr := range arrs { + values = append(values, arr.(*{{.Type}})) + } + return {{.Name}}Iterator{Values: values} +} + +// {{.Value}} returns the current value in the iterator. +func (i *{{.Name}}Iterator) {{.Value}}() {{.PrimitiveType}} { + vs := i.Values[0] + return vs.{{.Value}}(i.i) +} + +// IsValid returns if the current value is valid. +func (i *{{.Name}}Iterator) IsValid() bool { + vs := i.Values[0] + return vs.IsValid(i.i) +} + +// IsNull returns if the current value is null. +func (i *{{.Name}}Iterator) IsNull() bool { + vs := i.Values[0] + return vs.IsNull(i.i) +} + +// Next will move to the next value. It will return false +// if there are no more values to be read. This will +// initialize the iterator if this is the first time it +// is called and return true if there is at least one element. +func (i *{{.Name}}Iterator) Next() bool { + if !i.init { + i.init = true + return i.peek() + } + i.i++ + return i.peek() +} + +// IsEmpty returns true if the iterator has no values to read. +func (i *{{.Name}}Iterator) IsEmpty() bool { + return i.peek() +} + +// peek will return whether another value is available. +// It will iterate through the iterators until it finds a valid one. +func (i *{{.Name}}Iterator) peek() bool { + for len(i.Values) > 0 { + if i.i < i.Values[0].Len() { + return true + } + i.i = 0 + i.Values = i.Values[1:] + } + return false +} +{{end}} diff --git a/internal/arrowutil/iterator.gen_test.go b/internal/arrowutil/iterator.gen_test.go new file mode 100644 index 0000000000..b4a7a4796c --- /dev/null +++ b/internal/arrowutil/iterator.gen_test.go @@ -0,0 +1,192 @@ +// Generated by tmpl +// https://github.com/benbjohnson/tmpl +// +// DO NOT EDIT! +// Source: iterator.gen_test.go.tmpl + +package arrowutil_test + +import ( + "math/rand" + "testing" + + "github.com/apache/arrow/go/arrow/array" + "github.com/apache/arrow/go/arrow/memory" + "github.com/google/go-cmp/cmp" + "github.com/influxdata/flux/internal/arrowutil" +) + +func TestIterateInt64s(t *testing.T) { + arrs := make([]array.Interface, 0, 3) + for i := 0; i < 3; i++ { + b := arrowutil.NewInt64Builder(memory.DefaultAllocator) + for j := 0; j < 100; j++ { + if 0.05 > rand.Float64() { + b.AppendNull() + continue + } + v := generateInt64() + b.Append(v) + } + arrs = append(arrs, b.NewArray()) + } + + itr := arrowutil.IterateInt64s(arrs) + for i := 0; i < 300; i++ { + if !itr.Next() { + t.Fatalf("expected next value, but got false at index %d", i) + } + + arr := arrs[i/100].(*array.Int64) + if want, got := arr.IsValid(i%100), itr.IsValid(); !cmp.Equal(want, got) { + t.Fatalf("unexpected valid value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } else if want && got { + if want, got := arr.Value(i%100), itr.Value(); !cmp.Equal(want, got) { + t.Fatalf("unexpected value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } + if want, got := arr.IsNull(i%100), itr.IsNull(); !cmp.Equal(want, got) { + t.Fatalf("unexpected null value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } +} + +func TestIterateUint64s(t *testing.T) { + arrs := make([]array.Interface, 0, 3) + for i := 0; i < 3; i++ { + b := arrowutil.NewUint64Builder(memory.DefaultAllocator) + for j := 0; j < 100; j++ { + if 0.05 > rand.Float64() { + b.AppendNull() + continue + } + v := generateUint64() + b.Append(v) + } + arrs = append(arrs, b.NewArray()) + } + + itr := arrowutil.IterateUint64s(arrs) + for i := 0; i < 300; i++ { + if !itr.Next() { + t.Fatalf("expected next value, but got false at index %d", i) + } + + arr := arrs[i/100].(*array.Uint64) + if want, got := arr.IsValid(i%100), itr.IsValid(); !cmp.Equal(want, got) { + t.Fatalf("unexpected valid value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } else if want && got { + if want, got := arr.Value(i%100), itr.Value(); !cmp.Equal(want, got) { + t.Fatalf("unexpected value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } + if want, got := arr.IsNull(i%100), itr.IsNull(); !cmp.Equal(want, got) { + t.Fatalf("unexpected null value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } +} + +func TestIterateFloat64s(t *testing.T) { + arrs := make([]array.Interface, 0, 3) + for i := 0; i < 3; i++ { + b := arrowutil.NewFloat64Builder(memory.DefaultAllocator) + for j := 0; j < 100; j++ { + if 0.05 > rand.Float64() { + b.AppendNull() + continue + } + v := generateFloat64() + b.Append(v) + } + arrs = append(arrs, b.NewArray()) + } + + itr := arrowutil.IterateFloat64s(arrs) + for i := 0; i < 300; i++ { + if !itr.Next() { + t.Fatalf("expected next value, but got false at index %d", i) + } + + arr := arrs[i/100].(*array.Float64) + if want, got := arr.IsValid(i%100), itr.IsValid(); !cmp.Equal(want, got) { + t.Fatalf("unexpected valid value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } else if want && got { + if want, got := arr.Value(i%100), itr.Value(); !cmp.Equal(want, got) { + t.Fatalf("unexpected value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } + if want, got := arr.IsNull(i%100), itr.IsNull(); !cmp.Equal(want, got) { + t.Fatalf("unexpected null value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } +} + +func TestIterateBooleans(t *testing.T) { + arrs := make([]array.Interface, 0, 3) + for i := 0; i < 3; i++ { + b := arrowutil.NewBooleanBuilder(memory.DefaultAllocator) + for j := 0; j < 100; j++ { + if 0.05 > rand.Float64() { + b.AppendNull() + continue + } + v := generateBoolean() + b.Append(v) + } + arrs = append(arrs, b.NewArray()) + } + + itr := arrowutil.IterateBooleans(arrs) + for i := 0; i < 300; i++ { + if !itr.Next() { + t.Fatalf("expected next value, but got false at index %d", i) + } + + arr := arrs[i/100].(*array.Boolean) + if want, got := arr.IsValid(i%100), itr.IsValid(); !cmp.Equal(want, got) { + t.Fatalf("unexpected valid value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } else if want && got { + if want, got := arr.Value(i%100), itr.Value(); !cmp.Equal(want, got) { + t.Fatalf("unexpected value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } + if want, got := arr.IsNull(i%100), itr.IsNull(); !cmp.Equal(want, got) { + t.Fatalf("unexpected null value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } +} + +func TestIterateStrings(t *testing.T) { + arrs := make([]array.Interface, 0, 3) + for i := 0; i < 3; i++ { + b := arrowutil.NewStringBuilder(memory.DefaultAllocator) + for j := 0; j < 100; j++ { + if 0.05 > rand.Float64() { + b.AppendNull() + continue + } + v := generateString() + b.AppendString(v) + } + arrs = append(arrs, b.NewArray()) + } + + itr := arrowutil.IterateStrings(arrs) + for i := 0; i < 300; i++ { + if !itr.Next() { + t.Fatalf("expected next value, but got false at index %d", i) + } + + arr := arrs[i/100].(*array.Binary) + if want, got := arr.IsValid(i%100), itr.IsValid(); !cmp.Equal(want, got) { + t.Fatalf("unexpected valid value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } else if want && got { + if want, got := arr.ValueString(i%100), itr.ValueString(); !cmp.Equal(want, got) { + t.Fatalf("unexpected value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } + if want, got := arr.IsNull(i%100), itr.IsNull(); !cmp.Equal(want, got) { + t.Fatalf("unexpected null value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } +} diff --git a/internal/arrowutil/iterator.gen_test.go.tmpl b/internal/arrowutil/iterator.gen_test.go.tmpl new file mode 100644 index 0000000000..b0d24b31d8 --- /dev/null +++ b/internal/arrowutil/iterator.gen_test.go.tmpl @@ -0,0 +1,48 @@ +package arrowutil_test + +import ( + "math/rand" + "testing" + + "github.com/google/go-cmp/cmp" + "github.com/apache/arrow/go/arrow/array" + "github.com/apache/arrow/go/arrow/memory" + "github.com/influxdata/flux/internal/arrowutil" +) + +{{range .}} +func TestIterate{{.Name}}s(t *testing.T) { + arrs := make([]array.Interface, 0, 3) + for i := 0; i < 3; i++ { + b := arrowutil.New{{.Name}}Builder(memory.DefaultAllocator) + for j := 0; j < 100; j++ { + if 0.05 > rand.Float64() { + b.AppendNull() + continue + } + v := generate{{.Name}}() + b.{{.Append}}(v) + } + arrs = append(arrs, b.NewArray()) + } + + itr := arrowutil.Iterate{{.Name}}s(arrs) + for i := 0; i < 300; i++ { + if !itr.Next() { + t.Fatalf("expected next value, but got false at index %d", i) + } + + arr := arrs[i/100].(*{{.Type}}) + if want, got := arr.IsValid(i%100), itr.IsValid(); !cmp.Equal(want, got) { + t.Fatalf("unexpected valid value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } else if want && got { + if want, got := arr.{{.Value}}(i%100), itr.{{.Value}}(); !cmp.Equal(want, got) { + t.Fatalf("unexpected value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } + if want, got := arr.IsNull(i%100), itr.IsNull(); !cmp.Equal(want, got) { + t.Fatalf("unexpected null value at index %d -want/+got:\n%s", i, cmp.Diff(want, got)) + } + } +} +{{end}} diff --git a/internal/arrowutil/iterator_test.go b/internal/arrowutil/iterator_test.go new file mode 100644 index 0000000000..59fa4e0e52 --- /dev/null +++ b/internal/arrowutil/iterator_test.go @@ -0,0 +1,41 @@ +package arrowutil_test + +import ( + "math/rand" + "strings" +) + +func generateInt64() int64 { + return int64(rand.Intn(201) - 100) +} + +func generateUint64() uint64 { + return uint64(rand.Intn(201) - 100) +} + +func generateFloat64() float64 { + return rand.NormFloat64() * 50 +} + +func generateBoolean() bool { + return rand.Intn(2) != 0 +} + +func generateString() string { + var buf strings.Builder + for i := 0; i < 3; i++ { + chars := 62 + if i == 0 { + chars = 52 + } + switch n := rand.Intn(chars); { + case n >= 0 && n < 26: + buf.WriteByte('A' + byte(n)) + case n >= 26 && n < 52: + buf.WriteByte('a' + byte(n-26)) + case n >= 52: + buf.WriteByte('0' + byte(n-52)) + } + } + return buf.String() +} diff --git a/internal/arrowutil/types.tmpldata b/internal/arrowutil/types.tmpldata new file mode 100644 index 0000000000..fea952124c --- /dev/null +++ b/internal/arrowutil/types.tmpldata @@ -0,0 +1,47 @@ +[ + { + "Name": "Int64", + "Type": "array.Int64", + "PrimitiveType": "int64", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "Uint64", + "Type": "array.Uint64", + "PrimitiveType": "uint64", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "Float64", + "Type": "array.Float64", + "PrimitiveType": "float64", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "Boolean", + "Type": "array.Boolean", + "PrimitiveType": "bool", + "IsNumeric": false, + "IsComparable": false, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "String", + "Type": "array.Binary", + "PrimitiveType": "string", + "IsNumeric": false, + "IsComparable": true, + "Value": "ValueString", + "Append": "AppendString" + } +] diff --git a/internal/execute/tableutil/buffered.go b/internal/execute/tableutil/buffered.go new file mode 100644 index 0000000000..59eb120451 --- /dev/null +++ b/internal/execute/tableutil/buffered.go @@ -0,0 +1,74 @@ +package tableutil + +import ( + "sync/atomic" + + "github.com/influxdata/flux" + "github.com/influxdata/flux/codes" + "github.com/influxdata/flux/internal/errors" +) + +// BufferedTable represents a table of buffered column readers. +type BufferedTable struct { + used int32 + GroupKey flux.GroupKey + Columns []flux.ColMeta + Buffers []flux.ColReader +} + +// FromBuffer constructs a flux.Table from a single flux.ColReader. +func FromBuffer(cr flux.ColReader) flux.Table { + return &BufferedTable{ + GroupKey: cr.Key(), + Columns: cr.Cols(), + Buffers: []flux.ColReader{cr}, + } +} + +func (b *BufferedTable) Key() flux.GroupKey { + return b.GroupKey +} + +func (b *BufferedTable) Cols() []flux.ColMeta { + return b.Columns +} + +func (b *BufferedTable) Do(f func(flux.ColReader) error) error { + if !atomic.CompareAndSwapInt32(&b.used, 0, 1) { + return errors.New(codes.Internal, "table already read") + } + + i := 0 + defer func() { + for ; i < len(b.Buffers); i++ { + b.Buffers[i].Release() + } + }() + + for ; i < len(b.Buffers); i++ { + cr := b.Buffers[i] + if err := f(cr); err != nil { + return err + } + cr.Release() + } + return nil +} + +func (b *BufferedTable) Done() { + if atomic.CompareAndSwapInt32(&b.used, 0, 1) { + for _, buf := range b.Buffers { + buf.Release() + } + b.Buffers = nil + } +} + +func (b *BufferedTable) Empty() bool { + for _, buf := range b.Buffers { + if buf.Len() > 0 { + return false + } + } + return true +} diff --git a/internal/execute/tableutil/buffered_internal_test.go b/internal/execute/tableutil/buffered_internal_test.go new file mode 100644 index 0000000000..0c492bd207 --- /dev/null +++ b/internal/execute/tableutil/buffered_internal_test.go @@ -0,0 +1,13 @@ +package tableutil + +import "sync/atomic" + +// IsDone is used to allow the tests to access internal parts +// of the table structure for the table tests. +// This method can only be used by asserting that it exists +// through an anonymous interface. This should not be used +// outside of testing code because there is no guarantee +// on the safety of this method. +func (b *BufferedTable) IsDone() bool { + return len(b.Buffers) == 0 || atomic.LoadInt32(&b.used) != 0 +} diff --git a/internal/execute/tableutil/buffered_test.go b/internal/execute/tableutil/buffered_test.go new file mode 100644 index 0000000000..116a0f66bc --- /dev/null +++ b/internal/execute/tableutil/buffered_test.go @@ -0,0 +1,124 @@ +package tableutil_test + +import ( + "context" + "testing" + + "github.com/apache/arrow/go/arrow/array" + "github.com/influxdata/flux" + "github.com/influxdata/flux/arrow" + "github.com/influxdata/flux/execute" + "github.com/influxdata/flux/execute/executetest" + "github.com/influxdata/flux/internal/execute/tableutil" + "github.com/influxdata/flux/memory" + "github.com/influxdata/flux/values" +) + +func TestBufferedTable(t *testing.T) { + executetest.RunTableTests(t, + executetest.TableTest{ + NewFn: func(ctx context.Context, alloc *memory.Allocator) flux.TableIterator { + // Only a single buffer. + tbl1 := tableutil.FromBuffer( + func() flux.ColReader { + key := execute.NewGroupKey( + []flux.ColMeta{ + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + []values.Value{ + values.NewString("m0"), + values.NewString("f0"), + }, + ) + cols := append(key.Cols(), + flux.ColMeta{Label: "_time", Type: flux.TTime}, + flux.ColMeta{Label: "_value", Type: flux.TFloat}, + ) + vs := make([]array.Interface, len(cols)) + vs[0] = arrow.Repeat(key.Value(0), 3, alloc) + vs[1] = arrow.Repeat(key.Value(1), 3, alloc) + vs[2] = arrow.NewInt([]int64{0, 1, 2}, alloc) + vs[3] = arrow.NewFloat([]float64{4, 8, 7}, alloc) + return &arrow.TableBuffer{ + GroupKey: key, + Columns: cols, + Values: vs, + } + }(), + ) + // Multiple buffers. + tbl2 := func() flux.Table { + key := execute.NewGroupKey( + []flux.ColMeta{ + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + []values.Value{ + values.NewString("m1"), + values.NewString("f0"), + }, + ) + cols := append(key.Cols(), + flux.ColMeta{Label: "_time", Type: flux.TTime}, + flux.ColMeta{Label: "_value", Type: flux.TFloat}, + ) + + table := &tableutil.BufferedTable{ + GroupKey: key, + Columns: cols, + } + vs := make([]array.Interface, len(cols)) + vs[0] = arrow.Repeat(key.Value(0), 3, alloc) + vs[1] = arrow.Repeat(key.Value(1), 3, alloc) + vs[2] = arrow.NewInt([]int64{0, 1, 2}, alloc) + vs[3] = arrow.NewFloat([]float64{4, 8, 7}, alloc) + table.Buffers = append(table.Buffers, &arrow.TableBuffer{ + GroupKey: key, + Columns: cols, + Values: vs, + }) + + vs = make([]array.Interface, len(cols)) + vs[0] = arrow.Repeat(key.Value(0), 5, alloc) + vs[1] = arrow.Repeat(key.Value(1), 5, alloc) + vs[2] = arrow.NewInt([]int64{3, 4, 5, 6, 7}, alloc) + vs[3] = arrow.NewFloat([]float64{2, 9, 4, 6, 2}, alloc) + table.Buffers = append(table.Buffers, &arrow.TableBuffer{ + GroupKey: key, + Columns: cols, + Values: vs, + }) + return table + }() + // Empty table. + tbl3 := func() flux.Table { + key := execute.NewGroupKey( + []flux.ColMeta{ + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + []values.Value{ + values.NewString("m2"), + values.NewString("f0"), + }, + ) + cols := append(key.Cols(), + flux.ColMeta{Label: "_time", Type: flux.TTime}, + flux.ColMeta{Label: "_value", Type: flux.TFloat}, + ) + return &tableutil.BufferedTable{ + GroupKey: key, + Columns: cols, + } + }() + return TableIterator( + []flux.Table{tbl1, tbl2, tbl3}, + ) + }, + IsDone: func(tbl flux.Table) bool { + return tbl.(interface{ IsDone() bool }).IsDone() + }, + }, + ) +} diff --git a/internal/execute/tableutil/stream_test.go b/internal/execute/tableutil/stream_test.go index 5e277763d8..a7e6e647d8 100644 --- a/internal/execute/tableutil/stream_test.go +++ b/internal/execute/tableutil/stream_test.go @@ -14,17 +14,6 @@ import ( "github.com/influxdata/flux/values" ) -type TableIterator []flux.Table - -func (t TableIterator) Do(f func(flux.Table) error) error { - for _, tbl := range t { - if err := f(tbl); err != nil { - return err - } - } - return nil -} - func TestStream(t *testing.T) { executetest.RunTableTests(t, executetest.TableTest{ diff --git a/internal/execute/tableutil/utils_test.go b/internal/execute/tableutil/utils_test.go new file mode 100644 index 0000000000..48fb126bfb --- /dev/null +++ b/internal/execute/tableutil/utils_test.go @@ -0,0 +1,14 @@ +package tableutil_test + +import "github.com/influxdata/flux" + +type TableIterator []flux.Table + +func (t TableIterator) Do(f func(flux.Table) error) error { + for _, tbl := range t { + if err := f(tbl); err != nil { + return err + } + } + return nil +} diff --git a/internal/gen/input.go b/internal/gen/input.go index c169c06e7e..326ec3fa04 100644 --- a/internal/gen/input.go +++ b/internal/gen/input.go @@ -410,7 +410,7 @@ func (dg *dataGenerator) Do(f func(tbl flux.Table) error) error { if vs.Len() == ts.Len() { vs.Retain() } else { - vs = array.NewSlice(vs, 0, int64(ts.Len())) + vs = arrow.Slice(vs, 0, int64(ts.Len())) } tb.Values[i] = vs } @@ -455,26 +455,65 @@ func (dg *dataGenerator) generateBufferValues(r *rand.Rand, typ flux.ColType, n switch typ { case flux.TFloat: b := arrow.NewFloatBuilder(dg.Allocator) - b.Reserve(n) + b.Resize(n) for i := 0; i < n; i++ { if dg.Nulls > 0.0 && dg.Nulls > r.Float64() { b.AppendNull() + continue } - v := rand.NormFloat64() * 50 + v := r.NormFloat64() * 50 b.Append(v) } return b.NewArray() - case flux.TInt: + case flux.TInt, flux.TTime: b := arrow.NewIntBuilder(dg.Allocator) - b.Reserve(n) + b.Resize(n) for i := 0; i < n; i++ { if dg.Nulls > 0.0 && dg.Nulls > r.Float64() { b.AppendNull() + continue } - v := rand.Intn(201) - 100 + v := r.Intn(201) - 100 b.Append(int64(v)) } return b.NewArray() + case flux.TUInt: + b := arrow.NewUintBuilder(dg.Allocator) + b.Resize(n) + for i := 0; i < n; i++ { + if dg.Nulls > 0.0 && dg.Nulls > r.Float64() { + b.AppendNull() + continue + } + v := r.Intn(101) + b.Append(uint64(v)) + } + return b.NewArray() + case flux.TString: + b := arrow.NewStringBuilder(dg.Allocator) + b.Resize(n) + b.ReserveData(n * 7) + for i := 0; i < n; i++ { + if dg.Nulls > 0.0 && dg.Nulls > r.Float64() { + b.AppendNull() + continue + } + v := genTagValue(r, 3, 7) + b.AppendString(v) + } + return b.NewArray() + case flux.TBool: + b := arrow.NewBoolBuilder(dg.Allocator) + b.Resize(n) + for i := 0; i < n; i++ { + if dg.Nulls > 0.0 && dg.Nulls > r.Float64() { + b.AppendNull() + continue + } + v := r.Intn(2) != 0 + b.Append(v) + } + return b.NewArray() default: panic("implement me") } diff --git a/internal/tools/go.mod b/internal/tools/go.mod index b345835b7b..afdfed8c47 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -4,6 +4,7 @@ go 1.12 require ( github.com/BurntSushi/toml v0.3.1 // indirect + github.com/benbjohnson/tmpl v1.0.0 github.com/golang/protobuf v1.3.2 // indirect github.com/google/go-cmp v0.3.0 // indirect github.com/goreleaser/goreleaser v0.94.0 diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 2bffc9096d..c13438c751 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -3,6 +3,8 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/sprig v2.16.0+incompatible h1:QZbMUPxRQ50EKAq3LFMnxddMu88/EUUG3qmxwtDmPsY= +github.com/Masterminds/sprig v2.16.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/kingpin v2.2.6+incompatible h1:5svnBTFgJjZvGKyYBtMB0+m5wvrbUHiqye8wRJMlnYI= @@ -13,10 +15,14 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZq github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/aokoli/goutils v1.0.1 h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg= +github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= github.com/apex/log v1.1.0 h1:J5rld6WVFi6NxA6m8GJ1LJqu3+GiTFIt3mYv27gdQWI= github.com/apex/log v1.1.0/go.mod h1:yA770aXIDQrhVOIGurT/pVdfCpSq1GQV/auzMN5fzvY= github.com/aws/aws-sdk-go v1.15.64 h1:xI5HhxebTF+jVqVOraUDqI3kr24n+yTvslwZCo3OhGA= github.com/aws/aws-sdk-go v1.15.64/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= +github.com/benbjohnson/tmpl v1.0.0 h1:T5QPGJD0W6JJxyEEAlVnX3co/IkUrfHen1/42nlgAHo= +github.com/benbjohnson/tmpl v1.0.0/go.mod h1:igT620JFIi44B6awvU9IsDhR77IXWtFigTLil/RPdps= github.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2 h1:oMCHnXa6CCCafdPDbMh/lWRhRByN0VFLvv+g+ayx1SI= github.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= github.com/caarlos0/ctrlc v1.0.0 h1:2DtF8GSIcajgffDFJzyG15vO+1PuBWOMUdFut7NnXhw= @@ -26,6 +32,8 @@ github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMS github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/emirpasic/gods v1.9.0 h1:rUF4PuzEjMChMiNsVjdI+SyLu7rEqpQ5reNFnhC7oFo= github.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= @@ -45,10 +53,14 @@ github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4r github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/goreleaser/goreleaser v0.94.0 h1:2CFMxMTLODjYfNOx2sADNzpgCwH9ltMqvQYtj+ntK1Q= github.com/goreleaser/goreleaser v0.94.0/go.mod h1:OjbYR2NhOI6AEUWCowMSBzo9nP1aRif3sYtx+rhp+Zo= github.com/goreleaser/nfpm v0.9.7 h1:h8RQMDztu6cW7b0/s4PGbdeMYykAbJG0UMXaWG5uBMI= github.com/goreleaser/nfpm v0.9.7/go.mod h1:F2yzin6cBAL9gb+mSiReuXdsfTrOQwDMsuSpULof+y4= +github.com/huandu/xstrings v1.0.0 h1:pO2K/gKgKaat5LdpAhxhluX2GPQMaI3W5FUz/I/UnWk= +github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -101,6 +113,7 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/xanzy/ssh-agent v0.2.0 h1:Adglfbi5p9Z0BmK2oKU9nTG+zKfniSfnaMYB+ULd+Ro= github.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8= +golang.org/x/crypto v0.0.0-20180505025534-4ec37c66abab/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU= diff --git a/internal/tools/tools.go b/internal/tools/tools.go index 6481e8d3c6..8870b95e57 100644 --- a/internal/tools/tools.go +++ b/internal/tools/tools.go @@ -1,6 +1,7 @@ package tools import ( + _ "github.com/benbjohnson/tmpl" _ "github.com/goreleaser/goreleaser" _ "github.com/influxdata/changelog" _ "honnef.co/go/tools/cmd/staticcheck" diff --git a/internal/types.tmpldata b/internal/types.tmpldata new file mode 100644 index 0000000000..4c01bd140c --- /dev/null +++ b/internal/types.tmpldata @@ -0,0 +1,92 @@ +[ + { + "Name": "Int", + "name": "int", + "Type": "int64", + "PluralName": "Ints", + "pluralName": "ints", + "ArrowName": "Int64", + "ArrowType": "array.Int64", + "SemanticNature": "semantic.Int", + "ColumnType": "flux.TInt", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "Uint", + "name": "uint", + "Type": "uint64", + "PluralName": "Uints", + "pluralName": "uints", + "ArrowName": "Uint64", + "ArrowType": "array.Uint64", + "SemanticNature": "semantic.UInt", + "ColumnType": "flux.TUInt", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "Float", + "name": "float", + "Type": "float64", + "PluralName": "Floats", + "pluralName": "floats", + "ArrowName": "Float64", + "ArrowType": "array.Float64", + "SemanticNature": "semantic.Float", + "ColumnType": "flux.TFloat", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "Boolean", + "name": "boolean", + "Type": "bool", + "PluralName": "Booleans", + "pluralName": "booleans", + "ArrowName": "Boolean", + "ArrowType": "array.Boolean", + "SemanticNature": "semantic.Bool", + "ColumnType": "flux.TBool", + "IsNumeric": false, + "IsComparable": false, + "Value": "Value", + "Append": "Append" + }, + { + "Name": "String", + "name": "string", + "Type": "string", + "PluralName": "", + "pluralName": "strings", + "ArrowName": "String", + "ArrowType": "array.Binary", + "SemanticNature": "semantic.String", + "ColumnType": "flux.TString", + "IsNumeric": false, + "IsComparable": true, + "Value": "ValueString", + "Append": "AppendString" + }, + { + "Name": "Time", + "name": "time", + "Type": "int64", + "PluralName": "Times", + "pluralName": "times", + "ArrowName": "Int64", + "ArrowType": "array.Int64", + "SemanticNature": "semantic.Time", + "ColumnType": "flux.TTime", + "IsNumeric": true, + "IsComparable": true, + "Value": "Value", + "Append": "Append" + } +] diff --git a/stdlib/universe/pivot.gen.go b/stdlib/universe/pivot.gen.go new file mode 100644 index 0000000000..e9a4062aae --- /dev/null +++ b/stdlib/universe/pivot.gen.go @@ -0,0 +1,1480 @@ +// Generated by tmpl +// https://github.com/benbjohnson/tmpl +// +// DO NOT EDIT! +// Source: pivot.gen.go.tmpl + +package universe + +import ( + "github.com/apache/arrow/go/arrow/array" + "github.com/apache/arrow/go/arrow/memory" + "github.com/influxdata/flux" + "github.com/influxdata/flux/codes" + "github.com/influxdata/flux/internal/arrowutil" + "github.com/influxdata/flux/internal/errors" +) + +//lint:file-ignore U1000 Ignore all unused code, it's generated + +func (gr *pivotTableGroup) mergeKeys(mem memory.Allocator) array.Interface { + switch gr.rowCol.Type { + + case flux.TInt: + return gr.mergeIntKeys(mem) + + case flux.TUInt: + return gr.mergeUintKeys(mem) + + case flux.TFloat: + return gr.mergeFloatKeys(mem) + + case flux.TString: + return gr.mergeStringKeys(mem) + + case flux.TTime: + return gr.mergeTimeKeys(mem) + + default: + panic(errors.Newf(codes.Unimplemented, "row column merge not implemented for %s", gr.rowCol.Type)) + } +} + +func (gr *pivotTableGroup) buildColumn(keys array.Interface, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + switch gr.rowCol.Type { + + case flux.TInt: + return gr.buildColumnFromInts(keys.(*array.Int64), buf, mem) + + case flux.TUInt: + return gr.buildColumnFromUints(keys.(*array.Uint64), buf, mem) + + case flux.TFloat: + return gr.buildColumnFromFloats(keys.(*array.Float64), buf, mem) + + case flux.TString: + return gr.buildColumnFrom(keys.(*array.Binary), buf, mem) + + case flux.TTime: + return gr.buildColumnFromTimes(keys.(*array.Int64), buf, mem) + + default: + panic(errors.Newf(codes.Unimplemented, "row column merge not implemented for %s", gr.rowCol.Type)) + } +} + +func (gr *pivotTableGroup) mergeIntKeys(mem memory.Allocator) array.Interface { + buffers := make([][]array.Interface, 0, len(gr.buffers)) + for _, buf := range gr.buffers { + buffers = append(buffers, buf.keys) + } + + count := 0 + gr.forEachInt(buffers, func(v int64) { + count++ + }) + + b := arrowutil.NewInt64Builder(mem) + b.Resize(count) + gr.forEachInt(buffers, b.Append) + return b.NewArray() +} + +func (gr *pivotTableGroup) forEachInt(buffers [][]array.Interface, fn func(v int64)) { + iterators := make([]*arrowutil.Int64Iterator, 0, len(buffers)) + for _, vs := range buffers { + itr := arrowutil.IterateInt64s(vs) + if !itr.Next() { + continue + } + iterators = append(iterators, &itr) + } + + // Count the number of common keys. + for len(iterators) > 0 { + next := iterators[0].Value() + for _, itr := range iterators[1:] { + if v := itr.Value(); v < next { + next = v + } + } + + // This counts as a row. + fn(next) + + // Advance any iterators to the next non-null value + // that match the next value. + for i := 0; i < len(iterators); { + itr := iterators[i] + if itr.Value() != next { + i++ + continue + } + + // Advance to the next non-null value. + for { + if !itr.Next() { + // Remove this iterator from the list. + copy(iterators[i:], iterators[i+1:]) + iterators = iterators[:len(iterators)-1] + break + } + + if itr.IsValid() && itr.Value() != next { + // The next value is valid so advance + // to the next iterator. + i++ + break + } + } + } + } +} + +func (gr *pivotTableGroup) buildColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + + switch buf.valueType { + + case flux.TInt: + return gr.buildIntColumnFromInts(keys, buf, mem) + + case flux.TUInt: + return gr.buildUintColumnFromInts(keys, buf, mem) + + case flux.TFloat: + return gr.buildFloatColumnFromInts(keys, buf, mem) + + case flux.TBool: + return gr.buildBooleanColumnFromInts(keys, buf, mem) + + case flux.TString: + return gr.buildStringColumnFromInts(keys, buf, mem) + + case flux.TTime: + return gr.buildTimeColumnFromInts(keys, buf, mem) + + default: + panic("unimplemented") + } + +} + +func (gr *pivotTableGroup) buildIntColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildUintColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewUint64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateUint64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildFloatColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewFloat64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateFloat64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildBooleanColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewBooleanBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateBooleans(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildStringColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewStringBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateStrings(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.AppendString(vitr.ValueString()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildTimeColumnFromInts(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) mergeUintKeys(mem memory.Allocator) array.Interface { + buffers := make([][]array.Interface, 0, len(gr.buffers)) + for _, buf := range gr.buffers { + buffers = append(buffers, buf.keys) + } + + count := 0 + gr.forEachUint(buffers, func(v uint64) { + count++ + }) + + b := arrowutil.NewUint64Builder(mem) + b.Resize(count) + gr.forEachUint(buffers, b.Append) + return b.NewArray() +} + +func (gr *pivotTableGroup) forEachUint(buffers [][]array.Interface, fn func(v uint64)) { + iterators := make([]*arrowutil.Uint64Iterator, 0, len(buffers)) + for _, vs := range buffers { + itr := arrowutil.IterateUint64s(vs) + if !itr.Next() { + continue + } + iterators = append(iterators, &itr) + } + + // Count the number of common keys. + for len(iterators) > 0 { + next := iterators[0].Value() + for _, itr := range iterators[1:] { + if v := itr.Value(); v < next { + next = v + } + } + + // This counts as a row. + fn(next) + + // Advance any iterators to the next non-null value + // that match the next value. + for i := 0; i < len(iterators); { + itr := iterators[i] + if itr.Value() != next { + i++ + continue + } + + // Advance to the next non-null value. + for { + if !itr.Next() { + // Remove this iterator from the list. + copy(iterators[i:], iterators[i+1:]) + iterators = iterators[:len(iterators)-1] + break + } + + if itr.IsValid() && itr.Value() != next { + // The next value is valid so advance + // to the next iterator. + i++ + break + } + } + } + } +} + +func (gr *pivotTableGroup) buildColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + + switch buf.valueType { + + case flux.TInt: + return gr.buildIntColumnFromUints(keys, buf, mem) + + case flux.TUInt: + return gr.buildUintColumnFromUints(keys, buf, mem) + + case flux.TFloat: + return gr.buildFloatColumnFromUints(keys, buf, mem) + + case flux.TBool: + return gr.buildBooleanColumnFromUints(keys, buf, mem) + + case flux.TString: + return gr.buildStringColumnFromUints(keys, buf, mem) + + case flux.TTime: + return gr.buildTimeColumnFromUints(keys, buf, mem) + + default: + panic("unimplemented") + } + +} + +func (gr *pivotTableGroup) buildIntColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateUint64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildUintColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewUint64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateUint64s(buf.keys) + vitr := arrowutil.IterateUint64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildFloatColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewFloat64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateUint64s(buf.keys) + vitr := arrowutil.IterateFloat64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildBooleanColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewBooleanBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateUint64s(buf.keys) + vitr := arrowutil.IterateBooleans(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildStringColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewStringBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateUint64s(buf.keys) + vitr := arrowutil.IterateStrings(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.AppendString(vitr.ValueString()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildTimeColumnFromUints(keys *array.Uint64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateUint64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) mergeFloatKeys(mem memory.Allocator) array.Interface { + buffers := make([][]array.Interface, 0, len(gr.buffers)) + for _, buf := range gr.buffers { + buffers = append(buffers, buf.keys) + } + + count := 0 + gr.forEachFloat(buffers, func(v float64) { + count++ + }) + + b := arrowutil.NewFloat64Builder(mem) + b.Resize(count) + gr.forEachFloat(buffers, b.Append) + return b.NewArray() +} + +func (gr *pivotTableGroup) forEachFloat(buffers [][]array.Interface, fn func(v float64)) { + iterators := make([]*arrowutil.Float64Iterator, 0, len(buffers)) + for _, vs := range buffers { + itr := arrowutil.IterateFloat64s(vs) + if !itr.Next() { + continue + } + iterators = append(iterators, &itr) + } + + // Count the number of common keys. + for len(iterators) > 0 { + next := iterators[0].Value() + for _, itr := range iterators[1:] { + if v := itr.Value(); v < next { + next = v + } + } + + // This counts as a row. + fn(next) + + // Advance any iterators to the next non-null value + // that match the next value. + for i := 0; i < len(iterators); { + itr := iterators[i] + if itr.Value() != next { + i++ + continue + } + + // Advance to the next non-null value. + for { + if !itr.Next() { + // Remove this iterator from the list. + copy(iterators[i:], iterators[i+1:]) + iterators = iterators[:len(iterators)-1] + break + } + + if itr.IsValid() && itr.Value() != next { + // The next value is valid so advance + // to the next iterator. + i++ + break + } + } + } + } +} + +func (gr *pivotTableGroup) buildColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + + switch buf.valueType { + + case flux.TInt: + return gr.buildIntColumnFromFloats(keys, buf, mem) + + case flux.TUInt: + return gr.buildUintColumnFromFloats(keys, buf, mem) + + case flux.TFloat: + return gr.buildFloatColumnFromFloats(keys, buf, mem) + + case flux.TBool: + return gr.buildBooleanColumnFromFloats(keys, buf, mem) + + case flux.TString: + return gr.buildStringColumnFromFloats(keys, buf, mem) + + case flux.TTime: + return gr.buildTimeColumnFromFloats(keys, buf, mem) + + default: + panic("unimplemented") + } + +} + +func (gr *pivotTableGroup) buildIntColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateFloat64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildUintColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewUint64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateFloat64s(buf.keys) + vitr := arrowutil.IterateUint64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildFloatColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewFloat64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateFloat64s(buf.keys) + vitr := arrowutil.IterateFloat64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildBooleanColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewBooleanBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateFloat64s(buf.keys) + vitr := arrowutil.IterateBooleans(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildStringColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewStringBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateFloat64s(buf.keys) + vitr := arrowutil.IterateStrings(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.AppendString(vitr.ValueString()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildTimeColumnFromFloats(keys *array.Float64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateFloat64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildIntColumnFromBooleans(keys *array.Boolean, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateBooleans(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildUintColumnFromBooleans(keys *array.Boolean, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewUint64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateBooleans(buf.keys) + vitr := arrowutil.IterateUint64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildFloatColumnFromBooleans(keys *array.Boolean, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewFloat64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateBooleans(buf.keys) + vitr := arrowutil.IterateFloat64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildBooleanColumnFromBooleans(keys *array.Boolean, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewBooleanBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateBooleans(buf.keys) + vitr := arrowutil.IterateBooleans(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildStringColumnFromBooleans(keys *array.Boolean, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewStringBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateBooleans(buf.keys) + vitr := arrowutil.IterateStrings(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.AppendString(vitr.ValueString()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildTimeColumnFromBooleans(keys *array.Boolean, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateBooleans(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) mergeStringKeys(mem memory.Allocator) array.Interface { + buffers := make([][]array.Interface, 0, len(gr.buffers)) + for _, buf := range gr.buffers { + buffers = append(buffers, buf.keys) + } + + count := 0 + gr.forEachString(buffers, func(v string) { + count++ + }) + + b := arrowutil.NewStringBuilder(mem) + b.Resize(count) + gr.forEachString(buffers, b.AppendString) + return b.NewArray() +} + +func (gr *pivotTableGroup) forEachString(buffers [][]array.Interface, fn func(v string)) { + iterators := make([]*arrowutil.StringIterator, 0, len(buffers)) + for _, vs := range buffers { + itr := arrowutil.IterateStrings(vs) + if !itr.Next() { + continue + } + iterators = append(iterators, &itr) + } + + // Count the number of common keys. + for len(iterators) > 0 { + next := iterators[0].ValueString() + for _, itr := range iterators[1:] { + if v := itr.ValueString(); v < next { + next = v + } + } + + // This counts as a row. + fn(next) + + // Advance any iterators to the next non-null value + // that match the next value. + for i := 0; i < len(iterators); { + itr := iterators[i] + if itr.ValueString() != next { + i++ + continue + } + + // Advance to the next non-null value. + for { + if !itr.Next() { + // Remove this iterator from the list. + copy(iterators[i:], iterators[i+1:]) + iterators = iterators[:len(iterators)-1] + break + } + + if itr.IsValid() && itr.ValueString() != next { + // The next value is valid so advance + // to the next iterator. + i++ + break + } + } + } + } +} + +func (gr *pivotTableGroup) buildColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + + switch buf.valueType { + + case flux.TInt: + return gr.buildIntColumnFrom(keys, buf, mem) + + case flux.TUInt: + return gr.buildUintColumnFrom(keys, buf, mem) + + case flux.TFloat: + return gr.buildFloatColumnFrom(keys, buf, mem) + + case flux.TBool: + return gr.buildBooleanColumnFrom(keys, buf, mem) + + case flux.TString: + return gr.buildStringColumnFrom(keys, buf, mem) + + case flux.TTime: + return gr.buildTimeColumnFrom(keys, buf, mem) + + default: + panic("unimplemented") + } + +} + +func (gr *pivotTableGroup) buildIntColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateStrings(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.ValueString() == keys.ValueString(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildUintColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewUint64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateStrings(buf.keys) + vitr := arrowutil.IterateUint64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.ValueString() == keys.ValueString(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildFloatColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewFloat64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateStrings(buf.keys) + vitr := arrowutil.IterateFloat64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.ValueString() == keys.ValueString(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildBooleanColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewBooleanBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateStrings(buf.keys) + vitr := arrowutil.IterateBooleans(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.ValueString() == keys.ValueString(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildStringColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewStringBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateStrings(buf.keys) + vitr := arrowutil.IterateStrings(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.ValueString() == keys.ValueString(i) { + if vitr.IsValid() { + b.AppendString(vitr.ValueString()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildTimeColumnFrom(keys *array.Binary, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateStrings(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.ValueString() == keys.ValueString(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) mergeTimeKeys(mem memory.Allocator) array.Interface { + buffers := make([][]array.Interface, 0, len(gr.buffers)) + for _, buf := range gr.buffers { + buffers = append(buffers, buf.keys) + } + + count := 0 + gr.forEachTime(buffers, func(v int64) { + count++ + }) + + b := arrowutil.NewInt64Builder(mem) + b.Resize(count) + gr.forEachTime(buffers, b.Append) + return b.NewArray() +} + +func (gr *pivotTableGroup) forEachTime(buffers [][]array.Interface, fn func(v int64)) { + iterators := make([]*arrowutil.Int64Iterator, 0, len(buffers)) + for _, vs := range buffers { + itr := arrowutil.IterateInt64s(vs) + if !itr.Next() { + continue + } + iterators = append(iterators, &itr) + } + + // Count the number of common keys. + for len(iterators) > 0 { + next := iterators[0].Value() + for _, itr := range iterators[1:] { + if v := itr.Value(); v < next { + next = v + } + } + + // This counts as a row. + fn(next) + + // Advance any iterators to the next non-null value + // that match the next value. + for i := 0; i < len(iterators); { + itr := iterators[i] + if itr.Value() != next { + i++ + continue + } + + // Advance to the next non-null value. + for { + if !itr.Next() { + // Remove this iterator from the list. + copy(iterators[i:], iterators[i+1:]) + iterators = iterators[:len(iterators)-1] + break + } + + if itr.IsValid() && itr.Value() != next { + // The next value is valid so advance + // to the next iterator. + i++ + break + } + } + } + } +} + +func (gr *pivotTableGroup) buildColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + + switch buf.valueType { + + case flux.TInt: + return gr.buildIntColumnFromTimes(keys, buf, mem) + + case flux.TUInt: + return gr.buildUintColumnFromTimes(keys, buf, mem) + + case flux.TFloat: + return gr.buildFloatColumnFromTimes(keys, buf, mem) + + case flux.TBool: + return gr.buildBooleanColumnFromTimes(keys, buf, mem) + + case flux.TString: + return gr.buildStringColumnFromTimes(keys, buf, mem) + + case flux.TTime: + return gr.buildTimeColumnFromTimes(keys, buf, mem) + + default: + panic("unimplemented") + } + +} + +func (gr *pivotTableGroup) buildIntColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildUintColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewUint64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateUint64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildFloatColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewFloat64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateFloat64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildBooleanColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewBooleanBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateBooleans(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildStringColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewStringBuilder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateStrings(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.AppendString(vitr.ValueString()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} + +func (gr *pivotTableGroup) buildTimeColumnFromTimes(keys *array.Int64, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.NewInt64Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.IterateInt64s(buf.keys) + vitr := arrowutil.IterateInt64s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.Value() == keys.Value(i) { + if vitr.IsValid() { + b.Append(vitr.Value()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} diff --git a/stdlib/universe/pivot.gen.go.tmpl b/stdlib/universe/pivot.gen.go.tmpl new file mode 100644 index 0000000000..d708a6f54b --- /dev/null +++ b/stdlib/universe/pivot.gen.go.tmpl @@ -0,0 +1,155 @@ +package universe + +import ( + "github.com/apache/arrow/go/arrow/array" + "github.com/apache/arrow/go/arrow/memory" + "github.com/influxdata/flux" + "github.com/influxdata/flux/codes" + "github.com/influxdata/flux/internal/arrowutil" + "github.com/influxdata/flux/internal/errors" +) + +//lint:file-ignore U1000 Ignore all unused code, it's generated + +{{ $types := . }} + +func (gr *pivotTableGroup) mergeKeys(mem memory.Allocator) array.Interface { + switch gr.rowCol.Type { + {{range .}} + {{if .IsComparable}} + case {{.ColumnType}}: + return gr.merge{{.Name}}Keys(mem) + {{end}} + {{end}} + default: + panic(errors.Newf(codes.Unimplemented, "row column merge not implemented for %s", gr.rowCol.Type)) + } +} + +func (gr *pivotTableGroup) buildColumn(keys array.Interface, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + switch gr.rowCol.Type { + {{range .}} + {{if .IsComparable}} + case {{.ColumnType}}: + return gr.buildColumnFrom{{.PluralName}}(keys.(*{{.ArrowType}}), buf, mem) + {{end}} + {{end}} + default: + panic(errors.Newf(codes.Unimplemented, "row column merge not implemented for %s", gr.rowCol.Type)) + } +} + +{{range .}} +{{if .IsComparable}} +func (gr *pivotTableGroup) merge{{.Name}}Keys(mem memory.Allocator) array.Interface { + buffers := make([][]array.Interface, 0, len(gr.buffers)) + for _, buf := range gr.buffers { + buffers = append(buffers, buf.keys) + } + + count := 0 + gr.forEach{{.Name}}(buffers, func(v {{.Type}}) { + count++ + }) + + b := arrowutil.New{{.ArrowName}}Builder(mem) + b.Resize(count) + gr.forEach{{.Name}}(buffers, b.{{.Append}}) + return b.NewArray() +} + +func (gr *pivotTableGroup) forEach{{.Name}}(buffers [][]array.Interface, fn func(v {{.Type}})) { + iterators := make([]*arrowutil.{{.ArrowName}}Iterator, 0, len(buffers)) + for _, vs := range buffers { + itr := arrowutil.Iterate{{.ArrowName}}s(vs) + if !itr.Next() { + continue + } + iterators = append(iterators, &itr) + } + + // Count the number of common keys. + for len(iterators) > 0 { + next := iterators[0].{{.Value}}() + for _, itr := range iterators[1:] { + if v := itr.{{.Value}}(); v < next { + next = v + } + } + + // This counts as a row. + fn(next) + + // Advance any iterators to the next non-null value + // that match the next value. + for i := 0; i < len(iterators); { + itr := iterators[i] + if itr.{{.Value}}() != next { + i++ + continue + } + + // Advance to the next non-null value. + for { + if !itr.Next() { + // Remove this iterator from the list. + copy(iterators[i:], iterators[i+1:]) + iterators = iterators[:len(iterators)-1] + break + } + + if itr.IsValid() && itr.{{.Value}}() != next { + // The next value is valid so advance + // to the next iterator. + i++ + break + } + } + } + } +} + +func (gr *pivotTableGroup) buildColumnFrom{{.PluralName}}(keys *{{.ArrowType}}, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + {{with $key := .}} + switch buf.valueType { + {{range $types}} + case {{.ColumnType}}: + return gr.build{{.Name}}ColumnFrom{{$key.PluralName}}(keys, buf, mem) + {{end}} + default: + panic("unimplemented") + } + {{end}} +} +{{end}} + +{{with $key := .}} +{{range $types}} +func (gr *pivotTableGroup) build{{.Name}}ColumnFrom{{$key.PluralName}}(keys *{{$key.ArrowType}}, buf *pivotTableBuffer, mem memory.Allocator) array.Interface { + b := arrowutil.New{{.ArrowName}}Builder(mem) + b.Resize(keys.Len()) + + kitr := arrowutil.Iterate{{$key.ArrowName}}s(buf.keys) + vitr := arrowutil.Iterate{{.ArrowName}}s(buf.values) + for i := 0; kitr.Next() && vitr.Next(); { + for ; i < keys.Len(); i++ { + if kitr.{{$key.Value}}() == keys.{{$key.Value}}(i) { + if vitr.IsValid() { + b.{{.Append}}(vitr.{{.Value}}()) + } else { + b.AppendNull() + } + i++ + break + } + b.AppendNull() + } + } + for i := b.Len(); i < keys.Len(); i++ { + b.AppendNull() + } + return b.NewArray() +} +{{end}} +{{end}} +{{end}} diff --git a/stdlib/universe/pivot.go b/stdlib/universe/pivot.go index 51740c2d49..f9168e9a23 100644 --- a/stdlib/universe/pivot.go +++ b/stdlib/universe/pivot.go @@ -1,18 +1,29 @@ package universe import ( + "context" + "fmt" + "sort" "strconv" + "github.com/apache/arrow/go/arrow/array" + arrowmemory "github.com/apache/arrow/go/arrow/memory" "github.com/influxdata/flux" + "github.com/influxdata/flux/arrow" "github.com/influxdata/flux/codes" "github.com/influxdata/flux/execute" "github.com/influxdata/flux/internal/errors" + "github.com/influxdata/flux/internal/execute/tableutil" "github.com/influxdata/flux/interpreter" + "github.com/influxdata/flux/memory" "github.com/influxdata/flux/plan" "github.com/influxdata/flux/semantic" "github.com/influxdata/flux/values" ) +//go:generate -command tmpl ../../gotool.sh github.com/benbjohnson/tmpl +//go:generate tmpl -data=@../../internal/types.tmpldata -o pivot.gen.go pivot.gen.go.tmpl + const ( PivotKind = "pivot" nullValueLabel = "null" @@ -382,3 +393,282 @@ func (t *pivotTransformation) Finish(id execute.DatasetID, err error) { t.d.Finish(err) } + +// pivotTransformation2 is an optimized version of pivot. +// It can only be used when there is a single row and column key +// and it can only be used if the row key is sorted without +// null values. +type pivotTransformation2 struct { + d *execute.PassthroughDataset + ctx context.Context + alloc *memory.Allocator + spec PivotProcedureSpec + groups *execute.GroupLookup +} + +func newPivotTransformation2(ctx context.Context, spec PivotProcedureSpec, id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset, error) { + if len(spec.RowKey) > 1 { + return nil, nil, errors.New(codes.Unimplemented, "multiple row keys are not implemented") + } + if len(spec.ColumnKey) > 1 { + return nil, nil, errors.New(codes.Unimplemented, "multiple column keys are not implemented") + } + t := &pivotTransformation2{ + d: execute.NewPassthroughDataset(id), + ctx: ctx, + alloc: alloc, + spec: spec, + groups: execute.NewGroupLookup(), + } + return t, t.d, nil +} + +func (t *pivotTransformation2) RetractTable(id execute.DatasetID, key flux.GroupKey) error { + return t.d.RetractTable(key) +} + +func (t *pivotTransformation2) Process(id execute.DatasetID, tbl flux.Table) error { + // Validate that the table has all of the requisite columns. + if err := t.validateTable(tbl); err != nil { + return err + } + + // Compute the group key that this table belongs part of. + // This is calculated by taking the current group key and removing + // the column keys and the value column. + // This can be calculated in advance because pivot will never + // add columns to the group key so it is safe to compute without + // the other tables. + key := t.computeGroupKey(tbl.Key()) + + // Determine the indices of everything. + rowIndex := execute.ColIdx(t.spec.RowKey[0], tbl.Cols()) + rowType := tbl.Cols()[rowIndex].Type + valueIndex := execute.ColIdx(t.spec.ValueColumn, tbl.Cols()) + valueType := tbl.Cols()[valueIndex].Type + + // Find or create a group of pivot table buffers. + // These are organized by the column name. + gr := t.groups.LookupOrCreate(key, func() interface{} { + return &pivotTableGroup{ + rowCol: flux.ColMeta{ + Label: t.spec.RowKey[0], + Type: rowType, + }, + buffers: make(map[string]*pivotTableBuffer), + } + }).(*pivotTableGroup) + + // Read the table and insert each of the column readers + // into the table group. + return tbl.Do(func(cr flux.ColReader) error { + colKey := t.spec.ColumnKey[0] + key := cr.Key().LabelValue(colKey) + if key == nil { + // The column key is not part of the group key + // so it does not have a consistent value. + // This is possible for us to do, but it requires + // regrouping the input and that is not implemented yet. + return errors.New(codes.Unimplemented, "column keys that are not part of the group key are not supported yet") + } + + // The key must be a string. + if key.Type() != semantic.String { + return errors.New(codes.FailedPrecondition, "column key must be of type string") + } + label := key.Str() + + // Retrieve the buffer associated with this value. + buf, ok := gr.buffers[label] + if !ok { + buf = &pivotTableBuffer{valueType: valueType} + gr.buffers[label] = buf + } + + if buf.valueType != valueType { + return errors.New(codes.FailedPrecondition, "value columns with the same column key have different types") + } + + // Insert the array associated with the row + // key and the value column into the buffer. + k, v := t.getColumn(cr, rowIndex), t.getColumn(cr, valueIndex) + buf.Insert(k, v) + return nil + }) +} + +func (t *pivotTransformation2) validateTable(tbl flux.Table) error { + if missingColumn, ok := func() (string, bool) { + for _, v := range t.spec.RowKey { + if idx := execute.ColIdx(v, tbl.Cols()); idx < 0 { + return v, false + } + } + + for _, v := range t.spec.ColumnKey { + if idx := execute.ColIdx(v, tbl.Cols()); idx < 0 { + return v, false + } + } + + if idx := execute.ColIdx(t.spec.ValueColumn, tbl.Cols()); idx < 0 { + return t.spec.ValueColumn, false + } + return "", true + }(); !ok { + return errors.Newf(codes.FailedPrecondition, "specified column does not exist in table: %v", missingColumn) + } + return nil +} + +// computeGroupKey will compute the group key for a table with a given key. +// This is constructed by removing any columns within the column key +// or the value column. +func (t *pivotTransformation2) computeGroupKey(key flux.GroupKey) flux.GroupKey { + // TODO(jsternberg): This can be optimized further when we + // refactor the group key implementation so it is more composable. + // https://github.com/influxdata/flux/issues/1032 + // There's no requirement for us to copy the group key here + // as this is a simple filter and we also don't even know if + // we're going to even filter anything when we compute this. + // But as this simplifies the current implementation, we'll revisit + // this later. + cols := make([]flux.ColMeta, 0, len(key.Cols())) + vs := make([]values.Value, 0, len(key.Cols())) + for i, col := range key.Cols() { + if col.Label == t.spec.ValueColumn || t.contains(col.Label, t.spec.ColumnKey) { + continue + } + cols = append(cols, col) + vs = append(vs, key.Value(i)) + } + return execute.NewGroupKey(cols, vs) +} + +func (t *pivotTransformation2) contains(v string, ss []string) bool { + for _, s := range ss { + if s == v { + return true + } + } + return false +} + +func (t *pivotTransformation2) getColumn(cr flux.ColReader, j int) array.Interface { + switch col := cr.Cols()[j]; col.Type { + case flux.TInt: + return cr.Ints(j) + case flux.TUInt: + return cr.UInts(j) + case flux.TFloat: + return cr.Floats(j) + case flux.TString: + return cr.Strings(j) + case flux.TBool: + return cr.Bools(j) + case flux.TTime: + return cr.Times(j) + default: + panic(fmt.Sprintf("unexpected column type: %s", col.Type)) + } +} + +func (t *pivotTransformation2) UpdateWatermark(id execute.DatasetID, mark execute.Time) error { + return t.d.UpdateWatermark(mark) +} + +func (t *pivotTransformation2) UpdateProcessingTime(id execute.DatasetID, mark execute.Time) error { + return t.d.UpdateProcessingTime(mark) +} + +func (t *pivotTransformation2) Finish(id execute.DatasetID, err error) { + t.groups.Range(func(key flux.GroupKey, value interface{}) { + if err != nil { + return + } + + var tbl flux.Table + gr := value.(*pivotTableGroup) + tbl, err = gr.doPivot(key, t.alloc) + if err != nil { + return + } + err = t.d.Process(tbl) + }) + t.groups.Clear() + + // Inform the downstream dataset that we are finished. + t.d.Finish(err) +} + +type pivotTableBuffer struct { + keys []array.Interface + valueType flux.ColType + values []array.Interface +} + +func (b *pivotTableBuffer) Insert(k, v array.Interface) { + k.Retain() + b.keys = append(b.keys, k) + v.Retain() + b.values = append(b.values, v) +} + +func (b *pivotTableBuffer) Release() { + for _, k := range b.keys { + k.Release() + } + for _, v := range b.values { + v.Release() + } +} + +type pivotTableGroup struct { + rowCol flux.ColMeta + buffers map[string]*pivotTableBuffer +} + +func (gr *pivotTableGroup) doPivot(key flux.GroupKey, mem arrowmemory.Allocator) (flux.Table, error) { + // Merge all of the keys from each buffer. + keys := gr.mergeKeys(mem) + + // Create the table buffer that will be used for the final table. + ncols := len(key.Cols()) + len(gr.buffers) + tb := &arrow.TableBuffer{ + GroupKey: key, + Columns: make([]flux.ColMeta, 0, ncols), + Values: make([]array.Interface, 0, ncols), + } + tb.Columns = append(tb.Columns, gr.rowCol) + tb.Values = append(tb.Values, keys) + + // Add the group key columns to the table. + for j, col := range key.Cols() { + tb.Columns = append(tb.Columns, col) + tb.Values = append(tb.Values, arrow.Repeat(key.Value(j), keys.Len(), mem)) + } + + // Build each column by appending a value when it matches + // with one of the keys and null when it does not. + labels := make([]string, 0, len(gr.buffers)) + for label := range gr.buffers { + labels = append(labels, label) + } + sort.Strings(labels) + + for _, label := range labels { + buf := gr.buffers[label] + vs := gr.buildColumn(keys, buf, mem) + tb.Columns = append(tb.Columns, flux.ColMeta{ + Label: label, + Type: buf.valueType, + }) + tb.Values = append(tb.Values, vs) + buf.Release() + } + + if err := tb.Validate(); err != nil { + return nil, err + } + return tableutil.FromBuffer(tb), nil +} diff --git a/stdlib/universe/pivot_internal_test.go b/stdlib/universe/pivot_internal_test.go new file mode 100644 index 0000000000..3bcbdce1ce --- /dev/null +++ b/stdlib/universe/pivot_internal_test.go @@ -0,0 +1,16 @@ +package universe + +import ( + "context" + + "github.com/influxdata/flux/execute" + "github.com/influxdata/flux/memory" +) + +// TODO(jsternberg): This is exposed so the tests have access +// to the new transformation. This method should not be used +// externally as the new pivot is not meant to be exposed publically +// at the moment and the name will probably change when it is exposed. +func NewPivotTransformation2(ctx context.Context, spec PivotProcedureSpec, id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset, error) { + return newPivotTransformation2(ctx, spec, id, alloc) +} diff --git a/stdlib/universe/pivot_test.go b/stdlib/universe/pivot_test.go index b924ad2c74..dafbacd38d 100644 --- a/stdlib/universe/pivot_test.go +++ b/stdlib/universe/pivot_test.go @@ -1,12 +1,15 @@ package universe_test import ( + "context" "testing" "time" "github.com/influxdata/flux" "github.com/influxdata/flux/execute" "github.com/influxdata/flux/execute/executetest" + "github.com/influxdata/flux/internal/gen" + "github.com/influxdata/flux/memory" "github.com/influxdata/flux/querytest" "github.com/influxdata/flux/stdlib/influxdata/influxdb" "github.com/influxdata/flux/stdlib/universe" @@ -753,3 +756,673 @@ func TestPivot_Process(t *testing.T) { }) } } + +func TestPivot2_Process(t *testing.T) { + testCases := []struct { + name string + spec *universe.PivotProcedureSpec + data []flux.Table + want []*executetest.Table + }{ + { + name: "_field flatten case one measurement", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1"}, + {execute.Time(2), 3.0, "m1", "f1"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2"}, + {execute.Time(2), 4.0, "m1", "f2"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", 1.0, 2.0}, + {execute.Time(2), "m1", 3.0, 4.0}, + }, + }, + }, + }, + { + name: "_field flatten case two measurements", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1"}, + {execute.Time(2), 3.0, "m1", "f1"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2"}, + {execute.Time(2), 4.0, "m1", "f2"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m2", "f3"}, + {execute.Time(2), 3.0, "m2", "f3"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m2", "f4"}, + {execute.Time(2), 4.0, "m2", "f4"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", 1.0, 2.0}, + {execute.Time(2), "m1", 3.0, 4.0}, + }, + }, + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f3", Type: flux.TFloat}, + {Label: "f4", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m2", 1.0, 2.0}, + {execute.Time(2), "m2", 3.0, 4.0}, + }, + }, + }, + }, + { + name: "_field flatten case two measurements different value type", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1"}, + {execute.Time(2), 3.0, "m1", "f1"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2"}, + {execute.Time(2), 4.0, "m1", "f2"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TInt}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), int64(1), "m2", "f3"}, + {execute.Time(2), int64(3), "m2", "f3"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TInt}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), int64(2), "m2", "f4"}, + {execute.Time(2), int64(4), "m2", "f4"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", 1.0, 2.0}, + {execute.Time(2), "m1", 3.0, 4.0}, + }, + }, + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f3", Type: flux.TInt}, + {Label: "f4", Type: flux.TInt}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m2", int64(1), int64(2)}, + {execute.Time(2), "m2", int64(3), int64(4)}, + }, + }, + }, + }, + { + name: "dropping a column not in rowKey or groupKey", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "droppedcol", Type: flux.TInt}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1", int64(1)}, + {execute.Time(2), 3.0, "m1", "f1", int64(1)}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "droppedcol", Type: flux.TInt}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2", int64(1)}, + {execute.Time(2), 4.0, "m1", "f2", int64(1)}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", 1.0, 2.0}, + {execute.Time(2), "m1", 3.0, 4.0}, + }, + }, + }, + }, + { + name: "group key doesn't change", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "_field", "grouper"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1", "A"}, + {execute.Time(2), 3.0, "m1", "f1", "A"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field", "grouper"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2", "A"}, + {execute.Time(2), 4.0, "m1", "f2", "A"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement", "grouper"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", "A", 1.0, 2.0}, + {execute.Time(2), "m1", "A", 3.0, 4.0}, + }, + }, + }, + }, + { + name: "group key loses a member", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "grouper", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1", "A"}, + {execute.Time(2), 3.0, "m1", "f1", "A"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "grouper", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2", "B"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "grouper", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(2), 4.0, "m1", "f2", "A"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement", "grouper"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", "A", 1.0, nil}, + {execute.Time(2), "m1", "A", 3.0, 4.0}, + }, + }, + { + KeyCols: []string{"_measurement", "grouper"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + {Label: "f2", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", "B", 2.0}, + }, + }, + }, + }, + { + name: "group key loses all members. drops _value", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "grouper", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "grouper", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1", "A"}, + {execute.Time(2), 3.0, "m1", "f1", "A"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "grouper", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2", "B"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "grouper", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + {Label: "grouper", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(2), 4.0, "m1", "f2", "A"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f1", Type: flux.TString}, + {Label: "f2", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", "A", "B"}, + {execute.Time(2), "m1", "A", "A"}, + }, + }, + }, + }, + { + name: "_field flatten case one table with nulls", + spec: &universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + }, + data: []flux.Table{ + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 1.0, "m1", "f1"}, + {execute.Time(2), 4.0, "m1", "f1"}, + {execute.Time(3), nil, "m1", "f1"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), 2.0, "m1", "f2"}, + {execute.Time(2), 5.0, "m1", "f2"}, + }, + }, + &executetest.Table{ + KeyCols: []string{"_measurement", "_field"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_value", Type: flux.TFloat}, + {Label: "_measurement", Type: flux.TString}, + {Label: "_field", Type: flux.TString}, + }, + Data: [][]interface{}{ + {execute.Time(1), nil, "m1", "f3"}, + {execute.Time(2), nil, "m1", "f3"}, + {execute.Time(4), 8.0, "m1", "f3"}, + }, + }, + }, + want: []*executetest.Table{ + { + KeyCols: []string{"_measurement"}, + ColMeta: []flux.ColMeta{ + {Label: "_time", Type: flux.TTime}, + {Label: "_measurement", Type: flux.TString}, + {Label: "f1", Type: flux.TFloat}, + {Label: "f2", Type: flux.TFloat}, + {Label: "f3", Type: flux.TFloat}, + }, + Data: [][]interface{}{ + {execute.Time(1), "m1", 1.0, 2.0, nil}, + {execute.Time(2), "m1", 4.0, 5.0, nil}, + {execute.Time(3), "m1", nil, nil, nil}, + {execute.Time(4), "m1", nil, nil, 8.0}, + }, + }, + }, + }, + } + for _, tc := range testCases { + tc := tc + t.Run(tc.name, func(t *testing.T) { + executetest.ProcessTestHelper2( + t, + tc.data, + tc.want, + nil, + func(id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset) { + tr, d, err := universe.NewPivotTransformation2(context.Background(), *tc.spec, id, alloc) + if err != nil { + t.Fatal(err) + } + return tr, d + }) + }) + } +} + +func TestPivot2_Process_VariousSchemas(t *testing.T) { + spec := universe.PivotProcedureSpec{ + RowKey: []string{"_time"}, + ColumnKey: []string{"_field"}, + ValueColumn: "_value", + } + mem := &memory.Allocator{} + id := executetest.RandomDatasetID() + tr, d, err := universe.NewPivotTransformation2(context.Background(), spec, id, mem) + if err != nil { + t.Fatal(err) + } + + store := executetest.NewDataStore() + d.AddTransformation(store) + + tables, err := gen.Input(gen.Schema{ + Tags: []gen.Tag{ + {Name: "_measurement", Cardinality: 1}, + {Name: "_field", Cardinality: 10}, + {Name: "t0", Cardinality: 50}, + {Name: "t1", Cardinality: 5}, + }, + GroupBy: []string{"_measurement", "_field"}, + Nulls: 0.1, + Types: map[flux.ColType]int{ + flux.TInt: 1, + flux.TUInt: 1, + flux.TFloat: 1, + flux.TString: 1, + flux.TBool: 1, + flux.TTime: 1, + }, + }) + if err != nil { + t.Fatal(err) + } + + parent := executetest.RandomDatasetID() + if err := tables.Do(func(table flux.Table) error { + return tr.Process(parent, table) + }); err != nil { + t.Fatal(err) + } + + d.Finish(nil) + if err := store.Err(); err != nil { + t.Fatal(err) + } +} + +func BenchmarkPivot(b *testing.B) { + b.Run("1000", func(b *testing.B) { + benchmarkPivot(b, 1000) + }) +} + +func benchmarkPivot(b *testing.B, n int) { + b.ReportAllocs() + spec := &universe.PivotProcedureSpec{ + RowKey: []string{execute.DefaultTimeColLabel}, + ColumnKey: []string{"_field"}, + ValueColumn: execute.DefaultValueColLabel, + } + for i := 0; i < b.N; i++ { + executetest.ProcessBenchmarkHelper(b, + func(alloc *memory.Allocator) (flux.TableIterator, error) { + schema := gen.Schema{ + NumPoints: n, + Alloc: alloc, + Tags: []gen.Tag{ + {Name: "_measurement", Cardinality: 1}, + {Name: "_field", Cardinality: 6}, + {Name: "t0", Cardinality: 100}, + {Name: "t1", Cardinality: 50}, + }, + } + return gen.Input(schema) + }, + func(id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset) { + // cache := execute.NewTableBuilderCache(alloc) + // d := execute.NewDataset(id, execute.DiscardingMode, cache) + // t := NewPivotTransformation(d, cache, spec) + t, d, err := universe.NewPivotTransformation2(context.Background(), *spec, id, alloc) + if err != nil { + b.Fatal(err) + } + return t, d + }, + ) + } +} From 81c1b83142a2d869db7ed4a4fe5563f1c1b155c7 Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Mon, 2 Dec 2019 09:30:22 -0600 Subject: [PATCH 12/19] feat(stdlib): expose the optimized pivot (#2202) This allows the planner to add methods to determine if the new pivot can be used to the pivot procedure spec. These methods may be temporary at the moment. This also adds an additional table test to ensure that `Empty()` continues functioning and returning the same value after the table has been read. --- execute/executetest/table.go | 35 ++++++++++++++++++++ internal/execute/tableutil/buffered.go | 13 ++++++++ stdlib/universe/pivot.go | 45 +++++++++++++++++++++++--- stdlib/universe/pivot_test.go | 21 +++++++++++- 4 files changed, 108 insertions(+), 6 deletions(-) diff --git a/execute/executetest/table.go b/execute/executetest/table.go index 360cb08a06..56f19c445f 100644 --- a/execute/executetest/table.go +++ b/execute/executetest/table.go @@ -643,6 +643,41 @@ func RunTableTests(t *testing.T, tt TableTest) { }) tt.finish(false) }) + tt.run(t, "EmptyAfterDo", func(tt *tableTest) { + // It should be ok to call empty after do and get the same result. + tt.do(func(tbl flux.Table) error { + want := tbl.Empty() + if err := tbl.Do(func(cr flux.ColReader) error { + if cr.Len() > 0 { + want = false + } + return nil + }); err != nil { + return err + } + got := tbl.Empty() + + if got != want { + tt.t.Errorf("unexpected value for empty -got/+want\n\t- %v\n\t+ %v", got, want) + } + return nil + }) + tt.finish(true) + }) + tt.run(t, "EmptyAfterDone", func(tt *tableTest) { + // It should be ok to call empty after done and get the same result. + tt.do(func(tbl flux.Table) error { + want := tbl.Empty() + tbl.Done() + got := tbl.Empty() + + if got != want { + tt.t.Errorf("unexpected value for empty -got/+want\n\t- %v\n\t+ %v", got, want) + } + return nil + }) + tt.finish(false) + }) tt.run(t, "Retain", func(tt *tableTest) { // Retain should allow the column reader to be used outside of Do. tt.do(func(tbl flux.Table) error { diff --git a/internal/execute/tableutil/buffered.go b/internal/execute/tableutil/buffered.go index 59eb120451..b570fc47d9 100644 --- a/internal/execute/tableutil/buffered.go +++ b/internal/execute/tableutil/buffered.go @@ -11,6 +11,7 @@ import ( // BufferedTable represents a table of buffered column readers. type BufferedTable struct { used int32 + empty bool GroupKey flux.GroupKey Columns []flux.ColMeta Buffers []flux.ColReader @@ -45,8 +46,12 @@ func (b *BufferedTable) Do(f func(flux.ColReader) error) error { } }() + b.empty = true for ; i < len(b.Buffers); i++ { cr := b.Buffers[i] + if cr.Len() > 0 { + b.empty = false + } if err := f(cr); err != nil { return err } @@ -57,6 +62,7 @@ func (b *BufferedTable) Do(f func(flux.ColReader) error) error { func (b *BufferedTable) Done() { if atomic.CompareAndSwapInt32(&b.used, 0, 1) { + b.empty = b.isEmpty() for _, buf := range b.Buffers { buf.Release() } @@ -65,6 +71,13 @@ func (b *BufferedTable) Done() { } func (b *BufferedTable) Empty() bool { + if atomic.LoadInt32(&b.used) != 0 { + return b.empty + } + return b.isEmpty() +} + +func (b *BufferedTable) isEmpty() bool { for _, buf := range b.Buffers { if buf.Len() > 0 { return false diff --git a/stdlib/universe/pivot.go b/stdlib/universe/pivot.go index f9168e9a23..ee8bb09a35 100644 --- a/stdlib/universe/pivot.go +++ b/stdlib/universe/pivot.go @@ -112,6 +112,18 @@ type PivotProcedureSpec struct { RowKey []string ColumnKey []string ValueColumn string + + // IsSortedByFunc is a function that can be set by the planner + // that can be used to determine if the parent is sorted by + // the given columns. + // TODO(jsternberg): See https://github.com/influxdata/flux/issues/2131 for details. + IsSortedByFunc func(cols []string, desc bool) bool + + // IsKeyColumnFunc is a function that can be set by the planner + // that can be used to determine if the given column would be + // part of the group key if it were present. + // TODO(jsternberg): See https://github.com/influxdata/flux/issues/2131 for details. + IsKeyColumnFunc func(label string) bool } func newPivotProcedure(qs flux.OperationSpec, pa plan.Administration) (plan.ProcedureSpec, error) { @@ -142,12 +154,31 @@ func (s *PivotProcedureSpec) Copy() plan.ProcedureSpec { return ns } +func (s *PivotProcedureSpec) isSortedBy(cols []string, desc bool) bool { + if s.IsSortedByFunc != nil { + return s.IsSortedByFunc(cols, desc) + } + return false +} + +func (s *PivotProcedureSpec) isKeyColumn(label string) bool { + if s.IsKeyColumnFunc != nil { + return s.IsKeyColumnFunc(label) + } + return false +} + func createPivotTransformation(id execute.DatasetID, mode execute.AccumulationMode, spec plan.ProcedureSpec, a execute.Administration) (execute.Transformation, execute.Dataset, error) { s, ok := spec.(*PivotProcedureSpec) if !ok { return nil, nil, errors.Newf(codes.Internal, "invalid spec type %T", spec) } + // Attempt to use the new pivot transformation if it is implemented for our inputs. + if t, d, err := newPivotTransformation2(a.Context(), *s, id, a.Allocator()); err == nil || flux.ErrorCode(err) != codes.Unimplemented { + return t, d, err + } + cache := execute.NewTableBuilderCache(a.Allocator()) d := execute.NewDataset(id, mode, cache) t := NewPivotTransformation(d, cache, s) @@ -407,11 +438,15 @@ type pivotTransformation2 struct { } func newPivotTransformation2(ctx context.Context, spec PivotProcedureSpec, id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset, error) { - if len(spec.RowKey) > 1 { - return nil, nil, errors.New(codes.Unimplemented, "multiple row keys are not implemented") - } - if len(spec.ColumnKey) > 1 { - return nil, nil, errors.New(codes.Unimplemented, "multiple column keys are not implemented") + if len(spec.RowKey) != 1 { + return nil, nil, errors.New(codes.Unimplemented, "only pivots with 1 row key are implemented") + } else if !spec.isSortedBy(spec.RowKey, false) { + return nil, nil, errors.New(codes.Unimplemented, "input must be sorted by the row key") + } + if len(spec.ColumnKey) != 1 { + return nil, nil, errors.New(codes.Unimplemented, "only pivots with 1 column key are implemented") + } else if !spec.isKeyColumn(spec.ColumnKey[0]) { + return nil, nil, errors.New(codes.Unimplemented, "column key must be part of the group key") } t := &pivotTransformation2{ d: execute.NewPassthroughDataset(id), diff --git a/stdlib/universe/pivot_test.go b/stdlib/universe/pivot_test.go index dafbacd38d..28879c2d18 100644 --- a/stdlib/universe/pivot_test.go +++ b/stdlib/universe/pivot_test.go @@ -1324,7 +1324,14 @@ func TestPivot2_Process(t *testing.T) { tc.want, nil, func(id execute.DatasetID, alloc *memory.Allocator) (execute.Transformation, execute.Dataset) { - tr, d, err := universe.NewPivotTransformation2(context.Background(), *tc.spec, id, alloc) + spec := *tc.spec + spec.IsKeyColumnFunc = func(label string) bool { + return true + } + spec.IsSortedByFunc = func(cols []string, desc bool) bool { + return true + } + tr, d, err := universe.NewPivotTransformation2(context.Background(), spec, id, alloc) if err != nil { t.Fatal(err) } @@ -1339,6 +1346,12 @@ func TestPivot2_Process_VariousSchemas(t *testing.T) { RowKey: []string{"_time"}, ColumnKey: []string{"_field"}, ValueColumn: "_value", + IsKeyColumnFunc: func(label string) bool { + return true + }, + IsSortedByFunc: func(cols []string, desc bool) bool { + return true + }, } mem := &memory.Allocator{} id := executetest.RandomDatasetID() @@ -1397,6 +1410,12 @@ func benchmarkPivot(b *testing.B, n int) { RowKey: []string{execute.DefaultTimeColLabel}, ColumnKey: []string{"_field"}, ValueColumn: execute.DefaultValueColLabel, + IsSortedByFunc: func(cols []string, desc bool) bool { + return true + }, + IsKeyColumnFunc: func(label string) bool { + return true + }, } for i := 0; i < b.N; i++ { executetest.ProcessBenchmarkHelper(b, From e8dd90a48eabd767f471a36105a3930b3a913814 Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Mon, 2 Dec 2019 11:45:30 -0600 Subject: [PATCH 13/19] ci(release): fix the ci release to use `>` instead of `|` (#2207) The `>` in a yaml file ensures that the line is treated as a single line. The `|` will preserve newlines and since it is a single command split over multiple lines, the `>` is more appropriate. --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fe07a45946..557c2f4f06 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -106,14 +106,14 @@ jobs: - checkout - run: name: Generate changelog - command: | + command: > ./gotool.sh github.com/influxdata/changelog generate --version $CIRCLE_TAG --commit-url https://github.com/influxdata/flux/commit -o release-notes.txt - run: name: Perform release - command: | + command: > ./gotool.sh github.com/goreleaser/goreleaser release --rm-dist --release-notes release-notes.txt From 9699d55954de380cdba8c47be1772f730c312e52 Mon Sep 17 00:00:00 2001 From: "Jonathan A. Sternberg" Date: Mon, 2 Dec 2019 12:18:46 -0600 Subject: [PATCH 14/19] ci(release): use backslashes to escape newlines for the release scripts (#2208) Backslashes need to be used to escape the newlines for the release script. I previously tried to use `>` because I was under the impression it would make it one line, but it only does that if all of the indentations are the same. Since I would like to keep the current indentation because I find it more readable, this reverts back to using `|` and adds backslashes so the line is escaped. --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 557c2f4f06..4470dc5bea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -106,15 +106,15 @@ jobs: - checkout - run: name: Generate changelog - command: > - ./gotool.sh github.com/influxdata/changelog generate - --version $CIRCLE_TAG - --commit-url https://github.com/influxdata/flux/commit + command: | + ./gotool.sh github.com/influxdata/changelog generate \ + --version $CIRCLE_TAG \ + --commit-url https://github.com/influxdata/flux/commit \ -o release-notes.txt - run: name: Perform release - command: > - ./gotool.sh github.com/goreleaser/goreleaser release + command: | + ./gotool.sh github.com/goreleaser/goreleaser release \ --rm-dist --release-notes release-notes.txt workflows: From 52e155841f82baf256ba6bb4c0f31534ad3be1c2 Mon Sep 17 00:00:00 2001 From: Lorenzo Affetti Date: Mon, 2 Dec 2019 21:02:02 +0100 Subject: [PATCH 15/19] fix(e2e-tests): fix e2e usage test so that their queries are properly pushed down (#2204) --- stdlib/testing/usage/api_test.flux | 8 +- stdlib/testing/usage/flux_test_gen.go | 664 ++++++-------------------- stdlib/testing/usage/writes_test.flux | 2 +- 3 files changed, 154 insertions(+), 520 deletions(-) diff --git a/stdlib/testing/usage/api_test.flux b/stdlib/testing/usage/api_test.flux index 3e45555599..cea5c551d0 100644 --- a/stdlib/testing/usage/api_test.flux +++ b/stdlib/testing/usage/api_test.flux @@ -1686,10 +1686,10 @@ _f = (table=<-) => table |> filter(fn: (r) => r.org_id == "03cbe13cce931000" and r._measurement == "http_request" - and ((r.endpoint == "/api/v2/write" and - r._field == "req_bytes" and - strings.containsStr(v: r.hostname, substr: "gateway-internal") != true) or - (r.endpoint == "/api/v2/query" and r._field == "resp_bytes")) + and ((r.endpoint == "/api/v2/write" + and r._field == "req_bytes" + and r.hostname !~ /^gateway-internal/) + or (r.endpoint == "/api/v2/query" and r._field == "resp_bytes")) ) |> group() |> aggregateWindow(every: 1h, fn: count) diff --git a/stdlib/testing/usage/flux_test_gen.go b/stdlib/testing/usage/flux_test_gen.go index fc8ffefde7..c4d01070e7 100644 --- a/stdlib/testing/usage/flux_test_gen.go +++ b/stdlib/testing/usage/flux_test_gen.go @@ -5,6 +5,7 @@ package usage import ( ast "github.com/influxdata/flux/ast" parser "github.com/influxdata/flux/internal/parser" + "regexp" ) var FluxTestPackages = []*ast.Package{&ast.Package{ @@ -21,7 +22,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1701, }, File: "api_test.flux", - Source: "package usage_test\n\nimport \"testing\"\nimport \"strings\"\n\n// This dataset has been generated with this query:\n// from(bucket: \"system_usage\")\n// |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n// |> filter(fn: (r) =>\n// (r.org_id == \"03d333bccff17000\" or r.org_id == \"03cbe13cce931000\" or r.org_id == \"043e0780ee2b1000\")\n// and r._measurement == \"http_request\"\n// )\ninData = \"\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:21.094724121Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:21.095299583Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:21.09582548Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.266000505Z,2,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.625769873Z,144,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.018253343Z,144,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.601835096Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.589730116Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.627545966Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.092386344Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.992375368Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.696361777Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.585746722Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.623445285Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.633275064Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.098932258Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.11456601Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.790274232Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.600433362Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.495801395Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.095322339Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.79681571Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.690284527Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.108394296Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.598264655Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.598852415Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.093529745Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.794178238Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.392031124Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.78992399Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.489624295Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.606424952Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.093639578Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.78999997Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.497889035Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.716025071Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.602628443Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.032274051Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.991898472Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.601046929Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.774734694Z,144,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.476548479Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.690930407Z,1107480,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.283996345Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:01.546632491Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:32.644249585Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:21.030442937Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:21.02694397Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:21.22836104Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:21.229099874Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:21.474017622Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:21.063885134Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:21.065910949Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:21.365688883Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:17.149799548Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.674687381Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.668457167Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.975378828Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.510668989Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.152562148Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.803057196Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.970762548Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.071075715Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.559461833Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.866454237Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.56733116Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.952326756Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.165053855Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.771211725Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.476204372Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.573380995Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.252794512Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.695900371Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.666994656Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.266000505Z,880,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.625769873Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.018253343Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:57.167126173Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:21.35931241Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:21.16053224Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:21.168300727Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:21.060812264Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:21.357815246Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.274509701Z,308,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.201319948Z,524,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.891958972Z,308,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.927431374Z,309,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.014136569Z,879,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.627945766Z,586,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.853261907Z,373,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:27.826939619Z,880477,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:07.189501457Z,135481,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:59.243148023Z,136467,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:07.189501457Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:59.243148023Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.703906462Z,318447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.104144569Z,324273,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.230170513Z,280263,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.711647972Z,327390,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.701126518Z,326904,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.536334291Z,329940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.011653888Z,341358,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.013738564Z,380729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.019966427Z,379869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.601000719Z,327463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.608374119Z,327408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.613905476Z,373182,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.916645482Z,276982,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.628917081Z,327404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.501870326Z,327416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.629184234Z,373659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.611881696Z,330982,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.992986724Z,317787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.102150046Z,285123,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.406710933Z,286473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.099360215Z,318515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.29848543Z,284151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.90127268Z,258767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.300738149Z,298303,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.515097327Z,327758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.316491183Z,294930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.504035022Z,327431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.403593884Z,321600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.409427654Z,315463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.18341172Z,284920,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.018858607Z,382744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.179458918Z,285104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.790631854Z,380705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.085238023Z,285065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.479284594Z,264380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.543082226Z,325335,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.884724048Z,257756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.503571105Z,327878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.381946881Z,317525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.398392687Z,380221,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.481515817Z,319520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.582925802Z,326362,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.685485547Z,331781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.407926156Z,286881,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.788621814Z,327452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.599986905Z,331543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.081877377Z,318784,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:21.128610224Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.017450939Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.600950432Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.609220694Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.09095546Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.498745879Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.390342112Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.099531259Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.192971675Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.299520148Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.097770443Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.705978375Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.392512266Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.398845496Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.45058159Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.913098092Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.481601294Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.499466181Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.096354173Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.593241226Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.50957492Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.587949298Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.805311114Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.187605923Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.58955709Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.899111428Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.492875966Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.503533849Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.593991138Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.603253439Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:21.35931241Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:21.16053224Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:21.168300727Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:21.060812264Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:21.357815246Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.580351664Z,327577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.79658242Z,327446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.985583214Z,270517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.379500587Z,285660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.785632296Z,319425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.909417563Z,379500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.595362561Z,375107,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.736591044Z,328585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.608197022Z,373219,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.610825604Z,326940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.603654693Z,319991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.595780955Z,289392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.542426534Z,327402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.988819841Z,327895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.594086666Z,381797,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.189155057Z,316536,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.605374657Z,327490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.287961844Z,285059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.703123464Z,330967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:11.766806359Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:46.653298283Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.826052473Z,129804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.433208995Z,134151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:22.123974761Z,134357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.703906462Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.104144569Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.230170513Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.711647972Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.701126518Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.536334291Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.011653888Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.013738564Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.019966427Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.601000719Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.608374119Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.613905476Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.916645482Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.628917081Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.501870326Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.629184234Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.611881696Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.992986724Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.102150046Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.406710933Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.099360215Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.29848543Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.90127268Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.300738149Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.515097327Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.316491183Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.504035022Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.403593884Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.409427654Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:21.046518515Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:21.145774272Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:21.145732222Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.564629212Z,285081,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.566473876Z,326950,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.05454628Z,287417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.06702922Z,380364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.745287913Z,253402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.955520575Z,381005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.140055762Z,285172,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.754159364Z,382955,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.141062606Z,320268,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.549071705Z,260895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.740085307Z,222413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.249474653Z,284517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.849046435Z,319354,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.572089435Z,327433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.574434936Z,330438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.576373862Z,374285,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.156354479Z,325017,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.157937256Z,380222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.669184853Z,327941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.242435498Z,284372,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.237994175Z,287389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.354448213Z,287223,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.044567552Z,285117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.345217386Z,315227,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.741543395Z,244505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.049815985Z,327441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.857604531Z,381706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.943062277Z,327416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.652187031Z,327493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.601675661Z,374683,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.749486157Z,319750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.552068976Z,330897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.648274247Z,328952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.565062199Z,374507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.572480285Z,374873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.447573304Z,318363,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.838882025Z,221833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.554729726Z,327435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.627945766Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.853261907Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.505896663Z,285008,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.613475551Z,373945,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.605008426Z,241539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.606294937Z,327417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.220762186Z,381827,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.600082088Z,327412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.606683602Z,330676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.200918117Z,285130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.609246759Z,375282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.996198687Z,210863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.002761943Z,327464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.713139323Z,322964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.31548156Z,318032,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.608303981Z,327386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.121730946Z,288775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.813381891Z,290055,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.710100205Z,323117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.411628468Z,241151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.520025114Z,329809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.098543472Z,284181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.105069133Z,310470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.808721779Z,375769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.096695795Z,285110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:02.004687017Z,327456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.999904489Z,313458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.700876891Z,318783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.303341791Z,285097,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.620693228Z,375822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.09765774Z,288879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:17.149799548Z,135644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.274509701Z,132,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.201319948Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.891958972Z,132,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:21.116010186Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:21.114390496Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:21.111644295Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:17.541860461Z,135644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:36.538494592Z,135653,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:27.740160451Z,134048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:21.030442937Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:21.02694397Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:21.22836104Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:21.229099874Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.017450939Z,379321,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.600950432Z,327507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.609220694Z,372594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.09095546Z,287155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.498745879Z,328957,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.390342112Z,313759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.099531259Z,285109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.192971675Z,285084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.299520148Z,318042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.097770443Z,317769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.705978375Z,326066,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.392512266Z,285110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.398845496Z,299866,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.45058159Z,288971,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.913098092Z,383033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.481601294Z,217804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.499466181Z,327464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.096354173Z,264685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.593241226Z,329679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.50957492Z,322834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.587949298Z,285132,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.805311114Z,318337,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.187605923Z,286423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.58955709Z,327414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.899111428Z,330853,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.492875966Z,223921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.503533849Z,375255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.593991138Z,320948,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.603253439Z,285521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.646993792Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.156933128Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.161149074Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.557234411Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.561304434Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.158050802Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.580593513Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.843372185Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.653970962Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.950792633Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.060170706Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.08500634Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.962638721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.37499665Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.348850963Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.35595477Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.358179948Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.370644906Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.659073887Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.567284184Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.047652689Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.945638363Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.747671595Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.75670807Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.570361896Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.564629212Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.566473876Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.05454628Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.06702922Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.745287913Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.955520575Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.140055762Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.754159364Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.141062606Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.549071705Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.740085307Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.249474653Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.849046435Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.572089435Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.574434936Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.576373862Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.156354479Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.157937256Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.669184853Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.242435498Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.237994175Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.354448213Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.044567552Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.345217386Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.741543395Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.049815985Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.857604531Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.943062277Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.652187031Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.601675661Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.749486157Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.552068976Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.648274247Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.565062199Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.572480285Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.447573304Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.838882025Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.554729726Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.651540192Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:13.702886169Z,268,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:58.578035263Z,131124,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.868423971Z,129706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:45.370635649Z,138532,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:38.077384742Z,136138,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:21.108387109Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:21.263109085Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,43,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:15.972569707Z,135208,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:21.263109085Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:21.285804811Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:21.0775825Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:21.077794928Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:21.079927546Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:02.824517714Z,523,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.420898056Z,338,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.162546325Z,523,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,47,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.826052473Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,47,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.433208995Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,47,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:22.123974761Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.505896663Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.613475551Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.605008426Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.606294937Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.220762186Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.600082088Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.606683602Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.200918117Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.609246759Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.996198687Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.002761943Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.713139323Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.31548156Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.608303981Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.121730946Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.813381891Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.710100205Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.411628468Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.520025114Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.098543472Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.105069133Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.808721779Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.096695795Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:02.004687017Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.999904489Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.700876891Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.303341791Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.620693228Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.09765774Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,49,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:26.355461496Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,50,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:46.223593197Z,132118,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,50,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:03.6297634Z,133458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,50,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:06.123802854Z,136679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,51,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:21.268627984Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n,,51,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:21.165405323Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.968339107Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.494289931Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.060172972Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.364865013Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.568254621Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.163694256Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.57180169Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.861866506Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.568103359Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.662611443Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.165665861Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.666981479Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.067923517Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.461440212Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.66450626Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.661951155Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.063776918Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.070778064Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.771068719Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.269855316Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.270063765Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.77614234Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.674156983Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.260533607Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.277196314Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.285854559Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.078891216Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.765416796Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.667818668Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.675895692Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.981235314Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.677959056Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.680466027Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.071720826Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.579880997Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.963072763Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.158871446Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.07841778Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.665781174Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.780687529Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,53,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.826687523Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.774734694Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.476548479Z,293,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.690930407Z,879,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.283996345Z,292,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.970319745Z,327384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.531569902Z,351440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.664115909Z,326422,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.063750817Z,285123,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.663086031Z,327316,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.598730257Z,374129,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.582665417Z,327399,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.634786699Z,288074,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.648195273Z,325656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.670956478Z,380962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.664186562Z,318755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.587088267Z,374945,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.68613869Z,374144,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.691516439Z,327483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.478268764Z,319491,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.678225729Z,330598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.679500768Z,376020,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.673156428Z,327405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.759624913Z,324557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.764203621Z,327426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.594871394Z,375130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.565823492Z,236660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.267645189Z,284634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.270278091Z,322991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.403426135Z,251028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.771450724Z,376268,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.777072617Z,372759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.169625644Z,378419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.770427616Z,301298,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.36560489Z,285076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.385375353Z,382586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.616652013Z,328841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.079352452Z,319582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.078870332Z,319202,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.065081061Z,286873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.778071131Z,327401,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.685330547Z,262520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,56,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.886246993Z,286,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n,,56,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.251598157Z,390,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,57,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:28.006141741Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n,,57,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:53.40690921Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.539180543Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.926540828Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:02.040161953Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.135353289Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.134940325Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.133049454Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.530220987Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.034812521Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.73653828Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.737862437Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.644269281Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.153749559Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.13926735Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.146260391Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.832998968Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.837711652Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.840359534Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.636794557Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.14374011Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.330746509Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.040885765Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.526383769Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.541032827Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.046608409Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.848196808Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,59,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:21.201871321Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,59,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:21.298802008Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,59,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:21.095743588Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.970319745Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.531569902Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.664115909Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.063750817Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.663086031Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.598730257Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.582665417Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.634786699Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.648195273Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.670956478Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.664186562Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.587088267Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.68613869Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.691516439Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.478268764Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.678225729Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.679500768Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.673156428Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.759624913Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.764203621Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.594871394Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.565823492Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.267645189Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.270278091Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.403426135Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.771450724Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.777072617Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.169625644Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.770427616Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.36560489Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.385375353Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.616652013Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.079352452Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.078870332Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.065081061Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.778071131Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.685330547Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,61,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.041133649Z,471,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n,,61,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.067180153Z,471,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,62,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:58.802776352Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,62,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:24.592529918Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,62,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:48.698991016Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.585098501Z,317738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.92677188Z,293796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.722312852Z,327426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.724792874Z,323952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.523705057Z,330348,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.630196615Z,328861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.027782702Z,383025,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.717488822Z,316428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.611391711Z,312361,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.712858706Z,327419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.933339216Z,355443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.822370514Z,323007,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.623686521Z,318233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.616888116Z,327434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.214598798Z,221526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.729067126Z,327394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.519364549Z,321999,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.908336306Z,214163,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.642406472Z,327446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.668791421Z,377145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.816080687Z,310508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.510004588Z,314947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.911856365Z,266437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.113602366Z,285096,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.618005755Z,331506,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.119992581Z,285081,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.527317257Z,327418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,64,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.992790476Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,64,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.723522718Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,64,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.86410842Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,65,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:21.108387109Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,66,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.041133649Z,126,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n,,66,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.067180153Z,126,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,67,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.886246993Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n,,67,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.251598157Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,68,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.393552077Z,268,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n,,68,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:12.640810554Z,5026137,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,69,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:03.100195151Z,115,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,69,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.688426709Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,69,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.372168381Z,115,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,70,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.992790476Z,292,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,70,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.723522718Z,472,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,70,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.86410842Z,292,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:21.285804811Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:21.0775825Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:21.077794928Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:21.079927546Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.580351664Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.79658242Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.985583214Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.379500587Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.785632296Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.909417563Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.595362561Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.736591044Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.608197022Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.610825604Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.603654693Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.595780955Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.542426534Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.988819841Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.594086666Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.189155057Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.605374657Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.287961844Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.703123464Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,73,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:21.268627984Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n,,73,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:21.165405323Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,74,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:48.396258937Z,129145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,74,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:42.781505302Z,134294,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,74,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:13.979892016Z,135663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,75,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:26.355461496Z,134947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.968339107Z,333364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.494289931Z,322482,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.060172972Z,284880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.364865013Z,235554,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.568254621Z,378952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.163694256Z,285088,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.57180169Z,375751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.861866506Z,330771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.568103359Z,328592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.662611443Z,327453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.165665861Z,364779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.666981479Z,327454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.067923517Z,285040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.461440212Z,245802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.66450626Z,282457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.661951155Z,327412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.063776918Z,318223,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.070778064Z,294440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.771068719Z,326435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.269855316Z,322185,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.270063765Z,285197,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.77614234Z,353573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.674156983Z,374028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.260533607Z,285110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.277196314Z,284980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.285854559Z,320414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.078891216Z,380147,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.765416796Z,327438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.667818668Z,261850,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.675895692Z,321976,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.981235314Z,380735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.677959056Z,327438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.680466027Z,329192,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.071720826Z,284996,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.579880997Z,373010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.963072763Z,243844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.158871446Z,284962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.07841778Z,382507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.665781174Z,319063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.780687529Z,323384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.601835096Z,330843,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.589730116Z,315660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.627545966Z,329100,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.092386344Z,256479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.992375368Z,288923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.696361777Z,327336,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.585746722Z,215051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.623445285Z,325344,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.633275064Z,375540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.098932258Z,318445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.11456601Z,382216,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.790274232Z,314396,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.600433362Z,327418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.495801395Z,289826,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.095322339Z,288091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.79681571Z,326240,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.690284527Z,249373,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.108394296Z,285087,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.598264655Z,375176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.598852415Z,327418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.093529745Z,285629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.794178238Z,286207,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.392031124Z,284199,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.78992399Z,326392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.489624295Z,237342,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.606424952Z,327364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.093639578Z,288650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.78999997Z,229791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.497889035Z,285878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.716025071Z,323348,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.602628443Z,327470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.032274051Z,381650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.991898472Z,285175,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.601046929Z,318047,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,78,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:21.445524697Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n,,78,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:21.142764537Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.539180543Z,376141,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.926540828Z,261307,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:02.040161953Z,331586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.135353289Z,324490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.134940325Z,285800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.133049454Z,285117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.530220987Z,319476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.034812521Z,325472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.73653828Z,316444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.737862437Z,327442,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.644269281Z,327426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.153749559Z,320937,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.13926735Z,320515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.146260391Z,378047,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.832998968Z,327382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.837711652Z,345857,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.840359534Z,252087,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.636794557Z,324880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.14374011Z,321249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.330746509Z,285130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.040885765Z,324558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.526383769Z,220626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.541032827Z,329073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.046608409Z,382719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.848196808Z,380572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,80,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:46.223593197Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,80,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:03.6297634Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,80,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:06.123802854Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.674687381Z,327863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.668457167Z,327439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.975378828Z,347263,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.510668989Z,242204,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.152562148Z,285106,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.803057196Z,327448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.970762548Z,321970,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.071075715Z,378083,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.559461833Z,323005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.866454237Z,329053,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.56733116Z,328429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.952326756Z,226144,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.165053855Z,327508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.771211725Z,330531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.476204372Z,285071,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.573380995Z,379590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.252794512Z,316691,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.695900371Z,327423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.666994656Z,320780,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,82,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:27.826939619Z,880,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:06.886366792Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:09.00480728Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:19.894630857Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.595540597Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:34.583955723Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:55.787336955Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.585596823Z,322984,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.382742289Z,320725,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.68751618Z,327431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.686552022Z,323666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.175770607Z,285089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.694257263Z,370914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.177016565Z,285156,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.184218154Z,318364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.87368846Z,252563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.517006456Z,283906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.579082756Z,319949,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.610907017Z,330856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.20291916Z,379281,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:02.09461611Z,329010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.08351308Z,285126,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.075077146Z,317408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.986248659Z,330458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.682371813Z,327890,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.778993692Z,314998,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.276160792Z,223814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.278176125Z,285060,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.299817246Z,379584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.690867903Z,377040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.473021102Z,227822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.688247478Z,318550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.679271787Z,318623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.302379402Z,380411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.679005694Z,327394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.19356129Z,381273,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.034799291Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.630461676Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.524623048Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.638470721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.429638442Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.630326348Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.138308551Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.635070899Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.533625721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.642757562Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.961617053Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.962091108Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.632296534Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.732796615Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.734041057Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.131981246Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.841108161Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.747160255Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.749457646Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.050925562Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.137674152Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.826073231Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.55021015Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.393663685Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.836001891Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.842587721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.652462073Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.634834215Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.941951968Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:06.886366792Z,136186,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:09.00480728Z,130846,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:19.894630857Z,133311,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.595540597Z,128014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:34.583955723Z,135152,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:55.787336955Z,137083,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.646993792Z,329656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.156933128Z,286162,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.161149074Z,320309,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.557234411Z,329304,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.561304434Z,375869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.158050802Z,288259,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.580593513Z,327406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.843372185Z,278742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.653970962Z,319362,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.950792633Z,224897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.060170706Z,282188,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.08500634Z,381576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.962638721Z,327398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.37499665Z,379250,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.348850963Z,287865,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.35595477Z,285084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.358179948Z,319761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.370644906Z,386155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.659073887Z,375916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.567284184Z,328001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.047652689Z,285098,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.945638363Z,263634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.747671595Z,327457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.75670807Z,373350,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.570361896Z,327394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,88,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.903945529Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n,,88,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.631886988Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,89,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:28.006141741Z,137309,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n,,89,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:53.40690921Z,136056,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,90,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:01.546632491Z,134075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n,,90,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:32.644249585Z,135150,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,91,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:03.100195151Z,337,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,91,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.688426709Z,587,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,91,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.372168381Z,337,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,92,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:21.128610224Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.585098501Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.92677188Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.722312852Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.724792874Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.523705057Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.630196615Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.027782702Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.717488822Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.611391711Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.712858706Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.933339216Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.822370514Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.623686521Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.616888116Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.214598798Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.729067126Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.519364549Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.908336306Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.642406472Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.668791421Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.816080687Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.510004588Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.911856365Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.113602366Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.618005755Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.119992581Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.527317257Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,94,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:58.802776352Z,176881,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,94,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:24.592529918Z,134671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,94,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:48.698991016Z,140568,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,95,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.651540192Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n,,95,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:13.702886169Z,130,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,96,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:21.046518515Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,96,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:21.145774272Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,96,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:21.145732222Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,97,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:15.972569707Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,98,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.393552077Z,130,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n,,98,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:12.640810554Z,879,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,99,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.903945529Z,374,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n,,99,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.631886988Z,586,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,100,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:17.541860461Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,100,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:36.538494592Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,100,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:27.740160451Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,101,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:21.116010186Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,101,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:21.114390496Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,101,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:21.111644295Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,102,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:11.766806359Z,135198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n,,102,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:46.653298283Z,134621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,103,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:21.201871321Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,103,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:21.298802008Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,103,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:21.095743588Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,104,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:21.445524697Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n,,104,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:21.142764537Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.585596823Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.382742289Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.68751618Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.686552022Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.175770607Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.694257263Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.177016565Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.184218154Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.87368846Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.517006456Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.579082756Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.610907017Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.20291916Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:02.09461611Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.08351308Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.075077146Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.986248659Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.682371813Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.778993692Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.276160792Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.278176125Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.299817246Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.690867903Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.473021102Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.688247478Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.679271787Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.302379402Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.679005694Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.19356129Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,106,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:48.396258937Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,106,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:42.781505302Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,106,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:13.979892016Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,107,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:21.094724121Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,107,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:21.095299583Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,107,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:21.09582548Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.034799291Z,318830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.630461676Z,327382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.524623048Z,273298,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.638470721Z,327441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.429638442Z,221445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.630326348Z,330907,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.138308551Z,317407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.635070899Z,324530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.533625721Z,327413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.642757562Z,327428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.961617053Z,378657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.962091108Z,326403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.632296534Z,327453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.732796615Z,254231,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.734041057Z,327425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.131981246Z,285139,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.841108161Z,315723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.747160255Z,328231,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.749457646Z,378432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.050925562Z,380520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.137674152Z,373450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.826073231Z,253070,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.55021015Z,327635,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.393663685Z,247075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.836001891Z,330181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.842587721Z,374663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.652462073Z,327423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.634834215Z,323697,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.941951968Z,319001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,109,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.927431374Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n,,109,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.014136569Z,1126424,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:21.474017622Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:21.063885134Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:21.065910949Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:21.365688883Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.18341172Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.018858607Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.179458918Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.790631854Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.085238023Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.479284594Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.543082226Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.884724048Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.503571105Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.381946881Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.398392687Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.481515817Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.582925802Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.685485547Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.407926156Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.788621814Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.599986905Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.081877377Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,112,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:57.167126173Z,135072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,113,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:02.824517714Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,113,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.420898056Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,113,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.162546325Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,114,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.826687523Z,373,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:58.578035263Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.868423971Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:45.370635649Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:38.077384742Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:58.578035263Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.868423971Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:45.370635649Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:38.077384742Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n\"\n\noutData = \"\n#group,false,false,true,true,false,false\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,long,dateTime:RFC3339\n#default,requests_count,,,,,\n,result,table,_start,_stop,requests_count,_time\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,143,2019-08-01T12:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,145,2019-08-01T13:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,139,2019-08-01T14:00:00Z\n\"\n\n_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")\n\ntest get_api_usage = () =>\n\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: _f})", + Source: "package usage_test\n\nimport \"testing\"\nimport \"strings\"\n\n// This dataset has been generated with this query:\n// from(bucket: \"system_usage\")\n// |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n// |> filter(fn: (r) =>\n// (r.org_id == \"03d333bccff17000\" or r.org_id == \"03cbe13cce931000\" or r.org_id == \"043e0780ee2b1000\")\n// and r._measurement == \"http_request\"\n// )\ninData = \"\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:21.094724121Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:21.095299583Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:21.09582548Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.266000505Z,2,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.625769873Z,144,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.018253343Z,144,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.601835096Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.589730116Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.627545966Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.092386344Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.992375368Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.696361777Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.585746722Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.623445285Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.633275064Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.098932258Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.11456601Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.790274232Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.600433362Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.495801395Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.095322339Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.79681571Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.690284527Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.108394296Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.598264655Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.598852415Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.093529745Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.794178238Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.392031124Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.78992399Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.489624295Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.606424952Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.093639578Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.78999997Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.497889035Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.716025071Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.602628443Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.032274051Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.991898472Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.601046929Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.774734694Z,144,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.476548479Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.690930407Z,1107480,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.283996345Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:01.546632491Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:32.644249585Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:21.030442937Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:21.02694397Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:21.22836104Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:21.229099874Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:21.474017622Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:21.063885134Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:21.065910949Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:21.365688883Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:17.149799548Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.674687381Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.668457167Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.975378828Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.510668989Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.152562148Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.803057196Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.970762548Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.071075715Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.559461833Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.866454237Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.56733116Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.952326756Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.165053855Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.771211725Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.476204372Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.573380995Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.252794512Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.695900371Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.666994656Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.266000505Z,880,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.625769873Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.018253343Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:57.167126173Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:21.35931241Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:21.16053224Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:21.168300727Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:21.060812264Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:21.357815246Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.274509701Z,308,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.201319948Z,524,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.891958972Z,308,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.927431374Z,309,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.014136569Z,879,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.627945766Z,586,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.853261907Z,373,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:27.826939619Z,880477,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:07.189501457Z,135481,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:59.243148023Z,136467,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:07.189501457Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:59.243148023Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.703906462Z,318447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.104144569Z,324273,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.230170513Z,280263,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.711647972Z,327390,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.701126518Z,326904,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.536334291Z,329940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.011653888Z,341358,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.013738564Z,380729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.019966427Z,379869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.601000719Z,327463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.608374119Z,327408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.613905476Z,373182,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.916645482Z,276982,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.628917081Z,327404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.501870326Z,327416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.629184234Z,373659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.611881696Z,330982,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.992986724Z,317787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.102150046Z,285123,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.406710933Z,286473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.099360215Z,318515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.29848543Z,284151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.90127268Z,258767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.300738149Z,298303,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.515097327Z,327758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.316491183Z,294930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.504035022Z,327431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.403593884Z,321600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.409427654Z,315463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.18341172Z,284920,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.018858607Z,382744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.179458918Z,285104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.790631854Z,380705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.085238023Z,285065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.479284594Z,264380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.543082226Z,325335,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.884724048Z,257756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.503571105Z,327878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.381946881Z,317525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.398392687Z,380221,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.481515817Z,319520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.582925802Z,326362,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.685485547Z,331781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.407926156Z,286881,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.788621814Z,327452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.599986905Z,331543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.081877377Z,318784,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:21.128610224Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.017450939Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.600950432Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.609220694Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.09095546Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.498745879Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.390342112Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.099531259Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.192971675Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.299520148Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.097770443Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.705978375Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.392512266Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.398845496Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.45058159Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.913098092Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.481601294Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.499466181Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.096354173Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.593241226Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.50957492Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.587949298Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.805311114Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.187605923Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.58955709Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.899111428Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.492875966Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.503533849Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.593991138Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.603253439Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:21.35931241Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:21.16053224Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:21.168300727Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:21.060812264Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:21.357815246Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.580351664Z,327577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.79658242Z,327446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.985583214Z,270517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.379500587Z,285660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.785632296Z,319425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.909417563Z,379500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.595362561Z,375107,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.736591044Z,328585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.608197022Z,373219,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.610825604Z,326940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.603654693Z,319991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.595780955Z,289392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.542426534Z,327402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.988819841Z,327895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.594086666Z,381797,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.189155057Z,316536,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.605374657Z,327490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.287961844Z,285059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.703123464Z,330967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:11.766806359Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:46.653298283Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.826052473Z,129804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.433208995Z,134151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:22.123974761Z,134357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.703906462Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.104144569Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.230170513Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.711647972Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.701126518Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.536334291Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.011653888Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.013738564Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.019966427Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.601000719Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.608374119Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.613905476Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.916645482Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.628917081Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.501870326Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.629184234Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.611881696Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.992986724Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.102150046Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.406710933Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.099360215Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.29848543Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.90127268Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.300738149Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.515097327Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.316491183Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.504035022Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.403593884Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.409427654Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:21.046518515Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:21.145774272Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:21.145732222Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.564629212Z,285081,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.566473876Z,326950,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.05454628Z,287417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.06702922Z,380364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.745287913Z,253402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.955520575Z,381005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.140055762Z,285172,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.754159364Z,382955,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.141062606Z,320268,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.549071705Z,260895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.740085307Z,222413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.249474653Z,284517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.849046435Z,319354,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.572089435Z,327433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.574434936Z,330438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.576373862Z,374285,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.156354479Z,325017,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.157937256Z,380222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.669184853Z,327941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.242435498Z,284372,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.237994175Z,287389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.354448213Z,287223,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.044567552Z,285117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.345217386Z,315227,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.741543395Z,244505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.049815985Z,327441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.857604531Z,381706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.943062277Z,327416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.652187031Z,327493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.601675661Z,374683,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.749486157Z,319750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.552068976Z,330897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.648274247Z,328952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.565062199Z,374507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.572480285Z,374873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.447573304Z,318363,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.838882025Z,221833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.554729726Z,327435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.627945766Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.853261907Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.505896663Z,285008,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.613475551Z,373945,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.605008426Z,241539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.606294937Z,327417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.220762186Z,381827,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.600082088Z,327412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.606683602Z,330676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.200918117Z,285130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.609246759Z,375282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.996198687Z,210863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.002761943Z,327464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.713139323Z,322964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.31548156Z,318032,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.608303981Z,327386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.121730946Z,288775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.813381891Z,290055,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.710100205Z,323117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.411628468Z,241151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.520025114Z,329809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.098543472Z,284181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.105069133Z,310470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.808721779Z,375769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.096695795Z,285110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:02.004687017Z,327456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.999904489Z,313458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.700876891Z,318783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.303341791Z,285097,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.620693228Z,375822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.09765774Z,288879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:17.149799548Z,135644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.274509701Z,132,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.201319948Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.891958972Z,132,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:21.116010186Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:21.114390496Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:21.111644295Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:17.541860461Z,135644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:36.538494592Z,135653,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:27.740160451Z,134048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:21.030442937Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:21.02694397Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:21.22836104Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:21.229099874Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.017450939Z,379321,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.600950432Z,327507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.609220694Z,372594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.09095546Z,287155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.498745879Z,328957,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.390342112Z,313759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.099531259Z,285109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.192971675Z,285084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.299520148Z,318042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.097770443Z,317769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.705978375Z,326066,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.392512266Z,285110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.398845496Z,299866,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.45058159Z,288971,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.913098092Z,383033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.481601294Z,217804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.499466181Z,327464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.096354173Z,264685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.593241226Z,329679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.50957492Z,322834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.587949298Z,285132,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.805311114Z,318337,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.187605923Z,286423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.58955709Z,327414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.899111428Z,330853,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.492875966Z,223921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.503533849Z,375255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.593991138Z,320948,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.603253439Z,285521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.646993792Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.156933128Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.161149074Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.557234411Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.561304434Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.158050802Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.580593513Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.843372185Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.653970962Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.950792633Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.060170706Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.08500634Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.962638721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.37499665Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.348850963Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.35595477Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.358179948Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.370644906Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.659073887Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.567284184Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.047652689Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.945638363Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.747671595Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.75670807Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.570361896Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.564629212Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.566473876Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.05454628Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.06702922Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.745287913Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.955520575Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.140055762Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.754159364Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.141062606Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.549071705Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.740085307Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.249474653Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.849046435Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.572089435Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.574434936Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.576373862Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.156354479Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.157937256Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.669184853Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.242435498Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.237994175Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.354448213Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.044567552Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.345217386Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.741543395Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.049815985Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.857604531Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.943062277Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.652187031Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.601675661Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.749486157Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.552068976Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.648274247Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.565062199Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.572480285Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.447573304Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.838882025Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.554729726Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.651540192Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:13.702886169Z,268,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:58.578035263Z,131124,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.868423971Z,129706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:45.370635649Z,138532,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:38.077384742Z,136138,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:21.108387109Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:21.263109085Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,43,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:15.972569707Z,135208,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:21.263109085Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:21.285804811Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:21.0775825Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:21.077794928Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:21.079927546Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:02.824517714Z,523,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.420898056Z,338,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.162546325Z,523,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,47,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.826052473Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,47,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.433208995Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n,,47,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:22.123974761Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.505896663Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.613475551Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.605008426Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.606294937Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.220762186Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.600082088Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.606683602Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.200918117Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.609246759Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.996198687Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.002761943Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.713139323Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.31548156Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.608303981Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.121730946Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.813381891Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.710100205Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.411628468Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.520025114Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.098543472Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.105069133Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.808721779Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.096695795Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:02.004687017Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.999904489Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.700876891Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.303341791Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.620693228Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n,,48,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.09765774Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,49,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:26.355461496Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,50,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:46.223593197Z,132118,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,50,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:03.6297634Z,133458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,50,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:06.123802854Z,136679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,51,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:21.268627984Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n,,51,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:21.165405323Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.968339107Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.494289931Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.060172972Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.364865013Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.568254621Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.163694256Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.57180169Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.861866506Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.568103359Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.662611443Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.165665861Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.666981479Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.067923517Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.461440212Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.66450626Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.661951155Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.063776918Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.070778064Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.771068719Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.269855316Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.270063765Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.77614234Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.674156983Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.260533607Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.277196314Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.285854559Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.078891216Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.765416796Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.667818668Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.675895692Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.981235314Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.677959056Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.680466027Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.071720826Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.579880997Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.963072763Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.158871446Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.07841778Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.665781174Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,52,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.780687529Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,53,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.826687523Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.774734694Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.476548479Z,293,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.690930407Z,879,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n,,54,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:14.283996345Z,292,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.970319745Z,327384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.531569902Z,351440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.664115909Z,326422,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.063750817Z,285123,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.663086031Z,327316,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.598730257Z,374129,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.582665417Z,327399,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.634786699Z,288074,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.648195273Z,325656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.670956478Z,380962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.664186562Z,318755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.587088267Z,374945,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.68613869Z,374144,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.691516439Z,327483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.478268764Z,319491,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.678225729Z,330598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.679500768Z,376020,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.673156428Z,327405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.759624913Z,324557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.764203621Z,327426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.594871394Z,375130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.565823492Z,236660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.267645189Z,284634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.270278091Z,322991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.403426135Z,251028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.771450724Z,376268,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.777072617Z,372759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.169625644Z,378419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.770427616Z,301298,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.36560489Z,285076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.385375353Z,382586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.616652013Z,328841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.079352452Z,319582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.078870332Z,319202,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.065081061Z,286873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.778071131Z,327401,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,55,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.685330547Z,262520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,56,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.886246993Z,286,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n,,56,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.251598157Z,390,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,57,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:28.006141741Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n,,57,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:53.40690921Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.539180543Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.926540828Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:02.040161953Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.135353289Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.134940325Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.133049454Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.530220987Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.034812521Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.73653828Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.737862437Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.644269281Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.153749559Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.13926735Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.146260391Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.832998968Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.837711652Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.840359534Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.636794557Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.14374011Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.330746509Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.040885765Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.526383769Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.541032827Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.046608409Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,58,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.848196808Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,59,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:21.201871321Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,59,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:21.298802008Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,59,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:21.095743588Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.970319745Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.531569902Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.664115909Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.063750817Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.663086031Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.598730257Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.582665417Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.634786699Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.648195273Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.670956478Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.664186562Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.587088267Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.68613869Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.691516439Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.478268764Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.678225729Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.679500768Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.673156428Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.759624913Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.764203621Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.594871394Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.565823492Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.267645189Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.270278091Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.403426135Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.771450724Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.777072617Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.169625644Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.770427616Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.36560489Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.385375353Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.616652013Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.079352452Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.078870332Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.065081061Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.778071131Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n,,60,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.685330547Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,61,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.041133649Z,471,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n,,61,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.067180153Z,471,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,62,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:58.802776352Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,62,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:24.592529918Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,62,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:48.698991016Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.585098501Z,317738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.92677188Z,293796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.722312852Z,327426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.724792874Z,323952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.523705057Z,330348,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.630196615Z,328861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.027782702Z,383025,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.717488822Z,316428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.611391711Z,312361,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.712858706Z,327419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.933339216Z,355443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.822370514Z,323007,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.623686521Z,318233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.616888116Z,327434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.214598798Z,221526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.729067126Z,327394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.519364549Z,321999,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.908336306Z,214163,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.642406472Z,327446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.668791421Z,377145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.816080687Z,310508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.510004588Z,314947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.911856365Z,266437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.113602366Z,285096,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.618005755Z,331506,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.119992581Z,285081,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,63,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.527317257Z,327418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,64,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.992790476Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,64,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.723522718Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,64,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.86410842Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,65,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:21.108387109Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,66,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.041133649Z,126,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n,,66,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.067180153Z,126,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,67,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.886246993Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n,,67,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.251598157Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,68,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.393552077Z,268,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n,,68,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:12.640810554Z,5026137,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,69,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:03.100195151Z,115,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,69,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.688426709Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,69,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.372168381Z,115,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,70,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:56.992790476Z,292,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,70,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.723522718Z,472,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n,,70,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:34.86410842Z,292,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-q6t9j,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:21.285804811Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:21.0775825Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:21.077794928Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n,,71,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:21.079927546Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.580351664Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.79658242Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.985583214Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.379500587Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.785632296Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.909417563Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.595362561Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.736591044Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.608197022Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.610825604Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.603654693Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.595780955Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.542426534Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.988819841Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.594086666Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.189155057Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.605374657Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.287961844Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n,,72,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.703123464Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,73,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:21.268627984Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n,,73,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:21.165405323Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,74,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:48.396258937Z,129145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,74,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:42.781505302Z,134294,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,74,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:13.979892016Z,135663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,75,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:26.355461496Z,134947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.968339107Z,333364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.494289931Z,322482,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.060172972Z,284880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.364865013Z,235554,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.568254621Z,378952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.163694256Z,285088,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.57180169Z,375751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.861866506Z,330771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.568103359Z,328592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.662611443Z,327453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:02.165665861Z,364779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.666981479Z,327454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.067923517Z,285040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.461440212Z,245802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.66450626Z,282457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.661951155Z,327412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.063776918Z,318223,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.070778064Z,294440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.771068719Z,326435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.269855316Z,322185,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.270063765Z,285197,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.77614234Z,353573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.674156983Z,374028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.260533607Z,285110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.277196314Z,284980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.285854559Z,320414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.078891216Z,380147,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.765416796Z,327438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.667818668Z,261850,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:02.675895692Z,321976,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.981235314Z,380735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.677959056Z,327438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.680466027Z,329192,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.071720826Z,284996,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.579880997Z,373010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.963072763Z,243844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.158871446Z,284962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.07841778Z,382507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.665781174Z,319063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n,,76,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.780687529Z,323384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.601835096Z,330843,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.589730116Z,315660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.627545966Z,329100,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.092386344Z,256479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.992375368Z,288923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.696361777Z,327336,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.585746722Z,215051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.623445285Z,325344,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.633275064Z,375540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.098932258Z,318445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.11456601Z,382216,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.790274232Z,314396,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.600433362Z,327418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.495801395Z,289826,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.095322339Z,288091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.79681571Z,326240,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.690284527Z,249373,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.108394296Z,285087,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.598264655Z,375176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.598852415Z,327418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.093529745Z,285629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.794178238Z,286207,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.392031124Z,284199,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.78992399Z,326392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.489624295Z,237342,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.606424952Z,327364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.093639578Z,288650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.78999997Z,229791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.497889035Z,285878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.716025071Z,323348,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.602628443Z,327470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.032274051Z,381650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.991898472Z,285175,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n,,77,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.601046929Z,318047,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,78,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:21.445524697Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n,,78,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:21.142764537Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.539180543Z,376141,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.926540828Z,261307,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:02.040161953Z,331586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.135353289Z,324490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.134940325Z,285800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.133049454Z,285117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.530220987Z,319476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.034812521Z,325472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.73653828Z,316444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.737862437Z,327442,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.644269281Z,327426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.153749559Z,320937,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.13926735Z,320515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.146260391Z,378047,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.832998968Z,327382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.837711652Z,345857,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.840359534Z,252087,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.636794557Z,324880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.14374011Z,321249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.330746509Z,285130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.040885765Z,324558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.526383769Z,220626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.541032827Z,329073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.046608409Z,382719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n,,79,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.848196808Z,380572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,80,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:46.223593197Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,80,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:03.6297634Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n,,80,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:06.123802854Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.674687381Z,327863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.668457167Z,327439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.975378828Z,347263,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.510668989Z,242204,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.152562148Z,285106,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.803057196Z,327448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.970762548Z,321970,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.071075715Z,378083,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.559461833Z,323005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.866454237Z,329053,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.56733116Z,328429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.952326756Z,226144,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.165053855Z,327508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.771211725Z,330531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.476204372Z,285071,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.573380995Z,379590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.252794512Z,316691,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.695900371Z,327423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n,,81,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.666994656Z,320780,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,82,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:27.826939619Z,880,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:06.886366792Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:09.00480728Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:19.894630857Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.595540597Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:34.583955723Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,83,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:55.787336955Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.585596823Z,322984,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.382742289Z,320725,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.68751618Z,327431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.686552022Z,323666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.175770607Z,285089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.694257263Z,370914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.177016565Z,285156,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.184218154Z,318364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.87368846Z,252563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.517006456Z,283906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.579082756Z,319949,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.610907017Z,330856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.20291916Z,379281,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:02.09461611Z,329010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.08351308Z,285126,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.075077146Z,317408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.986248659Z,330458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.682371813Z,327890,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.778993692Z,314998,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.276160792Z,223814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.278176125Z,285060,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.299817246Z,379584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.690867903Z,377040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.473021102Z,227822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.688247478Z,318550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.679271787Z,318623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.302379402Z,380411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.679005694Z,327394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,84,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.19356129Z,381273,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.034799291Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.630461676Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.524623048Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.638470721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.429638442Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.630326348Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.138308551Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.635070899Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.533625721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.642757562Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.961617053Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.962091108Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.632296534Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.732796615Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.734041057Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.131981246Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.841108161Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.747160255Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.749457646Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.050925562Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.137674152Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.826073231Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.55021015Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.393663685Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.836001891Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.842587721Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.652462073Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.634834215Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,85,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.941951968Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:06.886366792Z,136186,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:09.00480728Z,130846,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:19.894630857Z,133311,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.595540597Z,128014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:34.583955723Z,135152,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n,,86,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:55.787336955Z,137083,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.646993792Z,329656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.156933128Z,286162,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.161149074Z,320309,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.557234411Z,329304,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.561304434Z,375869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.158050802Z,288259,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.580593513Z,327406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.843372185Z,278742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.653970962Z,319362,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.950792633Z,224897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.060170706Z,282188,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.08500634Z,381576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.962638721Z,327398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.37499665Z,379250,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.348850963Z,287865,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.35595477Z,285084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.358179948Z,319761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.370644906Z,386155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.659073887Z,375916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.567284184Z,328001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.047652689Z,285098,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.945638363Z,263634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.747671595Z,327457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.75670807Z,373350,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n,,87,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.570361896Z,327394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,88,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.903945529Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n,,88,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.631886988Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,89,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:28.006141741Z,137309,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n,,89,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:53.40690921Z,136056,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,90,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:01.546632491Z,134075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n,,90,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:32.644249585Z,135150,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,91,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:03.100195151Z,337,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,91,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.688426709Z,587,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n,,91,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.372168381Z,337,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,92,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:21.128610224Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.585098501Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.92677188Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.722312852Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.724792874Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.523705057Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.630196615Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.027782702Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.717488822Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.611391711Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.712858706Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.933339216Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.822370514Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.623686521Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.616888116Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.214598798Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.729067126Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.519364549Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.908336306Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.642406472Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.668791421Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.816080687Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.510004588Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.911856365Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.113602366Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.618005755Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.119992581Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n,,93,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.527317257Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,94,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:58.802776352Z,176881,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,94,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:24.592529918Z,134671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n,,94,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:48.698991016Z,140568,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,95,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.651540192Z,389,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n,,95,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:13.702886169Z,130,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-rkcgv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,96,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:21.046518515Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,96,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:21.145774272Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n,,96,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:21.145732222Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,97,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:15.972569707Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,98,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:52.393552077Z,130,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n,,98,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:12.640810554Z,879,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-xhr7n,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,99,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.903945529Z,374,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n,,99,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.631886988Z,586,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,100,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:17.541860461Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,100,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:36.538494592Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n,,100,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:27.740160451Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,101,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:21.116010186Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,101,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:21.114390496Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n,,101,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:21.111644295Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,102,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:11.766806359Z,135198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n,,102,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:46.653298283Z,134621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,103,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:21.201871321Z,88,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,103,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:21.298802008Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n,,103,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:21.095743588Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,104,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:21.445524697Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n,,104,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:21.142764537Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.585596823Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:01.382742289Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.68751618Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.686552022Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.175770607Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.694257263Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.177016565Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.184218154Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.87368846Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.517006456Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.579082756Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.610907017Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.20291916Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:02.09461611Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.08351308Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.075077146Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.986248659Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.682371813Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.778993692Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.276160792Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.278176125Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.299817246Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.690867903Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.473021102Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.688247478Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.679271787Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.302379402Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.679005694Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n,,105,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.19356129Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,106,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:48.396258937Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,106,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:42.781505302Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n,,106,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:13.979892016Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,107,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:21.094724121Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,107,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:21.095299583Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n,,107,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:21.09582548Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.034799291Z,318830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.630461676Z,327382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:01.524623048Z,273298,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.638470721Z,327441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.429638442Z,221445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:01.630326348Z,330907,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:01.138308551Z,317407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.635070899Z,324530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.533625721Z,327413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.642757562Z,327428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.961617053Z,378657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.962091108Z,326403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.632296534Z,327453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.732796615Z,254231,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.734041057Z,327425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.131981246Z,285139,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.841108161Z,315723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.747160255Z,328231,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.749457646Z,378432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.050925562Z,380520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:02.137674152Z,373450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.826073231Z,253070,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.55021015Z,327635,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.393663685Z,247075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.836001891Z,330181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.842587721Z,374663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.652462073Z,327423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.634834215Z,323697,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n,,108,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.941951968Z,319001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,109,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:19.927431374Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n,,109,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:36.014136569Z,1126424,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-74mcm,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:21.474017622Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:21.063885134Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:21.065910949Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n,,110,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:21.365688883Z,90,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d333bccff17000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:01.18341172Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:01.018858607Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:01.179458918Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.790631854Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.085238023Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.479284594Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.543082226Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.884724048Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.503571105Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.381946881Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.398392687Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.481515817Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.582925802Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.685485547Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.407926156Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.788621814Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.599986905Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,111,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.081877377Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03cbe13cce931000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,112,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:57.167126173Z,135072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,113,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:02.824517714Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,113,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.420898056Z,101,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n,,113,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:37.162546325Z,114,resp_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-brkqv,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,114,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:04.826687523Z,373,req_bytes,http_request,/api/v2/query,gateway-77ff9ccb7d-zkhb7,043e0780ee2b1000,200\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:58.578035263Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.868423971Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:45.370635649Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n,,115,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:38.077384742Z,0,resp_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043e0780ee2b1000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:58.578035263Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.868423971Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:45.370635649Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n,,116,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:38.077384742Z,0,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-j664w,03cbe13cce931000,204\n\"\n\noutData = \"\n#group,false,false,true,true,false,false\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,long,dateTime:RFC3339\n#default,requests_count,,,,,\n,result,table,_start,_stop,requests_count,_time\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,143,2019-08-01T12:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,145,2019-08-01T13:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,139,2019-08-01T14:00:00Z\n\"\n\n_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")\n\ntest get_api_usage = () =>\n\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: _f})", Start: ast.Position{ Column: 1, Line: 1, @@ -141,7 +142,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1698, }, File: "api_test.flux", - Source: "_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")", + Source: "_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")", Start: ast.Position{ Column: 1, Line: 1684, @@ -175,7 +176,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1698, }, File: "api_test.flux", - Source: "(table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")", + Source: "(table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")", Start: ast.Position{ Column: 6, Line: 1684, @@ -389,7 +390,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1693, }, File: "api_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )", Start: ast.Position{ Column: 20, Line: 1684, @@ -402,11 +403,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 70, + Column: 73, Line: 1692, }, File: "api_test.flux", - Source: "fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", + Source: "fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", Start: ast.Position{ Column: 15, Line: 1686, @@ -418,11 +419,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 70, + Column: 73, Line: 1692, }, File: "api_test.flux", - Source: "fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", + Source: "fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", Start: ast.Position{ Column: 15, Line: 1686, @@ -452,11 +453,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 70, + Column: 73, Line: 1692, }, File: "api_test.flux", - Source: "(r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", + Source: "(r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", Start: ast.Position{ Column: 19, Line: 1686, @@ -468,11 +469,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 70, + Column: 73, Line: 1692, }, File: "api_test.flux", - Source: "r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", + Source: "r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", Start: ast.Position{ Column: 9, Line: 1687, @@ -681,11 +682,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 70, + Column: 73, Line: 1692, }, File: "api_test.flux", - Source: "((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", + Source: "((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))", Start: ast.Position{ Column: 13, Line: 1689, @@ -697,11 +698,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 69, + Column: 72, Line: 1692, }, File: "api_test.flux", - Source: "(r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\")", + Source: "(r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\")", Start: ast.Position{ Column: 14, Line: 1689, @@ -713,11 +714,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 84, + Column: 51, Line: 1691, }, File: "api_test.flux", - Source: "(r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)", + Source: "(r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)", Start: ast.Position{ Column: 14, Line: 1689, @@ -729,11 +730,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 83, + Column: 50, Line: 1691, }, File: "api_test.flux", - Source: "r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true", + Source: "r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/", Start: ast.Position{ Column: 15, Line: 1689, @@ -745,11 +746,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 36, + Column: 40, Line: 1690, }, File: "api_test.flux", - Source: "r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\"", + Source: "r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"", Start: ast.Position{ Column: 15, Line: 1689, @@ -851,13 +852,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 36, + Column: 40, Line: 1690, }, File: "api_test.flux", Source: "r._field == \"req_bytes\"", Start: ast.Position{ - Column: 13, + Column: 17, Line: 1690, }, }, @@ -867,13 +868,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 21, + Column: 25, Line: 1690, }, File: "api_test.flux", Source: "r._field", Start: ast.Position{ - Column: 13, + Column: 17, Line: 1690, }, }, @@ -883,13 +884,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 14, + Column: 18, Line: 1690, }, File: "api_test.flux", Source: "r", Start: ast.Position{ - Column: 13, + Column: 17, Line: 1690, }, }, @@ -901,13 +902,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 21, + Column: 25, Line: 1690, }, File: "api_test.flux", Source: "_field", Start: ast.Position{ - Column: 15, + Column: 19, Line: 1690, }, }, @@ -921,13 +922,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 36, + Column: 40, Line: 1690, }, File: "api_test.flux", Source: "\"req_bytes\"", Start: ast.Position{ - Column: 25, + Column: 29, Line: 1690, }, }, @@ -942,263 +943,88 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 83, + Column: 50, Line: 1691, }, File: "api_test.flux", - Source: "strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true", + Source: "r.hostname !~ /^gateway-internal/", Start: ast.Position{ - Column: 13, + Column: 17, Line: 1691, }, }, }, - Left: &ast.CallExpression{ - Arguments: []ast.Expression{&ast.ObjectExpression{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 74, - Line: 1691, - }, - File: "api_test.flux", - Source: "v: r.hostname, substr: \"gateway-internal\"", - Start: ast.Position{ - Column: 33, - Line: 1691, - }, - }, - }, - Properties: []*ast.Property{&ast.Property{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 46, - Line: 1691, - }, - File: "api_test.flux", - Source: "v: r.hostname", - Start: ast.Position{ - Column: 33, - Line: 1691, - }, - }, - }, - Key: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 34, - Line: 1691, - }, - File: "api_test.flux", - Source: "v", - Start: ast.Position{ - Column: 33, - Line: 1691, - }, - }, - }, - Name: "v", - }, - Value: &ast.MemberExpression{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 46, - Line: 1691, - }, - File: "api_test.flux", - Source: "r.hostname", - Start: ast.Position{ - Column: 36, - Line: 1691, - }, - }, - }, - Object: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 37, - Line: 1691, - }, - File: "api_test.flux", - Source: "r", - Start: ast.Position{ - Column: 36, - Line: 1691, - }, - }, - }, - Name: "r", - }, - Property: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 46, - Line: 1691, - }, - File: "api_test.flux", - Source: "hostname", - Start: ast.Position{ - Column: 38, - Line: 1691, - }, - }, - }, - Name: "hostname", - }, - }, - }, &ast.Property{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 74, - Line: 1691, - }, - File: "api_test.flux", - Source: "substr: \"gateway-internal\"", - Start: ast.Position{ - Column: 48, - Line: 1691, - }, - }, - }, - Key: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 54, - Line: 1691, - }, - File: "api_test.flux", - Source: "substr", - Start: ast.Position{ - Column: 48, - Line: 1691, - }, - }, - }, - Name: "substr", - }, - Value: &ast.StringLiteral{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 74, - Line: 1691, - }, - File: "api_test.flux", - Source: "\"gateway-internal\"", - Start: ast.Position{ - Column: 56, - Line: 1691, - }, - }, - }, - Value: "gateway-internal", - }, - }}, - With: nil, - }}, + Left: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 75, + Column: 27, Line: 1691, }, File: "api_test.flux", - Source: "strings.containsStr(v: r.hostname, substr: \"gateway-internal\")", + Source: "r.hostname", Start: ast.Position{ - Column: 13, + Column: 17, Line: 1691, }, }, }, - Callee: &ast.MemberExpression{ + Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 32, + Column: 18, Line: 1691, }, File: "api_test.flux", - Source: "strings.containsStr", + Source: "r", Start: ast.Position{ - Column: 13, + Column: 17, Line: 1691, }, }, }, - Object: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 20, - Line: 1691, - }, - File: "api_test.flux", - Source: "strings", - Start: ast.Position{ - Column: 13, - Line: 1691, - }, + Name: "r", + }, + Property: &ast.Identifier{ + BaseNode: ast.BaseNode{ + Errors: nil, + Loc: &ast.SourceLocation{ + End: ast.Position{ + Column: 27, + Line: 1691, }, - }, - Name: "strings", - }, - Property: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 32, - Line: 1691, - }, - File: "api_test.flux", - Source: "containsStr", - Start: ast.Position{ - Column: 21, - Line: 1691, - }, + File: "api_test.flux", + Source: "hostname", + Start: ast.Position{ + Column: 19, + Line: 1691, }, }, - Name: "containsStr", }, + Name: "hostname", }, }, - Operator: 18, - Right: &ast.Identifier{ + Operator: 20, + Right: &ast.RegexpLiteral{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 83, + Column: 50, Line: 1691, }, File: "api_test.flux", - Source: "true", + Source: "/^gateway-internal/", Start: ast.Position{ - Column: 79, + Column: 31, Line: 1691, }, }, }, - Name: "true", + Value: regexp.MustCompile("^gateway-internal"), }, }, }, @@ -1209,13 +1035,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 69, + Column: 72, Line: 1692, }, File: "api_test.flux", Source: "(r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\")", Start: ast.Position{ - Column: 9, + Column: 12, Line: 1692, }, }, @@ -1225,13 +1051,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 68, + Column: 71, Line: 1692, }, File: "api_test.flux", Source: "r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"", Start: ast.Position{ - Column: 10, + Column: 13, Line: 1692, }, }, @@ -1241,13 +1067,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 39, + Column: 42, Line: 1692, }, File: "api_test.flux", Source: "r.endpoint == \"/api/v2/query\"", Start: ast.Position{ - Column: 10, + Column: 13, Line: 1692, }, }, @@ -1257,13 +1083,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 20, + Column: 23, Line: 1692, }, File: "api_test.flux", Source: "r.endpoint", Start: ast.Position{ - Column: 10, + Column: 13, Line: 1692, }, }, @@ -1273,13 +1099,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 11, + Column: 14, Line: 1692, }, File: "api_test.flux", Source: "r", Start: ast.Position{ - Column: 10, + Column: 13, Line: 1692, }, }, @@ -1291,13 +1117,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 20, + Column: 23, Line: 1692, }, File: "api_test.flux", Source: "endpoint", Start: ast.Position{ - Column: 12, + Column: 15, Line: 1692, }, }, @@ -1311,13 +1137,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 39, + Column: 42, Line: 1692, }, File: "api_test.flux", Source: "\"/api/v2/query\"", Start: ast.Position{ - Column: 24, + Column: 27, Line: 1692, }, }, @@ -1331,13 +1157,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 68, + Column: 71, Line: 1692, }, File: "api_test.flux", Source: "r._field == \"resp_bytes\"", Start: ast.Position{ - Column: 44, + Column: 47, Line: 1692, }, }, @@ -1347,13 +1173,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 52, + Column: 55, Line: 1692, }, File: "api_test.flux", Source: "r._field", Start: ast.Position{ - Column: 44, + Column: 47, Line: 1692, }, }, @@ -1363,13 +1189,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 45, + Column: 48, Line: 1692, }, File: "api_test.flux", Source: "r", Start: ast.Position{ - Column: 44, + Column: 47, Line: 1692, }, }, @@ -1381,13 +1207,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 52, + Column: 55, Line: 1692, }, File: "api_test.flux", Source: "_field", Start: ast.Position{ - Column: 46, + Column: 49, Line: 1692, }, }, @@ -1401,13 +1227,13 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 68, + Column: 71, Line: 1692, }, File: "api_test.flux", Source: "\"resp_bytes\"", Start: ast.Position{ - Column: 56, + Column: 59, Line: 1692, }, }, @@ -1468,7 +1294,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1693, }, File: "api_test.flux", - Source: "filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )", + Source: "filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )", Start: ast.Position{ Column: 8, Line: 1686, @@ -1503,7 +1329,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1694, }, File: "api_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()", Start: ast.Position{ Column: 20, Line: 1684, @@ -1555,7 +1381,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1695, }, File: "api_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)", Start: ast.Position{ Column: 20, Line: 1684, @@ -1732,7 +1558,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1696, }, File: "api_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)", Start: ast.Position{ Column: 20, Line: 1684, @@ -1906,7 +1732,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1697, }, File: "api_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})", Start: ast.Position{ Column: 20, Line: 1684, @@ -2081,7 +1907,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 1698, }, File: "api_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\" and\n r._field == \"req_bytes\" and\n strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true) or\n (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03cbe13cce931000\"\n and r._measurement == \"http_request\"\n and ((r.endpoint == \"/api/v2/write\"\n and r._field == \"req_bytes\"\n and r.hostname !~ /^gateway-internal/)\n or (r.endpoint == \"/api/v2/query\" and r._field == \"resp_bytes\"))\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: count)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"requests_count\"})\n |> yield(name: \"requests_count\")", Start: ast.Position{ Column: 20, Line: 1684, @@ -10301,7 +10127,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3365, }, File: "writes_test.flux", - Source: "package usage_test\n\nimport \"testing\"\nimport \"strings\"\n\n// This dataset has been generated with this query:\n// from(bucket: \"system_usage\")\n// |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n// |> filter(fn: (r) =>\n// (r.org_id == \"03d01b74c8e09000\" or r.org_id == \"043941ef08a63000\" or r.org_id == \"043502a6825c5000\")\n// and r._measurement == \"http_request\"\n// and r._field == \"req_bytes\"\n// )\ninData = \"\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:00.464241913Z,14474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:50.453929422Z,14290,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:40.56350665Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:00.464069692Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:10.367132499Z,14927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:50.360119605Z,14562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:15.951161358Z,11455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:20.469506362Z,14627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:10.360404568Z,14907,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:20.560384822Z,15514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:20.464560505Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:10.457731023Z,15452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:30.457021241Z,14766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:20.458783682Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:30.366746231Z,14073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:10.363501959Z,14907,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:00.456525739Z,13938,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:30.35611673Z,14777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:20.357182535Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:10.363331587Z,14610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:00.462057729Z,14803,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:30.466362995Z,15528,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:20.361058325Z,15588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:40.258913212Z,15308,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:00.575850286Z,15537,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:00.562744782Z,15605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:00.36036289Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:10.358946248Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:40.563057906Z,14762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:10.360288773Z,14111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:20.459230389Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:04.345515347Z,5910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:40.356787096Z,15432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:30.359898046Z,14745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:30.3605266Z,14806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:30.477846091Z,14037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:00.4600047Z,14927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:20.459700452Z,15441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:40.559702103Z,13983,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:30.46971589Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:30.254904566Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:40.461700307Z,14936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:10.467223118Z,14879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:20.563593003Z,14778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:50.361250889Z,14060,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:00.464850811Z,14948,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:30.356260268Z,14842,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:30.467199209Z,14108,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:51.84431782Z,5702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:10.352779509Z,13858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:30.46216521Z,14944,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:00.561177076Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:40.457364022Z,14748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:10.427768739Z,14804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:20.356693998Z,15570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:00.466577901Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:20.468223388Z,14962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.368426804Z,15417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:20.368497534Z,15461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:20.365925176Z,14660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:00.466498884Z,14800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:50.364091182Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:10.558412543Z,14451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:42.244831236Z,5782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:50.558797843Z,13947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:20.589233827Z,15591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:00.358310428Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:40.460825577Z,14805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:50.462868786Z,14130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:20.36371087Z,14770,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:10.660559909Z,14790,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:20.670926429Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:40.366538899Z,15441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:10.366436685Z,14568,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:30.364095207Z,14723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:50.467009207Z,14051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:02.126450806Z,4643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:42.125177171Z,4999,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:52.14127004Z,5328,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:42.124606769Z,6042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:52.124472886Z,5141,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:42.125707339Z,5267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:52.124074193Z,5441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:42.123966078Z,5067,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:52.12205003Z,5751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:42.125865596Z,5394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:52.12634384Z,5234,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:42.224191058Z,5044,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:52.124294998Z,6054,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:22.122983075Z,5606,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:12.133571901Z,16027,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:21.627292638Z,5592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:21.623553049Z,5500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:41.82364639Z,4858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:11.638698993Z,6177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:21.62479733Z,5385,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:01.629510337Z,5599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:31.727350143Z,5874,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:41.624753739Z,5664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:31.62622381Z,4886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:51.728505838Z,5467,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:11.722754748Z,4806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:41.625143436Z,5601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:31.623584594Z,5576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:51.623773218Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:01.727509346Z,5898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:01.624004611Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:21.624935193Z,5604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:21.72874104Z,5576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:51.625538179Z,5625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:11.627190628Z,5403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:11.623566353Z,5473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:01.624234681Z,5627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:51.622791364Z,5181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:41.634371527Z,5286,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:21.622849281Z,5597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:31.625834621Z,5112,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:51.627758054Z,4773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.734350727Z,5611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:01.626417166Z,5509,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:21.623212899Z,5458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:51.625447464Z,5714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:51.626701283Z,4995,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:11.628696763Z,5607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:21.621987868Z,5170,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:11.627654024Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:51.725691732Z,4820,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:31.621708855Z,6065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:11.62535822Z,5386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:11.622759095Z,5188,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:51.624656774Z,6110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:21.62310567Z,4658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:31.624101663Z,5436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:11.725682329Z,5101,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:41.622912523Z,4927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:41.624255656Z,5698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:21.629191172Z,5565,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:51.626075278Z,5661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.627194484Z,6252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:21.622745246Z,4638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:41.62612763Z,5801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:00.482034991Z,12860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:20.48027343Z,12813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:30.963257231Z,12954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:20.666041554Z,13199,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:10.661775499Z,13089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:50.562888598Z,13540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:20.559973344Z,13241,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:10.566336202Z,13782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:40.773172502Z,13722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:10.567777549Z,13677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:40.561179851Z,12514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:30.563255716Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:00.86651441Z,12749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:30.573601511Z,12735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:00.56956423Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:30.576514152Z,12789,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:00.575629933Z,12390,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:30.56076143Z,12712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:00.563307239Z,12834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:30.575917302Z,12638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:00.579914728Z,12715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:30.576742841Z,12539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:00.476773604Z,12800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:30.565466639Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:10.571137586Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:40.780297143Z,12708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:10.581944751Z,12519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:40.567350041Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:30.578622579Z,12609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.866057942Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:30.564611275Z,12567,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:20.464492495Z,12739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:10.573691733Z,12822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:40.761349953Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:10.668041288Z,12806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:40.560201274Z,12477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:10.566205836Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:30.673175614Z,12432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:00.571422Z,12520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:30.561025019Z,12968,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:00.578510538Z,12718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:20.5620776Z,12507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:50.565196268Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:20.55920534Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:50.560432368Z,12778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:40.572016294Z,12738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:10.474705441Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:00.573910345Z,12601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:30.573503732Z,12466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:00.566681293Z,12496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:30.474719745Z,12414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:00.473434763Z,12517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:30.479693162Z,12388,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:10.563201762Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:10.580753216Z,12432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:20.48067007Z,12333,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:30.669757308Z,12451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:40.475230638Z,12384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:40.464224936Z,12483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:10.476077449Z,12540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:10.481446445Z,12637,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:50.475296451Z,12403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:10.485532595Z,12399,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.471078662Z,12390,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:30.483841172Z,12655,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:10.876893672Z,14822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:50.568451268Z,14560,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:30.163999102Z,14210,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:50.378776134Z,14947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:40.676472286Z,14892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:00.367481816Z,14635,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:30.372071665Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:40.472119032Z,14607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:50.381232918Z,14747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:50.481445177Z,15592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.271118587Z,15425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:40.385715412Z,14584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:00.472896698Z,13909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:50.377995338Z,15636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:20.474753675Z,14729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:50.379762772Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:10.26789702Z,14185,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:40.381812568Z,14788,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:10.382503027Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:50.579885528Z,15516,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:10.278260478Z,13782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:00.478762675Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:00.37924961Z,15414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:30.368632527Z,14068,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:50.478180624Z,14145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:50.475487595Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.482812488Z,13988,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:30.276996753Z,14863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:30.47176165Z,14048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.268438682Z,13895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:10.473926563Z,14587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:20.384378949Z,14657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:50.476472688Z,14155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:44.264421343Z,9490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:50.380293211Z,14172,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:10.483741411Z,15418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:10.573434973Z,14952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:40.377116575Z,14745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:10.579867799Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:40.387322351Z,14974,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:40.56962201Z,15558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:20.478726019Z,14978,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:40.479834602Z,14819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:10.573424483Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:20.171358962Z,14744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:50.38193761Z,15313,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:30.408261572Z,14019,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:10.372903485Z,14679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:40.58217612Z,15398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:10.590748032Z,15534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:01.259793874Z,5703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:50.471280999Z,14898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:40.176699146Z,14022,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:00.376850993Z,14020,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:40.475381882Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:20.446286661Z,14089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.479420962Z,15341,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:30.484277298Z,14742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:50.373523519Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:40.181666041Z,14675,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:00.476252369Z,14794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:40.371125716Z,14892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:10.52429546Z,14634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:10.480671166Z,14163,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:50.472810081Z,14748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:30.476860095Z,13853,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:40.472775606Z,14776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:20.170255563Z,14606,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:20.468009573Z,14783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:30.474489351Z,13923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.481025459Z,15402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:10.472562316Z,14717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:20.678336638Z,14109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:40.174377069Z,14565,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:20.37627842Z,14824,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:00.578181281Z,14914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:42.178276625Z,4813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:52.179333377Z,5283,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:12.181090832Z,6037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:31.683676298Z,5898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:41.680275402Z,6041,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:31.682544054Z,5272,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:01.683969143Z,5251,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:21.779331814Z,5443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:41.682514986Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.891432368Z,4991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:31.685149269Z,5282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:31.680664444Z,5778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:01.686812432Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:21.678591565Z,5032,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:41.679214406Z,6285,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:01.685142928Z,5335,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:21.682441106Z,5322,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:41.784026692Z,5465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:31.681911776Z,5750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:31.679534362Z,5787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:31.681321869Z,5257,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:11.680039787Z,5314,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:31.781871395Z,5406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:01.68137078Z,5316,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:31.706547813Z,5394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:01.683573897Z,5663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:11.686309088Z,5340,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:51.679753269Z,5586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:41.681686348Z,5527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:01.680404239Z,6080,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:01.684263512Z,4895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:21.682458349Z,5600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:41.678446464Z,5595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:41.685846862Z,5465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:41.684247268Z,5465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:51.683853108Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:11.680357542Z,5930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:21.679879778Z,5818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:01.679933162Z,5661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:21.883119406Z,6246,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:21.679929081Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:41.681953479Z,4780,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:01.68083251Z,6071,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:01.681287822Z,5837,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:11.683043132Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:31.678394632Z,5065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:11.684359456Z,5758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:31.677592866Z,4885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:51.67891022Z,5075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.693539122Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:41.68286235Z,4684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:01.682494084Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:21.785746387Z,5198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:41.682082528Z,5456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:11.682252164Z,4756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:31.683452697Z,4962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:21.683774703Z,5424,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:31.683036478Z,5934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:21.678665378Z,6216,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:41.683998736Z,5349,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:41.677785087Z,6051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:21.682195063Z,5176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:11.683061377Z,5200,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:31.681920745Z,4961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:01.7808503Z,5402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:01.6827129Z,6038,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:01.710065064Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:11.78198496Z,4889,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:00.410455042Z,13129,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:20.612214521Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:10.613085447Z,12909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:00.412012517Z,12857,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:40.914707547Z,13910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:30.50092323Z,13942,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:20.506553723Z,13033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:50.615233296Z,13697,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:10.618206771Z,13760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:40.503077727Z,13899,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:10.51457693Z,13419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:30.715375611Z,13014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:00.517719573Z,12483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:30.519177566Z,12832,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:00.517384611Z,12805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:30.511380314Z,12638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:00.617114218Z,12584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:30.500922892Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:00.508501948Z,12639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:30.509737804Z,12388,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:00.607059826Z,12823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:30.521291591Z,12543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:00.705290993Z,12614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:40.597764824Z,12663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:10.503284353Z,12737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:00.51792435Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:30.507509192Z,12901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:00.501132732Z,12876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:50.50759347Z,12612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:40.714088938Z,12375,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:10.511887566Z,12540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:40.506502445Z,12875,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:11.008622285Z,12792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:40.513286578Z,12743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:10.521378198Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.503785548Z,12759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:30.513342757Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.909907875Z,12548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:30.513231391Z,12328,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.527190295Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:50.516466443Z,12542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:20.513378774Z,12335,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:50.508357695Z,12404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:20.515120687Z,12469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:10.509120857Z,12357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:40.500027459Z,12334,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:30.512229141Z,12601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:00.712079145Z,12681,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:30.509825917Z,12396,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:00.625122698Z,12377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:30.509535904Z,12677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:00.508691795Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:00.507487622Z,12652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:40.521530949Z,12631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:00.516523432Z,12733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:40.517913275Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:20.603547389Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:40.710414055Z,12453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:00.534639159Z,12442,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:00.508316108Z,12395,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:20.520859613Z,12764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:50.443402745Z,12699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:10.544811236Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:30.540874263Z,12781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:50.528309419Z,12652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:40.546001795Z,12809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:30.534984482Z,12796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:20.53261252Z,13260,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:10.737657887Z,13045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:00.636631524Z,12845,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:50.547113946Z,13072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:40.625187108Z,12755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:30.543801852Z,12967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:20.543233899Z,12909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:00.546515332Z,13604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:30.526877222Z,13249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:20.545107016Z,13678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:50.527783457Z,13698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:20.536967573Z,13557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:50.533826958Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:40.736686193Z,12721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:10.537431088Z,12861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:50.553339363Z,12466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:40.645912764Z,12555,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:30.526185433Z,12703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:20.530228207Z,12667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:10.526105824Z,12549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:40.543578828Z,12506,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:10.541304246Z,12457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:40.536106013Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:10.757796664Z,12535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:40.563519924Z,12525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:10.534920341Z,12454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:40.538745065Z,12674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:10.752833662Z,12650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:40.537375994Z,12522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:50.526875865Z,12707,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:20.538519817Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:50.536935244Z,12613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:40.541198284Z,12748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:10.540335519Z,12421,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:00.543317521Z,12595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:20.540809194Z,12610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:50.927759745Z,12664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:20.52544509Z,12949,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:50.539817367Z,12523,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:20.532525905Z,12815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:10.53989904Z,12811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:40.524260382Z,12433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:10.648323001Z,12554,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:40.541987021Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:10.528612818Z,12879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:00.738541474Z,12248,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:30.524956281Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:00.634572647Z,12461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:30.525189488Z,12634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:50.643221594Z,12531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:10.52775257Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:40.522021388Z,12485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:10.535540816Z,12809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:40.542379516Z,12700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:10.530433468Z,12405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:40.535445757Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:30.559339104Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:50.545064245Z,12416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:10.738914397Z,12797,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:30.535371599Z,12363,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:30.540510758Z,12567,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:00.536822123Z,12773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:10.523787506Z,12735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:20.525956841Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:10.531351288Z,12699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:20.633623461Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:20.634990337Z,12752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:40.52560734Z,12547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:20.424835734Z,15371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:50.533548068Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:10.427326401Z,14833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:40.429113694Z,15377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:00.533090725Z,14437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:20.425198848Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:20.330821456Z,15378,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:30.431941394Z,14695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:20.327394474Z,14059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:30.431439727Z,14796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:20.435993041Z,14640,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:10.432549191Z,15455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:30.435206653Z,14776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:40.536849632Z,15433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:25.617816663Z,5870,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:40.429647809Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:00.53136386Z,14054,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:30.429915826Z,15512,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:20.331375666Z,14284,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:10.429182327Z,15528,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:20.429048737Z,13972,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:30.233782744Z,14585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:10.426998395Z,13891,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:30.432549831Z,15557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:30.431249572Z,13952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:40.482915238Z,14040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:20.431627443Z,14913,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:50.432765235Z,15628,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:50.43572782Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:20.428244941Z,14670,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:10.32644781Z,14055,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:30.326716878Z,14742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:10.431382292Z,14082,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:20.524695097Z,14164,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:00.232235781Z,14035,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:10.528459395Z,14639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:10.437240355Z,14765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:10.327915246Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:20.231825436Z,15448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:50.449357044Z,14524,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.430178669Z,15432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:40.322775307Z,14795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:20.434335097Z,15463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:40.437895101Z,15609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:00.322489176Z,14672,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:40.445147249Z,14816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:10.327276557Z,14391,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:50.428739827Z,15444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:20.430944446Z,14705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:00.435198698Z,15243,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:40.429344614Z,14102,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:20.535992091Z,14276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:00.727174605Z,14689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:40.429048675Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:20.436918932Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:20.735690066Z,14167,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:02.223384997Z,5911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:10.438041058Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:50.432173007Z,15553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:30.438654476Z,14647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:50.426499206Z,14535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:30.438629896Z,14646,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:00.636648875Z,13821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:50.434698991Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:20.429994645Z,13933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:12.110678262Z,5025,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:12.111822738Z,5717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:12.214916217Z,5769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:12.114027127Z,5457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:12.111031267Z,5206,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:12.110558786Z,5373,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:32.111770843Z,6039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:22.112922677Z,4371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:11.614688985Z,5451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:01.610754751Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:21.624374618Z,5615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:51.609256251Z,5246,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:31.715567586Z,5503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:21.611093146Z,5639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:51.713900428Z,5253,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:41.614111659Z,5886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.613685104Z,5514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:51.613193963Z,5527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:41.683454119Z,5575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.714918211Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:21.611231809Z,5097,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:01.61192541Z,5917,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:51.616719958Z,5455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:11.615491798Z,5473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:41.612434493Z,5777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:31.611649119Z,5279,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:31.612436367Z,5492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:51.615233186Z,5233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:41.611639134Z,5437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:01.612363244Z,5477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:21.609168934Z,5686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:41.612186501Z,5205,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:11.612066361Z,5481,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:31.611268728Z,5329,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:21.61042168Z,4766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:41.712406737Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:01.70987596Z,5471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:21.714467837Z,5843,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:41.712365025Z,5209,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:41.711910395Z,5320,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:11.613177096Z,4823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:31.614896282Z,5507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:01.712251652Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:21.61266043Z,5482,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:21.612526963Z,5051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:51.615772732Z,5743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:11.614301624Z,5934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:21.612373229Z,5242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:41.613600546Z,4932,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:01.61205034Z,5441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:51.613431331Z,5866,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.611802696Z,4791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:41.613152104Z,5163,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:01.613044054Z,6188,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:01.614590546Z,5155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:41.610393517Z,4759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:31.613951582Z,5114,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:51.610554724Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:51.613188776Z,5336,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:31.612558587Z,4925,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:41.71592966Z,5039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:11.613689792Z,5411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:11.711874727Z,4766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:51.616714632Z,5641,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:11.609911747Z,5090,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:02.118225994Z,5091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:02.115910383Z,5109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:02.115299933Z,5754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:02.114918067Z,5603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:02.118499962Z,5285,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:02.117676706Z,4962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:32.117203901Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:31.615690452Z,5553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:51.614751136Z,5028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:41.619474755Z,6024,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:21.61543338Z,5060,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:11.618012744Z,5909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:41.617886459Z,7003,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:41.617649806Z,4823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:01.619068372Z,5410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:11.617825176Z,5015,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:41.61683905Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:01.717067444Z,5492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:21.613511979Z,5505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:31.615739332Z,5591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:51.614707915Z,5453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:41.616494016Z,5629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:21.615323124Z,5545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:51.616948094Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:41.615597174Z,5967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:11.623406839Z,5320,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:41.616271397Z,5916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:11.716597416Z,4763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:41.716841596Z,5596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:11.617560987Z,4810,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:41.617038808Z,5094,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:31.617210464Z,4977,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.818001662Z,4876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:51.721787301Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.718508748Z,4900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:41.61585035Z,5104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:01.614727339Z,5478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:21.615255978Z,5747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:21.617864572Z,5419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:21.613341546Z,5774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:31.618354073Z,4853,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:41.618482058Z,5250,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:31.615543772Z,5472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:41.617810283Z,5232,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:01.718207947Z,5382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:01.617815668Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:21.631500203Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:41.622129862Z,5709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.619224296Z,5403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:41.614507106Z,5222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:01.615515373Z,5632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:11.721402189Z,4833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:31.616423306Z,5733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:51.613986446Z,5091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:21.612938903Z,4802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:41.71882917Z,5425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:01.618121055Z,5551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:51.617303926Z,5411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:11.618781336Z,4775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:11.616575199Z,5754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:51.717119383Z,5821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:21.616013309Z,5178,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:51.619611348Z,5580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:51.613590696Z,5181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:11.615430365Z,4981,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:01.62029305Z,5708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:21.716337438Z,4781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:41.718626554Z,6038,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:41.616820152Z,4890,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:21.81947792Z,4595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:51.718816785Z,6389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:41.614497357Z,5531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:51.714337937Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:11.635005487Z,5220,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:41.616086654Z,5326,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:20.468498098Z,14775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:50.437023453Z,15483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:10.35483322Z,13964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:50.33706462Z,13863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:25.929427625Z,7953,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:40.436692938Z,13877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:00.340829242Z,14535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:30.440423958Z,15576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:50.449848787Z,14922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:20.440462311Z,15404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:40.533829196Z,14052,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:50.438782923Z,15453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:20.339103765Z,13986,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:20.444230601Z,13928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:20.536896023Z,15265,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:20.43759786Z,15496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:50.236862392Z,14599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:40.344472248Z,14256,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:30.436771356Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:00.443651798Z,14688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:30.443535992Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:10.442264751Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:10.444281059Z,15284,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:40.540127593Z,15457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:20.440546035Z,14159,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:30.243413581Z,14671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:00.44108678Z,14551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:10.337051993Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:20.542326412Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:30.537564064Z,13887,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:00.338866407Z,15309,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:30.336462103Z,14721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:30.441957512Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:30.437299151Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:30.443483408Z,13903,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:00.443901584Z,14790,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:00.446921084Z,14642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:10.446824577Z,14678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:40.338550004Z,15548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:20.235283274Z,14538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:50.4427302Z,13903,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:00.4347885Z,14078,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:30.339686105Z,14604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:10.540024903Z,13904,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:40.331247522Z,15399,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:40.343971155Z,13922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:00.239805034Z,14704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:20.341369148Z,13993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.440995722Z,14708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:20.451587652Z,13781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:10.44332653Z,14755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:30.532597942Z,13965,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:20.430626178Z,15400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:20.442091481Z,14625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:10.443607289Z,13836,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:50.437238159Z,14167,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:30.242304825Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:10.232262229Z,14827,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:50.44954375Z,14063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:30.342020354Z,14819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.544806355Z,14700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:40.42838108Z,14109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:40.549476347Z,14981,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:30.544406152Z,14712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:10.437011608Z,14045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:50.231257496Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:00.442072569Z,14651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:10.442218978Z,14709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:50.331297817Z,14815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:00.437959689Z,15469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:10.337165132Z,14944,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:00.342842251Z,13776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:20.342818454Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:20.638836924Z,14595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:40.443716533Z,14611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:00.446149597Z,15536,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.436121462Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:40.435730413Z,14114,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:00.438256111Z,15642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:20.544037165Z,14796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:40.245119032Z,15505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.441889636Z,14749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:40.379566365Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:30.383843551Z,14122,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:10.39514055Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:00.580409122Z,14702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:10.380016566Z,14469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:35.873681502Z,3746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:40.37997914Z,14850,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:50.482574189Z,15583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:00.483007918Z,14011,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:50.390395718Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:50.390333403Z,14888,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:10.412701713Z,14896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:00.586143637Z,13994,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:50.285223638Z,15384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.507709045Z,14717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:20.490508083Z,14675,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:10.393931759Z,15486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:50.486716578Z,14830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:10.492693176Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:50.286721684Z,14710,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:20.391857153Z,14916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:40.484708738Z,14813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:00.484251868Z,14779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:10.485025546Z,14061,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:40.394908914Z,13860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:50.490773463Z,13880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:00.492049914Z,14838,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:10.393608121Z,15552,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:40.48497597Z,14799,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:10.385756467Z,14885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:40.189775936Z,14830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:20.183456953Z,14813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:50.284882414Z,14704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:00.492751221Z,14715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.587094812Z,15456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:00.489795665Z,14603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:30.488717967Z,13908,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:00.487284537Z,14715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:50.184176186Z,15369,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:30.184638079Z,14661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:50.583156294Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:20.170388893Z,14725,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:50.187356953Z,14478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:00.387995657Z,14964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:30.383074425Z,14763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:30.482566985Z,14747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:40.486109959Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:10.49515301Z,13818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:40.386107548Z,14652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:20.48936818Z,14998,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:50.590512508Z,14110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:30.378449814Z,13894,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:20.185072135Z,14783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:30.18415374Z,15456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:40.282488071Z,15443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:20.591084822Z,14002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:00.384564904Z,14564,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:10.282964242Z,14667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:10.484240598Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:50.485246429Z,15345,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:30.502168846Z,14071,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:10.394118871Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:40.498734809Z,14877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:20.493447042Z,15579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:00.381218539Z,14741,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:10.488272056Z,14615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:40.485523329Z,15591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:20.395458108Z,14643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:10.390542203Z,14827,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:20.284696316Z,14909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.491279552Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:00.389926545Z,14722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:20.387364409Z,13961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:40.48600623Z,14588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:00.384749836Z,14040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:20.184269581Z,14694,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:40.387326291Z,14997,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:00.490611306Z,14005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:20.486020232Z,14767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:00.393301977Z,14642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:20.382632852Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:40.395339325Z,15496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:20.816814087Z,24967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:00.420165422Z,13092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:20.426606679Z,12743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:10.532341472Z,13211,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:00.632662874Z,12516,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:50.526180823Z,12974,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:40.527397746Z,13148,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:30.522505008Z,12865,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:20.53993958Z,13377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:10.52680765Z,12878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:00.523862648Z,13914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:50.629913639Z,12789,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:40.53050702Z,13324,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:00.524510875Z,13255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:30.729245072Z,13721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:20.529961108Z,13709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:50.531355999Z,13723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:20.522614096Z,13217,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:50.513348728Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:40.516442481Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:10.531815714Z,12555,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:40.531896409Z,12541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:20.529389713Z,12716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:10.652842679Z,12880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:00.725256771Z,12432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:50.630309181Z,12885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:10.534447628Z,13311,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:40.529668461Z,12433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:10.524914293Z,12733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:40.528272454Z,12590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:10.524018606Z,12734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:40.53192426Z,12626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:10.528412244Z,12754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:40.52563235Z,12599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:10.513161981Z,12680,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:40.539551402Z,12505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:50.627251583Z,12496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:20.52870035Z,12553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:50.62880173Z,12698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:40.531676973Z,12595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:10.525271302Z,12535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:30.543754436Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:20.528435972Z,12463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:50.519912265Z,12546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:20.84460127Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:50.618615243Z,12661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:20.536249099Z,12591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:40.536333962Z,12618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:10.623863557Z,12758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:40.529790448Z,12639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:10.534690105Z,12839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:30.53551735Z,12674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.538638406Z,12598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:30.528288104Z,12651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.525523458Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:50.626571283Z,12754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:20.514540583Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:10.511687333Z,12765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:40.527126634Z,12739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:10.519716911Z,12617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:40.510841548Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:10.525171926Z,12784,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:40.614291921Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:50.523042569Z,12336,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:20.512503367Z,12599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:30.628994108Z,12673,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:40.536657672Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:50.515020538Z,12609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:00.616681558Z,12428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:20.530797327Z,12649,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:50.538183977Z,12772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:10.514289783Z,12697,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:50.601580879Z,13465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:10.398815092Z,12747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:50.406711414Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:00.497542118Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:50.597986926Z,13573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:40.495775688Z,12664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:30.500168951Z,13040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:20.491310576Z,13729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:50.49446909Z,13779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:40.494175667Z,13713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:10.693843546Z,13177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:40.498941394Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:10.596144581Z,12529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:00.491711508Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:30.519197649Z,12643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:30.49609898Z,12409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.645119061Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:30.582094209Z,12686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.49829236Z,12707,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:30.502663564Z,12782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.58278297Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:30.488796669Z,12779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.584763144Z,12435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:30.50156666Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:10.501097964Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:40.578766532Z,12510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:10.499072512Z,12807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:00.503494174Z,12756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:30.496164062Z,12870,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:20.489213901Z,12821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:10.49703678Z,12898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:40.496281115Z,12696,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:10.494208525Z,12512,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:40.608610216Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:10.588444684Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:40.49747094Z,12512,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:30.49481092Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:00.495703718Z,12501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:30.592870735Z,12522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:00.501902091Z,12415,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:30.494039914Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:20.499341734Z,12417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:50.495268642Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:20.497004743Z,12611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:50.498102405Z,12283,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:10.493699866Z,12599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:30.517571602Z,12723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.619041284Z,12644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:30.508365752Z,12764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.602118784Z,12634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:30.494331781Z,12548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:40.482404876Z,12716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:00.614334614Z,12406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:20.499626248Z,12625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:40.494433918Z,12617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:00.489672402Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:20.485553191Z,12596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:40.49384921Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:20.491781556Z,12352,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:40.484264502Z,12686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:00.4849646Z,12778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:20.796390874Z,12752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:40.492883319Z,12462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.705772271Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:10.692849022Z,12387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:40.498294685Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:00.497617677Z,12448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:10.494198967Z,12633,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:20.491404235Z,12403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:00.784791566Z,12384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:00.504866406Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:10.493648445Z,12439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:30.378960059Z,12242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.58018422Z,13117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:40.373807798Z,13039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:30.37801768Z,13493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:10.562191111Z,13404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:00.579395361Z,13303,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:40.571330752Z,13716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:20.560908165Z,13709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:50.573790133Z,13670,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:40.579299371Z,13242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:10.591278668Z,13618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:40.559516325Z,13823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:10.578726084Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:00.567230375Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:30.577692829Z,12580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:00.584230156Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:30.578910913Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:00.89217612Z,12450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:30.562339332Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:00.600825192Z,12862,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:30.569410256Z,12802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:00.660793705Z,12419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:30.574297857Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:00.661360374Z,12458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:30.574728653Z,12828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:00.559644468Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:10.561596221Z,12774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:40.560624717Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:10.882853367Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:00.589759247Z,12394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:30.56180197Z,12738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:50.581110422Z,12630,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:40.778630399Z,12493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:10.561751129Z,12604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:40.56243798Z,12645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:10.671066214Z,12769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:40.569298937Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:00.577774942Z,12661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:30.960129026Z,12770,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:00.674921243Z,12550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:30.782539454Z,12573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:50.575793846Z,12750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:20.765943955Z,12851,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:50.565655824Z,12364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:20.586302472Z,12809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:10.560153293Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:40.571123234Z,12515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:30.562257383Z,12545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:00.573992918Z,12737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:30.676242329Z,12826,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:00.572450471Z,12406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:30.576444687Z,12474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:00.57329955Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:00.475420826Z,12636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:20.479301788Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:30.486641142Z,12638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:40.478120533Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:40.567505848Z,12791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:30.479959996Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:12.172174059Z,6022,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:12.169852499Z,5472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:42.168438508Z,5539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:41.666645749Z,6023,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:01.770571783Z,5867,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.674350119Z,5607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:31.669291895Z,5469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:51.671285745Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:01.667047846Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:11.669816284Z,5264,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:51.669507952Z,5467,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:11.772861228Z,5160,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:51.670200255Z,5031,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:31.668882135Z,5405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:21.67170526Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:51.669933424Z,5234,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:51.668137659Z,6099,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:21.768825013Z,5466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:11.671253022Z,5496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:41.672837156Z,5065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:01.672213673Z,5430,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:21.669036544Z,5422,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:11.771893888Z,6130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:41.673212881Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:11.671607095Z,5941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:41.668004632Z,5283,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:11.671932366Z,5287,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:11.668770005Z,5448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:31.667367096Z,5593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:51.667480589Z,5507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:11.66967855Z,4806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:41.667359627Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:41.671249363Z,5321,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:01.772059552Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:51.66908224Z,5002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:21.670488866Z,5086,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:51.795875626Z,5470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:31.672548759Z,5293,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:51.66977786Z,5267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:21.669507425Z,5230,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:51.767414435Z,5479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:31.671098443Z,4919,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:31.669569667Z,4592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:11.668337683Z,5998,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:31.669710955Z,5732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:51.668266516Z,5783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:11.768518848Z,5936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:11.669633226Z,4993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:51.670155545Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:01.673626445Z,6088,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:01.669279651Z,5765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:51.674935872Z,5238,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:11.672238419Z,5583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:01.66727513Z,4886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:31.672539598Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:31.669355709Z,4599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:21.768010644Z,5021,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:31.671651453Z,5389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:41.672471286Z,5816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:12.164725106Z,4382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:12.167180364Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:21.666239906Z,5269,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:31.676039999Z,5270,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:21.777196052Z,4815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:11.663338213Z,5993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:31.67563918Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:51.666052458Z,6318,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:11.772616732Z,5450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:31.663803919Z,5838,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:01.667140804Z,5028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:21.767607179Z,5127,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:31.665173779Z,5470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:21.665765069Z,5476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:31.667750204Z,5244,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:51.664145799Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:11.664757702Z,5671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:11.669024714Z,4604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:41.6668835Z,5576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:01.666396048Z,4971,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:51.663278657Z,5406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:11.667870643Z,5267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:21.66865685Z,5608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:15.482237792Z,4804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.666851421Z,5275,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:11.66751052Z,5666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:31.669292739Z,5902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:51.669446062Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:51.666083547Z,5236,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:31.666061555Z,5487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:01.667921793Z,5501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:01.667048458Z,4996,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:11.668364748Z,5897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:31.668519998Z,5139,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:11.77422469Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:31.673222006Z,5563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:51.682190896Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:11.669206312Z,4909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:11.667889821Z,6281,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:31.665679941Z,5043,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:21.669250106Z,5045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:41.673575971Z,5215,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:41.667875914Z,5766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:01.668916841Z,5436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:51.663639899Z,5611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:11.666303267Z,5412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:31.766886813Z,5759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:01.66563997Z,5589,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:21.669405872Z,5875,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:41.665331347Z,5724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:21.665595635Z,5143,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:41.665017613Z,4595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:41.669657257Z,5220,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:31.767021453Z,4660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:21.668189938Z,5916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:51.669366411Z,5934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:51.668554292Z,5545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:31.669247283Z,6164,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:41.667637657Z,5089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:21.668078358Z,5364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:31.665643289Z,5771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:21.671674Z,5442,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:02.163043643Z,4914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:02.161146282Z,5840,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:52.161204242Z,5298,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:01.75962937Z,5098,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:01.659620845Z,5589,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:11.660942975Z,4864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:31.663905381Z,5674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:51.660605454Z,5360,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:31.660259251Z,5475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:51.658137614Z,5478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:21.658930055Z,5460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:01.760689924Z,5292,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:31.665367455Z,4860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:01.658277116Z,5595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:11.664084488Z,5278,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:31.658252595Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:51.763839895Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:11.662757445Z,4972,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:51.659990755Z,4970,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:11.663180491Z,5333,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:11.657897203Z,5816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:31.662519834Z,5861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:01.660937801Z,5428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:11.660828557Z,5751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:51.662532419Z,5777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:11.760294829Z,5631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:31.661542984Z,5794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:11.663090896Z,6178,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:31.660301669Z,5773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:51.659338844Z,5929,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:51.660395525Z,5028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:21.657907849Z,4820,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:21.758764926Z,5275,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:31.661272509Z,5162,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:51.662839605Z,5900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:31.7652594Z,4924,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:51.660199481Z,5119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:11.660828252Z,6731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:31.657359048Z,5581,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:11.660510605Z,5674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:31.761903605Z,5740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:41.659193908Z,6190,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.780685063Z,4772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:41.673847645Z,5404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:01.661766555Z,5001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:21.662445307Z,5736,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:11.659459196Z,5001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:31.66490843Z,6078,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:51.660932918Z,5051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:21.667760618Z,5397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:41.764818491Z,5546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:51.664064371Z,5713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:51.658707897Z,5214,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:41.66160905Z,5261,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.661885114Z,5550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:11.66051451Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:01.665684443Z,4989,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:41.660847424Z,5295,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:31.661827402Z,5245,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:21.662649778Z,5249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:31.660177146Z,4638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:21.660930706Z,5738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:01.660050607Z,5063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:01.760552289Z,5428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:21.659931047Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:41.662557388Z,5198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:11.762763296Z,5149,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:41.661857081Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:11.65883265Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:51.666198332Z,5216,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:40.780456883Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:20.379147417Z,13901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:30.47864933Z,15571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:40.778014764Z,14747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:40.88223824Z,14073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:50.376698304Z,13835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:20.276560535Z,14076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:40.479658477Z,15491,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:50.472957025Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:20.380415927Z,13840,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:10.477036316Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.173203443Z,14947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:15.562763824Z,5910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:40.480009261Z,14961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:20.78018449Z,15581,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:10.569187868Z,15507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:30.384554839Z,14724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:30.484846554Z,15521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:20.17662718Z,14043,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:10.383025155Z,15611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:20.571334815Z,14028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:40.575749369Z,14980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:10.375063328Z,14790,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:50.577510956Z,14540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:20.473318924Z,13956,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:20.273640119Z,14840,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:30.582964601Z,15408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:00.478426794Z,15378,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:50.576632333Z,14048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:50.563745596Z,13922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:50.487068518Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:20.371368921Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:50.484422212Z,14787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.473819493Z,14769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:30.377754556Z,15642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:40.477316017Z,14844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:10.377649063Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.375750744Z,15293,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:40.543378497Z,15644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:00.3715387Z,14036,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:20.172757958Z,15414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:00.672952453Z,13877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:50.495868187Z,14939,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:30.378236196Z,15489,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:10.181024921Z,13978,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:20.585668023Z,14901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:00.473297656Z,14614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:40.379088337Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:20.477318922Z,14108,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:00.372698404Z,14659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:40.377709202Z,14598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:30.480372191Z,14980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:50.175697523Z,15629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:30.474137167Z,15288,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:20.377732903Z,13868,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:00.576847014Z,14074,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:30.474694802Z,14100,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:30.373374274Z,15436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:40.480144205Z,15645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:20.374566876Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:40.181993196Z,14122,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:50.374373251Z,14053,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:30.379318428Z,14124,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:40.475643218Z,14665,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:00.373409229Z,15397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:10.377575191Z,15369,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:30.579730529Z,14072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:30.483272533Z,15525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:10.280591596Z,14545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:30.483921364Z,14644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:50.376846261Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:10.487330212Z,14406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:30.476776105Z,14078,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:50.472404556Z,14888,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:42.199339594Z,5109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:52.207028334Z,6181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:42.199892107Z,5247,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:52.19868682Z,5954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:42.199340094Z,4995,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:02.304161584Z,5074,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:41.701495091Z,5353,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:51.699897001Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:11.702068578Z,4860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:11.907237624Z,5618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:41.699716221Z,5357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:11.701862006Z,5643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:21.699725826Z,5517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:01.699027791Z,5401,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:11.797950041Z,4642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:01.700188188Z,5458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:01.699302192Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:21.701090342Z,5629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:51.806854472Z,5961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:41.706048468Z,5483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:41.701525949Z,5911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:31.702114821Z,5459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:01.700673554Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:31.699752843Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:01.700850573Z,5915,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:31.702466499Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:01.698955288Z,5504,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:31.700878266Z,5211,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.802435432Z,4823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:51.800047496Z,5933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:01.699186506Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:01.700229319Z,5898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:21.700739619Z,5488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:31.700807036Z,5506,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:11.702216891Z,5896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:31.79923731Z,5666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:51.699596918Z,5677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:21.798624641Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:21.697341625Z,5447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:41.700616828Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:41.705079726Z,5674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:51.702996728Z,4863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:51.703890036Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:21.699564355Z,5950,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:21.699629746Z,5409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:41.70207383Z,4800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:31.702074156Z,5414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:11.7000132Z,5777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:41.701844646Z,5424,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:51.697505102Z,5047,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:21.702544674Z,5485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:31.801361311Z,6019,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:51.698691812Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:41.702012634Z,5956,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:51.699256417Z,5942,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:21.698902763Z,4623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:11.801710459Z,5427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.47530227Z,14713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:00.444009899Z,14660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:40.45100663Z,15321,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.446303114Z,14589,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:30.442172288Z,14511,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:20.136007543Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:40.446753258Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:30.450030847Z,14744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:40.448203945Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:50.441449957Z,14830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:40.342716402Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:00.543038211Z,14743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:40.34479012Z,13958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.447587133Z,13994,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:10.443169718Z,15222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:50.544752368Z,15579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:10.44640087Z,15329,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:30.548940285Z,15394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:00.453639408Z,14012,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:10.538349472Z,13922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:30.147741611Z,15297,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:20.541008125Z,14643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:20.646241874Z,14746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:40.442718838Z,14739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:30.439388047Z,14688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:10.444636879Z,14874,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:40.639006043Z,13960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:30.458576647Z,15407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:00.248225274Z,15350,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:20.545203338Z,14012,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:20.441450508Z,13936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:20.543555742Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:20.451750378Z,15447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:10.444728402Z,15503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.656829097Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:20.246277513Z,13899,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:40.441169832Z,15433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:40.442140601Z,14816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:10.346089111Z,15002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:20.352785951Z,15472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:30.457437079Z,13983,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:20.444714998Z,14702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:30.543661715Z,14538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:10.345392507Z,15562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:10.547002188Z,15522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:20.456032243Z,13987,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:40.449355364Z,14791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:10.447370383Z,14139,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:10.442777628Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:20.448328977Z,14625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:40.451310612Z,14793,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:40.436543379Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:30.446426057Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:10.350084669Z,15585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:50.537370393Z,15299,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:20.542554589Z,14873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:00.441471303Z,15493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:50.34495268Z,14095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:10.441465725Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:10.445582979Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.448504266Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.536269317Z,14848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:10.551797768Z,14616,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:30.43867432Z,15576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:50.445189205Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:10.442693145Z,15223,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:30.447161178Z,14625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:50.445684771Z,14539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:10.449315791Z,15517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:30.437591976Z,14113,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:50.45260047Z,14757,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:10.446086486Z,15407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:30.446719238Z,13955,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:50.345407152Z,14983,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:40.485904783Z,12861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:30.482817801Z,13123,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:40.384796104Z,13299,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:30.482487369Z,12523,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:50.483490478Z,13119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:30.56954014Z,13630,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:20.574409913Z,13667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:10.88855852Z,13814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:00.577282484Z,13510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:50.584839666Z,13783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:40.681027125Z,12751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:30.583978255Z,13795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:20.611678325Z,13740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:40.674754753Z,13745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:10.569686333Z,13776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:00.567487373Z,13689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:30.566093498Z,13721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:00.570936293Z,13720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:30.597696322Z,13440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:20.583351368Z,12744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:50.665772614Z,12721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:50.585000032Z,12564,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:20.572706727Z,12771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:50.579542939Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:20.684356946Z,12789,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:50.580200069Z,12400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:20.678857986Z,12682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:50.570127514Z,12588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:20.566513093Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:50.566200239Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:20.482975047Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:30.587330452Z,12787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:00.583535897Z,12786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:30.58215706Z,12765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:20.566637307Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:50.567249851Z,12571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:40.56589485Z,12781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:00.678722306Z,12616,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:30.588624207Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:00.489501169Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:30.6708746Z,12485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:00.577579544Z,12607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:50.567616913Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:20.887804764Z,12623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:50.677133417Z,12739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:20.499208485Z,12414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:50.489622839Z,12742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:40.501230214Z,12553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:10.488321857Z,12365,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:40.469118137Z,12636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:10.491112821Z,12470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:40.485158978Z,12720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:30.585563551Z,12651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.569123527Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:50.485655959Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:20.479655727Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:50.485544558Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:20.479532694Z,12776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:50.468173251Z,12479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:20.485901065Z,12580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:00.482513508Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:50.477290727Z,12577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.468141022Z,12430,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:10.582612272Z,12624,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:20.469591706Z,12763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:20.459575453Z,14665,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:00.550284835Z,13901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:20.44935884Z,14767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:50.451924819Z,14521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:30.443056398Z,15550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:20.453331233Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:10.450635841Z,14095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.465220073Z,15249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:40.449721118Z,15422,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:40.450284831Z,14781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:30.247424839Z,15700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:20.441742972Z,14039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:40.464522479Z,14964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:00.448715159Z,14728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:50.396765895Z,15478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:40.345616112Z,13868,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:20.547694818Z,13872,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:10.544000561Z,15389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:40.553646088Z,14690,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:30.243805728Z,14465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:10.452024543Z,15346,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:40.459035225Z,15490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:30.45547682Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:10.648586002Z,14239,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:40.547076537Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:10.354233935Z,14802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:40.365726905Z,15626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:10.342457231Z,14038,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:10.346226646Z,15530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:40.345596883Z,14095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:30.446555484Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:00.458911287Z,14690,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:00.346846295Z,14639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:10.345480833Z,14883,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:40.466312352Z,14239,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:50.341874921Z,14582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.455027348Z,14835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:00.350726434Z,14628,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:00.545969486Z,13835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:31.82924986Z,11455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:40.473118752Z,14801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:50.454498455Z,14573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:00.561809674Z,14502,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:40.584523673Z,14572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:50.548568001Z,14875,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:30.447633689Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:40.35134622Z,15277,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:00.353462484Z,14531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:40.453854032Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:00.448470338Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:30.334401653Z,14533,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:30.339968163Z,14643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:20.457051264Z,14738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:32.428775795Z,11521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.353394477Z,15614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:30.545997643Z,14844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:00.458800743Z,15366,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:40.44511362Z,15547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:30.442604724Z,14569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:20.361730193Z,13440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:10.370752403Z,12911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:20.361212726Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:40.360967967Z,12833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:00.765493164Z,12609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:50.77512765Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:40.548438099Z,12880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:30.551215371Z,12742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:20.552854596Z,12596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:10.649538182Z,13042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:00.550183255Z,13012,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:50.547054375Z,12934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:40.550324317Z,12825,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:30.552113363Z,13195,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:30.562395388Z,13735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:00.763206965Z,13676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:50.651893688Z,13543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:20.772619268Z,13745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:50.56926129Z,13651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:20.547897444Z,12689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:10.649140324Z,12447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:40.559727058Z,12582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:10.56563929Z,12795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:00.550503272Z,12434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:50.566281134Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:40.560504776Z,12708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:40.571807189Z,12822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:10.591279457Z,12786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:40.570070267Z,12690,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:10.970409346Z,12693,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:40.547213047Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:10.551806063Z,12417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:40.566800145Z,12612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:10.66554127Z,12901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:40.668453501Z,12636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:10.559532984Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:20.651113045Z,12489,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:50.566290595Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:20.552196634Z,12616,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:10.548477576Z,12746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:40.674146238Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.574395685Z,12841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:50.559926323Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:20.549300276Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:50.75185672Z,12760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:20.549134343Z,12762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:50.554503655Z,12572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:40.748598217Z,12647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:10.666259947Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:40.549429377Z,12723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:10.848625216Z,12596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:40.754610449Z,12323,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:30.564385411Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:00.675484427Z,12416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:30.562229233Z,12377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:00.559640774Z,12412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:30.560493772Z,12410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:20.561582296Z,12357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:50.549206026Z,12404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:40.547517626Z,12732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:10.557184565Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:40.55218358Z,12381,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:10.552478414Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:40.647703562Z,12733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:10.54834331Z,12808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:40.666741532Z,12504,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:10.560890671Z,12325,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:20.555951069Z,12547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:30.551642949Z,12439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.565698323Z,12516,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:32.130048593Z,5667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:32.131942537Z,5056,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:32.13545102Z,4801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:32.128823001Z,5171,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:32.127379251Z,5575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:32.130646245Z,5613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:32.131426309Z,5952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:22.12722099Z,6058,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:52.131434713Z,5073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:01.627327504Z,5476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:41.629546285Z,5296,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:51.629483357Z,4769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:31.62881312Z,5798,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:51.63098851Z,5230,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:11.628479173Z,5414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:11.627303581Z,5505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:21.635651529Z,4858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:21.629834726Z,6010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:11.628165062Z,5177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:41.728603805Z,5841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:51.62613664Z,5889,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:11.626543936Z,4912,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:51.629213438Z,5590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:11.629590467Z,5812,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:31.730518997Z,5486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:51.629988764Z,5451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:41.730905105Z,5401,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:51.630129833Z,5317,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:31.629095731Z,4930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:11.633515207Z,5973,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:01.730381863Z,6077,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:51.630550911Z,5642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:21.63814967Z,5948,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:41.626967751Z,6318,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:31.626703683Z,5557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:31.628586171Z,5441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:11.728389109Z,6345,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:31.627839401Z,4941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:51.62938086Z,5901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:31.630064966Z,5705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:51.629699102Z,5065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:11.629641679Z,5621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:11.730245553Z,5612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:41.630017928Z,6272,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:11.628528239Z,5006,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:31.73576558Z,5529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:51.62814347Z,5254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:51.630400122Z,5194,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:31.626212211Z,5403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:31.628920835Z,5597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:01.631273767Z,6187,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:01.625529455Z,5092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:21.628434567Z,5170,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:41.632930601Z,5504,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:11.732739843Z,5836,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:31.630677114Z,5254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:51.628850383Z,5351,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:11.629311531Z,5414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:41.659523865Z,5458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:01.629218086Z,5427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:51.631081934Z,4902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:11.631144638Z,4749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:01.631620472Z,5264,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:41.630955412Z,5574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:01.729029348Z,4860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:01.630104863Z,5233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:51.631131687Z,5423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:41.631929076Z,5238,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:41.626128955Z,4922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:51.726352Z,5719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:01.631461669Z,6257,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:31.828698404Z,4800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:21.731185185Z,6224,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:41.830030893Z,5308,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:01.630742358Z,5493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:31.728499028Z,6018,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:21.629226304Z,6198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:31.630389121Z,5382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:50.428589652Z,12561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.530822633Z,12796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:20.517161755Z,12960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:10.526363229Z,13220,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:00.734531656Z,13741,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:50.52964593Z,13715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:40.745732562Z,13698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:30.529189784Z,13678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:20.527395635Z,13647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:10.51591191Z,13711,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:10.527971311Z,13130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:40.517107555Z,13716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:30.667567267Z,13774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:00.616647092Z,13738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:30.515455893Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:00.53029262Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:50.728696931Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:20.536212384Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:20.538693276Z,12500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:50.521412305Z,12454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:20.528812519Z,12663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:50.536406133Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:20.533797523Z,12869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:50.533755755Z,12829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:20.517478748Z,12720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:50.530676426Z,12769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:20.521801519Z,12612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:50.51862261Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:00.529784261Z,12471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:30.538088206Z,12613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:50.528026325Z,12615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:20.53454967Z,12574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:10.51812639Z,12826,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:30.63243985Z,12740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.539033628Z,12718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:30.530082908Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.930815948Z,12525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:30.516947307Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:20.531592155Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:50.727256795Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:20.530109918Z,12548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:50.528332158Z,12459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:20.518958924Z,12489,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:10.530894123Z,12551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:40.524773857Z,12363,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:10.619339636Z,12634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:40.534131028Z,12527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:00.54285308Z,12502,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:20.536091058Z,12750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:50.521570172Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:20.538596524Z,12588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:50.739416575Z,12565,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:20.52478849Z,12783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:50.52939272Z,12279,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:30.535394507Z,12349,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:30.537142603Z,12717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:50.527717054Z,12583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:00.535376418Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:10.518481229Z,12806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:30.547064604Z,12618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:00.535141849Z,12457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:10.517053396Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:10.639244011Z,12423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:20.51704748Z,12367,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:22.196982459Z,4959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:22.199832262Z,5426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:52.197526026Z,5337,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:51.696547564Z,5772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:41.696037376Z,5175,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.698360245Z,5407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:21.698546414Z,5954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:51.696725439Z,5557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:01.699975286Z,5990,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:21.695542491Z,5158,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:41.7001911Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:21.704198199Z,5455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:11.801084474Z,5194,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:41.697744233Z,5706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:21.696258366Z,5282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:31.701464809Z,5729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:21.697512968Z,5959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:41.698468274Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:11.698841619Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:11.697042744Z,5805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:41.6967761Z,5959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:01.700944687Z,5203,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.699371446Z,5629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:31.698343315Z,5416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:31.697636712Z,5564,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:51.698144809Z,3985,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:41.69973559Z,5235,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:11.701665234Z,5587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:51.698286654Z,5411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:01.698244267Z,4993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:11.796851026Z,5177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:21.698558441Z,4953,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:01.697791668Z,5127,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:21.697512597Z,4942,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:21.697425764Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:01.698167123Z,5643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:11.697823659Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:11.697367172Z,5477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:31.696851159Z,5462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:41.697389363Z,5067,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.698027715Z,4961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:41.698064998Z,5385,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:01.698150204Z,5723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:21.697032387Z,4482,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:41.698021549Z,5610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:41.699406541Z,5423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:51.696601238Z,4599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:31.697413029Z,5269,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:21.698071645Z,5251,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:31.697592121Z,5379,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:51.695655853Z,4941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:21.696080599Z,4958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:51.697878779Z,6029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:31.698327711Z,5461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:41.698171255Z,6006,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:31.700295135Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:11.699576209Z,4766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:21.699065028Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:41.698891653Z,5931,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:01.696567465Z,5420,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:21.699508008Z,6032,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:01.695960616Z,5771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:21.707377268Z,5242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:01.697906003Z,5953,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:32.129232691Z,6085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:21.645329156Z,5415,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:01.628754547Z,4778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:21.629012222Z,5774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:41.654093313Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:01.628118985Z,4934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:51.628534154Z,4752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:51.631886304Z,4207,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.64158413Z,3527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:31.632666347Z,5624,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:41.628366414Z,5643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:31.627721007Z,5262,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:01.634564887Z,5434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:31.729595771Z,5434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.63020563Z,4807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:31.633672748Z,5668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:01.632742936Z,6045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:21.630726457Z,5450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:51.633772675Z,6072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:21.629222983Z,5301,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:21.652471164Z,4834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:51.629119304Z,4887,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:31.628600275Z,4990,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:51.629318838Z,5365,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:21.630574735Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:21.630649105Z,5397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:51.629779923Z,5584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:01.73232547Z,5275,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:01.629686513Z,5449,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:21.628056336Z,5717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:41.626898547Z,5906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:11.73049176Z,5471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:41.627467866Z,4855,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:11.729755181Z,4788,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:21.630687352Z,5214,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:21.731475937Z,4176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:41.630357807Z,5261,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:31.642521994Z,6029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:11.628074654Z,5451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:51.63416844Z,5017,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:31.628617602Z,6014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:51.628287671Z,5938,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:31.628265433Z,4788,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:01.627678608Z,5819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.759963139Z,5452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:11.627822758Z,5497,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:01.629310885Z,4977,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:31.830196498Z,5990,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:11.631832283Z,6240,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:41.732614656Z,5486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:22.159466867Z,5649,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:12.15961692Z,5076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:02.159421319Z,5580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:41.662706207Z,5610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:11.678143271Z,5392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:51.658778403Z,5444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:31.662604222Z,5170,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:11.659791677Z,5338,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:41.661727575Z,5448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:51.660321125Z,4926,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:11.759503257Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:11.664534111Z,6255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:31.6611363Z,5625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:51.659615693Z,4541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:11.660328296Z,5490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:31.661860388Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:51.75884444Z,6043,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:21.658233889Z,5470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:21.661729006Z,5092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:01.66419302Z,4960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:21.666621185Z,5261,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:51.761831328Z,4914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:21.662235985Z,5656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:51.660504357Z,5026,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:21.676717688Z,5416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:51.661217173Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:21.660727279Z,6158,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:51.65808541Z,6125,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:41.659353929Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:51.659605026Z,5014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:31.661280564Z,5627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:51.662738102Z,5485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:11.761951481Z,5510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:41.762044251Z,4839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:31.662733414Z,5541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:01.758929763Z,5235,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:11.663179843Z,5286,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:31.659505633Z,5371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:51.662709477Z,5503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:31.659912209Z,5829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:51.670881095Z,5395,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:01.862234266Z,5627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:21.658123484Z,5801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:21.663917438Z,5761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:41.659451628Z,5153,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:31.662854206Z,6016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:11.758820021Z,5419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:31.660022494Z,5410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:11.661238109Z,5247,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:01.660651357Z,6063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:11.663029243Z,6066,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:11.660508471Z,4831,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:31.664312436Z,6222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:21.758380099Z,5410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:11.660473509Z,5274,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:01.660909299Z,5485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:41.663907546Z,5138,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.669206566Z,5926,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:01.665213778Z,5738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:31.673381054Z,5844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:31.66567796Z,5131,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:31.664574879Z,6255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:51.667435235Z,4803,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:21.664417257Z,5681,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:51.660663313Z,5625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:11.660784806Z,6214,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:51.663041897Z,5119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:10.367294566Z,14964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:50.359106995Z,15594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:50.553221725Z,13869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:10.26561832Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:30.357913984Z,14571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:20.370857447Z,14566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.415573315Z,14970,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:10.467268943Z,14841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:40.370363757Z,15501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:00.461903246Z,15530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:10.364188442Z,13879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:00.467122471Z,13856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:30.564900419Z,13931,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:30.465610106Z,15498,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:10.473131961Z,14176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:00.460000877Z,13941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:10.160731737Z,13958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:00.362643823Z,14638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:10.161771211Z,15558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:20.358397037Z,14607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:30.357961601Z,13825,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:30.467266609Z,14798,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:40.369451308Z,15254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:10.35690111Z,15387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:00.459562425Z,14046,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:40.367210282Z,15340,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:20.566166072Z,15591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.462827816Z,14865,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:00.361078362Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:40.571602579Z,14055,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:50.36028603Z,13463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:30.368282738Z,14877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:30.461644662Z,14453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:00.471467337Z,15252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:50.260081663Z,14590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:50.480277629Z,15592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:30.375625207Z,14908,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:00.483047874Z,15397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:50.45995722Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:20.367927298Z,14886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:20.468715261Z,15406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:20.360116526Z,14590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:10.160815641Z,14507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:40.364552772Z,14686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:50.464611196Z,15404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:40.36536062Z,14029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:50.469422138Z,14576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.619186332Z,14604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:30.562454041Z,13839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:40.362470589Z,14736,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:40.268834164Z,15588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:40.458715631Z,14042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:41.449499047Z,5705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:20.368258066Z,14793,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:00.470997093Z,15426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:00.671619836Z,14627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:40.465833802Z,14743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:20.470032136Z,14860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:20.562243226Z,15562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:30.56103996Z,14779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:40.363626944Z,15576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:20.659937821Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:50.468130553Z,15563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:00.475547277Z,14848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:40.360561494Z,15051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:40.36407415Z,14819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:20.472782625Z,14107,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:40.361554995Z,14677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:00.46445033Z,13986,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:40.461608239Z,13956,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:20.466859288Z,14636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:20.370817926Z,14743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:40.562346951Z,14831,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:00.363536726Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:40.462181816Z,14844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:40.4573945Z,12598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:30.466654792Z,12799,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:20.461180966Z,12640,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:40.572894468Z,13903,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:30.560921608Z,13807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:20.563377485Z,12917,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:10.747205672Z,13615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.671964268Z,13698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:50.554743246Z,13744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:40.554324821Z,13712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:30.553948035Z,13715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:10.562746592Z,13758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:40.56242324Z,13716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:30.548769617Z,13614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.545291448Z,13230,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:30.545976325Z,13685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.570720532Z,12821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:50.550868139Z,12794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:20.558930979Z,12479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:50.561930165Z,12530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:20.545071434Z,12519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:50.551296606Z,12444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:20.545138533Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:00.572714937Z,12631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:50.76231563Z,12678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:20.55682629Z,12586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:50.752940386Z,12648,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:20.568644271Z,12816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:50.547308958Z,12479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:20.555990298Z,12542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:50.557065338Z,13138,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:00.544778532Z,12462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:30.559131999Z,12658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:00.546812749Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:50.694055567Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:20.576945617Z,12588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:40.548244435Z,12473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:30.744978499Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:00.662363802Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:30.545600495Z,12637,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:30.555719343Z,12810,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:50.558387003Z,12553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:20.548009183Z,12704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:50.563241486Z,12618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:20.564461723Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:40.850366721Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:10.857884324Z,12626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:40.545693494Z,12500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:10.556447372Z,12513,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:00.658376716Z,12389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:30.555225405Z,12692,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:20.546791328Z,12558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:50.54883188Z,12357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:20.547042682Z,12457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:50.551140377Z,12768,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:20.563255936Z,12295,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:50.55854716Z,12380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:20.548606314Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:00.646152149Z,12541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:30.545753707Z,12473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:40.546193104Z,12674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:50.559430707Z,12611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:50.649446365Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:40.412232772Z,14753,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:50.413027553Z,14575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:10.410006348Z,13938,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:50.413564016Z,14821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:20.617084754Z,14895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:10.416075298Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:00.420448203Z,14608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:20.206254131Z,15527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:50.717112879Z,14933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:30.410848474Z,14102,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:00.407905342Z,14601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:00.413234629Z,15267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:40.415936724Z,14782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:40.413792129Z,14572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:00.311181217Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:50.417424216Z,15218,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:40.213160497Z,15456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:10.315448839Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:00.411906153Z,14076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:10.419449995Z,13824,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:40.211478758Z,15497,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:50.316045781Z,14755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:20.41312867Z,13937,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:40.414333016Z,15646,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:20.418199341Z,15474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:00.409641475Z,14193,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:40.516907295Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:10.419936013Z,14111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:20.430144207Z,14727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:20.420551035Z,13994,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:10.51498539Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:50.418130763Z,15546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:34.300411528Z,5911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:40.410605106Z,14092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:00.412755083Z,14519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:50.41428502Z,14035,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:50.416912521Z,15487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:50.416910557Z,14668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:20.414442309Z,13969,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:40.410299388Z,13893,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:00.314833051Z,15610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:30.514795069Z,14704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:20.515134774Z,14215,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:50.411358323Z,14859,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:00.423005964Z,14992,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:30.411426538Z,15650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:00.41656236Z,14484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:30.314877178Z,13856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:30.620004561Z,14523,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:40.419744299Z,14913,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:10.317608033Z,14542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:50.419930293Z,14027,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:10.409791992Z,14921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:30.513533896Z,14469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:50.314137043Z,14835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:30.514909319Z,14614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:10.320115615Z,14889,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:50.518696477Z,13882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:30.426019372Z,14508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:50.323452525Z,14618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:30.421055483Z,15190,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:50.419868894Z,14891,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:30.618639969Z,14709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:40.412924492Z,14059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:10.414694841Z,15466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:10.516936219Z,14757,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:50.320834239Z,14037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:30.522009834Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:00.415192575Z,14781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:40.419135983Z,14719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:20.422832477Z,14717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.214088352Z,15323,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:10.418413338Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:50.512552059Z,14111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:20.408864092Z,14946,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:10.414997144Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:30.417411617Z,15469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:40.414440927Z,15698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.619708324Z,14858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:02.152505206Z,6356,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:11.708749572Z,4995,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:31.650152553Z,5119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:51.649926125Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:41.7489258Z,5746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:01.650549388Z,5461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:41.649082821Z,6051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:51.746071073Z,6849,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:01.647129941Z,5723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:21.649660907Z,5226,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:21.746898508Z,4866,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:41.649607286Z,5602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.647876012Z,5617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:21.649304867Z,5446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:21.651333833Z,5151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:51.64970308Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:41.648641669Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:11.649272286Z,5876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:41.648683865Z,6306,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:31.645794492Z,5592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:21.645961475Z,4884,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:41.653265748Z,6696,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:11.650168859Z,5134,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:31.649401597Z,5437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:01.64981441Z,5237,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:41.650580117Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:31.648847727Z,5459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:41.754254693Z,5885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:31.758786871Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:01.647442593Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:21.651935433Z,4629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:41.653071654Z,5315,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:11.649233998Z,6059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:11.655014951Z,5623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:31.65386799Z,5987,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:51.646501623Z,4923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:01.64849604Z,5276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:21.650511495Z,5452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:51.645876849Z,5723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:11.650300698Z,5636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:41.849716599Z,5088,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:21.64597586Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:01.752593586Z,5426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:01.6505834Z,6040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:21.648790757Z,5296,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:31.651724916Z,5575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:01.746623584Z,5595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:11.647859296Z,5387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:21.648607092Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:31.65320355Z,6210,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:51.65207391Z,5277,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:50.222958941Z,14631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:30.431102939Z,14034,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:10.753560907Z,14923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:40.430685153Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:20.420586366Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:45.810377102Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:40.439412813Z,14778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:00.52627489Z,15426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:10.528203201Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:30.530795095Z,14722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:40.232715031Z,14761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:00.432043632Z,15449,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:20.427567228Z,14821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:20.438904049Z,15477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:40.331706058Z,15417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:40.422808766Z,14896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:20.331031709Z,14642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:40.425619044Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:20.226594513Z,14750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:30.629588181Z,15233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:50.629343746Z,14553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:00.230376905Z,15367,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:00.322068791Z,14641,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:40.420256534Z,13930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:50.231721888Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:20.327214339Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.538470937Z,14547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:10.225698991Z,14618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:50.322293436Z,14893,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:10.530365758Z,15418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:40.429963539Z,15493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:40.434167269Z,13857,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:10.431307056Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:40.438921897Z,14872,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:10.429314822Z,14003,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:40.529148615Z,15405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:50.462128121Z,14104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:00.2334062Z,14058,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:30.424125829Z,15392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:40.429014254Z,15573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:10.424045058Z,14614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:20.324463034Z,15598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:50.532291707Z,14659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:10.537731283Z,14854,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:10.429337238Z,15409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:50.429941487Z,15410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:30.328060031Z,14604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:10.426803324Z,14738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:50.326843791Z,14808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:20.327342377Z,14885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.428690358Z,14949,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:30.326523775Z,15027,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.435687947Z,14493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:10.429769611Z,13991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:50.42568806Z,14770,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:30.430575937Z,14718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:40.929774643Z,14855,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:50.528064975Z,14740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:00.424314436Z,14869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:30.422373272Z,15410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:50.42971114Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.842894246Z,14700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:10.429771264Z,15352,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:30.4412266Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:50.428439195Z,14526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:00.275833105Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:00.384838012Z,14549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:20.396150401Z,15584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:40.482683296Z,14957,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:30.480184057Z,15276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:30.384716226Z,14892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:50.383739075Z,15595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:10.179727475Z,13906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:20.478479514Z,13959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:40.488264013Z,14557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:10.916010294Z,14065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:50.479780025Z,15471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:30.579073042Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:20.982643804Z,14576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:50.183952058Z,14492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:30.385537053Z,13891,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:50.38258458Z,14882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:40.383036171Z,14221,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:30.526049765Z,14608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:30.380748951Z,13977,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:50.881358024Z,14764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:30.280876176Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:40.380487257Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:50.480788071Z,14596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:20.179087141Z,14910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:10.486043393Z,15642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:20.175294181Z,14936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:40.386889798Z,14969,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:50.185882024Z,15349,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:50.483002092Z,14225,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:20.17978108Z,14656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:10.494789835Z,14876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:40.38173048Z,15594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:10.275750364Z,14882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:20.384686432Z,14538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:40.383311845Z,13923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:54.364147115Z,2132,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:10.380596902Z,14808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:30.693541936Z,15289,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:30.384700059Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:30.58500592Z,14692,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:00.479177767Z,13754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:50.493328359Z,15615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:10.388946575Z,14752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:20.387532958Z,13855,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:50.58629896Z,14689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:00.425476186Z,14658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:10.384629668Z,15562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:40.177675235Z,15371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:20.894759955Z,14767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:50.492854297Z,14846,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:00.283560565Z,14652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:50.488513437Z,15514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:50.487675399Z,15414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:30.484727198Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:10.481354396Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:50.4784802Z,14929,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:30.38682682Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:50.182754874Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:30.388144663Z,14648,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:10.180563456Z,14911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:50.380706298Z,14728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:30.488483622Z,14909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:40.385864794Z,14791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:20.381556041Z,14782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:50.400377554Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:20.392201105Z,15527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:50.177322971Z,13902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:00.491500055Z,14624,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:40.282875231Z,15582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:12.267770342Z,5694,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:30.173756088Z,14863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:40.50083035Z,15150,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:30.38237422Z,15440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:50.383329245Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:40.380430564Z,14818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:30.477072416Z,14000,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:10.261128948Z,15423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:40.468068186Z,15339,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:20.367228559Z,14469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:10.466757782Z,14927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:30.182434628Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:20.268422767Z,14021,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:30.469426649Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:10.458753196Z,15402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:30.459361211Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:50.458450121Z,14755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:40.366884152Z,15426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:20.466807157Z,13878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:50.369509402Z,14776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:50.373249036Z,13835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:06.148578162Z,11574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:35.648252597Z,5864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:10.357500275Z,14777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:20.362218876Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:50.466850309Z,15382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:20.472658581Z,14807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:00.46245821Z,13910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:50.573511072Z,15445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:50.369221531Z,14735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.467632057Z,15226,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:10.160201517Z,14708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:00.462408322Z,14603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:50.464063321Z,14882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:30.457770832Z,14820,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:00.464296238Z,14795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:30.569762184Z,14868,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.369419572Z,14579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:40.360757507Z,14685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:24.449787143Z,11580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:00.476223133Z,13928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:00.460599877Z,13892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:50.577349239Z,14549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:10.475967163Z,14669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:30.373773623Z,13834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:00.472114301Z,14833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:00.378295746Z,14896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:10.471716369Z,15864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:40.47268279Z,15381,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:20.464982863Z,14721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:50.570200476Z,14585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:20.370632275Z,15689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:50.366173014Z,14872,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:00.360603872Z,14550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:30.472837662Z,14727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:20.563531793Z,14809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:40.369222473Z,15551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:40.473452033Z,15384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:20.569019325Z,14929,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:00.465306998Z,14711,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:40.472040494Z,15661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:10.559261613Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:40.475286341Z,14588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:10.467600975Z,14727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:00.357735625Z,15503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:30.370118011Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:00.262407391Z,15602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:50.462939688Z,14782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:30.374744487Z,13900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:10.371144442Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:00.359377475Z,14662,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:10.363005161Z,14541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:40.473094932Z,14846,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:50.463609922Z,13918,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:00.162331576Z,14818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:20.464036216Z,14187,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:30.377316401Z,14805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:50.461574573Z,14911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:10.474653023Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:30.368966246Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:50.406027615Z,14682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:10.362892726Z,14084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:50.362837531Z,14018,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:10.551642771Z,13085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:10.442263362Z,12741,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:31.050936178Z,13159,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:20.528082573Z,13065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:10.541354136Z,12773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:00.547903891Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:50.543925931Z,12997,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:40.546413536Z,13295,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:30.541309383Z,13145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:20.525808701Z,13095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:10.939458953Z,13242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:00.529333755Z,12712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:30.544308406Z,13723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:50.545420758Z,13146,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:20.546450785Z,13625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:50.530496513Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:10.541043741Z,12530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:40.727062851Z,12727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:40.5306984Z,12918,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:30.549229084Z,12500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:20.54816049Z,13269,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:10.546947927Z,12544,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:40.545485023Z,12563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:10.540901532Z,12673,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:40.650134607Z,12873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:10.531951932Z,12761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:40.529295549Z,12778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:10.647353873Z,12699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:40.636809417Z,12510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:10.530996182Z,12499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:40.546156658Z,12729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:20.547909049Z,12772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:50.545064768Z,12762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:10.527761052Z,12669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:40.529821966Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:30.557535389Z,12528,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:20.546801442Z,12627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:50.545472308Z,12649,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:20.547627336Z,12522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:50.550817964Z,12845,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:20.538658177Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:50.649318837Z,12798,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:40.54833796Z,12549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:10.542399234Z,12973,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:40.84455776Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:10.546388847Z,12752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:40.543139446Z,12405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:30.542913566Z,12753,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:00.539962616Z,12611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:30.545326872Z,12430,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:00.535097737Z,12521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:50.527803172Z,12815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:20.526140879Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:10.544656056Z,12689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:40.642124748Z,12627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:10.541823769Z,12438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:40.543657185Z,12760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:10.551186878Z,12526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:40.546284119Z,12545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:40.542169264Z,12398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:50.531666375Z,12306,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.534749132Z,12560,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:10.847026456Z,12577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:20.541228932Z,12423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:40.530200802Z,12498,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:20.567493176Z,12848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:40.64406237Z,12607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:20.398755301Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:00.808791579Z,14005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:30.290468423Z,15427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:10.197176503Z,14822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:00.39522938Z,14812,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:50.197307986Z,15435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:30.598498477Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:50.490751965Z,14087,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:50.181038009Z,14706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:00.40453464Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:10.499975572Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:30.186993782Z,14761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:20.401102537Z,14861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:30.191756968Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:40.598314132Z,14090,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:00.391616604Z,14562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:10.500350369Z,14902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:00.396394885Z,13844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:00.393303563Z,14085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:50.197171689Z,14692,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:20.187162803Z,14530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:10.196157461Z,14571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.389534899Z,14807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:40.493325437Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:30.493742802Z,14659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:10.501228994Z,14762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:10.493545661Z,14671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:20.595876679Z,15566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:50.495581783Z,13795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:20.591114991Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:30.535692612Z,14787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:30.399834501Z,15408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:50.392222694Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:00.399196165Z,15574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.513292077Z,14688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:00.294310149Z,14705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:50.402996111Z,14936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:20.405389491Z,14947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:40.497225033Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:40.392047463Z,14962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:10.406447858Z,14507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:20.196513251Z,14103,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:50.391337271Z,14646,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:00.399974164Z,15527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:30.396656969Z,14716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:40.501226493Z,15287,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:10.394628113Z,14033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:20.417822459Z,15577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:10.497819527Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:10.403717402Z,14023,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:50.600211744Z,14017,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:20.489904486Z,14005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:50.496814983Z,14276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:30.295270122Z,13944,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:10.505518345Z,15386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:50.495405421Z,14718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:30.491927838Z,13992,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:00.392107567Z,14923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:40.395512136Z,14089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:10.29552631Z,13920,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:00.394085722Z,14921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:10.497430612Z,13862,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:20.599541747Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:00.391519368Z,15437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:30.400949967Z,15583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:40.502270402Z,14971,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:30.398737221Z,14722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:40.203599689Z,14787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:50.504534683Z,15031,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:40.395215405Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:00.499165862Z,14126,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:20.496203726Z,13848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:32.146282652Z,5563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:32.14578999Z,5282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:11.642776674Z,5791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:31.642858113Z,5249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:11.646552221Z,5905,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:21.64378672Z,4472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:41.646253564Z,6077,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:01.645152527Z,5488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:11.64435832Z,6104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:41.646054776Z,4987,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:01.744897211Z,5480,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:21.650647905Z,5499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:11.645243015Z,5210,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:41.645803855Z,5531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:01.648842057Z,5617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:21.643120546Z,5585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:41.649757914Z,5611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:21.643398175Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:11.645857456Z,4804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:41.64608879Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:11.643872904Z,4974,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:31.746742869Z,5380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:01.646813444Z,5057,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.644755175Z,5475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:21.742243059Z,5263,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:01.646326079Z,5219,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:21.646186653Z,5577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:01.647978536Z,5472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:21.645209287Z,5487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:21.645192153Z,5510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:41.646009246Z,4920,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:51.655519528Z,5933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.647153595Z,5897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:11.646780972Z,5958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:31.65712987Z,5675,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:41.645381944Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:01.647099954Z,5456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:21.645022636Z,5742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:21.647313198Z,6101,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:41.644375904Z,5266,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:01.644811377Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:31.645957525Z,5377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:51.644239304Z,6072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:31.645668666Z,5233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:51.645458284Z,5537,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:11.644204213Z,5425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:01.647048985Z,6076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:21.644875606Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:41.643758572Z,5431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.646828621Z,5477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:31.656343602Z,4784,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:41.646211225Z,5819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:21.644309824Z,5040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:41.645803059Z,5241,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:51.643934304Z,5954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:21.643279535Z,5030,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.649558673Z,5254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:21.643517172Z,5834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:11.645798579Z,4728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:11.643741717Z,4774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:11.644470363Z,4985,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:31.745208357Z,5436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:51.648014803Z,5085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:21.748946376Z,5097,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:41.649586169Z,5561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.646294507Z,5420,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:41.650920063Z,4814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:51.64932242Z,5064,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:30.416045986Z,13380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:40.408728058Z,13457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:30.419103146Z,12914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:50.410568246Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:40.419560614Z,12910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:00.408980966Z,13111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:50.719417963Z,13809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:40.610487769Z,13703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:30.597910644Z,13594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:20.507376307Z,13722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:10.511889353Z,13664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:00.516961843Z,13753,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:50.623550159Z,13254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:10.517788073Z,13694,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:00.516428Z,13744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:30.51381454Z,13734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:00.520066026Z,13688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:30.516123057Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:20.921573502Z,12728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:50.505189382Z,12554,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:20.511375826Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:50.500170395Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:20.521602884Z,12802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:50.821038246Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:20.519908932Z,12431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:50.514356933Z,12515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:20.505293927Z,12647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:50.625417417Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:20.613598274Z,12643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:50.701374738Z,12796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:20.510781061Z,12695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:30.499463562Z,12582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:00.498229193Z,12750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:30.514701206Z,12445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:20.600639751Z,12669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:50.502172914Z,12813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:20.610621588Z,12366,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:10.511700974Z,12763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:00.506733994Z,12726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:30.501866162Z,12584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:00.517959588Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:30.712267703Z,12438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:00.52176465Z,12584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:30.52613755Z,12529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:20.705770898Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:50.514090778Z,12431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:20.520543725Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:50.525580075Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:20.51541136Z,12808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:10.519452008Z,12407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:40.599790464Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:10.509968451Z,12626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:40.503930128Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:30.515461766Z,12651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:00.520608574Z,12700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:50.717362196Z,12421,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:20.501255255Z,12424,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:50.522319169Z,12696,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:20.506199957Z,12507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:50.511791087Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:20.503388515Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:10.501502306Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:40.621599876Z,12462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:50.502861547Z,12695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:00.517190834Z,12613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:10.516478941Z,12544,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:40.512389763Z,12300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.616411172Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:30.524190347Z,12493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:50.505577785Z,12682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.506719966Z,12517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:40.480613648Z,13444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:30.588767561Z,12833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:40.469413507Z,12678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:50.488142949Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:10.48822636Z,13221,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:10.57050592Z,12940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:00.585029444Z,13794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:50.67101046Z,13775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:40.66969516Z,13735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:30.58572916Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:20.572495207Z,13713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:10.57391189Z,13776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:00.580381991Z,13699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:40.880081001Z,13653,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:00.672537222Z,13726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:30.785932988Z,13671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:00.574012367Z,12954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:20.58795363Z,12747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:50.568980376Z,12862,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:50.771129675Z,12779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:20.569665328Z,12861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:50.770413212Z,12517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:20.486427811Z,12645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:50.581499207Z,12598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:20.57846613Z,12497,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:50.574445991Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:20.571799917Z,12481,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:50.590738007Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:30.477715668Z,12749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.072418515Z,12594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:20.570030703Z,12830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:50.577688395Z,12682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:40.573098591Z,12594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:30.672273814Z,12543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:00.586275958Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:30.573782762Z,12545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:00.584417486Z,12421,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:30.569177936Z,12580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:00.494634794Z,12773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:50.583134138Z,12841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:20.506111481Z,12751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:50.480443614Z,12871,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:20.587939245Z,12566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:50.479972111Z,12499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:40.47498209Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:10.568942787Z,12514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:40.485913891Z,12409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:10.488612211Z,12526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:00.587242636Z,12538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:30.47913516Z,12514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:20.790601466Z,12633,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:50.487988756Z,12502,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:20.471078644Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:50.685474384Z,12377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:20.49075882Z,12428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:50.8008023Z,12511,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:30.481194215Z,13297,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:50.480117559Z,12429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:10.481900877Z,12483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:30.488441812Z,12724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:50.484678749Z,12645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:10.486842094Z,12447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:50.588027021Z,12648,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:10.480906247Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:30.484571223Z,12461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:50.584236313Z,12806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:20.48174506Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:50.485392007Z,12480,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:30.489542317Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:50.483820179Z,12876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:00.771617701Z,12665,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:50.484045787Z,12673,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:30.68965595Z,12376,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.487623157Z,12510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:10.547997965Z,13031,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:50.647407558Z,13308,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:10.449666102Z,12607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:20.451093648Z,12874,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:20.73948129Z,13234,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:10.648140091Z,12769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.530274038Z,12880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:50.645122768Z,13172,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:40.664409506Z,12979,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:30.549757835Z,12740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:20.531774199Z,12934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:10.541388074Z,13033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.54935512Z,13499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:50.759997402Z,13091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.561718995Z,13767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:20.554870348Z,13526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:50.650428014Z,13755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:20.534968317Z,12878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:40.554028353Z,12801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:10.544235569Z,12600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:30.556292669Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:20.631445076Z,12777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:10.541763888Z,12876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.532950739Z,12667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:40.549928218Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:10.547165751Z,12878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:40.547016135Z,12527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:10.661139975Z,12742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:40.540469766Z,12369,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:10.549638887Z,12396,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:40.547941505Z,12566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:10.54108036Z,12702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:40.566439459Z,12754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:10.549401474Z,12841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.653654157Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:20.553674765Z,12834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:50.547075416Z,12641,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:20.643775347Z,12688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:40.531837286Z,12475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:10.531284115Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:00.550553375Z,12413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:50.530612321Z,12650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:20.546588558Z,12530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:50.530312537Z,12567,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:20.534813494Z,12921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:00.549729912Z,12776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:50.5346712Z,12546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:20.55566519Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:10.553159333Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:40.588731782Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:10.553907961Z,12391,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:40.528964031Z,12452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:10.565971028Z,12387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:00.538352617Z,12326,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:30.630363595Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:00.544918263Z,12414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:30.547943131Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:20.574479782Z,12373,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:50.546401326Z,12571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:40.628937558Z,12801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:10.530202131Z,12256,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:40.528837912Z,12470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:10.54546175Z,12771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:40.530102264Z,12590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:10.528434759Z,12814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.533648051Z,12600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:20.557005308Z,12608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:30.542944435Z,12659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:10.528105527Z,12167,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:20.528384714Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:30.553269333Z,12476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:50.637604269Z,12365,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:31.050943628Z,12658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:10.552201867Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:50.552022267Z,12608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:30.545549635Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:10.632748933Z,12678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:40.534815906Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:50.534121348Z,12544,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:10.630118573Z,12477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:30.41058236Z,14821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:10.406557463Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:30.318102141Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:40.410566269Z,14765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.410529361Z,13856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:10.416068228Z,14048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:00.414291175Z,14657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:30.412754965Z,14777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:20.51537053Z,14861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:10.415381783Z,15570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:30.516053344Z,14029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:30.41216645Z,14019,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:30.409834227Z,14873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:50.419963579Z,14823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:40.316890266Z,14739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:00.425430235Z,14681,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:50.532706434Z,14723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:10.612827102Z,14627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:40.310603129Z,13973,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:30.414752006Z,14091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:50.207173332Z,15287,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:40.525920951Z,14943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:30.412068586Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:50.409752037Z,14226,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:00.315172422Z,13926,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:30.518514384Z,14683,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:50.413154175Z,14719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:40.411639302Z,14809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:50.425165166Z,14633,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:50.316222517Z,14081,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:40.41241481Z,15501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:20.510498044Z,14073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:20.41077143Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:20.518769819Z,15463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:10.414413635Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:30.517101075Z,15594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:10.415907569Z,14666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:30.509823471Z,15197,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:20.435202919Z,15348,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:50.317712971Z,15475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:30.419756989Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:20.412066273Z,14010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:50.407572974Z,14519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:20.421312079Z,14764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:50.210339956Z,13931,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:20.411852082Z,14884,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:50.412055707Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:00.410466202Z,14861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:30.511217102Z,14730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:50.616620805Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:30.512958021Z,14815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:40.410044023Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:50.513961818Z,13833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:30.413714172Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:10.50956254Z,14040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:10.417834355Z,15492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:50.413191781Z,14735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:50.420761367Z,14582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:10.416206389Z,15292,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:52.195862189Z,5914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:50.408635251Z,13796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:20.415244501Z,14529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:00.447801794Z,13909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:10.516323011Z,14084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:20.520846149Z,14698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:10.407141796Z,15588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:20.430459575Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:30.407041306Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:50.421481129Z,15460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:10.422336373Z,15323,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,43,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:38.73971619Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,500\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:22.146279748Z,5386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:22.151471718Z,5419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:22.153224112Z,5902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:22.157787105Z,5630,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:22.15007136Z,5264,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:22.150267031Z,5730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:42.149811483Z,5168,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:21.75042711Z,5724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:51.657907241Z,4960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:31.64994704Z,4792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:51.649814367Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:31.646391025Z,5452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:31.65123739Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:51.652746112Z,5913,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:41.648834719Z,4900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:41.649933423Z,5606,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:31.752913229Z,5545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:11.752162462Z,5786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:31.657026454Z,5593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:21.648586234Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:51.647969653Z,4828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:21.647728223Z,5084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:51.650490404Z,5657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:11.75810744Z,5454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:41.750599635Z,5613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:41.750321537Z,4965,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:21.649182047Z,5764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:41.651403549Z,5914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:51.687255118Z,6011,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:31.652650438Z,4768,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:51.653156549Z,5281,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:31.647977633Z,4980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:11.751770036Z,5252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:41.648155682Z,5530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:51.651863642Z,5446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:41.652987546Z,5844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.749968073Z,5645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:11.652748062Z,5453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:11.649081836Z,5530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:51.649305518Z,4773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:11.653935812Z,5687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:01.651344536Z,5427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:51.64892955Z,5443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:51.650462218Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:41.651431032Z,6050,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:21.649658495Z,6181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:01.651680386Z,5556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:31.75291458Z,4899,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:11.74914845Z,5924,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:11.651022007Z,5912,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:21.749818873Z,5227,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:21.649656069Z,5883,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:11.750674006Z,6037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:41.65063636Z,4654,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:51.64912494Z,6246,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:11.649542366Z,4643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:31.649110447Z,6009,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.760356971Z,4452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:51.681914369Z,5252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:31.650598369Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:20.372789116Z,13075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:50.468447423Z,12839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:00.476375512Z,12563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:20.370363416Z,13002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:30.665880148Z,12398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:00.577079901Z,13132,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:50.552352631Z,12824,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:40.558245433Z,12812,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:50.76062094Z,13733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:20.552650855Z,13858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:10.551364342Z,13734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:40.55321911Z,13801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:10.662488511Z,13695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:40.566964203Z,12921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:30.558074283Z,12786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.762104581Z,12529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:00.712371156Z,12940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:30.651361917Z,12815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:30.571587197Z,12409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:00.666732938Z,12574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:30.570306228Z,12781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:00.562420817Z,12537,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:30.574764024Z,12687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:00.558146842Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:30.776992224Z,12669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:40.564801921Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:10.564966212Z,12661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:40.549944769Z,12459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:30.569109067Z,12905,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:00.565622119Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:50.567083078Z,12873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:10.649327692Z,12748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:40.561401004Z,12672,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:10.550406662Z,12557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:40.566822284Z,12339,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:10.549447088Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:00.55097345Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:30.767101707Z,12683,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:00.568913295Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:30.548903273Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:00.565379542Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:50.592647775Z,12444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:20.552878012Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:50.550600305Z,12515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:20.554218836Z,12561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:40.568583225Z,12354,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:00.668009266Z,12439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:30.552754666Z,12486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:00.581724937Z,12712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:30.56320607Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:00.567529788Z,12623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:30.567121391Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:50.571293509Z,12469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:20.552148362Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:30.864484679Z,12670,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:40.564819902Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:50.55828083Z,12731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:20.56808664Z,12628,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:00.572359625Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:50.562025136Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:30.581412021Z,12722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:40.649498775Z,12735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.568727137Z,12447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:00.879036783Z,12763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:00.464241913Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:50.453929422Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:40.56350665Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:00.464069692Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n\"\n\noutData = \"\n#group,false,false,true,true,false,false\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,long,dateTime:RFC3339\n#default,writes_b,,,,,\n,result,table,_start,_stop,writes_b,_time\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,5362208,2019-08-01T12:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,5369845,2019-08-01T13:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,5343520,2019-08-01T14:00:00Z\n\"\n\n_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")\n\ntest get_writes_usage = () =>\n\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: _f})", + Source: "package usage_test\n\nimport \"testing\"\nimport \"strings\"\n\n// This dataset has been generated with this query:\n// from(bucket: \"system_usage\")\n// |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n// |> filter(fn: (r) =>\n// (r.org_id == \"03d01b74c8e09000\" or r.org_id == \"043941ef08a63000\" or r.org_id == \"043502a6825c5000\")\n// and r._measurement == \"http_request\"\n// and r._field == \"req_bytes\"\n// )\ninData = \"\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:00.464241913Z,14474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:50.453929422Z,14290,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:40.56350665Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:00.464069692Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:10.367132499Z,14927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:50.360119605Z,14562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:15.951161358Z,11455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:20.469506362Z,14627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:10.360404568Z,14907,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:20.560384822Z,15514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:20.464560505Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:10.457731023Z,15452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:30.457021241Z,14766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:20.458783682Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:30.366746231Z,14073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:10.363501959Z,14907,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:00.456525739Z,13938,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:30.35611673Z,14777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:20.357182535Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:10.363331587Z,14610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:00.462057729Z,14803,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:30.466362995Z,15528,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:20.361058325Z,15588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:40.258913212Z,15308,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:00.575850286Z,15537,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:00.562744782Z,15605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:00.36036289Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:10.358946248Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:40.563057906Z,14762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:10.360288773Z,14111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:20.459230389Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:04.345515347Z,5910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:40.356787096Z,15432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:30.359898046Z,14745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:30.3605266Z,14806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:30.477846091Z,14037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:00.4600047Z,14927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:20.459700452Z,15441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:40.559702103Z,13983,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:30.46971589Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:30.254904566Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:40.461700307Z,14936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:10.467223118Z,14879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:20.563593003Z,14778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:50.361250889Z,14060,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:00.464850811Z,14948,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:30.356260268Z,14842,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:30.467199209Z,14108,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:51.84431782Z,5702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:10.352779509Z,13858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:30.46216521Z,14944,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:00.561177076Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:40.457364022Z,14748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:10.427768739Z,14804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:20.356693998Z,15570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:00.466577901Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:20.468223388Z,14962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.368426804Z,15417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:20.368497534Z,15461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:20.365925176Z,14660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:00.466498884Z,14800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:50.364091182Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:10.558412543Z,14451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:42.244831236Z,5782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:50.558797843Z,13947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:20.589233827Z,15591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:00.358310428Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:40.460825577Z,14805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:50.462868786Z,14130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:20.36371087Z,14770,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:10.660559909Z,14790,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:20.670926429Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:40.366538899Z,15441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:10.366436685Z,14568,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:30.364095207Z,14723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:50.467009207Z,14051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:02.126450806Z,4643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:42.125177171Z,4999,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:52.14127004Z,5328,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:42.124606769Z,6042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:52.124472886Z,5141,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:42.125707339Z,5267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:52.124074193Z,5441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:42.123966078Z,5067,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:52.12205003Z,5751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:42.125865596Z,5394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:52.12634384Z,5234,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:42.224191058Z,5044,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:52.124294998Z,6054,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:22.122983075Z,5606,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:12.133571901Z,16027,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:21.627292638Z,5592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:21.623553049Z,5500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:41.82364639Z,4858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:11.638698993Z,6177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:21.62479733Z,5385,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:01.629510337Z,5599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:31.727350143Z,5874,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:41.624753739Z,5664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:31.62622381Z,4886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:51.728505838Z,5467,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:11.722754748Z,4806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:41.625143436Z,5601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:31.623584594Z,5576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:51.623773218Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:01.727509346Z,5898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:01.624004611Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:21.624935193Z,5604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:21.72874104Z,5576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:51.625538179Z,5625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:11.627190628Z,5403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:11.623566353Z,5473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:01.624234681Z,5627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:51.622791364Z,5181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:41.634371527Z,5286,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:21.622849281Z,5597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:31.625834621Z,5112,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:51.627758054Z,4773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:01.734350727Z,5611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:01.626417166Z,5509,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:21.623212899Z,5458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:51.625447464Z,5714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:51.626701283Z,4995,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:11.628696763Z,5607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:21.621987868Z,5170,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:11.627654024Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:51.725691732Z,4820,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:31.621708855Z,6065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:11.62535822Z,5386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:11.622759095Z,5188,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:51.624656774Z,6110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:21.62310567Z,4658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:31.624101663Z,5436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:11.725682329Z,5101,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:41.622912523Z,4927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:41.624255656Z,5698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:21.629191172Z,5565,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:51.626075278Z,5661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:01.627194484Z,6252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:21.622745246Z,4638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n,,1,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:41.62612763Z,5801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:00.482034991Z,12860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:20.48027343Z,12813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:30.963257231Z,12954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:20.666041554Z,13199,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:10.661775499Z,13089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:50.562888598Z,13540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:20.559973344Z,13241,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:10.566336202Z,13782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:40.773172502Z,13722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:10.567777549Z,13677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:40.561179851Z,12514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:30.563255716Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:00.86651441Z,12749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:30.573601511Z,12735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:00.56956423Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:30.576514152Z,12789,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:00.575629933Z,12390,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:30.56076143Z,12712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:00.563307239Z,12834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:30.575917302Z,12638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:00.579914728Z,12715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:30.576742841Z,12539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:00.476773604Z,12800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:30.565466639Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:10.571137586Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:40.780297143Z,12708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:10.581944751Z,12519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:40.567350041Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:30.578622579Z,12609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.866057942Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:30.564611275Z,12567,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:20.464492495Z,12739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:10.573691733Z,12822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:40.761349953Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:10.668041288Z,12806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:40.560201274Z,12477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:10.566205836Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:30.673175614Z,12432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:00.571422Z,12520,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:30.561025019Z,12968,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:00.578510538Z,12718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:20.5620776Z,12507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:50.565196268Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:20.55920534Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:50.560432368Z,12778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:40.572016294Z,12738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:10.474705441Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:00.573910345Z,12601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:30.573503732Z,12466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:00.566681293Z,12496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:30.474719745Z,12414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:00.473434763Z,12517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:30.479693162Z,12388,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:10.563201762Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:10.580753216Z,12432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:20.48067007Z,12333,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:30.669757308Z,12451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:40.475230638Z,12384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:40.464224936Z,12483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:10.476077449Z,12540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:10.481446445Z,12637,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:50.475296451Z,12403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:10.485532595Z,12399,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.471078662Z,12390,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n,,2,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:30.483841172Z,12655,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:10.876893672Z,14822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:50.568451268Z,14560,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:30.163999102Z,14210,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:50.378776134Z,14947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:40.676472286Z,14892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:00.367481816Z,14635,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:30.372071665Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:40.472119032Z,14607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:50.381232918Z,14747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:50.481445177Z,15592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.271118587Z,15425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:40.385715412Z,14584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:00.472896698Z,13909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:50.377995338Z,15636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:20.474753675Z,14729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:50.379762772Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:10.26789702Z,14185,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:40.381812568Z,14788,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:10.382503027Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:50.579885528Z,15516,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:10.278260478Z,13782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:00.478762675Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:00.37924961Z,15414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:30.368632527Z,14068,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:50.478180624Z,14145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:50.475487595Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.482812488Z,13988,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:30.276996753Z,14863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:30.47176165Z,14048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.268438682Z,13895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:10.473926563Z,14587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:20.384378949Z,14657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:50.476472688Z,14155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:44.264421343Z,9490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:50.380293211Z,14172,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:10.483741411Z,15418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:10.573434973Z,14952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:40.377116575Z,14745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:10.579867799Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:40.387322351Z,14974,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:40.56962201Z,15558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:20.478726019Z,14978,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:40.479834602Z,14819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:10.573424483Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:20.171358962Z,14744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:50.38193761Z,15313,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:30.408261572Z,14019,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:10.372903485Z,14679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:40.58217612Z,15398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:10.590748032Z,15534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:01.259793874Z,5703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:50.471280999Z,14898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:40.176699146Z,14022,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:00.376850993Z,14020,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:40.475381882Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:20.446286661Z,14089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.479420962Z,15341,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:30.484277298Z,14742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:50.373523519Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:40.181666041Z,14675,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:00.476252369Z,14794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:40.371125716Z,14892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:10.52429546Z,14634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:10.480671166Z,14163,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:50.472810081Z,14748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:30.476860095Z,13853,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:40.472775606Z,14776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:20.170255563Z,14606,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:20.468009573Z,14783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:30.474489351Z,13923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.481025459Z,15402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:10.472562316Z,14717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:20.678336638Z,14109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:40.174377069Z,14565,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:20.37627842Z,14824,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n,,3,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:00.578181281Z,14914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:42.178276625Z,4813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:52.179333377Z,5283,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:12.181090832Z,6037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:31.683676298Z,5898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:41.680275402Z,6041,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:31.682544054Z,5272,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:01.683969143Z,5251,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:21.779331814Z,5443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:41.682514986Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:01.891432368Z,4991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:31.685149269Z,5282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:31.680664444Z,5778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:01.686812432Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:21.678591565Z,5032,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:41.679214406Z,6285,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:01.685142928Z,5335,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:21.682441106Z,5322,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:41.784026692Z,5465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:31.681911776Z,5750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:31.679534362Z,5787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:31.681321869Z,5257,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:11.680039787Z,5314,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:31.781871395Z,5406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:01.68137078Z,5316,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:31.706547813Z,5394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:01.683573897Z,5663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:11.686309088Z,5340,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:51.679753269Z,5586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:41.681686348Z,5527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:01.680404239Z,6080,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:01.684263512Z,4895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:21.682458349Z,5600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:41.678446464Z,5595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:41.685846862Z,5465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:41.684247268Z,5465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:51.683853108Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:11.680357542Z,5930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:21.679879778Z,5818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:01.679933162Z,5661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:21.883119406Z,6246,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:21.679929081Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:41.681953479Z,4780,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:01.68083251Z,6071,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:01.681287822Z,5837,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:11.683043132Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:31.678394632Z,5065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:11.684359456Z,5758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:31.677592866Z,4885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:51.67891022Z,5075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:01.693539122Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:41.68286235Z,4684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:01.682494084Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:21.785746387Z,5198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:41.682082528Z,5456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:11.682252164Z,4756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:31.683452697Z,4962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:21.683774703Z,5424,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:31.683036478Z,5934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:21.678665378Z,6216,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:41.683998736Z,5349,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:41.677785087Z,6051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:21.682195063Z,5176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:11.683061377Z,5200,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:31.681920745Z,4961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:01.7808503Z,5402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:01.6827129Z,6038,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:01.710065064Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n,,4,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:11.78198496Z,4889,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:00.410455042Z,13129,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:20.612214521Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:10.613085447Z,12909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:00.412012517Z,12857,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:40.914707547Z,13910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:30.50092323Z,13942,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:20.506553723Z,13033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:50.615233296Z,13697,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:10.618206771Z,13760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:40.503077727Z,13899,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:10.51457693Z,13419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:30.715375611Z,13014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:00.517719573Z,12483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:30.519177566Z,12832,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:00.517384611Z,12805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:30.511380314Z,12638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:00.617114218Z,12584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:30.500922892Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:00.508501948Z,12639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:30.509737804Z,12388,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:00.607059826Z,12823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:30.521291591Z,12543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:00.705290993Z,12614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:40.597764824Z,12663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:10.503284353Z,12737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:00.51792435Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:30.507509192Z,12901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:00.501132732Z,12876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:50.50759347Z,12612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:40.714088938Z,12375,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:10.511887566Z,12540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:40.506502445Z,12875,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:11.008622285Z,12792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:40.513286578Z,12743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:10.521378198Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.503785548Z,12759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:30.513342757Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.909907875Z,12548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:30.513231391Z,12328,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.527190295Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:50.516466443Z,12542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:20.513378774Z,12335,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:50.508357695Z,12404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:20.515120687Z,12469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:10.509120857Z,12357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:40.500027459Z,12334,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:30.512229141Z,12601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:00.712079145Z,12681,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:30.509825917Z,12396,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:00.625122698Z,12377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:30.509535904Z,12677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:00.508691795Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:00.507487622Z,12652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:40.521530949Z,12631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:00.516523432Z,12733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:40.517913275Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:20.603547389Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:40.710414055Z,12453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:00.534639159Z,12442,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:00.508316108Z,12395,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n,,5,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:20.520859613Z,12764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:50.443402745Z,12699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:10.544811236Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:30.540874263Z,12781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:50.528309419Z,12652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:40.546001795Z,12809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:30.534984482Z,12796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:20.53261252Z,13260,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:10.737657887Z,13045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:00.636631524Z,12845,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:50.547113946Z,13072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:40.625187108Z,12755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:30.543801852Z,12967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:20.543233899Z,12909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:00.546515332Z,13604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:30.526877222Z,13249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:20.545107016Z,13678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:50.527783457Z,13698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:20.536967573Z,13557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:50.533826958Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:40.736686193Z,12721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:10.537431088Z,12861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:50.553339363Z,12466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:40.645912764Z,12555,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:30.526185433Z,12703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:20.530228207Z,12667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:10.526105824Z,12549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:40.543578828Z,12506,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:10.541304246Z,12457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:40.536106013Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:10.757796664Z,12535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:40.563519924Z,12525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:10.534920341Z,12454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:40.538745065Z,12674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:10.752833662Z,12650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:40.537375994Z,12522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:50.526875865Z,12707,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:20.538519817Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:50.536935244Z,12613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:40.541198284Z,12748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:10.540335519Z,12421,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:00.543317521Z,12595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:20.540809194Z,12610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:50.927759745Z,12664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:20.52544509Z,12949,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:50.539817367Z,12523,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:20.532525905Z,12815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:10.53989904Z,12811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:40.524260382Z,12433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:10.648323001Z,12554,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:40.541987021Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:10.528612818Z,12879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:00.738541474Z,12248,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:30.524956281Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:00.634572647Z,12461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:30.525189488Z,12634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:50.643221594Z,12531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:10.52775257Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:40.522021388Z,12485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:10.535540816Z,12809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:40.542379516Z,12700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:10.530433468Z,12405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:40.535445757Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:30.559339104Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:50.545064245Z,12416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:10.738914397Z,12797,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:30.535371599Z,12363,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:30.540510758Z,12567,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:00.536822123Z,12773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:10.523787506Z,12735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:20.525956841Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:10.531351288Z,12699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:20.633623461Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:20.634990337Z,12752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n,,6,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:40.52560734Z,12547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:20.424835734Z,15371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:50.533548068Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:10.427326401Z,14833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:40.429113694Z,15377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:00.533090725Z,14437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:20.425198848Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:20.330821456Z,15378,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:30.431941394Z,14695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:20.327394474Z,14059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:30.431439727Z,14796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:20.435993041Z,14640,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:10.432549191Z,15455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:30.435206653Z,14776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:40.536849632Z,15433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:25.617816663Z,5870,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:40.429647809Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:00.53136386Z,14054,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:30.429915826Z,15512,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:20.331375666Z,14284,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:10.429182327Z,15528,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:20.429048737Z,13972,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:30.233782744Z,14585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:10.426998395Z,13891,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:30.432549831Z,15557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:30.431249572Z,13952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:40.482915238Z,14040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:20.431627443Z,14913,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:50.432765235Z,15628,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:50.43572782Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:20.428244941Z,14670,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:10.32644781Z,14055,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:30.326716878Z,14742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:10.431382292Z,14082,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:20.524695097Z,14164,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:00.232235781Z,14035,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:10.528459395Z,14639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:10.437240355Z,14765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:10.327915246Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:20.231825436Z,15448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:50.449357044Z,14524,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:00.430178669Z,15432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:40.322775307Z,14795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:20.434335097Z,15463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:40.437895101Z,15609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:00.322489176Z,14672,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:40.445147249Z,14816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:10.327276557Z,14391,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:50.428739827Z,15444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:20.430944446Z,14705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:00.435198698Z,15243,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:40.429344614Z,14102,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:20.535992091Z,14276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:00.727174605Z,14689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:40.429048675Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:20.436918932Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:20.735690066Z,14167,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:02.223384997Z,5911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:10.438041058Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:50.432173007Z,15553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:30.438654476Z,14647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:50.426499206Z,14535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:30.438629896Z,14646,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:00.636648875Z,13821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:50.434698991Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n,,7,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:20.429994645Z,13933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:12.110678262Z,5025,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:12.111822738Z,5717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:12.214916217Z,5769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:12.114027127Z,5457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:12.111031267Z,5206,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:12.110558786Z,5373,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:32.111770843Z,6039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:22.112922677Z,4371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:11.614688985Z,5451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:01.610754751Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:21.624374618Z,5615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:51.609256251Z,5246,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:31.715567586Z,5503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:21.611093146Z,5639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:51.713900428Z,5253,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:41.614111659Z,5886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:01.613685104Z,5514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:51.613193963Z,5527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:41.683454119Z,5575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:01.714918211Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:21.611231809Z,5097,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:01.61192541Z,5917,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:51.616719958Z,5455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:11.615491798Z,5473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:41.612434493Z,5777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:31.611649119Z,5279,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:31.612436367Z,5492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:51.615233186Z,5233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:41.611639134Z,5437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:01.612363244Z,5477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:21.609168934Z,5686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:41.612186501Z,5205,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:11.612066361Z,5481,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:31.611268728Z,5329,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:21.61042168Z,4766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:41.712406737Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:01.70987596Z,5471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:21.714467837Z,5843,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:41.712365025Z,5209,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:41.711910395Z,5320,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:11.613177096Z,4823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:31.614896282Z,5507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:01.712251652Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:21.61266043Z,5482,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:21.612526963Z,5051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:51.615772732Z,5743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:11.614301624Z,5934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:21.612373229Z,5242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:41.613600546Z,4932,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:01.61205034Z,5441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:51.613431331Z,5866,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:01.611802696Z,4791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:41.613152104Z,5163,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:01.613044054Z,6188,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:01.614590546Z,5155,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:41.610393517Z,4759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:31.613951582Z,5114,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:51.610554724Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:51.613188776Z,5336,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:31.612558587Z,4925,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:41.71592966Z,5039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:11.613689792Z,5411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:11.711874727Z,4766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:51.616714632Z,5641,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n,,8,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:11.609911747Z,5090,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:02.118225994Z,5091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:02.115910383Z,5109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:02.115299933Z,5754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:02.114918067Z,5603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:02.118499962Z,5285,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:02.117676706Z,4962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:32.117203901Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:31.615690452Z,5553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:51.614751136Z,5028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:41.619474755Z,6024,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:21.61543338Z,5060,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:11.618012744Z,5909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:41.617886459Z,7003,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:41.617649806Z,4823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:01.619068372Z,5410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:11.617825176Z,5015,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:41.61683905Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:01.717067444Z,5492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:21.613511979Z,5505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:31.615739332Z,5591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:51.614707915Z,5453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:41.616494016Z,5629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:21.615323124Z,5545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:51.616948094Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:41.615597174Z,5967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:11.623406839Z,5320,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:41.616271397Z,5916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:11.716597416Z,4763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:41.716841596Z,5596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:11.617560987Z,4810,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:41.617038808Z,5094,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:31.617210464Z,4977,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:01.818001662Z,4876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:51.721787301Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:01.718508748Z,4900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:41.61585035Z,5104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:01.614727339Z,5478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:21.615255978Z,5747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:21.617864572Z,5419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:21.613341546Z,5774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:31.618354073Z,4853,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:41.618482058Z,5250,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:31.615543772Z,5472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:41.617810283Z,5232,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:01.718207947Z,5382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:01.617815668Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:21.631500203Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:41.622129862Z,5709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:01.619224296Z,5403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:41.614507106Z,5222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:01.615515373Z,5632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:11.721402189Z,4833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:31.616423306Z,5733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:51.613986446Z,5091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:21.612938903Z,4802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:41.71882917Z,5425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:01.618121055Z,5551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:51.617303926Z,5411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:11.618781336Z,4775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:11.616575199Z,5754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:51.717119383Z,5821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:21.616013309Z,5178,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:51.619611348Z,5580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:51.613590696Z,5181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:11.615430365Z,4981,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:01.62029305Z,5708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:21.716337438Z,4781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:41.718626554Z,6038,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:41.616820152Z,4890,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:21.81947792Z,4595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:51.718816785Z,6389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:41.614497357Z,5531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:51.714337937Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:11.635005487Z,5220,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n,,9,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:41.616086654Z,5326,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:20.468498098Z,14775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:50.437023453Z,15483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:10.35483322Z,13964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:50.33706462Z,13863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:25.929427625Z,7953,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:40.436692938Z,13877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:00.340829242Z,14535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:30.440423958Z,15576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:50.449848787Z,14922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:20.440462311Z,15404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:40.533829196Z,14052,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:50.438782923Z,15453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:20.339103765Z,13986,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:20.444230601Z,13928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:20.536896023Z,15265,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:20.43759786Z,15496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:50.236862392Z,14599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:40.344472248Z,14256,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:30.436771356Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:00.443651798Z,14688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:30.443535992Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:10.442264751Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:10.444281059Z,15284,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:40.540127593Z,15457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:20.440546035Z,14159,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:30.243413581Z,14671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:00.44108678Z,14551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:10.337051993Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:20.542326412Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:30.537564064Z,13887,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:00.338866407Z,15309,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:30.336462103Z,14721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:30.441957512Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:30.437299151Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:30.443483408Z,13903,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:00.443901584Z,14790,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:00.446921084Z,14642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:10.446824577Z,14678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:40.338550004Z,15548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:20.235283274Z,14538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:50.4427302Z,13903,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:00.4347885Z,14078,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:30.339686105Z,14604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:10.540024903Z,13904,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:40.331247522Z,15399,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:40.343971155Z,13922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:00.239805034Z,14704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:20.341369148Z,13993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:00.440995722Z,14708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:20.451587652Z,13781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:10.44332653Z,14755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:30.532597942Z,13965,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:20.430626178Z,15400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:20.442091481Z,14625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:10.443607289Z,13836,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:50.437238159Z,14167,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:30.242304825Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:10.232262229Z,14827,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:50.44954375Z,14063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:30.342020354Z,14819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.544806355Z,14700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:40.42838108Z,14109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:40.549476347Z,14981,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:30.544406152Z,14712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:10.437011608Z,14045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:50.231257496Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:00.442072569Z,14651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:10.442218978Z,14709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:50.331297817Z,14815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:00.437959689Z,15469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:10.337165132Z,14944,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:00.342842251Z,13776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:20.342818454Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:20.638836924Z,14595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:40.443716533Z,14611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:00.446149597Z,15536,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:20.436121462Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:40.435730413Z,14114,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:00.438256111Z,15642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:20.544037165Z,14796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:40.245119032Z,15505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n,,10,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.441889636Z,14749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-rkcgv,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:40.379566365Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:30.383843551Z,14122,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:10.39514055Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:00.580409122Z,14702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:10.380016566Z,14469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:35.873681502Z,3746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:40.37997914Z,14850,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:50.482574189Z,15583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:00.483007918Z,14011,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:50.390395718Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:50.390333403Z,14888,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:10.412701713Z,14896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:00.586143637Z,13994,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:50.285223638Z,15384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.507709045Z,14717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:20.490508083Z,14675,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:10.393931759Z,15486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:50.486716578Z,14830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:10.492693176Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:50.286721684Z,14710,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:20.391857153Z,14916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:40.484708738Z,14813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:00.484251868Z,14779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:10.485025546Z,14061,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:40.394908914Z,13860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:50.490773463Z,13880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:00.492049914Z,14838,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:10.393608121Z,15552,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:40.48497597Z,14799,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:10.385756467Z,14885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:40.189775936Z,14830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:20.183456953Z,14813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:50.284882414Z,14704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:00.492751221Z,14715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.587094812Z,15456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:00.489795665Z,14603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:30.488717967Z,13908,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:00.487284537Z,14715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:50.184176186Z,15369,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:30.184638079Z,14661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:50.583156294Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:20.170388893Z,14725,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:50.187356953Z,14478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:00.387995657Z,14964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:30.383074425Z,14763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:30.482566985Z,14747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:40.486109959Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:10.49515301Z,13818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:40.386107548Z,14652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:20.48936818Z,14998,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:50.590512508Z,14110,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:30.378449814Z,13894,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:20.185072135Z,14783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:30.18415374Z,15456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:40.282488071Z,15443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:20.591084822Z,14002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:00.384564904Z,14564,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:10.282964242Z,14667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:10.484240598Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:50.485246429Z,15345,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:30.502168846Z,14071,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:10.394118871Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:40.498734809Z,14877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:20.493447042Z,15579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:00.381218539Z,14741,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:10.488272056Z,14615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:40.485523329Z,15591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:20.395458108Z,14643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:10.390542203Z,14827,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:20.284696316Z,14909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.491279552Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:00.389926545Z,14722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:20.387364409Z,13961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:40.48600623Z,14588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:00.384749836Z,14040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:20.184269581Z,14694,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:40.387326291Z,14997,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:00.490611306Z,14005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:20.486020232Z,14767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:00.393301977Z,14642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:20.382632852Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n,,11,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:40.395339325Z,15496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:20.816814087Z,24967,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:00.420165422Z,13092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:20.426606679Z,12743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:10.532341472Z,13211,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:00.632662874Z,12516,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:50.526180823Z,12974,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:40.527397746Z,13148,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:30.522505008Z,12865,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:20.53993958Z,13377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:10.52680765Z,12878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:00.523862648Z,13914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:50.629913639Z,12789,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:40.53050702Z,13324,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:00.524510875Z,13255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:30.729245072Z,13721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:20.529961108Z,13709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:50.531355999Z,13723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:20.522614096Z,13217,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:50.513348728Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:40.516442481Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:10.531815714Z,12555,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:40.531896409Z,12541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:20.529389713Z,12716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:10.652842679Z,12880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:00.725256771Z,12432,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:50.630309181Z,12885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:10.534447628Z,13311,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:40.529668461Z,12433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:10.524914293Z,12733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:40.528272454Z,12590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:10.524018606Z,12734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:40.53192426Z,12626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:10.528412244Z,12754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:40.52563235Z,12599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:10.513161981Z,12680,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:40.539551402Z,12505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:50.627251583Z,12496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:20.52870035Z,12553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:50.62880173Z,12698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:40.531676973Z,12595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:10.525271302Z,12535,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:30.543754436Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:20.528435972Z,12463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:50.519912265Z,12546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:20.84460127Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:50.618615243Z,12661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:20.536249099Z,12591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:40.536333962Z,12618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:10.623863557Z,12758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:40.529790448Z,12639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:10.534690105Z,12839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:30.53551735Z,12674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:00.538638406Z,12598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:30.528288104Z,12651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:00.525523458Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:50.626571283Z,12754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:20.514540583Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:10.511687333Z,12765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:40.527126634Z,12739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:10.519716911Z,12617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:40.510841548Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:10.525171926Z,12784,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:40.614291921Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:50.523042569Z,12336,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:20.512503367Z,12599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:30.628994108Z,12673,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:40.536657672Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:50.515020538Z,12609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:00.616681558Z,12428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:20.530797327Z,12649,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:50.538183977Z,12772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n,,12,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:10.514289783Z,12697,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:50.601580879Z,13465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:10.398815092Z,12747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:50.406711414Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:00.497542118Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:50.597986926Z,13573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:40.495775688Z,12664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:30.500168951Z,13040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:20.491310576Z,13729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:50.49446909Z,13779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:40.494175667Z,13713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:10.693843546Z,13177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:40.498941394Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:10.596144581Z,12529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:00.491711508Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:30.519197649Z,12643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:30.49609898Z,12409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:00.645119061Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:30.582094209Z,12686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:00.49829236Z,12707,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:30.502663564Z,12782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.58278297Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:30.488796669Z,12779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.584763144Z,12435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:30.50156666Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:10.501097964Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:40.578766532Z,12510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:10.499072512Z,12807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:00.503494174Z,12756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:30.496164062Z,12870,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:20.489213901Z,12821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:10.49703678Z,12898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:40.496281115Z,12696,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:10.494208525Z,12512,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:40.608610216Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:10.588444684Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:40.49747094Z,12512,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:30.49481092Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:00.495703718Z,12501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:30.592870735Z,12522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:00.501902091Z,12415,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:30.494039914Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:20.499341734Z,12417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:50.495268642Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:20.497004743Z,12611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:50.498102405Z,12283,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:10.493699866Z,12599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:30.517571602Z,12723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:00.619041284Z,12644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:30.508365752Z,12764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.602118784Z,12634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:30.494331781Z,12548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:40.482404876Z,12716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:00.614334614Z,12406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:20.499626248Z,12625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:40.494433918Z,12617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:00.489672402Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:20.485553191Z,12596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:40.49384921Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:20.491781556Z,12352,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:40.484264502Z,12686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:00.4849646Z,12778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:20.796390874Z,12752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:40.492883319Z,12462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.705772271Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:10.692849022Z,12387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:40.498294685Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:00.497617677Z,12448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:10.494198967Z,12633,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:20.491404235Z,12403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:00.784791566Z,12384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:00.504866406Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n,,13,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:10.493648445Z,12439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:30.378960059Z,12242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.58018422Z,13117,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:40.373807798Z,13039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:30.37801768Z,13493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:10.562191111Z,13404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:00.579395361Z,13303,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:40.571330752Z,13716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:20.560908165Z,13709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:50.573790133Z,13670,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:40.579299371Z,13242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:10.591278668Z,13618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:40.559516325Z,13823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:10.578726084Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:00.567230375Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:30.577692829Z,12580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:00.584230156Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:30.578910913Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:00.89217612Z,12450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:30.562339332Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:00.600825192Z,12862,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:30.569410256Z,12802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:00.660793705Z,12419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:30.574297857Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:00.661360374Z,12458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:30.574728653Z,12828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:00.559644468Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:10.561596221Z,12774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:40.560624717Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:10.882853367Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:00.589759247Z,12394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:30.56180197Z,12738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:50.581110422Z,12630,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:40.778630399Z,12493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:10.561751129Z,12604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:40.56243798Z,12645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:10.671066214Z,12769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:40.569298937Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:00.577774942Z,12661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:30.960129026Z,12770,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:00.674921243Z,12550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:30.782539454Z,12573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:50.575793846Z,12750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:20.765943955Z,12851,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:50.565655824Z,12364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:20.586302472Z,12809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:10.560153293Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:40.571123234Z,12515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:30.562257383Z,12545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:00.573992918Z,12737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:30.676242329Z,12826,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:00.572450471Z,12406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:30.576444687Z,12474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:00.57329955Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:00.475420826Z,12636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:20.479301788Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:30.486641142Z,12638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:40.478120533Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:40.567505848Z,12791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n,,14,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:30.479959996Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:12.172174059Z,6022,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:12.169852499Z,5472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:42.168438508Z,5539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:41.666645749Z,6023,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:01.770571783Z,5867,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:01.674350119Z,5607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:31.669291895Z,5469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:51.671285745Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:01.667047846Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:11.669816284Z,5264,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:51.669507952Z,5467,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:11.772861228Z,5160,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:51.670200255Z,5031,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:31.668882135Z,5405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:21.67170526Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:51.669933424Z,5234,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:51.668137659Z,6099,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:21.768825013Z,5466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:11.671253022Z,5496,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:41.672837156Z,5065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:01.672213673Z,5430,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:21.669036544Z,5422,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:11.771893888Z,6130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:41.673212881Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:11.671607095Z,5941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:41.668004632Z,5283,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:11.671932366Z,5287,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:11.668770005Z,5448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:31.667367096Z,5593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:51.667480589Z,5507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:11.66967855Z,4806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:41.667359627Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:41.671249363Z,5321,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:01.772059552Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:51.66908224Z,5002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:21.670488866Z,5086,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:51.795875626Z,5470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:31.672548759Z,5293,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:51.66977786Z,5267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:21.669507425Z,5230,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:51.767414435Z,5479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:31.671098443Z,4919,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:31.669569667Z,4592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:11.668337683Z,5998,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:31.669710955Z,5732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:51.668266516Z,5783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:11.768518848Z,5936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:11.669633226Z,4993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:51.670155545Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:01.673626445Z,6088,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:01.669279651Z,5765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:51.674935872Z,5238,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:11.672238419Z,5583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:01.66727513Z,4886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:31.672539598Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:31.669355709Z,4599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:21.768010644Z,5021,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:31.671651453Z,5389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n,,15,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:41.672471286Z,5816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:12.164725106Z,4382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:12.167180364Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:21.666239906Z,5269,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:31.676039999Z,5270,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:21.777196052Z,4815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:11.663338213Z,5993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:31.67563918Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:51.666052458Z,6318,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:11.772616732Z,5450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:31.663803919Z,5838,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:01.667140804Z,5028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:21.767607179Z,5127,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:31.665173779Z,5470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:21.665765069Z,5476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:31.667750204Z,5244,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:51.664145799Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:11.664757702Z,5671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:11.669024714Z,4604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:41.6668835Z,5576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:01.666396048Z,4971,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:51.663278657Z,5406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:11.667870643Z,5267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:21.66865685Z,5608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:15.482237792Z,4804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:01.666851421Z,5275,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:11.66751052Z,5666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:31.669292739Z,5902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:51.669446062Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:51.666083547Z,5236,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:31.666061555Z,5487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:01.667921793Z,5501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:01.667048458Z,4996,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:11.668364748Z,5897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:31.668519998Z,5139,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:11.77422469Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:31.673222006Z,5563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:51.682190896Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:11.669206312Z,4909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:11.667889821Z,6281,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:31.665679941Z,5043,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:21.669250106Z,5045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:41.673575971Z,5215,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:41.667875914Z,5766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:01.668916841Z,5436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:51.663639899Z,5611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:11.666303267Z,5412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:31.766886813Z,5759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:01.66563997Z,5589,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:21.669405872Z,5875,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:41.665331347Z,5724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:21.665595635Z,5143,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:41.665017613Z,4595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:41.669657257Z,5220,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:31.767021453Z,4660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:21.668189938Z,5916,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:51.669366411Z,5934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:51.668554292Z,5545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:31.669247283Z,6164,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:41.667637657Z,5089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:21.668078358Z,5364,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:31.665643289Z,5771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n,,16,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:21.671674Z,5442,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:02.163043643Z,4914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:02.161146282Z,5840,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:52.161204242Z,5298,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:01.75962937Z,5098,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:01.659620845Z,5589,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:11.660942975Z,4864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:31.663905381Z,5674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:51.660605454Z,5360,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:31.660259251Z,5475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:51.658137614Z,5478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:21.658930055Z,5460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:01.760689924Z,5292,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:31.665367455Z,4860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:01.658277116Z,5595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:11.664084488Z,5278,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:31.658252595Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:51.763839895Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:11.662757445Z,4972,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:51.659990755Z,4970,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:11.663180491Z,5333,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:11.657897203Z,5816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:31.662519834Z,5861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:01.660937801Z,5428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:11.660828557Z,5751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:51.662532419Z,5777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:11.760294829Z,5631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:31.661542984Z,5794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:11.663090896Z,6178,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:31.660301669Z,5773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:51.659338844Z,5929,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:51.660395525Z,5028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:21.657907849Z,4820,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:21.758764926Z,5275,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:31.661272509Z,5162,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:51.662839605Z,5900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:31.7652594Z,4924,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:51.660199481Z,5119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:11.660828252Z,6731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:31.657359048Z,5581,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:11.660510605Z,5674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:31.761903605Z,5740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:41.659193908Z,6190,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:01.780685063Z,4772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:41.673847645Z,5404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:01.661766555Z,5001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:21.662445307Z,5736,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:11.659459196Z,5001,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:31.66490843Z,6078,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:51.660932918Z,5051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:21.667760618Z,5397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:41.764818491Z,5546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:51.664064371Z,5713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:51.658707897Z,5214,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:41.66160905Z,5261,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:01.661885114Z,5550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:11.66051451Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:01.665684443Z,4989,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:41.660847424Z,5295,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:31.661827402Z,5245,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:21.662649778Z,5249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:31.660177146Z,4638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:21.660930706Z,5738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:01.660050607Z,5063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:01.760552289Z,5428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:21.659931047Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:41.662557388Z,5198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:11.762763296Z,5149,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:41.661857081Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:11.65883265Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n,,17,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:51.666198332Z,5216,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-vcbpg,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:40.780456883Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:20.379147417Z,13901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:30.47864933Z,15571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:40.778014764Z,14747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:40.88223824Z,14073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:50.376698304Z,13835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:20.276560535Z,14076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:40.479658477Z,15491,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:50.472957025Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:20.380415927Z,13840,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:10.477036316Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.173203443Z,14947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:15.562763824Z,5910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:40.480009261Z,14961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:20.78018449Z,15581,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:10.569187868Z,15507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:30.384554839Z,14724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:30.484846554Z,15521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:20.17662718Z,14043,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:10.383025155Z,15611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:20.571334815Z,14028,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:40.575749369Z,14980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:10.375063328Z,14790,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:50.577510956Z,14540,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:20.473318924Z,13956,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:20.273640119Z,14840,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:30.582964601Z,15408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:00.478426794Z,15378,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:50.576632333Z,14048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:50.563745596Z,13922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:50.487068518Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:20.371368921Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:50.484422212Z,14787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.473819493Z,14769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:30.377754556Z,15642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:40.477316017Z,14844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:10.377649063Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:00.375750744Z,15293,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:40.543378497Z,15644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:00.3715387Z,14036,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:20.172757958Z,15414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:00.672952453Z,13877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:50.495868187Z,14939,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:30.378236196Z,15489,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:10.181024921Z,13978,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:20.585668023Z,14901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:00.473297656Z,14614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:40.379088337Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:20.477318922Z,14108,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:00.372698404Z,14659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:40.377709202Z,14598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:30.480372191Z,14980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:50.175697523Z,15629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:30.474137167Z,15288,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:20.377732903Z,13868,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:00.576847014Z,14074,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:30.474694802Z,14100,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:30.373374274Z,15436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:40.480144205Z,15645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:20.374566876Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:40.181993196Z,14122,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:50.374373251Z,14053,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:30.379318428Z,14124,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:40.475643218Z,14665,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:00.373409229Z,15397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:10.377575191Z,15369,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:30.579730529Z,14072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:30.483272533Z,15525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:10.280591596Z,14545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:30.483921364Z,14644,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:50.376846261Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:10.487330212Z,14406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:30.476776105Z,14078,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n,,18,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:50.472404556Z,14888,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:42.199339594Z,5109,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:52.207028334Z,6181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:42.199892107Z,5247,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:52.19868682Z,5954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:42.199340094Z,4995,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:02.304161584Z,5074,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:41.701495091Z,5353,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:51.699897001Z,5413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:11.702068578Z,4860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:11.907237624Z,5618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:41.699716221Z,5357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:11.701862006Z,5643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:21.699725826Z,5517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:01.699027791Z,5401,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:11.797950041Z,4642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:01.700188188Z,5458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:01.699302192Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:21.701090342Z,5629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:51.806854472Z,5961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:41.706048468Z,5483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:41.701525949Z,5911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:31.702114821Z,5459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:01.700673554Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:31.699752843Z,5440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:01.700850573Z,5915,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:31.702466499Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:01.698955288Z,5504,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:31.700878266Z,5211,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.802435432Z,4823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:51.800047496Z,5933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:01.699186506Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:01.700229319Z,5898,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:21.700739619Z,5488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:31.700807036Z,5506,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:11.702216891Z,5896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:31.79923731Z,5666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:51.699596918Z,5677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:21.798624641Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:21.697341625Z,5447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:41.700616828Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:41.705079726Z,5674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:51.702996728Z,4863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:51.703890036Z,5400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:21.699564355Z,5950,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:21.699629746Z,5409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:41.70207383Z,4800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:31.702074156Z,5414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:11.7000132Z,5777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:41.701844646Z,5424,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:51.697505102Z,5047,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:21.702544674Z,5485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:31.801361311Z,6019,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:51.698691812Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:41.702012634Z,5956,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:51.699256417Z,5942,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:21.698902763Z,4623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n,,19,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:11.801710459Z,5427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:00.47530227Z,14713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:00.444009899Z,14660,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:40.45100663Z,15321,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:00.446303114Z,14589,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:30.442172288Z,14511,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:20.136007543Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:40.446753258Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:30.450030847Z,14744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:40.448203945Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:50.441449957Z,14830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:40.342716402Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:00.543038211Z,14743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:40.34479012Z,13958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.447587133Z,13994,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:10.443169718Z,15222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:50.544752368Z,15579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:10.44640087Z,15329,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:30.548940285Z,15394,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:00.453639408Z,14012,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:10.538349472Z,13922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:30.147741611Z,15297,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:20.541008125Z,14643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:20.646241874Z,14746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:40.442718838Z,14739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:30.439388047Z,14688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:10.444636879Z,14874,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:40.639006043Z,13960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:30.458576647Z,15407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:00.248225274Z,15350,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:20.545203338Z,14012,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:20.441450508Z,13936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:20.543555742Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:20.451750378Z,15447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:10.444728402Z,15503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:00.656829097Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:20.246277513Z,13899,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:40.441169832Z,15433,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:40.442140601Z,14816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:10.346089111Z,15002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:20.352785951Z,15472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:30.457437079Z,13983,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:20.444714998Z,14702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:30.543661715Z,14538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:10.345392507Z,15562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:10.547002188Z,15522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:20.456032243Z,13987,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:40.449355364Z,14791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:10.447370383Z,14139,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:10.442777628Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:20.448328977Z,14625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:40.451310612Z,14793,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:40.436543379Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:30.446426057Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:10.350084669Z,15585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:50.537370393Z,15299,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:20.542554589Z,14873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:00.441471303Z,15493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:50.34495268Z,14095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:10.441465725Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:10.445582979Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.448504266Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.536269317Z,14848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:10.551797768Z,14616,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:30.43867432Z,15576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:50.445189205Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:10.442693145Z,15223,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:30.447161178Z,14625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:50.445684771Z,14539,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:10.449315791Z,15517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:30.437591976Z,14113,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:50.45260047Z,14757,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:10.446086486Z,15407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:30.446719238Z,13955,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n,,20,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:50.345407152Z,14983,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:40.485904783Z,12861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:30.482817801Z,13123,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:40.384796104Z,13299,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:30.482487369Z,12523,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:50.483490478Z,13119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:30.56954014Z,13630,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:20.574409913Z,13667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:10.88855852Z,13814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:00.577282484Z,13510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:50.584839666Z,13783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:40.681027125Z,12751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:30.583978255Z,13795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:20.611678325Z,13740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:40.674754753Z,13745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:10.569686333Z,13776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:00.567487373Z,13689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:30.566093498Z,13721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:00.570936293Z,13720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:30.597696322Z,13440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:20.583351368Z,12744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:50.665772614Z,12721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:50.585000032Z,12564,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:20.572706727Z,12771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:50.579542939Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:20.684356946Z,12789,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:50.580200069Z,12400,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:20.678857986Z,12682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:50.570127514Z,12588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:20.566513093Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:50.566200239Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:20.482975047Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:30.587330452Z,12787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:00.583535897Z,12786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:30.58215706Z,12765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:20.566637307Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:50.567249851Z,12571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:40.56589485Z,12781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:00.678722306Z,12616,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:30.588624207Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:00.489501169Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:30.6708746Z,12485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:00.577579544Z,12607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:50.567616913Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:20.887804764Z,12623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:50.677133417Z,12739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:20.499208485Z,12414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:50.489622839Z,12742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:40.501230214Z,12553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:10.488321857Z,12365,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:40.469118137Z,12636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:10.491112821Z,12470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:40.485158978Z,12720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:30.585563551Z,12651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.569123527Z,12621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:50.485655959Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:20.479655727Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:50.485544558Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:20.479532694Z,12776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:50.468173251Z,12479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:20.485901065Z,12580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:00.482513508Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:50.477290727Z,12577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:00.468141022Z,12430,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:10.582612272Z,12624,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n,,21,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:20.469591706Z,12763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:20.459575453Z,14665,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:00.550284835Z,13901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:20.44935884Z,14767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:50.451924819Z,14521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:30.443056398Z,15550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:20.453331233Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:10.450635841Z,14095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.465220073Z,15249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:40.449721118Z,15422,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:40.450284831Z,14781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:30.247424839Z,15700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:20.441742972Z,14039,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:40.464522479Z,14964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:00.448715159Z,14728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:50.396765895Z,15478,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:40.345616112Z,13868,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:20.547694818Z,13872,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:10.544000561Z,15389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:40.553646088Z,14690,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:30.243805728Z,14465,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:10.452024543Z,15346,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:40.459035225Z,15490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:30.45547682Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:10.648586002Z,14239,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:40.547076537Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:10.354233935Z,14802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:40.365726905Z,15626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:10.342457231Z,14038,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:10.346226646Z,15530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:40.345596883Z,14095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:30.446555484Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:00.458911287Z,14690,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:00.346846295Z,14639,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:10.345480833Z,14883,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:40.466312352Z,14239,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:50.341874921Z,14582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.455027348Z,14835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:00.350726434Z,14628,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:00.545969486Z,13835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:31.82924986Z,11455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:40.473118752Z,14801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:50.454498455Z,14573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:00.561809674Z,14502,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:40.584523673Z,14572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:50.548568001Z,14875,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:30.447633689Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:40.35134622Z,15277,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:00.353462484Z,14531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:40.453854032Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:00.448470338Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:30.334401653Z,14533,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:30.339968163Z,14643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:20.457051264Z,14738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:32.428775795Z,11521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.353394477Z,15614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:30.545997643Z,14844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:00.458800743Z,15366,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:40.44511362Z,15547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n,,22,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:30.442604724Z,14569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:20.361730193Z,13440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:10.370752403Z,12911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:20.361212726Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:40.360967967Z,12833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:00.765493164Z,12609,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:50.77512765Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:40.548438099Z,12880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:30.551215371Z,12742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:20.552854596Z,12596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:10.649538182Z,13042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:00.550183255Z,13012,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:50.547054375Z,12934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:40.550324317Z,12825,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:30.552113363Z,13195,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:30.562395388Z,13735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:00.763206965Z,13676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:50.651893688Z,13543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:20.772619268Z,13745,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:50.56926129Z,13651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:20.547897444Z,12689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:10.649140324Z,12447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:40.559727058Z,12582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:10.56563929Z,12795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:00.550503272Z,12434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:50.566281134Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:40.560504776Z,12708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:40.571807189Z,12822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:10.591279457Z,12786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:40.570070267Z,12690,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:10.970409346Z,12693,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:40.547213047Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:10.551806063Z,12417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:40.566800145Z,12612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:10.66554127Z,12901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:40.668453501Z,12636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:10.559532984Z,12593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:20.651113045Z,12489,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:50.566290595Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:20.552196634Z,12616,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:10.548477576Z,12746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:40.674146238Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:00.574395685Z,12841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:50.559926323Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:20.549300276Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:50.75185672Z,12760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:20.549134343Z,12762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:50.554503655Z,12572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:40.748598217Z,12647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:10.666259947Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:40.549429377Z,12723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:10.848625216Z,12596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:40.754610449Z,12323,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:30.564385411Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:00.675484427Z,12416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:30.562229233Z,12377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:00.559640774Z,12412,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:30.560493772Z,12410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:20.561582296Z,12357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:50.549206026Z,12404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:40.547517626Z,12732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:10.557184565Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:40.55218358Z,12381,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:10.552478414Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:40.647703562Z,12733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:10.54834331Z,12808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:40.666741532Z,12504,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:10.560890671Z,12325,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:20.555951069Z,12547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:30.551642949Z,12439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n,,23,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:30.565698323Z,12516,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:32.130048593Z,5667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:32.131942537Z,5056,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:32.13545102Z,4801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:32.128823001Z,5171,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:32.127379251Z,5575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:32.130646245Z,5613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:32.131426309Z,5952,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:22.12722099Z,6058,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:52.131434713Z,5073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:01.627327504Z,5476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:41.629546285Z,5296,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:51.629483357Z,4769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:31.62881312Z,5798,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:51.63098851Z,5230,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:11.628479173Z,5414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:11.627303581Z,5505,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:21.635651529Z,4858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:21.629834726Z,6010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:11.628165062Z,5177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:41.728603805Z,5841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:51.62613664Z,5889,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:11.626543936Z,4912,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:51.629213438Z,5590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:11.629590467Z,5812,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:31.730518997Z,5486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:51.629988764Z,5451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:41.730905105Z,5401,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:51.630129833Z,5317,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:31.629095731Z,4930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:11.633515207Z,5973,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:01.730381863Z,6077,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:51.630550911Z,5642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:21.63814967Z,5948,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:41.626967751Z,6318,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:31.626703683Z,5557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:31.628586171Z,5441,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:11.728389109Z,6345,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:31.627839401Z,4941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:51.62938086Z,5901,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:31.630064966Z,5705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:51.629699102Z,5065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:11.629641679Z,5621,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:11.730245553Z,5612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:41.630017928Z,6272,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:11.628528239Z,5006,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:31.73576558Z,5529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:51.62814347Z,5254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:51.630400122Z,5194,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:31.626212211Z,5403,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:31.628920835Z,5597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:01.631273767Z,6187,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:01.625529455Z,5092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:21.628434567Z,5170,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:41.632930601Z,5504,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:11.732739843Z,5836,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:31.630677114Z,5254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:51.628850383Z,5351,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:11.629311531Z,5414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:41.659523865Z,5458,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:01.629218086Z,5427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:51.631081934Z,4902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:11.631144638Z,4749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:01.631620472Z,5264,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:41.630955412Z,5574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:01.729029348Z,4860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:01.630104863Z,5233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:51.631131687Z,5423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:41.631929076Z,5238,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:41.626128955Z,4922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:51.726352Z,5719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:01.631461669Z,6257,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:31.828698404Z,4800,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:21.731185185Z,6224,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:41.830030893Z,5308,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:01.630742358Z,5493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:31.728499028Z,6018,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:21.629226304Z,6198,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n,,24,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:31.630389121Z,5382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:50.428589652Z,12561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.530822633Z,12796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:20.517161755Z,12960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:10.526363229Z,13220,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:00.734531656Z,13741,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:50.52964593Z,13715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:40.745732562Z,13698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:30.529189784Z,13678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:20.527395635Z,13647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:10.51591191Z,13711,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:10.527971311Z,13130,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:40.517107555Z,13716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:30.667567267Z,13774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:00.616647092Z,13738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:30.515455893Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:00.53029262Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:50.728696931Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:20.536212384Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:20.538693276Z,12500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:50.521412305Z,12454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:20.528812519Z,12663,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:50.536406133Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:20.533797523Z,12869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:50.533755755Z,12829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:20.517478748Z,12720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:50.530676426Z,12769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:20.521801519Z,12612,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:50.51862261Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:00.529784261Z,12471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:30.538088206Z,12613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:50.528026325Z,12615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:20.53454967Z,12574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:10.51812639Z,12826,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:30.63243985Z,12740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.539033628Z,12718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:30.530082908Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:00.930815948Z,12525,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:30.516947307Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:20.531592155Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:50.727256795Z,12464,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:20.530109918Z,12548,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:50.528332158Z,12459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:20.518958924Z,12489,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:10.530894123Z,12551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:40.524773857Z,12363,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:10.619339636Z,12634,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:40.534131028Z,12527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:00.54285308Z,12502,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:20.536091058Z,12750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:50.521570172Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:20.538596524Z,12588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:50.739416575Z,12565,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:20.52478849Z,12783,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:50.52939272Z,12279,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:30.535394507Z,12349,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:30.537142603Z,12717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:50.527717054Z,12583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:00.535376418Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:10.518481229Z,12806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:30.547064604Z,12618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:00.535141849Z,12457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:10.517053396Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:10.639244011Z,12423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n,,25,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:20.51704748Z,12367,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-ngtxr,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:22.196982459Z,4959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:22.199832262Z,5426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:52.197526026Z,5337,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:51.696547564Z,5772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:41.696037376Z,5175,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:01.698360245Z,5407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:21.698546414Z,5954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:51.696725439Z,5557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:01.699975286Z,5990,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:21.695542491Z,5158,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:41.7001911Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:21.704198199Z,5455,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:11.801084474Z,5194,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:41.697744233Z,5706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:21.696258366Z,5282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:31.701464809Z,5729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:21.697512968Z,5959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:41.698468274Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:11.698841619Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:11.697042744Z,5805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:41.6967761Z,5959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:01.700944687Z,5203,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:01.699371446Z,5629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:31.698343315Z,5416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:31.697636712Z,5564,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:51.698144809Z,3985,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:41.69973559Z,5235,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:11.701665234Z,5587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:51.698286654Z,5411,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:01.698244267Z,4993,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:11.796851026Z,5177,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:21.698558441Z,4953,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:01.697791668Z,5127,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:21.697512597Z,4942,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:21.697425764Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:01.698167123Z,5643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:11.697823659Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:11.697367172Z,5477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:31.696851159Z,5462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:41.697389363Z,5067,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:01.698027715Z,4961,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:41.698064998Z,5385,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:01.698150204Z,5723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:21.697032387Z,4482,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:41.698021549Z,5610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:41.699406541Z,5423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:51.696601238Z,4599,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:31.697413029Z,5269,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:21.698071645Z,5251,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:31.697592121Z,5379,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:51.695655853Z,4941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:21.696080599Z,4958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:51.697878779Z,6029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:31.698327711Z,5461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:41.698171255Z,6006,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:31.700295135Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:11.699576209Z,4766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:21.699065028Z,5408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:41.698891653Z,5931,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:01.696567465Z,5420,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:21.699508008Z,6032,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:01.695960616Z,5771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:21.707377268Z,5242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n,,26,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:01.697906003Z,5953,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:32.129232691Z,6085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:21.645329156Z,5415,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:01.628754547Z,4778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:21.629012222Z,5774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:41.654093313Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:01.628118985Z,4934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:51.628534154Z,4752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:51.631886304Z,4207,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:01.64158413Z,3527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:31.632666347Z,5624,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:41.628366414Z,5643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:31.627721007Z,5262,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:01.634564887Z,5434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:31.729595771Z,5434,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:01.63020563Z,4807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:31.633672748Z,5668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:01.632742936Z,6045,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:21.630726457Z,5450,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:51.633772675Z,6072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:21.629222983Z,5301,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:21.652471164Z,4834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:51.629119304Z,4887,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:31.628600275Z,4990,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:51.629318838Z,5365,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:21.630574735Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:21.630649105Z,5397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:51.629779923Z,5584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:01.73232547Z,5275,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:01.629686513Z,5449,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:21.628056336Z,5717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:41.626898547Z,5906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:11.73049176Z,5471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:41.627467866Z,4855,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:11.729755181Z,4788,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:21.630687352Z,5214,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:21.731475937Z,4176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:41.630357807Z,5261,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:31.642521994Z,6029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:11.628074654Z,5451,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:51.63416844Z,5017,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:31.628617602Z,6014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:51.628287671Z,5938,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:31.628265433Z,4788,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:01.627678608Z,5819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:01.759963139Z,5452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:11.627822758Z,5497,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:01.629310885Z,4977,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:31.830196498Z,5990,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:11.631832283Z,6240,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n,,27,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:41.732614656Z,5486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:22.159466867Z,5649,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:12.15961692Z,5076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:02.159421319Z,5580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:41.662706207Z,5610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:11.678143271Z,5392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:51.658778403Z,5444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:31.662604222Z,5170,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:11.659791677Z,5338,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:41.661727575Z,5448,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:51.660321125Z,4926,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:11.759503257Z,5435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:11.664534111Z,6255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:31.6611363Z,5625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:51.659615693Z,4541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:11.660328296Z,5490,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:31.661860388Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:51.75884444Z,6043,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:21.658233889Z,5470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:21.661729006Z,5092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:01.66419302Z,4960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:21.666621185Z,5261,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:51.761831328Z,4914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:21.662235985Z,5656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:51.660504357Z,5026,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:21.676717688Z,5416,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:51.661217173Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:21.660727279Z,6158,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:51.65808541Z,6125,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:41.659353929Z,5429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:51.659605026Z,5014,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:31.661280564Z,5627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:51.662738102Z,5485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:11.761951481Z,5510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:41.762044251Z,4839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:31.662733414Z,5541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:01.758929763Z,5235,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:11.663179843Z,5286,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:31.659505633Z,5371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:51.662709477Z,5503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:31.659912209Z,5829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:51.670881095Z,5395,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:01.862234266Z,5627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:21.658123484Z,5801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:21.663917438Z,5761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:41.659451628Z,5153,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:31.662854206Z,6016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:11.758820021Z,5419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:31.660022494Z,5410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:11.661238109Z,5247,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:01.660651357Z,6063,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:11.663029243Z,6066,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:11.660508471Z,4831,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:31.664312436Z,6222,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:21.758380099Z,5410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:11.660473509Z,5274,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:01.660909299Z,5485,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:41.663907546Z,5138,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:01.669206566Z,5926,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:01.665213778Z,5738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:31.673381054Z,5844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:31.66567796Z,5131,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:31.664574879Z,6255,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:51.667435235Z,4803,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:21.664417257Z,5681,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:51.660663313Z,5625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:11.660784806Z,6214,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n,,28,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:57:51.663041897Z,5119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-brkqv,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:10.367294566Z,14964,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:50.359106995Z,15594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:50.553221725Z,13869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:10.26561832Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:30.357913984Z,14571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:20.370857447Z,14566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:00.415573315Z,14970,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:10.467268943Z,14841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:40.370363757Z,15501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:00.461903246Z,15530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:10.364188442Z,13879,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:00.467122471Z,13856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:30.564900419Z,13931,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:30.465610106Z,15498,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:10.473131961Z,14176,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:00.460000877Z,13941,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:10.160731737Z,13958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:00.362643823Z,14638,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:10.161771211Z,15558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:20.358397037Z,14607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:30.357961601Z,13825,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:30.467266609Z,14798,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:40.369451308Z,15254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:10.35690111Z,15387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:00.459562425Z,14046,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:40.367210282Z,15340,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:20.566166072Z,15591,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.462827816Z,14865,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:00.361078362Z,14928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:40.571602579Z,14055,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:50.36028603Z,13463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:30.368282738Z,14877,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:30.461644662Z,14453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:00.471467337Z,15252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:50.260081663Z,14590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:50.480277629Z,15592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:30.375625207Z,14908,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:00.483047874Z,15397,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:50.45995722Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:20.367927298Z,14886,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:20.468715261Z,15406,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:20.360116526Z,14590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:10.160815641Z,14507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:40.364552772Z,14686,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:50.464611196Z,15404,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:40.36536062Z,14029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:50.469422138Z,14576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:00.619186332Z,14604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:30.562454041Z,13839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:40.362470589Z,14736,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:40.268834164Z,15588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:40.458715631Z,14042,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:41.449499047Z,5705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:20.368258066Z,14793,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:00.470997093Z,15426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:00.671619836Z,14627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:40.465833802Z,14743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:20.470032136Z,14860,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:20.562243226Z,15562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:30.56103996Z,14779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:40.363626944Z,15576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:20.659937821Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:50.468130553Z,15563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:00.475547277Z,14848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:40.360561494Z,15051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:40.36407415Z,14819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:20.472782625Z,14107,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:40.361554995Z,14677,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:00.46445033Z,13986,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:40.461608239Z,13956,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:20.466859288Z,14636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:20.370817926Z,14743,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:40.562346951Z,14831,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:00.363536726Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n,,29,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:40.462181816Z,14844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:40.4573945Z,12598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:30.466654792Z,12799,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:20.461180966Z,12640,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:40.572894468Z,13903,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:30.560921608Z,13807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:20.563377485Z,12917,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:10.747205672Z,13615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:00.671964268Z,13698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:50.554743246Z,13744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:40.554324821Z,13712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:30.553948035Z,13715,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:10.562746592Z,13758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:40.56242324Z,13716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:30.548769617Z,13614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:00.545291448Z,13230,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:30.545976325Z,13685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.570720532Z,12821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:50.550868139Z,12794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:20.558930979Z,12479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:50.561930165Z,12530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:20.545071434Z,12519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:50.551296606Z,12444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:20.545138533Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:00.572714937Z,12631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:50.76231563Z,12678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:20.55682629Z,12586,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:50.752940386Z,12648,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:20.568644271Z,12816,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:50.547308958Z,12479,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:20.555990298Z,12542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:50.557065338Z,13138,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:00.544778532Z,12462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:30.559131999Z,12658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:00.546812749Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:50.694055567Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:20.576945617Z,12588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:40.548244435Z,12473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:30.744978499Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:00.662363802Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:30.545600495Z,12637,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:30.555719343Z,12810,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:50.558387003Z,12553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:20.548009183Z,12704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:50.563241486Z,12618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:20.564461723Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:40.850366721Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:10.857884324Z,12626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:40.545693494Z,12500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:10.556447372Z,12513,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:00.658376716Z,12389,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:30.555225405Z,12692,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:20.546791328Z,12558,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:50.54883188Z,12357,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:20.547042682Z,12457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:50.551140377Z,12768,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:20.563255936Z,12295,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:50.55854716Z,12380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:20.548606314Z,12562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:00.646152149Z,12541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:30.545753707Z,12473,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:40.546193104Z,12674,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:50.559430707Z,12611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n,,30,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:50.649446365Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:40.412232772Z,14753,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:50.413027553Z,14575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:10.410006348Z,13938,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:50.413564016Z,14821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:20.617084754Z,14895,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:10.416075298Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:00.420448203Z,14608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:20.206254131Z,15527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:50.717112879Z,14933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:30.410848474Z,14102,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:00.407905342Z,14601,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:00.413234629Z,15267,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:40.415936724Z,14782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:40.413792129Z,14572,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:00.311181217Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:50.417424216Z,15218,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:40.213160497Z,15456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:10.315448839Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:00.411906153Z,14076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:10.419449995Z,13824,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:40.211478758Z,15497,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:50.316045781Z,14755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:20.41312867Z,13937,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:40.414333016Z,15646,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:20.418199341Z,15474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:00.409641475Z,14193,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:40.516907295Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:10.419936013Z,14111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:20.430144207Z,14727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:20.420551035Z,13994,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:10.51498539Z,14828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:50.418130763Z,15546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:34.300411528Z,5911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:40.410605106Z,14092,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:00.412755083Z,14519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:50.41428502Z,14035,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:50.416912521Z,15487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:50.416910557Z,14668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:20.414442309Z,13969,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:40.410299388Z,13893,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:00.314833051Z,15610,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:30.514795069Z,14704,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:20.515134774Z,14215,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:50.411358323Z,14859,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:00.423005964Z,14992,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:30.411426538Z,15650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:00.41656236Z,14484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:30.314877178Z,13856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:30.620004561Z,14523,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:40.419744299Z,14913,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:10.317608033Z,14542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:50.419930293Z,14027,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:10.409791992Z,14921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:30.513533896Z,14469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:50.314137043Z,14835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:30.514909319Z,14614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:10.320115615Z,14889,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:50.518696477Z,13882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:30.426019372Z,14508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:50.323452525Z,14618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:30.421055483Z,15190,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:50.419868894Z,14891,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:30.618639969Z,14709,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:40.412924492Z,14059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:10.414694841Z,15466,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:10.516936219Z,14757,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:50.320834239Z,14037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:30.522009834Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:00.415192575Z,14781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:40.419135983Z,14719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:20.422832477Z,14717,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:00.214088352Z,15323,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:10.418413338Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:50.512552059Z,14111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:20.408864092Z,14946,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:10.414997144Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:30.417411617Z,15469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:40.414440927Z,15698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n,,31,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.619708324Z,14858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:02.152505206Z,6356,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:11.708749572Z,4995,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:31.650152553Z,5119,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:51.649926125Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:41.7489258Z,5746,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:01.650549388Z,5461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:41.649082821Z,6051,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:51.746071073Z,6849,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:01.647129941Z,5723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:21.649660907Z,5226,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:21.746898508Z,4866,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:41.649607286Z,5602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:01.647876012Z,5617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:21.649304867Z,5446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:21.651333833Z,5151,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:51.64970308Z,5438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:41.648641669Z,5418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:11.649272286Z,5876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:41.648683865Z,6306,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:31.645794492Z,5592,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:21.645961475Z,4884,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:41.653265748Z,6696,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:11.650168859Z,5134,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:31.649401597Z,5437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:01.64981441Z,5237,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:41.650580117Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:31.648847727Z,5459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:41.754254693Z,5885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:31.758786871Z,5922,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:01.647442593Z,5439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:21.651935433Z,4629,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:41.653071654Z,5315,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:11.649233998Z,6059,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:11.655014951Z,5623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:31.65386799Z,5987,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:51.646501623Z,4923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:01.64849604Z,5276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:21.650511495Z,5452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:51.645876849Z,5723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:11.650300698Z,5636,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:41.849716599Z,5088,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:21.64597586Z,5582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:01.752593586Z,5426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:01.6505834Z,6040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:21.648790757Z,5296,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:31.651724916Z,5575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:01.746623584Z,5595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:11.647859296Z,5387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:21.648607092Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:31.65320355Z,6210,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n,,32,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:51.65207391Z,5277,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:50.222958941Z,14631,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:30.431102939Z,14034,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:10.753560907Z,14923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:40.430685153Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:20.420586366Z,14703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:45.810377102Z,5749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:40.439412813Z,14778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:00.52627489Z,15426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:10.528203201Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:30.530795095Z,14722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:40.232715031Z,14761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:00.432043632Z,15449,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:20.427567228Z,14821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:20.438904049Z,15477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:40.331706058Z,15417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:40.422808766Z,14896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:20.331031709Z,14642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:40.425619044Z,13943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:20.226594513Z,14750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:30.629588181Z,15233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:50.629343746Z,14553,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:00.230376905Z,15367,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:00.322068791Z,14641,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:40.420256534Z,13930,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:50.231721888Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:20.327214339Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:00.538470937Z,14547,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:16:10.225698991Z,14618,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:50.322293436Z,14893,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:10.530365758Z,15418,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:40.429963539Z,15493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:40.434167269Z,13857,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:10.431307056Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:40.438921897Z,14872,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:10.429314822Z,14003,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:40.529148615Z,15405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:50.462128121Z,14104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:00.2334062Z,14058,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:30.424125829Z,15392,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:40.429014254Z,15573,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:10.424045058Z,14614,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:20.324463034Z,15598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:50.532291707Z,14659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:10.537731283Z,14854,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:10.429337238Z,15409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:50.429941487Z,15410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:30.328060031Z,14604,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:10.426803324Z,14738,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:50.326843791Z,14808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:20.327342377Z,14885,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:00.428690358Z,14949,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:30.326523775Z,15027,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:00.435687947Z,14493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:10.429769611Z,13991,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:50.42568806Z,14770,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:30.430575937Z,14718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:40.929774643Z,14855,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:50.528064975Z,14740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:00.424314436Z,14869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:30.422373272Z,15410,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:50.42971114Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.842894246Z,14700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:10.429771264Z,15352,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:30.4412266Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n,,33,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:50.428439195Z,14526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-99mcc,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:00.275833105Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:00.384838012Z,14549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:20.396150401Z,15584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:40.482683296Z,14957,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:30.480184057Z,15276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:30.384716226Z,14892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:50.383739075Z,15595,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:10.179727475Z,13906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:20.478479514Z,13959,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:40.488264013Z,14557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:10.916010294Z,14065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:50.479780025Z,15471,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:30.579073042Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:20.982643804Z,14576,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:50.183952058Z,14492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:30.385537053Z,13891,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:50.38258458Z,14882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:40.383036171Z,14221,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:30.526049765Z,14608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:30.380748951Z,13977,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:50.881358024Z,14764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:30.280876176Z,14759,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:40.380487257Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:50.480788071Z,14596,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:20.179087141Z,14910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:10.486043393Z,15642,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:20.175294181Z,14936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:40.386889798Z,14969,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:50.185882024Z,15349,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:50.483002092Z,14225,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:20.17978108Z,14656,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:10.494789835Z,14876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:40.38173048Z,15594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:10.275750364Z,14882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:20.384686432Z,14538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:40.383311845Z,13923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:54.364147115Z,2132,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:10.380596902Z,14808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:30.693541936Z,15289,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:30.384700059Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:30.58500592Z,14692,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:00.479177767Z,13754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:50.493328359Z,15615,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:10.388946575Z,14752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:20.387532958Z,13855,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:50.58629896Z,14689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:00.425476186Z,14658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:10.384629668Z,15562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:40.177675235Z,15371,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:20.894759955Z,14767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:50.492854297Z,14846,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:00.283560565Z,14652,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:50.488513437Z,15514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:50.487675399Z,15414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:30.484727198Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:10.481354396Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:50.4784802Z,14929,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:30.38682682Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:50.182754874Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:30.388144663Z,14648,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:10.180563456Z,14911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:50.380706298Z,14728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:30.488483622Z,14909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:40.385864794Z,14791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:20.381556041Z,14782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:50.400377554Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:20.392201105Z,15527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:50.177322971Z,13902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:00.491500055Z,14624,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:40.282875231Z,15582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:12.267770342Z,5694,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:30.173756088Z,14863,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:40.50083035Z,15150,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:30.38237422Z,15440,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:50.383329245Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n,,34,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:40.380430564Z,14818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-74mcm,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:30.477072416Z,14000,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:10.261128948Z,15423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:40.468068186Z,15339,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:20.367228559Z,14469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:10.466757782Z,14927,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:30.182434628Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:20.268422767Z,14021,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:30.469426649Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:10.458753196Z,15402,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:30.459361211Z,14839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:50.458450121Z,14755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:40.366884152Z,15426,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:20.466807157Z,13878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:50.369509402Z,14776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:50.373249036Z,13835,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:06.148578162Z,11574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:35.648252597Z,5864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:10.357500275Z,14777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:20.362218876Z,14734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:50.466850309Z,15382,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:20.472658581Z,14807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:00.46245821Z,13910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:49:50.573511072Z,15445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:50.369221531Z,14735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.467632057Z,15226,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:56:10.160201517Z,14708,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:00.462408322Z,14603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:50.464063321Z,14882,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:30.457770832Z,14820,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:00.464296238Z,14795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:30.569762184Z,14868,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:00.369419572Z,14579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:40.360757507Z,14685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:24.449787143Z,11580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:00.476223133Z,13928,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:00.460599877Z,13892,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:50.577349239Z,14549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:10.475967163Z,14669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:30.373773623Z,13834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:00.472114301Z,14833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:00.378295746Z,14896,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:10.471716369Z,15864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:40.47268279Z,15381,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:20.464982863Z,14721,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:50.570200476Z,14585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:20.370632275Z,15689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:50.366173014Z,14872,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:00.360603872Z,14550,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:30.472837662Z,14727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:20.563531793Z,14809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:40.369222473Z,15551,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:40.473452033Z,15384,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:20.569019325Z,14929,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:00.465306998Z,14711,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:40.472040494Z,15661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:10.559261613Z,14829,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:40.475286341Z,14588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:10.467600975Z,14727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:00.357735625Z,15503,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:30.370118011Z,14620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:00.262407391Z,15602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:50.462939688Z,14782,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:30.374744487Z,13900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:10.371144442Z,14737,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:00.359377475Z,14662,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:10.363005161Z,14541,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:40.473094932Z,14846,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:50.463609922Z,13918,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:00.162331576Z,14818,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:20.464036216Z,14187,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:30.377316401Z,14805,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:50.461574573Z,14911,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:10.474653023Z,14774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:30.368966246Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:50.406027615Z,14682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:10.362892726Z,14084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n,,35,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:50.362837531Z,14018,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:10.551642771Z,13085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:10.442263362Z,12741,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:31.050936178Z,13159,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:20.528082573Z,13065,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:10.541354136Z,12773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:00.547903891Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:50.543925931Z,12997,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:40.546413536Z,13295,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:30.541309383Z,13145,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:20.525808701Z,13095,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:10.939458953Z,13242,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:00.529333755Z,12712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:30.544308406Z,13723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:50.545420758Z,13146,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:20.546450785Z,13625,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:50.530496513Z,12730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:10.541043741Z,12530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:40.727062851Z,12727,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:40.5306984Z,12918,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:30.549229084Z,12500,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:20.54816049Z,13269,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:10.546947927Z,12544,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:40.545485023Z,12563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:10.540901532Z,12673,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:40.650134607Z,12873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:10.531951932Z,12761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:40.529295549Z,12778,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:10.647353873Z,12699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:40.636809417Z,12510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:10.530996182Z,12499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:40.546156658Z,12729,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:20.547909049Z,12772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:50.545064768Z,12762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:10.527761052Z,12669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:40.529821966Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:30.557535389Z,12528,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:20.546801442Z,12627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:50.545472308Z,12649,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:20.547627336Z,12522,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:50.550817964Z,12845,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:20.538658177Z,12632,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:50.649318837Z,12798,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:40.54833796Z,12549,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:10.542399234Z,12973,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:40.84455776Z,12587,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:10.546388847Z,12752,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:40.543139446Z,12405,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:30.542913566Z,12753,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:00.539962616Z,12611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:30.545326872Z,12430,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:00.535097737Z,12521,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:50.527803172Z,12815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:20.526140879Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:10.544656056Z,12689,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:40.642124748Z,12627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:10.541823769Z,12438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:40.543657185Z,12760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:10.551186878Z,12526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:40.546284119Z,12545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:40.542169264Z,12398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:50.531666375Z,12306,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:00.534749132Z,12560,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:10.847026456Z,12577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:20.541228932Z,12423,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:40.530200802Z,12498,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:20.567493176Z,12848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n,,36,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:40.64406237Z,12607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-zkhb7,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:20.398755301Z,14726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:00.808791579Z,14005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:30.290468423Z,15427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:10.197176503Z,14822,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:00.39522938Z,14812,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:14:50.197307986Z,15435,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:30.598498477Z,14792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:50.490751965Z,14087,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:50.181038009Z,14706,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:00.40453464Z,14733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:10.499975572Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:30.186993782Z,14761,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:20.401102537Z,14861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:30.191756968Z,14732,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:40.598314132Z,14090,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:00.391616604Z,14562,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:10.500350369Z,14902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:00.396394885Z,13844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:00.393303563Z,14085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:50.197171689Z,14692,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:20.187162803Z,14530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:10.196157461Z,14571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:00.389534899Z,14807,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:40.493325437Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:30.493742802Z,14659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:10.501228994Z,14762,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:10.493545661Z,14671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:20.595876679Z,15566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:50.495581783Z,13795,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:20.591114991Z,14687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:30.535692612Z,14787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:30.399834501Z,15408,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:50.392222694Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:00.399196165Z,15574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:00.513292077Z,14688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:00.294310149Z,14705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:50.402996111Z,14936,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:20.405389491Z,14947,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:40.497225033Z,14731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:40.392047463Z,14962,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:10.406447858Z,14507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:20.196513251Z,14103,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:50.391337271Z,14646,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:00.399974164Z,15527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:30.396656969Z,14716,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:40.501226493Z,15287,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:10.394628113Z,14033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:20.417822459Z,15577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:10.497819527Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:10.403717402Z,14023,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:50.600211744Z,14017,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:20.489904486Z,14005,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:50.496814983Z,14276,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:30.295270122Z,13944,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:10.505518345Z,15386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:50.495405421Z,14718,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:30.491927838Z,13992,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:00.392107567Z,14923,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:40.395512136Z,14089,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:10.29552631Z,13920,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:00.394085722Z,14921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:10.497430612Z,13862,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:20.599541747Z,14773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:00.391519368Z,15437,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:30.400949967Z,15583,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:40.502270402Z,14971,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:30.398737221Z,14722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:40.203599689Z,14787,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:50.504534683Z,15031,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:40.395215405Z,14811,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:00.499165862Z,14126,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n,,37,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:20.496203726Z,13848,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-78n7s,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:32.146282652Z,5563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:01:32.14578999Z,5282,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:11.642776674Z,5791,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:31.642858113Z,5249,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:11.646552221Z,5905,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:21.64378672Z,4472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:41.646253564Z,6077,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:01.645152527Z,5488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:11.64435832Z,6104,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:41.646054776Z,4987,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:01.744897211Z,5480,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:21.650647905Z,5499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:11.645243015Z,5210,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:41.645803855Z,5531,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:01.648842057Z,5617,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:21.643120546Z,5585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:01:41.649757914Z,5611,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:21.643398175Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:11.645857456Z,4804,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:41.64608879Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:11.643872904Z,4974,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:11:31.746742869Z,5380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:01.646813444Z,5057,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:01.644755175Z,5475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:21.742243059Z,5263,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:01.646326079Z,5219,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:21.646186653Z,5577,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:01.647978536Z,5472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:21.645209287Z,5487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:21.645192153Z,5510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:41.646009246Z,4920,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:51.655519528Z,5933,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:01.647153595Z,5897,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:11.646780972Z,5958,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:31.65712987Z,5675,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:41.645381944Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:01.647099954Z,5456,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:58:21.645022636Z,5742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:21.647313198Z,6101,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:41.644375904Z,5266,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:01.644811377Z,5569,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:31.645957525Z,5377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:51.644239304Z,6072,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:10:31.645668666Z,5233,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:51.645458284Z,5537,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:11.644204213Z,5425,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:01.647048985Z,6076,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:21.644875606Z,5280,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:41.643758572Z,5431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:01.646828621Z,5477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:31.656343602Z,4784,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:41.646211225Z,5819,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:21.644309824Z,5040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:26:41.645803059Z,5241,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:51.643934304Z,5954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:21.643279535Z,5030,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:01.649558673Z,5254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:21.643517172Z,5834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:11.645798579Z,4728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:11.643741717Z,4774,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:11.644470363Z,4985,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:31.745208357Z,5436,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:51.648014803Z,5085,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:21.748946376Z,5097,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:41.649586169Z,5561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:01.646294507Z,5420,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:58:41.650920063Z,4814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n,,38,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:59:51.64932242Z,5064,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-p9w8t,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:30.416045986Z,13380,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:40.408728058Z,13457,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:30.419103146Z,12914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:50.410568246Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:40.419560614Z,12910,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:00.408980966Z,13111,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:50.719417963Z,13809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:40.610487769Z,13703,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:30.597910644Z,13594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:20.507376307Z,13722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:10.511889353Z,13664,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:00.516961843Z,13753,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:50.623550159Z,13254,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:10.517788073Z,13694,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:00.516428Z,13744,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:30.51381454Z,13734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:00.520066026Z,13688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:30.516123057Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:46:20.921573502Z,12728,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:50.505189382Z,12554,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:20.511375826Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:50.500170395Z,12864,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:20.521602884Z,12802,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:50.821038246Z,12766,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:20.519908932Z,12431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:50.514356933Z,12515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:20.505293927Z,12647,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:50.625417417Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:20.613598274Z,12643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:50.701374738Z,12796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:20.510781061Z,12695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:30.499463562Z,12582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:00.498229193Z,12750,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:30.514701206Z,12445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:27:20.600639751Z,12669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:50.502172914Z,12813,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:20.610621588Z,12366,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:10.511700974Z,12763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:00.506733994Z,12726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:30.501866162Z,12584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:41:00.517959588Z,12487,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:30.712267703Z,12438,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:46:00.52176465Z,12584,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:30.52613755Z,12529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:20.705770898Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:50.514090778Z,12431,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:20.520543725Z,12676,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:50.525580075Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:20.51541136Z,12808,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:10.519452008Z,12407,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:40.599790464Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:10.509968451Z,12626,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:40.503930128Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:30.515461766Z,12651,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:00.520608574Z,12700,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:50.717362196Z,12421,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:20.501255255Z,12424,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:50.522319169Z,12696,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:20.506199957Z,12507,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:50.511791087Z,12602,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:20.503388515Z,12578,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:10.501502306Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:40.621599876Z,12462,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:50.502861547Z,12695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:00.517190834Z,12613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:10.516478941Z,12544,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:40.512389763Z,12300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:00.616411172Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:30.524190347Z,12493,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:54:50.505577785Z,12682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n,,39,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:50.506719966Z,12517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-xhr7n,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:40.480613648Z,13444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:30.588767561Z,12833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:40.469413507Z,12678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:50.488142949Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:10.48822636Z,13221,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:26:10.57050592Z,12940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:00.585029444Z,13794,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:27:50.67101046Z,13775,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:28:40.66969516Z,13735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:29:30.58572916Z,13016,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:20.572495207Z,13713,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:31:10.57391189Z,13776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:00.580381991Z,13699,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:40.880081001Z,13653,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:00.672537222Z,13726,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:30.785932988Z,13671,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:00.574012367Z,12954,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:20.58795363Z,12747,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:50.568980376Z,12862,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:50.771129675Z,12779,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:20.569665328Z,12861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:02:50.770413212Z,12517,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:20.486427811Z,12645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:50.581499207Z,12598,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:20.57846613Z,12497,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:50.574445991Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:20.571799917Z,12481,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:50.590738007Z,12666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:30.477715668Z,12749,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:01.072418515Z,12594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:20.570030703Z,12830,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:50.577688395Z,12682,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:33:40.573098591Z,12594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:30.672273814Z,12543,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:00.586275958Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:30.573782762Z,12545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:00.584417486Z,12421,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:30.569177936Z,12580,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:00.494634794Z,12773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:50.583134138Z,12841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:20.506111481Z,12751,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:50.480443614Z,12871,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:20.587939245Z,12566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:50.479972111Z,12499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:40.47498209Z,12701,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:10.568942787Z,12514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:06:40.485913891Z,12409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:10.488612211Z,12526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:00.587242636Z,12538,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:30.47913516Z,12514,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:20.790601466Z,12633,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:50.487988756Z,12502,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:20.471078644Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:50.685474384Z,12377,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:20.49075882Z,12428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:50.8008023Z,12511,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:30.481194215Z,13297,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:50.480117559Z,12429,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:10.481900877Z,12483,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:30.488441812Z,12724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:50.484678749Z,12645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:32:10.486842094Z,12447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:50.588027021Z,12648,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:10.480906247Z,12556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:30.484571223Z,12461,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:50.584236313Z,12806,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:20.48174506Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:50.485392007Z,12480,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:30.489542317Z,12603,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:50.483820179Z,12876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:00.771617701Z,12665,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:50.484045787Z,12673,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:30.68965595Z,12376,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n,,40,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:40.487623157Z,12510,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-q6t9j,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:10.547997965Z,13031,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:50.647407558Z,13308,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:10.449666102Z,12607,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:20.451093648Z,12874,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:18:20.73948129Z,13234,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:19:10.648140091Z,12769,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:00.530274038Z,12880,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:20:50.645122768Z,13172,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:40.664409506Z,12979,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:22:30.549757835Z,12740,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:20.531774199Z,12934,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:24:10.541388074Z,13033,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:00.54935512Z,13499,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:25:50.759997402Z,13091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:00.561718995Z,13767,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:20.554870348Z,13526,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:41:50.650428014Z,13755,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:44:20.534968317Z,12878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:40.554028353Z,12801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:10.544235569Z,12600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:52:30.556292669Z,12579,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:53:20.631445076Z,12777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:10.541763888Z,12876,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:00.532950739Z,12667,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:40.549928218Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:58:10.547165751Z,12878,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:00:40.547016135Z,12527,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:10.661139975Z,12742,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:40.540469766Z,12369,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:10.549638887Z,12396,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:10:40.547941505Z,12566,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:10.54108036Z,12702,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:15:40.566439459Z,12754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:18:10.549401474Z,12841,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:00.653654157Z,12684,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:20.553674765Z,12834,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:22:50.547075416Z,12641,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:20.643775347Z,12688,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:40.531837286Z,12475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:10.531284115Z,12620,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:00.550553375Z,12413,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:50.530612321Z,12650,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:38:20.546588558Z,12530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:50.530312537Z,12567,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:20.534813494Z,12921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:00.549729912Z,12776,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:50.5346712Z,12546,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:20.55566519Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:10.553159333Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:40.588731782Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:10.553907961Z,12391,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:40.528964031Z,12452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:10.565971028Z,12387,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:02:00.538352617Z,12326,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:04:30.630363595Z,12622,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:00.544918263Z,12414,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:09:30.547943131Z,12597,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:11:20.574479782Z,12373,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:13:50.546401326Z,12571,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:15:40.628937558Z,12801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:10.530202131Z,12256,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:40.528837912Z,12470,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:10.54546175Z,12771,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:25:40.530102264Z,12590,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:10.528434759Z,12814,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:00.533648051Z,12600,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:30:20.557005308Z,12608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:30.542944435Z,12659,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:10.528105527Z,12167,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:20.528384714Z,12494,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:30.553269333Z,12476,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:50.637604269Z,12365,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:31.050943628Z,12658,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:10.552201867Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:50.552022267Z,12608,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:30.545549635Z,12534,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:10.632748933Z,12678,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:40.534815906Z,12714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:50.534121348Z,12544,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n,,41,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:10.630118573Z,12477,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6pqwb,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:00:30.41058236Z,14821,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:02:10.406557463Z,14758,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:30.318102141Z,14756,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:40.410566269Z,14765,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:10:00.410529361Z,13856,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:10.416068228Z,14048,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:13:00.414291175Z,14657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:15:30.412754965Z,14777,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:21:20.51537053Z,14861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:23:10.415381783Z,15570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:30:30.516053344Z,14029,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:30.41216645Z,14019,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:34:30.409834227Z,14873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:50.419963579Z,14823,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:37:40.316890266Z,14739,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:00.425430235Z,14681,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:50.532706434Z,14723,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:10.612827102Z,14627,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:40.310603129Z,13973,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:30.414752006Z,14091,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:50.207173332Z,15287,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:40.525920951Z,14943,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:30.412068586Z,15428,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:51:50.409752037Z,14226,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:54:00.315172422Z,13926,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:30.518514384Z,14683,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:50.413154175Z,14719,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:03:40.411639302Z,14809,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:05:50.425165166Z,14633,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:06:50.316222517Z,14081,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:13:40.41241481Z,15501,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:20.510498044Z,14073,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:20:20.41077143Z,14720,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:23:20.518769819Z,15463,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:10.414413635Z,14754,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:29:30.517101075Z,15594,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:10.415907569Z,14666,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:30.509823471Z,15197,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:20.435202919Z,15348,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:50.317712971Z,15475,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:30.419756989Z,14561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:20.412066273Z,14010,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:50.407572974Z,14519,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:20.421312079Z,14764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:50.210339956Z,13931,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:20.411852082Z,14884,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:50.412055707Z,15542,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:00.410466202Z,14861,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:30.511217102Z,14730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:50.616620805Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:57:30.512958021Z,14815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:40.410044023Z,14906,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:50.513961818Z,13833,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:30.413714172Z,14760,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:10.50956254Z,14040,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:10.417834355Z,15492,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:18:50.413191781Z,14735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:21:50.420761367Z,14582,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:10.416206389Z,15292,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:52.195862189Z,5914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:50.408635251Z,13796,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:31:20.415244501Z,14529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:33:00.447801794Z,13909,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:10.516323011Z,14084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:20.520846149Z,14698,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:42:10.407141796Z,15588,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:44:20.430459575Z,14772,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:45:30.407041306Z,14714,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:50.421481129Z,15460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n,,42,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:10.422336373Z,15323,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-znt4h,03d01b74c8e09000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,43,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:12:38.73971619Z,12472,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-j664w,043502a6825c5000,500\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:03:22.146279748Z,5386,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:22.151471718Z,5419,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:22.153224112Z,5902,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:06:22.157787105Z,5630,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:07:22.15007136Z,5264,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:22.150267031Z,5730,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:42.149811483Z,5168,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:32:21.75042711Z,5724,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:35:51.657907241Z,4960,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:31.64994704Z,4792,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:39:51.649814367Z,5474,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:42:31.646391025Z,5452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:48:31.65123739Z,5869,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:55:51.652746112Z,5913,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:41.648834719Z,4900,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:08:41.649933423Z,5606,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:31.752913229Z,5545,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:11.752162462Z,5786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:31.657026454Z,5593,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:21.648586234Z,5445,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:25:51.647969653Z,4828,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:21.647728223Z,5084,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:51.650490404Z,5657,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:30:11.75810744Z,5454,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:41.750599635Z,5613,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:34:41.750321537Z,4965,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:35:21.649182047Z,5764,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:36:41.651403549Z,5914,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:40:51.687255118Z,6011,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:43:31.652650438Z,4768,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:51.653156549Z,5281,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:45:31.647977633Z,4980,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:48:11.751770036Z,5252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:50:41.648155682Z,5530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:52:51.651863642Z,5446,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:53:41.652987546Z,5844,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:55:01.749968073Z,5645,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:11.652748062Z,5453,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:01:11.649081836Z,5530,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:51.649305518Z,4773,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:07:11.653935812Z,5687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:01.651344536Z,5427,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:14:51.64892955Z,5443,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:16:51.650462218Z,5417,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:20:41.651431032Z,6050,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:23:21.649658495Z,6181,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:28:01.651680386Z,5556,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:34:31.75291458Z,4899,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:35:11.74914845Z,5924,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:37:11.651022007Z,5912,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:21.749818873Z,5227,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:21.649656069Z,5883,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:46:11.750674006Z,6037,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:47:41.65063636Z,4654,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:51.64912494Z,6246,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:49:11.649542366Z,4643,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:31.649110447Z,6009,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:01.760356971Z,4452,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:53:51.681914369Z,5252,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n,,44,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:31.650598369Z,5300,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043941ef08a63000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:20.372789116Z,13075,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:50.468447423Z,12839,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:00.476375512Z,12563,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:20.370363416Z,13002,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:11:30.665880148Z,12398,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:00.577079901Z,13132,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:16:50.552352631Z,12824,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:17:40.558245433Z,12812,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:33:50.76062094Z,13733,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:36:20.552650855Z,13858,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:38:10.551364342Z,13734,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:40:40.55321911Z,13801,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:43:10.662488511Z,13695,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:45:40.566964203Z,12921,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:47:30.558074283Z,12786,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:50:00.762104581Z,12529,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:57:00.712371156Z,12940,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:59:30.651361917Z,12815,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:04:30.571587197Z,12409,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:07:00.666732938Z,12574,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:09:30.570306228Z,12781,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:12:00.562420817Z,12537,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:14:30.574764024Z,12687,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:17:00.558146842Z,12668,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:19:30.776992224Z,12669,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:21:40.564801921Z,12585,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:24:10.564966212Z,12661,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:26:40.549944769Z,12459,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:28:30.569109067Z,12905,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:31:00.565622119Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:32:50.567083078Z,12873,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:37:10.649327692Z,12748,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:39:40.561401004Z,12672,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:42:10.550406662Z,12557,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:44:40.566822284Z,12339,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:47:10.549447088Z,12575,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:49:00.55097345Z,12570,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:51:30.767101707Z,12683,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:54:00.568913295Z,12495,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:56:30.548903273Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T12:59:00.565379542Z,12605,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:00:50.592647775Z,12444,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:03:20.552878012Z,12460,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:05:50.550600305Z,12515,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:08:20.554218836Z,12561,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:12:40.568583225Z,12354,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:17:00.668009266Z,12439,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:19:30.552754666Z,12486,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:22:00.581724937Z,12712,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:24:30.56320607Z,12508,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:27:00.567529788Z,12623,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:29:30.567121391Z,12679,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:36:50.571293509Z,12469,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:38:20.552148362Z,12685,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:39:30.864484679Z,12670,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:40:40.564819902Z,12705,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:41:50.55828083Z,12731,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:43:20.56808664Z,12628,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:48:00.572359625Z,12484,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:50:50.562025136Z,12488,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:51:30.581412021Z,12722,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:52:40.649498775Z,12735,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:55:00.568727137Z,12447,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n,,45,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T13:56:00.879036783Z,12763,req_bytes,http_request,/api/v2/write,gateway-77ff9ccb7d-6rltl,043502a6825c5000,204\n\n#group,false,false,true,true,false,false,true,true,true,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string\n#default,_result,,,,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,endpoint,hostname,org_id,status\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:04:00.464241913Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:05:50.453929422Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:08:40.56350665Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n,,46,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,2019-08-01T11:09:00.464069692Z,10000,req_bytes,http_request,/api/v2/write,gateway-internal-77ff9ccb7d-p9w8t,03d01b74c8e09000,204\n\"\n\noutData = \"\n#group,false,false,true,true,false,false\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,long,dateTime:RFC3339\n#default,writes_b,,,,,\n,result,table,_start,_stop,writes_b,_time\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,5362208,2019-08-01T12:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,5369845,2019-08-01T13:00:00Z\n,,0,2019-08-01T11:00:00Z,2019-08-01T14:00:00Z,5343520,2019-08-01T14:00:00Z\n\"\n\n_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")\n\ntest get_writes_usage = () =>\n\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: _f})", Start: ast.Position{ Column: 1, Line: 1, @@ -10421,7 +10247,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3362, }, File: "writes_test.flux", - Source: "_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")", + Source: "_f = (table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")", Start: ast.Position{ Column: 1, Line: 3348, @@ -10455,7 +10281,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3362, }, File: "writes_test.flux", - Source: "(table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")", + Source: "(table=<-) => table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")", Start: ast.Position{ Column: 6, Line: 3348, @@ -10669,7 +10495,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3357, }, File: "writes_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )", Start: ast.Position{ Column: 20, Line: 3348, @@ -10682,11 +10508,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 85, + Column: 46, Line: 3356, }, File: "writes_test.flux", - Source: "fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)", + Source: "fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/", Start: ast.Position{ Column: 15, Line: 3350, @@ -10698,11 +10524,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 85, + Column: 46, Line: 3356, }, File: "writes_test.flux", - Source: "fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)", + Source: "fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/", Start: ast.Position{ Column: 15, Line: 3350, @@ -10732,11 +10558,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 85, + Column: 46, Line: 3356, }, File: "writes_test.flux", - Source: "(r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)", + Source: "(r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/", Start: ast.Position{ Column: 19, Line: 3350, @@ -10748,11 +10574,11 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 85, + Column: 46, Line: 3356, }, File: "writes_test.flux", - Source: "r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)", + Source: "r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/", Start: ast.Position{ Column: 9, Line: 3351, @@ -11277,285 +11103,93 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ }, }, Operator: 1, - Right: &ast.ParenExpression{ + Right: &ast.BinaryExpression{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 85, + Column: 46, Line: 3356, }, File: "writes_test.flux", - Source: "(strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)", + Source: "r.hostname !~ /^gateway-internal/", Start: ast.Position{ Column: 13, Line: 3356, }, }, }, - Expression: &ast.BinaryExpression{ + Left: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 84, + Column: 23, Line: 3356, }, File: "writes_test.flux", - Source: "strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true", + Source: "r.hostname", Start: ast.Position{ - Column: 14, + Column: 13, Line: 3356, }, }, }, - Left: &ast.CallExpression{ - Arguments: []ast.Expression{&ast.ObjectExpression{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 75, - Line: 3356, - }, - File: "writes_test.flux", - Source: "v: r.hostname, substr: \"gateway-internal\"", - Start: ast.Position{ - Column: 34, - Line: 3356, - }, - }, - }, - Properties: []*ast.Property{&ast.Property{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 47, - Line: 3356, - }, - File: "writes_test.flux", - Source: "v: r.hostname", - Start: ast.Position{ - Column: 34, - Line: 3356, - }, - }, - }, - Key: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 35, - Line: 3356, - }, - File: "writes_test.flux", - Source: "v", - Start: ast.Position{ - Column: 34, - Line: 3356, - }, - }, - }, - Name: "v", - }, - Value: &ast.MemberExpression{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 47, - Line: 3356, - }, - File: "writes_test.flux", - Source: "r.hostname", - Start: ast.Position{ - Column: 37, - Line: 3356, - }, - }, - }, - Object: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 38, - Line: 3356, - }, - File: "writes_test.flux", - Source: "r", - Start: ast.Position{ - Column: 37, - Line: 3356, - }, - }, - }, - Name: "r", - }, - Property: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 47, - Line: 3356, - }, - File: "writes_test.flux", - Source: "hostname", - Start: ast.Position{ - Column: 39, - Line: 3356, - }, - }, - }, - Name: "hostname", - }, - }, - }, &ast.Property{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 75, - Line: 3356, - }, - File: "writes_test.flux", - Source: "substr: \"gateway-internal\"", - Start: ast.Position{ - Column: 49, - Line: 3356, - }, - }, - }, - Key: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 55, - Line: 3356, - }, - File: "writes_test.flux", - Source: "substr", - Start: ast.Position{ - Column: 49, - Line: 3356, - }, - }, - }, - Name: "substr", - }, - Value: &ast.StringLiteral{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 75, - Line: 3356, - }, - File: "writes_test.flux", - Source: "\"gateway-internal\"", - Start: ast.Position{ - Column: 57, - Line: 3356, - }, - }, - }, - Value: "gateway-internal", - }, - }}, - With: nil, - }}, + Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 76, + Column: 14, Line: 3356, }, File: "writes_test.flux", - Source: "strings.containsStr(v: r.hostname, substr: \"gateway-internal\")", + Source: "r", Start: ast.Position{ - Column: 14, + Column: 13, Line: 3356, }, }, }, - Callee: &ast.MemberExpression{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 33, - Line: 3356, - }, - File: "writes_test.flux", - Source: "strings.containsStr", - Start: ast.Position{ - Column: 14, - Line: 3356, - }, - }, - }, - Object: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 21, - Line: 3356, - }, - File: "writes_test.flux", - Source: "strings", - Start: ast.Position{ - Column: 14, - Line: 3356, - }, - }, - }, - Name: "strings", - }, - Property: &ast.Identifier{ - BaseNode: ast.BaseNode{ - Errors: nil, - Loc: &ast.SourceLocation{ - End: ast.Position{ - Column: 33, - Line: 3356, - }, - File: "writes_test.flux", - Source: "containsStr", - Start: ast.Position{ - Column: 22, - Line: 3356, - }, - }, - }, - Name: "containsStr", - }, - }, + Name: "r", }, - Operator: 18, - Right: &ast.Identifier{ + Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ - Column: 84, + Column: 23, Line: 3356, }, File: "writes_test.flux", - Source: "true", + Source: "hostname", Start: ast.Position{ - Column: 80, + Column: 15, Line: 3356, }, }, }, - Name: "true", + Name: "hostname", + }, + }, + Operator: 20, + Right: &ast.RegexpLiteral{ + BaseNode: ast.BaseNode{ + Errors: nil, + Loc: &ast.SourceLocation{ + End: ast.Position{ + Column: 46, + Line: 3356, + }, + File: "writes_test.flux", + Source: "/^gateway-internal/", + Start: ast.Position{ + Column: 27, + Line: 3356, + }, + }, }, + Value: regexp.MustCompile("^gateway-internal"), }, }, }, @@ -11607,7 +11241,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3357, }, File: "writes_test.flux", - Source: "filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )", + Source: "filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )", Start: ast.Position{ Column: 8, Line: 3350, @@ -11642,7 +11276,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3358, }, File: "writes_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()", Start: ast.Position{ Column: 20, Line: 3348, @@ -11694,7 +11328,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3359, }, File: "writes_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)", Start: ast.Position{ Column: 20, Line: 3348, @@ -11871,7 +11505,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3360, }, File: "writes_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)", Start: ast.Position{ Column: 20, Line: 3348, @@ -12045,7 +11679,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3361, }, File: "writes_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})", Start: ast.Position{ Column: 20, Line: 3348, @@ -12220,7 +11854,7 @@ var FluxTestPackages = []*ast.Package{&ast.Package{ Line: 3362, }, File: "writes_test.flux", - Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and (strings.containsStr(v: r.hostname, substr: \"gateway-internal\") != true)\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")", + Source: "table\n |> range(start: 2019-08-01T11:00:00Z, stop: 2019-08-01T14:00:00Z)\n |> filter(fn: (r) =>\n r.org_id == \"03d01b74c8e09000\"\n and r._measurement == \"http_request\"\n and r._field == \"req_bytes\"\n and r.endpoint == \"/api/v2/write\"\n and r.status == \"204\"\n and r.hostname !~ /^gateway-internal/\n )\n |> group()\n |> aggregateWindow(every: 1h, fn: sum)\n |> fill(column: \"_value\", value: 0)\n |> rename(columns: {_value: \"writes_b\"})\n |> yield(name: \"writes_b\")", Start: ast.Position{ Column: 20, Line: 3348, diff --git a/stdlib/testing/usage/writes_test.flux b/stdlib/testing/usage/writes_test.flux index 22d134d27a..3903d3544f 100644 --- a/stdlib/testing/usage/writes_test.flux +++ b/stdlib/testing/usage/writes_test.flux @@ -3353,7 +3353,7 @@ _f = (table=<-) => table and r._field == "req_bytes" and r.endpoint == "/api/v2/write" and r.status == "204" - and (strings.containsStr(v: r.hostname, substr: "gateway-internal") != true) + and r.hostname !~ /^gateway-internal/ ) |> group() |> aggregateWindow(every: 1h, fn: sum) From 4cc0db2a0cbcd05042041915da31f68e83123388 Mon Sep 17 00:00:00 2001 From: "Christopher M. Wolff" Date: Mon, 2 Dec 2019 12:11:09 -0800 Subject: [PATCH 16/19] fix(libflux/semantic/parser): allow "_" in type expressions (#2210) --- libflux/src/semantic/parser/grammar.md | 2 +- libflux/src/semantic/parser/mod.rs | 86 +++++++++++++++++++++++++- 2 files changed, 84 insertions(+), 4 deletions(-) diff --git a/libflux/src/semantic/parser/grammar.md b/libflux/src/semantic/parser/grammar.md index 92dd895051..455f200f15 100644 --- a/libflux/src/semantic/parser/grammar.md +++ b/libflux/src/semantic/parser/grammar.md @@ -41,6 +41,6 @@ BOOL = 'bool' DURATION = 'duration' TIME = 'time' REGEXP = 'regexp' -IDENTIFIER = [a-zA-Z] ([0-9a-zA-Z])* +IDENTIFIER = [a-zA-Z_] ([0-9a-zA-Z_])* WHITESPACE = [ \t\r\n]+ -> skip ``` \ No newline at end of file diff --git a/libflux/src/semantic/parser/mod.rs b/libflux/src/semantic/parser/mod.rs index 48f7e97c02..9a3f766169 100644 --- a/libflux/src/semantic/parser/mod.rs +++ b/libflux/src/semantic/parser/mod.rs @@ -88,7 +88,7 @@ impl Lexer<'_> { match self.source.next() { None => None, Some(letter) => { - if letter.is_alphanumeric() { + if is_id_char(letter) { self.current_string.push(letter); } Some(letter) @@ -122,7 +122,7 @@ impl Lexer<'_> { fn keyword_or_ident(&mut self) -> TokenType { while let Some(letter) = self.source.peek() { - if letter.is_alphanumeric() { + if is_id_char(*letter) { self.next(); continue; } @@ -146,10 +146,18 @@ impl Lexer<'_> { } } +fn is_id_char(c: char) -> bool { + if c.is_alphanumeric() { + true + } else { + c.eq(&'_') + } +} + // lex_token lexes and returns a single token fn lex_token(lexer: &mut Lexer) -> Option { match lexer.next() { - Some(letter) if letter.is_alphanumeric() => Some(lexer.keyword_or_ident()), + Some(letter) if is_id_char(letter) => Some(lexer.keyword_or_ident()), Some(letter) if letter.is_whitespace() => Some(TokenType::WHITESPACE), Some(letter) if letter == '{' => Some(TokenType::LEFTCURLYBRAC), Some(letter) if letter == '}' => Some(TokenType::RIGHTCURLYBRAC), @@ -1017,6 +1025,33 @@ mod tests { }; assert_eq!(Ok(output), parse(text)); + + let text = "forall [] (_p1: int, ?p_2: int, <-_p3: string) -> int"; + let req = { + let mut m = HashMap::new(); + m.insert("_p1".to_string(), MonoType::Int); + m + }; + let opt = { + let mut m = HashMap::new(); + m.insert("p_2".to_string(), MonoType::Int); + m + }; + let pipe = Some(Property { + k: "_p3".to_string(), + v: MonoType::String, + }); + let output = PolyType { + vars: vec![], + cons: HashMap::new(), + expr: MonoType::Fun(Box::new(Function { + req, + opt, + pipe, + retn: MonoType::Int, + })), + }; + assert_eq!(Ok(output), parse(text)); } #[test] @@ -1132,6 +1167,28 @@ mod tests { }; assert_eq!(Ok(output), parse(text)); + + let text = "forall [] {_label: int | lab_el: string}"; + + let output = PolyType { + vars: vec![], + cons: HashMap::new(), + expr: MonoType::Row(Box::new(Row::Extension { + head: Property { + k: "_label".to_string(), + v: MonoType::Int, + }, + tail: MonoType::Row(Box::new(Row::Extension { + head: Property { + k: "lab_el".to_string(), + v: MonoType::String, + }, + tail: MonoType::Row(Box::new(Row::Empty)), + })), + })), + }; + + assert_eq!(Ok(output), parse(text)); } #[test] @@ -2328,5 +2385,28 @@ mod tests { ], keyword ); + + let ids = lex("_foo foo_ fo_o"); + assert_eq!( + vec![ + Token { + token_type: TokenType::IDENTIFIER, + text: Some("_foo".to_string()), + }, + Token { + token_type: TokenType::IDENTIFIER, + text: Some("foo_".to_string()), + }, + Token { + token_type: TokenType::IDENTIFIER, + text: Some("fo_o".to_string()), + }, + Token { + token_type: TokenType::EOF, + text: None + }, + ], + ids + ); } } From a0ee02656b60321890e0084dd9fe8035599e65bc Mon Sep 17 00:00:00 2001 From: "Christopher M. Wolff" Date: Mon, 2 Dec 2019 15:18:12 -0800 Subject: [PATCH 17/19] fix(semantic): add bytes monotype to Rust semantic module (#2213) --- .../flatbuffers/semantic_generated.rs | 13 ++-- libflux/src/semantic/flatbuffers/types.rs | 7 ++ libflux/src/semantic/parser/grammar.md | 3 +- libflux/src/semantic/parser/mod.rs | 73 +++++++++++++++++-- libflux/src/semantic/tests.rs | 35 +++++++++ libflux/src/semantic/types.rs | 25 +++++-- semantic/internal/fbsemantic/Type.go | 2 + semantic/semantic.fbs | 1 + 8 files changed, 142 insertions(+), 17 deletions(-) diff --git a/libflux/src/semantic/flatbuffers/semantic_generated.rs b/libflux/src/semantic/flatbuffers/semantic_generated.rs index 804f62799d..362d09e5b8 100644 --- a/libflux/src/semantic/flatbuffers/semantic_generated.rs +++ b/libflux/src/semantic/flatbuffers/semantic_generated.rs @@ -102,11 +102,12 @@ pub enum Type { Duration = 5, Time = 6, Regexp = 7, + Bytes = 8, } const ENUM_MIN_TYPE: u8 = 0; -const ENUM_MAX_TYPE: u8 = 7; +const ENUM_MAX_TYPE: u8 = 8; impl<'a> flatbuffers::Follow<'a> for Type { type Inner = Self; @@ -140,7 +141,7 @@ impl flatbuffers::Push for Type { } #[allow(non_camel_case_types)] -const ENUM_VALUES_TYPE:[Type; 8] = [ +const ENUM_VALUES_TYPE:[Type; 9] = [ Type::Bool, Type::Int, Type::Uint, @@ -148,11 +149,12 @@ const ENUM_VALUES_TYPE:[Type; 8] = [ Type::String, Type::Duration, Type::Time, - Type::Regexp + Type::Regexp, + Type::Bytes ]; #[allow(non_camel_case_types)] -const ENUM_NAMES_TYPE:[&'static str; 8] = [ +const ENUM_NAMES_TYPE:[&'static str; 9] = [ "Bool", "Int", "Uint", @@ -160,7 +162,8 @@ const ENUM_NAMES_TYPE:[&'static str; 8] = [ "String", "Duration", "Time", - "Regexp" + "Regexp", + "Bytes" ]; pub fn enum_name_type(e: Type) -> &'static str { diff --git a/libflux/src/semantic/flatbuffers/types.rs b/libflux/src/semantic/flatbuffers/types.rs index 9f686974c0..7377b3f023 100644 --- a/libflux/src/semantic/flatbuffers/types.rs +++ b/libflux/src/semantic/flatbuffers/types.rs @@ -107,6 +107,7 @@ impl From> for MonoType { fb::Type::Duration => MonoType::Duration, fb::Type::Time => MonoType::Time, fb::Type::Regexp => MonoType::Regexp, + fb::Type::Bytes => MonoType::Bytes, } } } @@ -300,6 +301,11 @@ fn build_type<'a>( let v = fb::Basic::create(builder, &a); (v.as_union_value(), fb::MonoType::Basic) } + MonoType::Bytes => { + let a = fb::BasicArgs { t: fb::Type::Bytes }; + let v = fb::Basic::create(builder, &a); + (v.as_union_value(), fb::MonoType::Basic) + } MonoType::Var(tvr) => { let offset = build_var(builder, tvr); (offset.as_union_value(), fb::MonoType::Var) @@ -495,6 +501,7 @@ mod tests { test_serde("forall [] duration"); test_serde("forall [] time"); test_serde("forall [] regexp"); + test_serde("forall [] bytes"); } #[test] fn serde_array_type() { diff --git a/libflux/src/semantic/parser/grammar.md b/libflux/src/semantic/parser/grammar.md index 455f200f15..de1e215461 100644 --- a/libflux/src/semantic/parser/grammar.md +++ b/libflux/src/semantic/parser/grammar.md @@ -20,7 +20,7 @@ kind = IDENTIFIER monotype = type_var | primitive | array | row | function type_var = 't' ([0-9])* -primitive = INT | FLOAT | STRING | BOOL | DURATION | TIME | REGEXP +primitive = INT | FLOAT | STRING | BOOL | DURATION | TIME | REGEXP | BYTES array = '[' monotype ']' row = '{' properties? '}' function = '(' arguments? ')' '->' monotype @@ -41,6 +41,7 @@ BOOL = 'bool' DURATION = 'duration' TIME = 'time' REGEXP = 'regexp' +BYTES = 'bytes' IDENTIFIER = [a-zA-Z_] ([0-9a-zA-Z_])* WHITESPACE = [ \t\r\n]+ -> skip ``` \ No newline at end of file diff --git a/libflux/src/semantic/parser/mod.rs b/libflux/src/semantic/parser/mod.rs index 9a3f766169..f0bf612aaf 100644 --- a/libflux/src/semantic/parser/mod.rs +++ b/libflux/src/semantic/parser/mod.rs @@ -21,6 +21,7 @@ pub enum TokenType { DURATION, TIME, REGEXP, + BYTES, // Operators LEFTCURLYBRAC, @@ -141,6 +142,7 @@ impl Lexer<'_> { "duration" => TokenType::DURATION, "time" => TokenType::TIME, "regexp" => TokenType::REGEXP, + "bytes" => TokenType::BYTES, _ => TokenType::IDENTIFIER, } } @@ -416,6 +418,10 @@ impl Parser<'_> { self.next(); Ok(MonoType::Regexp) } + TokenType::BYTES => { + self.next(); + Ok(MonoType::Bytes) + } _ => Err("Not a valid basic type"), } } @@ -455,7 +461,21 @@ impl Parser<'_> { let mut req_args = HashMap::new(); let mut opt_args = HashMap::new(); let mut pipe_arg = None; + let mut need_comma = false; loop { + if token.token_type == TokenType::RIGHTPAREN { + // end of arguments + break; + } + + if need_comma { + if token.token_type == TokenType::COMMA { + token = self.next(); + } else { + return Err("expected comma between arguments"); + } + } + if token.token_type == TokenType::IDENTIFIER { if let Ok(arg) = self.parse_required_optional(&token) { req_args.insert(arg.0, arg.1); @@ -482,12 +502,9 @@ impl Parser<'_> { } else { return Err("Invalid arguments for this function."); } - token = self.next(); // check if next is right paren or comma - if token.token_type != TokenType::COMMA { - // if the next token is not comma, must be right paren - break; - } - token = self.next(); // if its a comma, then there are more args to parse + + token = self.next(); + need_comma = true; } if token.token_type != TokenType::RIGHTPAREN { @@ -771,6 +788,14 @@ mod tests { }; assert_eq!(Ok(output), parse(text)); + + let text = "forall [] bytes"; + let output = PolyType { + vars: vec![], + cons: HashMap::new(), + expr: MonoType::Bytes, + }; + assert_eq!(Ok(output), parse(text)); } #[test] @@ -1052,6 +1077,19 @@ mod tests { })), }; assert_eq!(Ok(output), parse(text)); + + let text = "forall [] () -> bytes"; + let output = PolyType { + vars: vec![], + cons: HashMap::new(), + expr: MonoType::Fun(Box::new(Function { + req: HashMap::new(), + opt: HashMap::new(), + pipe: None, + retn: MonoType::Bytes, + })), + }; + assert_eq!(Ok(output), parse(text)); } #[test] @@ -2408,5 +2446,28 @@ mod tests { ], ids ); + + let toks = lex("byte bytes bytess"); + assert_eq!( + vec![ + Token { + token_type: TokenType::IDENTIFIER, + text: Some("byte".to_string()), + }, + Token { + token_type: TokenType::BYTES, + text: Some("bytes".to_string()), + }, + Token { + token_type: TokenType::IDENTIFIER, + text: Some("bytess".to_string()), + }, + Token { + token_type: TokenType::EOF, + text: None + }, + ], + toks, + ); } } diff --git a/libflux/src/semantic/tests.rs b/libflux/src/semantic/tests.rs index 8cc98481bb..835c80958b 100644 --- a/libflux/src/semantic/tests.rs +++ b/libflux/src/semantic/tests.rs @@ -511,6 +511,14 @@ fn string_interpolation() { "Hello, ${name}!" "#, } + test_infer_err! { + env: map![ + "name" => "forall [] bytes", + ], + src: r#" + "Hello, ${name}!" + "#, + } test_infer_err! { env: map![ "name" => "forall [] [int]", @@ -582,6 +590,24 @@ fn array_lit() { "a" => "forall [] [regexp]", ], } + test_infer! { + env: map![ + "bs" => "forall [] bytes", + ], + src: "a = [bs, bs, bs]", + exp: map![ + "a" => "forall [] [bytes]", + ], + } + test_infer! { + env: map![ + "f" => "forall [] () -> bytes", + ], + src: "a = [f(), f(), f()]", + exp: map![ + "a" => "forall [] [bytes]", + ], + } test_infer! { src: "a = [{a:0, b:0.0}, {a:1, b:1.1}]", exp: map![ @@ -686,6 +712,15 @@ fn array_expr() { "b" => "forall [] [regexp]", ], } + test_infer! { + env: map![ + "a" => "forall [] bytes", + ], + src: src, + exp: map![ + "b" => "forall [] [bytes]", + ], + } test_infer! { env: map![ "a" => "forall [] {a: int | b: float}", diff --git a/libflux/src/semantic/types.rs b/libflux/src/semantic/types.rs index 5a4ac86b9e..a6ea8fe986 100644 --- a/libflux/src/semantic/types.rs +++ b/libflux/src/semantic/types.rs @@ -261,6 +261,7 @@ pub enum MonoType { Duration, Time, Regexp, + Bytes, Var(Tvar), Arr(Box), Row(Box), @@ -278,6 +279,7 @@ impl fmt::Display for MonoType { MonoType::Duration => f.write_str("duration"), MonoType::Time => f.write_str("time"), MonoType::Regexp => f.write_str("regexp"), + MonoType::Bytes => f.write_str("bytes"), MonoType::Var(var) => var.fmt(f), MonoType::Arr(arr) => arr.fmt(f), MonoType::Row(obj) => obj.fmt(f), @@ -296,7 +298,8 @@ impl Substitutable for MonoType { | MonoType::String | MonoType::Duration | MonoType::Time - | MonoType::Regexp => self, + | MonoType::Regexp + | MonoType::Bytes => self, MonoType::Var(tvr) => sub.apply(tvr), MonoType::Arr(arr) => MonoType::Arr(Box::new(arr.apply(sub))), MonoType::Row(obj) => MonoType::Row(Box::new(obj.apply(sub))), @@ -312,7 +315,8 @@ impl Substitutable for MonoType { | MonoType::String | MonoType::Duration | MonoType::Time - | MonoType::Regexp => Vec::new(), + | MonoType::Regexp + | MonoType::Bytes => Vec::new(), MonoType::Var(tvr) => vec![*tvr], MonoType::Arr(arr) => arr.free_vars(), MonoType::Row(obj) => obj.free_vars(), @@ -331,7 +335,8 @@ impl MaxTvar for MonoType { | MonoType::String | MonoType::Duration | MonoType::Time - | MonoType::Regexp => Tvar(0), + | MonoType::Regexp + | MonoType::Bytes => Tvar(0), MonoType::Var(tvr) => tvr.max_tvar(), MonoType::Arr(arr) => arr.max_tvar(), MonoType::Row(obj) => obj.max_tvar(), @@ -361,7 +366,8 @@ impl MonoType { | (MonoType::String, MonoType::String) | (MonoType::Duration, MonoType::Duration) | (MonoType::Time, MonoType::Time) - | (MonoType::Regexp, MonoType::Regexp) => Ok(Substitution::empty()), + | (MonoType::Regexp, MonoType::Regexp) + | (MonoType::Bytes, MonoType::Bytes) => Ok(Substitution::empty()), (MonoType::Var(tv), t) => tv.unify(t, cons), (t, MonoType::Var(tv)) => tv.unify(t, cons), (MonoType::Arr(t), MonoType::Arr(s)) => t.unify(*s, cons, f), @@ -416,6 +422,10 @@ impl MonoType { _ => Err(Error::cannot_constrain(&self, with)), }, MonoType::Regexp => Err(Error::cannot_constrain(&self, with)), + MonoType::Bytes => match with { + Kind::Equatable => Ok(Substitution::empty()), + _ => Err(Error::cannot_constrain(&self, with)), + }, MonoType::Var(tvr) => { tvr.constrain(with, cons); Ok(Substitution::empty()) @@ -435,7 +445,8 @@ impl MonoType { | MonoType::String | MonoType::Duration | MonoType::Time - | MonoType::Regexp => false, + | MonoType::Regexp + | MonoType::Bytes => false, MonoType::Var(tvr) => tv == *tvr, MonoType::Arr(arr) => arr.contains(tv), MonoType::Row(row) => row.contains(tv), @@ -1231,6 +1242,10 @@ mod tests { assert_eq!("regexp", MonoType::Regexp.to_string()); } #[test] + fn display_type_bytes() { + assert_eq!("bytes", MonoType::Bytes.to_string()); + } + #[test] fn display_type_tvar() { assert_eq!("t10", MonoType::Var(Tvar(10)).to_string()); } diff --git a/semantic/internal/fbsemantic/Type.go b/semantic/internal/fbsemantic/Type.go index 46757fcf6c..e276cab16b 100644 --- a/semantic/internal/fbsemantic/Type.go +++ b/semantic/internal/fbsemantic/Type.go @@ -13,6 +13,7 @@ const ( TypeDuration Type = 5 TypeTime Type = 6 TypeRegexp Type = 7 + TypeBytes Type = 8 ) var EnumNamesType = map[Type]string{ @@ -24,4 +25,5 @@ var EnumNamesType = map[Type]string{ TypeDuration: "Duration", TypeTime: "Time", TypeRegexp: "Regexp", + TypeBytes: "Bytes", } diff --git a/semantic/semantic.fbs b/semantic/semantic.fbs index 6d8f92116d..bd6e89b2fd 100644 --- a/semantic/semantic.fbs +++ b/semantic/semantic.fbs @@ -17,6 +17,7 @@ enum Type : ubyte { Duration, Time, Regexp, + Bytes, } table Var { From 30748c2402cb4c363e207e241b0f09100b41aaea Mon Sep 17 00:00:00 2001 From: jlapacik Date: Mon, 2 Dec 2019 17:21:28 -0800 Subject: [PATCH 18/19] refactor(libflux): into workspace (#2209) --- .gitignore | 2 +- Makefile | 20 +-- libflux/Cargo.toml | 34 +--- libflux/scanner.c | 162 +++++++++--------- libflux/src/libflux/Cargo.toml | 34 ++++ libflux/src/{ => libflux}/ast/check/mod.rs | 0 libflux/src/{ => libflux}/ast/check/tests.rs | 0 .../ast/flatbuffers/ast_generated.rs | 0 .../src/{ => libflux}/ast/flatbuffers/mod.rs | 0 .../{ => libflux}/ast/flatbuffers/tests.rs | 0 libflux/src/{ => libflux}/ast/mod.rs | 0 libflux/src/{ => libflux}/ast/tests.rs | 0 libflux/src/{ => libflux}/ast/walk/mod.rs | 0 libflux/src/{ => libflux}/ast/walk/tests.rs | 0 libflux/{ => src/libflux}/build.rs | 8 +- libflux/src/{ => libflux}/lib.rs | 0 libflux/src/{ => libflux}/parser/mod.rs | 0 libflux/src/{ => libflux}/parser/strconv.rs | 0 libflux/src/{ => libflux}/parser/tests.rs | 0 libflux/src/{ => libflux}/scanner/mod.rs | 0 libflux/src/{ => libflux}/scanner/scanner.h | 0 libflux/src/{ => libflux}/scanner/scanner.rl | 0 libflux/src/{ => libflux}/scanner/tests.rs | 0 libflux/src/{ => libflux}/scanner/unicode.rl | 0 .../{ => libflux}/scanner/unicode.rl.COPYING | 0 libflux/src/{ => libflux}/semantic/analyze.rs | 0 libflux/src/{ => libflux}/semantic/env.rs | 0 .../{ => libflux}/semantic/flatbuffers/mod.rs | 0 .../flatbuffers/semantic_generated.rs | 0 .../semantic/flatbuffers/types.rs | 0 libflux/src/{ => libflux}/semantic/fresh.rs | 0 libflux/src/{ => libflux}/semantic/infer.rs | 0 libflux/src/{ => libflux}/semantic/mod.rs | 0 libflux/src/{ => libflux}/semantic/nodes.rs | 0 .../{ => libflux}/semantic/parser/grammar.md | 0 .../src/{ => libflux}/semantic/parser/mod.rs | 0 libflux/src/{ => libflux}/semantic/sub.rs | 0 libflux/src/{ => libflux}/semantic/tests.rs | 0 libflux/src/{ => libflux}/semantic/types.rs | 0 .../src/{ => libflux}/semantic/walk/mod.rs | 0 .../{ => libflux}/semantic/walk/test_utils.rs | 0 .../src/{ => libflux}/semantic/walk/walk.rs | 0 .../{ => libflux}/semantic/walk/walk_mut.rs | 0 .../{ => src/libflux}/tests/analyze_test.rs | 2 - 44 files changed, 132 insertions(+), 130 deletions(-) create mode 100644 libflux/src/libflux/Cargo.toml rename libflux/src/{ => libflux}/ast/check/mod.rs (100%) rename libflux/src/{ => libflux}/ast/check/tests.rs (100%) rename libflux/src/{ => libflux}/ast/flatbuffers/ast_generated.rs (100%) rename libflux/src/{ => libflux}/ast/flatbuffers/mod.rs (100%) rename libflux/src/{ => libflux}/ast/flatbuffers/tests.rs (100%) rename libflux/src/{ => libflux}/ast/mod.rs (100%) rename libflux/src/{ => libflux}/ast/tests.rs (100%) rename libflux/src/{ => libflux}/ast/walk/mod.rs (100%) rename libflux/src/{ => libflux}/ast/walk/tests.rs (100%) rename libflux/{ => src/libflux}/build.rs (85%) rename libflux/src/{ => libflux}/lib.rs (100%) rename libflux/src/{ => libflux}/parser/mod.rs (100%) rename libflux/src/{ => libflux}/parser/strconv.rs (100%) rename libflux/src/{ => libflux}/parser/tests.rs (100%) rename libflux/src/{ => libflux}/scanner/mod.rs (100%) rename libflux/src/{ => libflux}/scanner/scanner.h (100%) rename libflux/src/{ => libflux}/scanner/scanner.rl (100%) rename libflux/src/{ => libflux}/scanner/tests.rs (100%) rename libflux/src/{ => libflux}/scanner/unicode.rl (100%) rename libflux/src/{ => libflux}/scanner/unicode.rl.COPYING (100%) rename libflux/src/{ => libflux}/semantic/analyze.rs (100%) rename libflux/src/{ => libflux}/semantic/env.rs (100%) rename libflux/src/{ => libflux}/semantic/flatbuffers/mod.rs (100%) rename libflux/src/{ => libflux}/semantic/flatbuffers/semantic_generated.rs (100%) rename libflux/src/{ => libflux}/semantic/flatbuffers/types.rs (100%) rename libflux/src/{ => libflux}/semantic/fresh.rs (100%) rename libflux/src/{ => libflux}/semantic/infer.rs (100%) rename libflux/src/{ => libflux}/semantic/mod.rs (100%) rename libflux/src/{ => libflux}/semantic/nodes.rs (100%) rename libflux/src/{ => libflux}/semantic/parser/grammar.md (100%) rename libflux/src/{ => libflux}/semantic/parser/mod.rs (100%) rename libflux/src/{ => libflux}/semantic/sub.rs (100%) rename libflux/src/{ => libflux}/semantic/tests.rs (100%) rename libflux/src/{ => libflux}/semantic/types.rs (100%) rename libflux/src/{ => libflux}/semantic/walk/mod.rs (100%) rename libflux/src/{ => libflux}/semantic/walk/test_utils.rs (100%) rename libflux/src/{ => libflux}/semantic/walk/walk.rs (100%) rename libflux/src/{ => libflux}/semantic/walk/walk_mut.rs (100%) rename libflux/{ => src/libflux}/tests/analyze_test.rs (99%) diff --git a/.gitignore b/.gitignore index 2340d3bd29..f4324e6ef5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ bin vendor +target /dist .DS_Store .netrc @@ -8,7 +9,6 @@ vendor .tern-project .idea /coverage.txt -/libflux/target /libflux/pkg /libflux/site/node_modules /libflux/.cache diff --git a/Makefile b/Makefile index a20ca58b95..ee6c7884a2 100644 --- a/Makefile +++ b/Makefile @@ -39,8 +39,8 @@ GENERATED_TARGETS = \ internal/scanner/scanner.gen.go \ stdlib/packages.go \ semantic/internal/fbsemantic \ - libflux/src/ast/flatbuffers/ast_generated.rs \ - libflux/src/semantic/flatbuffers/semantic_generated.rs \ + libflux/src/libflux/ast/flatbuffers/ast_generated.rs \ + libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs \ libflux/scanner.c \ libflux/go/libflux/flux.h @@ -48,13 +48,13 @@ generate: $(GENERATED_TARGETS) ast/internal/fbast: ast/ast.fbs $(GO_GENERATE) ./ast -libflux/src/ast/flatbuffers/ast_generated.rs: ast/ast.fbs - flatc --rust -o libflux/src/ast/flatbuffers ast/ast.fbs +libflux/src/libflux/ast/flatbuffers/ast_generated.rs: ast/ast.fbs + flatc --rust -o libflux/src/libflux/ast/flatbuffers ast/ast.fbs semantic/internal/fbsemantic: semantic/semantic.fbs $(GO_GENERATE) ./semantic -libflux/src/semantic/flatbuffers/semantic_generated.rs: semantic/semantic.fbs - flatc --rust -o libflux/src/semantic/flatbuffers semantic/semantic.fbs +libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs: semantic/semantic.fbs + flatc --rust -o libflux/src/libflux/semantic/flatbuffers semantic/semantic.fbs # Force a second expansion to happen so the call to go_deps works correctly. .SECONDEXPANSION: @@ -76,7 +76,7 @@ libflux: libflux/target/debug/libflux.a # The unix sed, which is on darwin machines, has a different # command line interface than the gnu equivalent. libflux/target/debug/libflux.a: - cd libflux && $(CARGO) build $(CARGO_ARGS) + cd libflux/src/libflux && $(CARGO) build $(CARGO_ARGS) libflux/go/libflux/flux.h: libflux/include/influxdata/flux.h $(GO_GENERATE) ./libflux/go/libflux @@ -161,11 +161,11 @@ bench: release: ./release.sh -libflux/scanner.c: libflux/src/scanner/scanner.rl - ragel -C -o libflux/scanner.c libflux/src/scanner/scanner.rl +libflux/scanner.c: libflux/src/libflux/scanner/scanner.rl + ragel -C -o libflux/scanner.c libflux/src/libflux/scanner/scanner.rl libflux-wasm: - cd libflux && CC=clang AR=llvm-ar wasm-pack build --scope influxdata --dev + cd libflux/src/libflux && CC=clang AR=llvm-ar wasm-pack build --scope influxdata --dev .PHONY: generate \ clean \ diff --git a/libflux/Cargo.toml b/libflux/Cargo.toml index 6015264307..e77e12c4d6 100644 --- a/libflux/Cargo.toml +++ b/libflux/Cargo.toml @@ -1,35 +1,5 @@ -[package] -name = "flux" -version = "0.3.0" -authors = ["Nathaniel Cook "] -edition = "2018" - -[lib] -crate-type = ["rlib", "staticlib", "cdylib"] - -[features] -strict = [] - -[dependencies] -serde = "^1.0.59" -serde_derive = "^1.0.59" -serde_json = "1.0" -serde-aux = "0.6.1" -wasm-bindgen = { version = "0.2", features = ["serde-serialize"] } -chrono = { version = "0.4", features = ["serde"] } -regex = "1" -maplit = "1.0.2" -flatbuffers = "0.6.0" -derivative = "1.0.3" -walkdir = "2.2.9" - -[dev-dependencies] -colored = "1.8" -pretty_assertions = "0.6.1" - -[build-dependencies] -cc = "1.0" -bindgen = "0.49.0" +[workspace] +members = ["src/libflux"] # https://rustwasm.github.io/docs/book/reference/code-size.html#optimizing-builds-for-code-size [profile.release] diff --git a/libflux/scanner.c b/libflux/scanner.c index e7a87d51c9..e0903153e9 100644 --- a/libflux/scanner.c +++ b/libflux/scanner.c @@ -1,9 +1,9 @@ -#line 1 "libflux/src/scanner/scanner.rl" +#line 1 "libflux/src/libflux/scanner/scanner.rl" #include "scanner.h" -#line 144 "libflux/src/scanner/scanner.rl" +#line 144 "libflux/src/libflux/scanner/scanner.rl" @@ -1273,7 +1273,7 @@ static const int flux_en_main = 234; static const int flux_en_string_expr = 305; -#line 147 "libflux/src/scanner/scanner.rl" +#line 147 "libflux/src/libflux/scanner/scanner.rl" int scan( int mode, @@ -1319,7 +1319,7 @@ int scan( act = 0; } -#line 185 "libflux/src/scanner/scanner.rl" +#line 185 "libflux/src/libflux/scanner/scanner.rl" #line 1325 "libflux/scanner.c" { @@ -1409,7 +1409,7 @@ int scan( switch ( *_acts++ ) { case 0: -#line 10 "libflux/src/scanner/scanner.rl" +#line 10 "libflux/src/libflux/scanner/scanner.rl" { // We do this for every newline we find. // This allows us to return correct line/column for each token @@ -1423,19 +1423,19 @@ int scan( {te = p+1;} break; case 5: -#line 66 "libflux/src/scanner/scanner.rl" +#line 66 "libflux/src/libflux/scanner/scanner.rl" {act = 1;} break; case 6: -#line 74 "libflux/src/scanner/scanner.rl" +#line 74 "libflux/src/libflux/scanner/scanner.rl" {act = 4;} break; case 7: -#line 66 "libflux/src/scanner/scanner.rl" +#line 66 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = REGEX; {p++; goto _out; } }} break; case 8: -#line 18 "libflux/src/scanner/scanner.rl" +#line 18 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ // We do this for each newline we find in the whitespace between tokens, // so we can record the location of the first byte of a token. @@ -1444,23 +1444,23 @@ int scan( }} break; case 9: -#line 74 "libflux/src/scanner/scanner.rl" +#line 74 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ p--; {cs = 234;goto _again;} }} break; case 10: -#line 66 "libflux/src/scanner/scanner.rl" +#line 66 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = REGEX; {p++; goto _out; } }} break; case 11: -#line 69 "libflux/src/scanner/scanner.rl" +#line 69 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;} break; case 12: -#line 74 "libflux/src/scanner/scanner.rl" +#line 74 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ p--; {cs = 234;goto _again;} }} break; case 13: -#line 74 "libflux/src/scanner/scanner.rl" +#line 74 "libflux/src/libflux/scanner/scanner.rl" {{p = ((te))-1;}{ p--; {cs = 234;goto _again;} }} break; case 14: @@ -1476,187 +1476,187 @@ int scan( } break; case 15: -#line 81 "libflux/src/scanner/scanner.rl" +#line 81 "libflux/src/libflux/scanner/scanner.rl" {act = 6;} break; case 16: -#line 82 "libflux/src/scanner/scanner.rl" +#line 82 "libflux/src/libflux/scanner/scanner.rl" {act = 7;} break; case 17: -#line 83 "libflux/src/scanner/scanner.rl" +#line 83 "libflux/src/libflux/scanner/scanner.rl" {act = 8;} break; case 18: -#line 84 "libflux/src/scanner/scanner.rl" +#line 84 "libflux/src/libflux/scanner/scanner.rl" {act = 9;} break; case 19: -#line 85 "libflux/src/scanner/scanner.rl" +#line 85 "libflux/src/libflux/scanner/scanner.rl" {act = 10;} break; case 20: -#line 86 "libflux/src/scanner/scanner.rl" +#line 86 "libflux/src/libflux/scanner/scanner.rl" {act = 11;} break; case 21: -#line 87 "libflux/src/scanner/scanner.rl" +#line 87 "libflux/src/libflux/scanner/scanner.rl" {act = 12;} break; case 22: -#line 88 "libflux/src/scanner/scanner.rl" +#line 88 "libflux/src/libflux/scanner/scanner.rl" {act = 13;} break; case 23: -#line 89 "libflux/src/scanner/scanner.rl" +#line 89 "libflux/src/libflux/scanner/scanner.rl" {act = 14;} break; case 24: -#line 90 "libflux/src/scanner/scanner.rl" +#line 90 "libflux/src/libflux/scanner/scanner.rl" {act = 15;} break; case 25: -#line 91 "libflux/src/scanner/scanner.rl" +#line 91 "libflux/src/libflux/scanner/scanner.rl" {act = 16;} break; case 26: -#line 92 "libflux/src/scanner/scanner.rl" +#line 92 "libflux/src/libflux/scanner/scanner.rl" {act = 17;} break; case 27: -#line 93 "libflux/src/scanner/scanner.rl" +#line 93 "libflux/src/libflux/scanner/scanner.rl" {act = 18;} break; case 28: -#line 94 "libflux/src/scanner/scanner.rl" +#line 94 "libflux/src/libflux/scanner/scanner.rl" {act = 19;} break; case 29: -#line 95 "libflux/src/scanner/scanner.rl" +#line 95 "libflux/src/libflux/scanner/scanner.rl" {act = 20;} break; case 30: -#line 97 "libflux/src/scanner/scanner.rl" +#line 97 "libflux/src/libflux/scanner/scanner.rl" {act = 21;} break; case 31: -#line 98 "libflux/src/scanner/scanner.rl" +#line 98 "libflux/src/libflux/scanner/scanner.rl" {act = 22;} break; case 32: -#line 99 "libflux/src/scanner/scanner.rl" +#line 99 "libflux/src/libflux/scanner/scanner.rl" {act = 23;} break; case 33: -#line 100 "libflux/src/scanner/scanner.rl" +#line 100 "libflux/src/libflux/scanner/scanner.rl" {act = 24;} break; case 34: -#line 130 "libflux/src/scanner/scanner.rl" +#line 130 "libflux/src/libflux/scanner/scanner.rl" {act = 53;} break; case 35: -#line 79 "libflux/src/scanner/scanner.rl" +#line 79 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = COMMENT; {p++; goto _out; } }} break; case 36: -#line 101 "libflux/src/scanner/scanner.rl" +#line 101 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = TIME; {p++; goto _out; } }} break; case 37: -#line 102 "libflux/src/scanner/scanner.rl" +#line 102 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = STRING; {p++; goto _out; } }} break; case 38: -#line 104 "libflux/src/scanner/scanner.rl" +#line 104 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = ADD; {p++; goto _out; } }} break; case 39: -#line 105 "libflux/src/scanner/scanner.rl" +#line 105 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = SUB; {p++; goto _out; } }} break; case 40: -#line 106 "libflux/src/scanner/scanner.rl" +#line 106 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = MUL; {p++; goto _out; } }} break; case 41: -#line 108 "libflux/src/scanner/scanner.rl" +#line 108 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = MOD; {p++; goto _out; } }} break; case 42: -#line 109 "libflux/src/scanner/scanner.rl" +#line 109 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = POW; {p++; goto _out; } }} break; case 43: -#line 110 "libflux/src/scanner/scanner.rl" +#line 110 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = EQ; {p++; goto _out; } }} break; case 44: -#line 113 "libflux/src/scanner/scanner.rl" +#line 113 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = LTE; {p++; goto _out; } }} break; case 45: -#line 114 "libflux/src/scanner/scanner.rl" +#line 114 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = GTE; {p++; goto _out; } }} break; case 46: -#line 115 "libflux/src/scanner/scanner.rl" +#line 115 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = NEQ; {p++; goto _out; } }} break; case 47: -#line 116 "libflux/src/scanner/scanner.rl" +#line 116 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = REGEXEQ; {p++; goto _out; } }} break; case 48: -#line 117 "libflux/src/scanner/scanner.rl" +#line 117 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = REGEXNEQ; {p++; goto _out; } }} break; case 49: -#line 119 "libflux/src/scanner/scanner.rl" +#line 119 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = ARROW; {p++; goto _out; } }} break; case 50: -#line 120 "libflux/src/scanner/scanner.rl" +#line 120 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = PIPE_RECEIVE; {p++; goto _out; } }} break; case 51: -#line 121 "libflux/src/scanner/scanner.rl" +#line 121 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = LPAREN; {p++; goto _out; } }} break; case 52: -#line 122 "libflux/src/scanner/scanner.rl" +#line 122 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = RPAREN; {p++; goto _out; } }} break; case 53: -#line 123 "libflux/src/scanner/scanner.rl" +#line 123 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = LBRACK; {p++; goto _out; } }} break; case 54: -#line 124 "libflux/src/scanner/scanner.rl" +#line 124 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = RBRACK; {p++; goto _out; } }} break; case 55: -#line 125 "libflux/src/scanner/scanner.rl" +#line 125 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = LBRACE; {p++; goto _out; } }} break; case 56: -#line 126 "libflux/src/scanner/scanner.rl" +#line 126 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = RBRACE; {p++; goto _out; } }} break; case 57: -#line 127 "libflux/src/scanner/scanner.rl" +#line 127 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = COLON; {p++; goto _out; } }} break; case 58: -#line 128 "libflux/src/scanner/scanner.rl" +#line 128 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = PIPE_FORWARD; {p++; goto _out; } }} break; case 59: -#line 129 "libflux/src/scanner/scanner.rl" +#line 129 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = COMMA; {p++; goto _out; } }} break; case 60: -#line 18 "libflux/src/scanner/scanner.rl" +#line 18 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ // We do this for each newline we find in the whitespace between tokens, // so we can record the location of the first byte of a token. @@ -1665,63 +1665,63 @@ int scan( }} break; case 61: -#line 79 "libflux/src/scanner/scanner.rl" +#line 79 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = COMMENT; {p++; goto _out; } }} break; case 62: -#line 97 "libflux/src/scanner/scanner.rl" +#line 97 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = IDENT; {p++; goto _out; } }} break; case 63: -#line 98 "libflux/src/scanner/scanner.rl" +#line 98 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = INT; {p++; goto _out; } }} break; case 64: -#line 100 "libflux/src/scanner/scanner.rl" +#line 100 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = DURATION; {p++; goto _out; } }} break; case 65: -#line 101 "libflux/src/scanner/scanner.rl" +#line 101 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = TIME; {p++; goto _out; } }} break; case 66: -#line 107 "libflux/src/scanner/scanner.rl" +#line 107 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = DIV; {p++; goto _out; } }} break; case 67: -#line 111 "libflux/src/scanner/scanner.rl" +#line 111 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = LT; {p++; goto _out; } }} break; case 68: -#line 112 "libflux/src/scanner/scanner.rl" +#line 112 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = GT; {p++; goto _out; } }} break; case 69: -#line 118 "libflux/src/scanner/scanner.rl" +#line 118 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = ASSIGN; {p++; goto _out; } }} break; case 70: -#line 131 "libflux/src/scanner/scanner.rl" +#line 131 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = QUOTE; {p++; goto _out; } }} break; case 71: -#line 133 "libflux/src/scanner/scanner.rl" +#line 133 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;} break; case 72: -#line 98 "libflux/src/scanner/scanner.rl" +#line 98 "libflux/src/libflux/scanner/scanner.rl" {{p = ((te))-1;}{ tok = INT; {p++; goto _out; } }} break; case 73: -#line 100 "libflux/src/scanner/scanner.rl" +#line 100 "libflux/src/libflux/scanner/scanner.rl" {{p = ((te))-1;}{ tok = DURATION; {p++; goto _out; } }} break; case 74: -#line 101 "libflux/src/scanner/scanner.rl" +#line 101 "libflux/src/libflux/scanner/scanner.rl" {{p = ((te))-1;}{ tok = TIME; {p++; goto _out; } }} break; case 75: -#line 131 "libflux/src/scanner/scanner.rl" +#line 131 "libflux/src/libflux/scanner/scanner.rl" {{p = ((te))-1;}{ tok = QUOTE; {p++; goto _out; } }} break; case 76: @@ -1794,23 +1794,23 @@ int scan( } break; case 77: -#line 142 "libflux/src/scanner/scanner.rl" +#line 142 "libflux/src/libflux/scanner/scanner.rl" {act = 59;} break; case 78: -#line 140 "libflux/src/scanner/scanner.rl" +#line 140 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = STRINGEXPR; {p++; goto _out; } }} break; case 79: -#line 141 "libflux/src/scanner/scanner.rl" +#line 141 "libflux/src/libflux/scanner/scanner.rl" {te = p+1;{ tok = QUOTE; {p++; goto _out; } }} break; case 80: -#line 142 "libflux/src/scanner/scanner.rl" +#line 142 "libflux/src/libflux/scanner/scanner.rl" {te = p;p--;{ tok = TEXT; {p++; goto _out; } }} break; case 81: -#line 142 "libflux/src/scanner/scanner.rl" +#line 142 "libflux/src/libflux/scanner/scanner.rl" {{p = ((te))-1;}{ tok = TEXT; {p++; goto _out; } }} break; case 82: @@ -1862,7 +1862,7 @@ int scan( _out: {} } -#line 186 "libflux/src/scanner/scanner.rl" +#line 186 "libflux/src/libflux/scanner/scanner.rl" // Update output args. *token = tok; diff --git a/libflux/src/libflux/Cargo.toml b/libflux/src/libflux/Cargo.toml new file mode 100644 index 0000000000..f080093e8c --- /dev/null +++ b/libflux/src/libflux/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "flux" +version = "0.3.0" +authors = ["Nathaniel Cook "] +edition = "2018" + +[lib] +name = "flux" +path = "lib.rs" +crate-type = ["rlib", "staticlib", "cdylib"] + +[features] +strict = [] + +[dependencies] +serde = "^1.0.59" +serde_derive = "^1.0.59" +serde_json = "1.0" +serde-aux = "0.6.1" +wasm-bindgen = { version = "0.2", features = ["serde-serialize"] } +chrono = { version = "0.4", features = ["serde"] } +regex = "1" +maplit = "1.0.2" +flatbuffers = "0.6.0" +derivative = "1.0.3" +walkdir = "2.2.9" + +[dev-dependencies] +colored = "1.8" +pretty_assertions = "0.6.1" + +[build-dependencies] +cc = "1.0" +bindgen = "0.49.0" diff --git a/libflux/src/ast/check/mod.rs b/libflux/src/libflux/ast/check/mod.rs similarity index 100% rename from libflux/src/ast/check/mod.rs rename to libflux/src/libflux/ast/check/mod.rs diff --git a/libflux/src/ast/check/tests.rs b/libflux/src/libflux/ast/check/tests.rs similarity index 100% rename from libflux/src/ast/check/tests.rs rename to libflux/src/libflux/ast/check/tests.rs diff --git a/libflux/src/ast/flatbuffers/ast_generated.rs b/libflux/src/libflux/ast/flatbuffers/ast_generated.rs similarity index 100% rename from libflux/src/ast/flatbuffers/ast_generated.rs rename to libflux/src/libflux/ast/flatbuffers/ast_generated.rs diff --git a/libflux/src/ast/flatbuffers/mod.rs b/libflux/src/libflux/ast/flatbuffers/mod.rs similarity index 100% rename from libflux/src/ast/flatbuffers/mod.rs rename to libflux/src/libflux/ast/flatbuffers/mod.rs diff --git a/libflux/src/ast/flatbuffers/tests.rs b/libflux/src/libflux/ast/flatbuffers/tests.rs similarity index 100% rename from libflux/src/ast/flatbuffers/tests.rs rename to libflux/src/libflux/ast/flatbuffers/tests.rs diff --git a/libflux/src/ast/mod.rs b/libflux/src/libflux/ast/mod.rs similarity index 100% rename from libflux/src/ast/mod.rs rename to libflux/src/libflux/ast/mod.rs diff --git a/libflux/src/ast/tests.rs b/libflux/src/libflux/ast/tests.rs similarity index 100% rename from libflux/src/ast/tests.rs rename to libflux/src/libflux/ast/tests.rs diff --git a/libflux/src/ast/walk/mod.rs b/libflux/src/libflux/ast/walk/mod.rs similarity index 100% rename from libflux/src/ast/walk/mod.rs rename to libflux/src/libflux/ast/walk/mod.rs diff --git a/libflux/src/ast/walk/tests.rs b/libflux/src/libflux/ast/walk/tests.rs similarity index 100% rename from libflux/src/ast/walk/tests.rs rename to libflux/src/libflux/ast/walk/tests.rs diff --git a/libflux/build.rs b/libflux/src/libflux/build.rs similarity index 85% rename from libflux/build.rs rename to libflux/src/libflux/build.rs index d5b00b8013..dca601b02d 100644 --- a/libflux/build.rs +++ b/libflux/src/libflux/build.rs @@ -17,7 +17,7 @@ fn main() { let bindings = bindgen::Builder::default() // The input header we would like to generate // bindings for. - .header("src/scanner/scanner.h") + .header("scanner/scanner.h") // Finish the builder and generate the bindings. .generate() // Unwrap the Result and panic on failure. @@ -29,7 +29,7 @@ fn main() { .expect("Couldn't write bindings!"); let ctypes = bindgen::Builder::default() - .header("include/influxdata/flux.h") + .header("../../include/influxdata/flux.h") .generate() .expect("Unable to generate c type bindings"); @@ -37,11 +37,11 @@ fn main() { .write_to_file(out_path.join("ctypes.rs")) .expect("Couldn't write c type bindings!"); - copy("scanner.c", out_path.join("scanner.c")).expect("Could not copy scanner.c"); + copy("../../scanner.c", out_path.join("scanner.c")).expect("Could not copy scanner.c"); // Compile generated scanner cc::Build::new() - .include("src/scanner") + .include("scanner") .file(out_path.join("scanner.c")) .compile("scanner"); } diff --git a/libflux/src/lib.rs b/libflux/src/libflux/lib.rs similarity index 100% rename from libflux/src/lib.rs rename to libflux/src/libflux/lib.rs diff --git a/libflux/src/parser/mod.rs b/libflux/src/libflux/parser/mod.rs similarity index 100% rename from libflux/src/parser/mod.rs rename to libflux/src/libflux/parser/mod.rs diff --git a/libflux/src/parser/strconv.rs b/libflux/src/libflux/parser/strconv.rs similarity index 100% rename from libflux/src/parser/strconv.rs rename to libflux/src/libflux/parser/strconv.rs diff --git a/libflux/src/parser/tests.rs b/libflux/src/libflux/parser/tests.rs similarity index 100% rename from libflux/src/parser/tests.rs rename to libflux/src/libflux/parser/tests.rs diff --git a/libflux/src/scanner/mod.rs b/libflux/src/libflux/scanner/mod.rs similarity index 100% rename from libflux/src/scanner/mod.rs rename to libflux/src/libflux/scanner/mod.rs diff --git a/libflux/src/scanner/scanner.h b/libflux/src/libflux/scanner/scanner.h similarity index 100% rename from libflux/src/scanner/scanner.h rename to libflux/src/libflux/scanner/scanner.h diff --git a/libflux/src/scanner/scanner.rl b/libflux/src/libflux/scanner/scanner.rl similarity index 100% rename from libflux/src/scanner/scanner.rl rename to libflux/src/libflux/scanner/scanner.rl diff --git a/libflux/src/scanner/tests.rs b/libflux/src/libflux/scanner/tests.rs similarity index 100% rename from libflux/src/scanner/tests.rs rename to libflux/src/libflux/scanner/tests.rs diff --git a/libflux/src/scanner/unicode.rl b/libflux/src/libflux/scanner/unicode.rl similarity index 100% rename from libflux/src/scanner/unicode.rl rename to libflux/src/libflux/scanner/unicode.rl diff --git a/libflux/src/scanner/unicode.rl.COPYING b/libflux/src/libflux/scanner/unicode.rl.COPYING similarity index 100% rename from libflux/src/scanner/unicode.rl.COPYING rename to libflux/src/libflux/scanner/unicode.rl.COPYING diff --git a/libflux/src/semantic/analyze.rs b/libflux/src/libflux/semantic/analyze.rs similarity index 100% rename from libflux/src/semantic/analyze.rs rename to libflux/src/libflux/semantic/analyze.rs diff --git a/libflux/src/semantic/env.rs b/libflux/src/libflux/semantic/env.rs similarity index 100% rename from libflux/src/semantic/env.rs rename to libflux/src/libflux/semantic/env.rs diff --git a/libflux/src/semantic/flatbuffers/mod.rs b/libflux/src/libflux/semantic/flatbuffers/mod.rs similarity index 100% rename from libflux/src/semantic/flatbuffers/mod.rs rename to libflux/src/libflux/semantic/flatbuffers/mod.rs diff --git a/libflux/src/semantic/flatbuffers/semantic_generated.rs b/libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs similarity index 100% rename from libflux/src/semantic/flatbuffers/semantic_generated.rs rename to libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs diff --git a/libflux/src/semantic/flatbuffers/types.rs b/libflux/src/libflux/semantic/flatbuffers/types.rs similarity index 100% rename from libflux/src/semantic/flatbuffers/types.rs rename to libflux/src/libflux/semantic/flatbuffers/types.rs diff --git a/libflux/src/semantic/fresh.rs b/libflux/src/libflux/semantic/fresh.rs similarity index 100% rename from libflux/src/semantic/fresh.rs rename to libflux/src/libflux/semantic/fresh.rs diff --git a/libflux/src/semantic/infer.rs b/libflux/src/libflux/semantic/infer.rs similarity index 100% rename from libflux/src/semantic/infer.rs rename to libflux/src/libflux/semantic/infer.rs diff --git a/libflux/src/semantic/mod.rs b/libflux/src/libflux/semantic/mod.rs similarity index 100% rename from libflux/src/semantic/mod.rs rename to libflux/src/libflux/semantic/mod.rs diff --git a/libflux/src/semantic/nodes.rs b/libflux/src/libflux/semantic/nodes.rs similarity index 100% rename from libflux/src/semantic/nodes.rs rename to libflux/src/libflux/semantic/nodes.rs diff --git a/libflux/src/semantic/parser/grammar.md b/libflux/src/libflux/semantic/parser/grammar.md similarity index 100% rename from libflux/src/semantic/parser/grammar.md rename to libflux/src/libflux/semantic/parser/grammar.md diff --git a/libflux/src/semantic/parser/mod.rs b/libflux/src/libflux/semantic/parser/mod.rs similarity index 100% rename from libflux/src/semantic/parser/mod.rs rename to libflux/src/libflux/semantic/parser/mod.rs diff --git a/libflux/src/semantic/sub.rs b/libflux/src/libflux/semantic/sub.rs similarity index 100% rename from libflux/src/semantic/sub.rs rename to libflux/src/libflux/semantic/sub.rs diff --git a/libflux/src/semantic/tests.rs b/libflux/src/libflux/semantic/tests.rs similarity index 100% rename from libflux/src/semantic/tests.rs rename to libflux/src/libflux/semantic/tests.rs diff --git a/libflux/src/semantic/types.rs b/libflux/src/libflux/semantic/types.rs similarity index 100% rename from libflux/src/semantic/types.rs rename to libflux/src/libflux/semantic/types.rs diff --git a/libflux/src/semantic/walk/mod.rs b/libflux/src/libflux/semantic/walk/mod.rs similarity index 100% rename from libflux/src/semantic/walk/mod.rs rename to libflux/src/libflux/semantic/walk/mod.rs diff --git a/libflux/src/semantic/walk/test_utils.rs b/libflux/src/libflux/semantic/walk/test_utils.rs similarity index 100% rename from libflux/src/semantic/walk/test_utils.rs rename to libflux/src/libflux/semantic/walk/test_utils.rs diff --git a/libflux/src/semantic/walk/walk.rs b/libflux/src/libflux/semantic/walk/walk.rs similarity index 100% rename from libflux/src/semantic/walk/walk.rs rename to libflux/src/libflux/semantic/walk/walk.rs diff --git a/libflux/src/semantic/walk/walk_mut.rs b/libflux/src/libflux/semantic/walk/walk_mut.rs similarity index 100% rename from libflux/src/semantic/walk/walk_mut.rs rename to libflux/src/libflux/semantic/walk/walk_mut.rs diff --git a/libflux/tests/analyze_test.rs b/libflux/src/libflux/tests/analyze_test.rs similarity index 99% rename from libflux/tests/analyze_test.rs rename to libflux/src/libflux/tests/analyze_test.rs index b0488a3084..8eec1da861 100644 --- a/libflux/tests/analyze_test.rs +++ b/libflux/src/libflux/tests/analyze_test.rs @@ -1,5 +1,3 @@ -extern crate flux; - use flux::ast; use flux::semantic::analyze_source; use flux::semantic::nodes::*; From 219e2955e2458e7a4f10da27e325cc904b4b5cb5 Mon Sep 17 00:00:00 2001 From: Yiqun Zhang Date: Tue, 3 Dec 2019 03:10:29 -0500 Subject: [PATCH 19/19] chore: rust checkfmt --- Makefile | 4 +- etc/checkfmt.sh | 10 + .../libflux/ast/flatbuffers/ast_generated.rs | 22529 +++++++------- .../flatbuffers/semantic_generated.rs | 25163 ++++++++-------- rustfmt.toml | 0 5 files changed, 25278 insertions(+), 22428 deletions(-) create mode 100644 rustfmt.toml diff --git a/Makefile b/Makefile index ee6c7884a2..cc6b40c55a 100644 --- a/Makefile +++ b/Makefile @@ -49,12 +49,12 @@ generate: $(GENERATED_TARGETS) ast/internal/fbast: ast/ast.fbs $(GO_GENERATE) ./ast libflux/src/libflux/ast/flatbuffers/ast_generated.rs: ast/ast.fbs - flatc --rust -o libflux/src/libflux/ast/flatbuffers ast/ast.fbs + flatc --rust -o libflux/src/libflux/ast/flatbuffers ast/ast.fbs && rustfmt $@ semantic/internal/fbsemantic: semantic/semantic.fbs $(GO_GENERATE) ./semantic libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs: semantic/semantic.fbs - flatc --rust -o libflux/src/libflux/semantic/flatbuffers semantic/semantic.fbs + flatc --rust -o libflux/src/libflux/semantic/flatbuffers semantic/semantic.fbs && rustfmt $@ # Force a second expansion to happen so the call to go_deps works correctly. .SECONDEXPANSION: diff --git a/etc/checkfmt.sh b/etc/checkfmt.sh index dc2ad9ca65..ce3492beeb 100755 --- a/etc/checkfmt.sh +++ b/etc/checkfmt.sh @@ -26,4 +26,14 @@ if [ "$HAS_FMT_ERR" -eq "1" ]; then echo 'run "make fmt"' && \ echo '' fi + +cd libflux +FMT_OUT="$(cargo fmt --all -- --check)" +if [[ -n "$FMT_OUT" ]]; then + echo 'Commit includes files that are not rustfmt-ed' && \ + echo 'run "make fmt"' && \ + echo '' + HAS_FMT_ERR=1 +fi + exit "$HAS_FMT_ERR" diff --git a/libflux/src/libflux/ast/flatbuffers/ast_generated.rs b/libflux/src/libflux/ast/flatbuffers/ast_generated.rs index fe6677a631..874274b8b2 100644 --- a/libflux/src/libflux/ast/flatbuffers/ast_generated.rs +++ b/libflux/src/libflux/ast/flatbuffers/ast_generated.rs @@ -1,9 +1,7 @@ // automatically generated by the FlatBuffers compiler, do not modify - - -use std::mem; use std::cmp::Ordering; +use std::mem; extern crate flatbuffers; use self::flatbuffers::EndianScalar; @@ -11,10726 +9,12027 @@ use self::flatbuffers::EndianScalar; #[allow(unused_imports, dead_code)] pub mod fbast { - use std::mem; - use std::cmp::Ordering; - - extern crate flatbuffers; - use self::flatbuffers::EndianScalar; - -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Statement { - NONE = 0, - BadStatement = 1, - VariableAssignment = 2, - MemberAssignment = 3, - ExpressionStatement = 4, - ReturnStatement = 5, - OptionStatement = 6, - BuiltinStatement = 7, - TestStatement = 8, - -} - -const ENUM_MIN_STATEMENT: u8 = 0; -const ENUM_MAX_STATEMENT: u8 = 8; - -impl<'a> flatbuffers::Follow<'a> for Statement { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Statement { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Statement; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Statement; - unsafe { *p } - } -} - -impl flatbuffers::Push for Statement { - type Output = Statement; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_STATEMENT:[Statement; 9] = [ - Statement::NONE, - Statement::BadStatement, - Statement::VariableAssignment, - Statement::MemberAssignment, - Statement::ExpressionStatement, - Statement::ReturnStatement, - Statement::OptionStatement, - Statement::BuiltinStatement, - Statement::TestStatement -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_STATEMENT:[&'static str; 9] = [ - "NONE", - "BadStatement", - "VariableAssignment", - "MemberAssignment", - "ExpressionStatement", - "ReturnStatement", - "OptionStatement", - "BuiltinStatement", - "TestStatement" -]; - -pub fn enum_name_statement(e: Statement) -> &'static str { - let index = e as u8; - ENUM_NAMES_STATEMENT[index as usize] -} - -pub struct StatementUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Assignment { - NONE = 0, - MemberAssignment = 1, - VariableAssignment = 2, - -} - -const ENUM_MIN_ASSIGNMENT: u8 = 0; -const ENUM_MAX_ASSIGNMENT: u8 = 2; - -impl<'a> flatbuffers::Follow<'a> for Assignment { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Assignment { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Assignment; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Assignment; - unsafe { *p } - } -} - -impl flatbuffers::Push for Assignment { - type Output = Assignment; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_ASSIGNMENT:[Assignment; 3] = [ - Assignment::NONE, - Assignment::MemberAssignment, - Assignment::VariableAssignment -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_ASSIGNMENT:[&'static str; 3] = [ - "NONE", - "MemberAssignment", - "VariableAssignment" -]; - -pub fn enum_name_assignment(e: Assignment) -> &'static str { - let index = e as u8; - ENUM_NAMES_ASSIGNMENT[index as usize] -} - -pub struct AssignmentUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Expression { - NONE = 0, - StringExpression = 1, - ParenExpression = 2, - ArrayExpression = 3, - FunctionExpression = 4, - BinaryExpression = 5, - BooleanLiteral = 6, - CallExpression = 7, - ConditionalExpression = 8, - DateTimeLiteral = 9, - DurationLiteral = 10, - FloatLiteral = 11, - Identifier = 12, - IntegerLiteral = 13, - LogicalExpression = 14, - MemberExpression = 15, - IndexExpression = 16, - ObjectExpression = 17, - PipeExpression = 18, - PipeLiteral = 19, - RegexpLiteral = 20, - StringLiteral = 21, - UnaryExpression = 22, - UnsignedIntegerLiteral = 23, - BadExpression = 24, - -} - -const ENUM_MIN_EXPRESSION: u8 = 0; -const ENUM_MAX_EXPRESSION: u8 = 24; - -impl<'a> flatbuffers::Follow<'a> for Expression { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Expression { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Expression; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Expression; - unsafe { *p } - } -} - -impl flatbuffers::Push for Expression { - type Output = Expression; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_EXPRESSION:[Expression; 25] = [ - Expression::NONE, - Expression::StringExpression, - Expression::ParenExpression, - Expression::ArrayExpression, - Expression::FunctionExpression, - Expression::BinaryExpression, - Expression::BooleanLiteral, - Expression::CallExpression, - Expression::ConditionalExpression, - Expression::DateTimeLiteral, - Expression::DurationLiteral, - Expression::FloatLiteral, - Expression::Identifier, - Expression::IntegerLiteral, - Expression::LogicalExpression, - Expression::MemberExpression, - Expression::IndexExpression, - Expression::ObjectExpression, - Expression::PipeExpression, - Expression::PipeLiteral, - Expression::RegexpLiteral, - Expression::StringLiteral, - Expression::UnaryExpression, - Expression::UnsignedIntegerLiteral, - Expression::BadExpression -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_EXPRESSION:[&'static str; 25] = [ - "NONE", - "StringExpression", - "ParenExpression", - "ArrayExpression", - "FunctionExpression", - "BinaryExpression", - "BooleanLiteral", - "CallExpression", - "ConditionalExpression", - "DateTimeLiteral", - "DurationLiteral", - "FloatLiteral", - "Identifier", - "IntegerLiteral", - "LogicalExpression", - "MemberExpression", - "IndexExpression", - "ObjectExpression", - "PipeExpression", - "PipeLiteral", - "RegexpLiteral", - "StringLiteral", - "UnaryExpression", - "UnsignedIntegerLiteral", - "BadExpression" -]; - -pub fn enum_name_expression(e: Expression) -> &'static str { - let index = e as u8; - ENUM_NAMES_EXPRESSION[index as usize] -} - -pub struct ExpressionUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(i8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Operator { - InvalidOperator = 0, - MultiplicationOperator = 1, - DivisionOperator = 2, - ModuloOperator = 3, - PowerOperator = 4, - AdditionOperator = 5, - SubtractionOperator = 6, - LessThanEqualOperator = 7, - LessThanOperator = 8, - GreaterThanEqualOperator = 9, - GreaterThanOperator = 10, - StartsWithOperator = 11, - InOperator = 12, - NotOperator = 13, - ExistsOperator = 14, - NotEmptyOperator = 15, - EmptyOperator = 16, - EqualOperator = 17, - NotEqualOperator = 18, - RegexpMatchOperator = 19, - NotRegexpMatchOperator = 20, - -} - -const ENUM_MIN_OPERATOR: i8 = 0; -const ENUM_MAX_OPERATOR: i8 = 20; - -impl<'a> flatbuffers::Follow<'a> for Operator { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Operator { - #[inline] - fn to_little_endian(self) -> Self { - let n = i8::to_le(self as i8); - let p = &n as *const i8 as *const Operator; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = i8::from_le(self as i8); - let p = &n as *const i8 as *const Operator; - unsafe { *p } - } -} - -impl flatbuffers::Push for Operator { - type Output = Operator; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_OPERATOR:[Operator; 21] = [ - Operator::InvalidOperator, - Operator::MultiplicationOperator, - Operator::DivisionOperator, - Operator::ModuloOperator, - Operator::PowerOperator, - Operator::AdditionOperator, - Operator::SubtractionOperator, - Operator::LessThanEqualOperator, - Operator::LessThanOperator, - Operator::GreaterThanEqualOperator, - Operator::GreaterThanOperator, - Operator::StartsWithOperator, - Operator::InOperator, - Operator::NotOperator, - Operator::ExistsOperator, - Operator::NotEmptyOperator, - Operator::EmptyOperator, - Operator::EqualOperator, - Operator::NotEqualOperator, - Operator::RegexpMatchOperator, - Operator::NotRegexpMatchOperator -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_OPERATOR:[&'static str; 21] = [ - "InvalidOperator", - "MultiplicationOperator", - "DivisionOperator", - "ModuloOperator", - "PowerOperator", - "AdditionOperator", - "SubtractionOperator", - "LessThanEqualOperator", - "LessThanOperator", - "GreaterThanEqualOperator", - "GreaterThanOperator", - "StartsWithOperator", - "InOperator", - "NotOperator", - "ExistsOperator", - "NotEmptyOperator", - "EmptyOperator", - "EqualOperator", - "NotEqualOperator", - "RegexpMatchOperator", - "NotRegexpMatchOperator" -]; - -pub fn enum_name_operator(e: Operator) -> &'static str { - let index = e as i8; - ENUM_NAMES_OPERATOR[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(i8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum LogicalOperator { - AndOperator = 0, - OrOperator = 1, - -} - -const ENUM_MIN_LOGICAL_OPERATOR: i8 = 0; -const ENUM_MAX_LOGICAL_OPERATOR: i8 = 1; - -impl<'a> flatbuffers::Follow<'a> for LogicalOperator { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for LogicalOperator { - #[inline] - fn to_little_endian(self) -> Self { - let n = i8::to_le(self as i8); - let p = &n as *const i8 as *const LogicalOperator; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = i8::from_le(self as i8); - let p = &n as *const i8 as *const LogicalOperator; - unsafe { *p } - } -} - -impl flatbuffers::Push for LogicalOperator { - type Output = LogicalOperator; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_LOGICAL_OPERATOR:[LogicalOperator; 2] = [ - LogicalOperator::AndOperator, - LogicalOperator::OrOperator -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_LOGICAL_OPERATOR:[&'static str; 2] = [ - "AndOperator", - "OrOperator" -]; - -pub fn enum_name_logical_operator(e: LogicalOperator) -> &'static str { - let index = e as i8; - ENUM_NAMES_LOGICAL_OPERATOR[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(i8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum TimeUnit { - y = 0, - mo = 1, - w = 2, - d = 3, - h = 4, - m = 5, - s = 6, - ms = 7, - us = 8, - ns = 9, - -} - -const ENUM_MIN_TIME_UNIT: i8 = 0; -const ENUM_MAX_TIME_UNIT: i8 = 9; - -impl<'a> flatbuffers::Follow<'a> for TimeUnit { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for TimeUnit { - #[inline] - fn to_little_endian(self) -> Self { - let n = i8::to_le(self as i8); - let p = &n as *const i8 as *const TimeUnit; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = i8::from_le(self as i8); - let p = &n as *const i8 as *const TimeUnit; - unsafe { *p } - } -} - -impl flatbuffers::Push for TimeUnit { - type Output = TimeUnit; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_TIME_UNIT:[TimeUnit; 10] = [ - TimeUnit::y, - TimeUnit::mo, - TimeUnit::w, - TimeUnit::d, - TimeUnit::h, - TimeUnit::m, - TimeUnit::s, - TimeUnit::ms, - TimeUnit::us, - TimeUnit::ns -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_TIME_UNIT:[&'static str; 10] = [ - "y", - "mo", - "w", - "d", - "h", - "m", - "s", - "ms", - "us", - "ns" -]; - -pub fn enum_name_time_unit(e: TimeUnit) -> &'static str { - let index = e as i8; - ENUM_NAMES_TIME_UNIT[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum ExpressionOrBlock { - NONE = 0, - Block = 1, - WrappedExpression = 2, - -} - -const ENUM_MIN_EXPRESSION_OR_BLOCK: u8 = 0; -const ENUM_MAX_EXPRESSION_OR_BLOCK: u8 = 2; - -impl<'a> flatbuffers::Follow<'a> for ExpressionOrBlock { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for ExpressionOrBlock { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const ExpressionOrBlock; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const ExpressionOrBlock; - unsafe { *p } - } -} - -impl flatbuffers::Push for ExpressionOrBlock { - type Output = ExpressionOrBlock; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_EXPRESSION_OR_BLOCK:[ExpressionOrBlock; 3] = [ - ExpressionOrBlock::NONE, - ExpressionOrBlock::Block, - ExpressionOrBlock::WrappedExpression -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_EXPRESSION_OR_BLOCK:[&'static str; 3] = [ - "NONE", - "Block", - "WrappedExpression" -]; - -pub fn enum_name_expression_or_block(e: ExpressionOrBlock) -> &'static str { - let index = e as u8; - ENUM_NAMES_EXPRESSION_OR_BLOCK[index as usize] -} - -pub struct ExpressionOrBlockUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum PropertyKey { - NONE = 0, - Identifier = 1, - StringLiteral = 2, - -} - -const ENUM_MIN_PROPERTY_KEY: u8 = 0; -const ENUM_MAX_PROPERTY_KEY: u8 = 2; - -impl<'a> flatbuffers::Follow<'a> for PropertyKey { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for PropertyKey { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const PropertyKey; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const PropertyKey; - unsafe { *p } - } -} - -impl flatbuffers::Push for PropertyKey { - type Output = PropertyKey; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_PROPERTY_KEY:[PropertyKey; 3] = [ - PropertyKey::NONE, - PropertyKey::Identifier, - PropertyKey::StringLiteral -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_PROPERTY_KEY:[&'static str; 3] = [ - "NONE", - "Identifier", - "StringLiteral" -]; - -pub fn enum_name_property_key(e: PropertyKey) -> &'static str { - let index = e as u8; - ENUM_NAMES_PROPERTY_KEY[index as usize] -} - -pub struct PropertyKeyUnionTableOffset {} -// struct Position, aligned to 4 -#[repr(C, align(4))] -#[derive(Clone, Copy, Debug, PartialEq)] -pub struct Position { - line_: i32, - column_: i32, -} // pub struct Position -impl flatbuffers::SafeSliceAccess for Position {} -impl<'a> flatbuffers::Follow<'a> for Position { - type Inner = &'a Position; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - <&'a Position>::follow(buf, loc) - } -} -impl<'a> flatbuffers::Follow<'a> for &'a Position { - type Inner = &'a Position; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::follow_cast_ref::(buf, loc) - } -} -impl<'b> flatbuffers::Push for Position { - type Output = Position; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - let src = unsafe { - ::std::slice::from_raw_parts(self as *const Position as *const u8, Self::size()) - }; - dst.copy_from_slice(src); + use std::cmp::Ordering; + use std::mem; + + extern crate flatbuffers; + use self::flatbuffers::EndianScalar; + + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Statement { + NONE = 0, + BadStatement = 1, + VariableAssignment = 2, + MemberAssignment = 3, + ExpressionStatement = 4, + ReturnStatement = 5, + OptionStatement = 6, + BuiltinStatement = 7, + TestStatement = 8, + } + + const ENUM_MIN_STATEMENT: u8 = 0; + const ENUM_MAX_STATEMENT: u8 = 8; + + impl<'a> flatbuffers::Follow<'a> for Statement { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } } -} -impl<'b> flatbuffers::Push for &'b Position { - type Output = Position; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - let src = unsafe { - ::std::slice::from_raw_parts(*self as *const Position as *const u8, Self::size()) - }; - dst.copy_from_slice(src); + impl flatbuffers::EndianScalar for Statement { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Statement; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Statement; + unsafe { *p } + } } -} - - -impl Position { - pub fn new<'a>(_line: i32, _column: i32) -> Self { - Position { - line_: _line.to_little_endian(), - column_: _column.to_little_endian(), + impl flatbuffers::Push for Statement { + type Output = Statement; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_STATEMENT: [Statement; 9] = [ + Statement::NONE, + Statement::BadStatement, + Statement::VariableAssignment, + Statement::MemberAssignment, + Statement::ExpressionStatement, + Statement::ReturnStatement, + Statement::OptionStatement, + Statement::BuiltinStatement, + Statement::TestStatement, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_STATEMENT: [&'static str; 9] = [ + "NONE", + "BadStatement", + "VariableAssignment", + "MemberAssignment", + "ExpressionStatement", + "ReturnStatement", + "OptionStatement", + "BuiltinStatement", + "TestStatement", + ]; + + pub fn enum_name_statement(e: Statement) -> &'static str { + let index = e as u8; + ENUM_NAMES_STATEMENT[index as usize] + } + + pub struct StatementUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Assignment { + NONE = 0, + MemberAssignment = 1, + VariableAssignment = 2, + } + + const ENUM_MIN_ASSIGNMENT: u8 = 0; + const ENUM_MAX_ASSIGNMENT: u8 = 2; + + impl<'a> flatbuffers::Follow<'a> for Assignment { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for Assignment { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Assignment; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Assignment; + unsafe { *p } + } + } + + impl flatbuffers::Push for Assignment { + type Output = Assignment; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_ASSIGNMENT: [Assignment; 3] = [ + Assignment::NONE, + Assignment::MemberAssignment, + Assignment::VariableAssignment, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_ASSIGNMENT: [&'static str; 3] = + ["NONE", "MemberAssignment", "VariableAssignment"]; + + pub fn enum_name_assignment(e: Assignment) -> &'static str { + let index = e as u8; + ENUM_NAMES_ASSIGNMENT[index as usize] + } + + pub struct AssignmentUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Expression { + NONE = 0, + StringExpression = 1, + ParenExpression = 2, + ArrayExpression = 3, + FunctionExpression = 4, + BinaryExpression = 5, + BooleanLiteral = 6, + CallExpression = 7, + ConditionalExpression = 8, + DateTimeLiteral = 9, + DurationLiteral = 10, + FloatLiteral = 11, + Identifier = 12, + IntegerLiteral = 13, + LogicalExpression = 14, + MemberExpression = 15, + IndexExpression = 16, + ObjectExpression = 17, + PipeExpression = 18, + PipeLiteral = 19, + RegexpLiteral = 20, + StringLiteral = 21, + UnaryExpression = 22, + UnsignedIntegerLiteral = 23, + BadExpression = 24, + } + + const ENUM_MIN_EXPRESSION: u8 = 0; + const ENUM_MAX_EXPRESSION: u8 = 24; + + impl<'a> flatbuffers::Follow<'a> for Expression { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for Expression { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Expression; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Expression; + unsafe { *p } + } + } + + impl flatbuffers::Push for Expression { + type Output = Expression; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_EXPRESSION: [Expression; 25] = [ + Expression::NONE, + Expression::StringExpression, + Expression::ParenExpression, + Expression::ArrayExpression, + Expression::FunctionExpression, + Expression::BinaryExpression, + Expression::BooleanLiteral, + Expression::CallExpression, + Expression::ConditionalExpression, + Expression::DateTimeLiteral, + Expression::DurationLiteral, + Expression::FloatLiteral, + Expression::Identifier, + Expression::IntegerLiteral, + Expression::LogicalExpression, + Expression::MemberExpression, + Expression::IndexExpression, + Expression::ObjectExpression, + Expression::PipeExpression, + Expression::PipeLiteral, + Expression::RegexpLiteral, + Expression::StringLiteral, + Expression::UnaryExpression, + Expression::UnsignedIntegerLiteral, + Expression::BadExpression, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_EXPRESSION: [&'static str; 25] = [ + "NONE", + "StringExpression", + "ParenExpression", + "ArrayExpression", + "FunctionExpression", + "BinaryExpression", + "BooleanLiteral", + "CallExpression", + "ConditionalExpression", + "DateTimeLiteral", + "DurationLiteral", + "FloatLiteral", + "Identifier", + "IntegerLiteral", + "LogicalExpression", + "MemberExpression", + "IndexExpression", + "ObjectExpression", + "PipeExpression", + "PipeLiteral", + "RegexpLiteral", + "StringLiteral", + "UnaryExpression", + "UnsignedIntegerLiteral", + "BadExpression", + ]; + + pub fn enum_name_expression(e: Expression) -> &'static str { + let index = e as u8; + ENUM_NAMES_EXPRESSION[index as usize] + } + + pub struct ExpressionUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(i8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Operator { + InvalidOperator = 0, + MultiplicationOperator = 1, + DivisionOperator = 2, + ModuloOperator = 3, + PowerOperator = 4, + AdditionOperator = 5, + SubtractionOperator = 6, + LessThanEqualOperator = 7, + LessThanOperator = 8, + GreaterThanEqualOperator = 9, + GreaterThanOperator = 10, + StartsWithOperator = 11, + InOperator = 12, + NotOperator = 13, + ExistsOperator = 14, + NotEmptyOperator = 15, + EmptyOperator = 16, + EqualOperator = 17, + NotEqualOperator = 18, + RegexpMatchOperator = 19, + NotRegexpMatchOperator = 20, + } + + const ENUM_MIN_OPERATOR: i8 = 0; + const ENUM_MAX_OPERATOR: i8 = 20; + + impl<'a> flatbuffers::Follow<'a> for Operator { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for Operator { + #[inline] + fn to_little_endian(self) -> Self { + let n = i8::to_le(self as i8); + let p = &n as *const i8 as *const Operator; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = i8::from_le(self as i8); + let p = &n as *const i8 as *const Operator; + unsafe { *p } + } + } + + impl flatbuffers::Push for Operator { + type Output = Operator; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_OPERATOR: [Operator; 21] = [ + Operator::InvalidOperator, + Operator::MultiplicationOperator, + Operator::DivisionOperator, + Operator::ModuloOperator, + Operator::PowerOperator, + Operator::AdditionOperator, + Operator::SubtractionOperator, + Operator::LessThanEqualOperator, + Operator::LessThanOperator, + Operator::GreaterThanEqualOperator, + Operator::GreaterThanOperator, + Operator::StartsWithOperator, + Operator::InOperator, + Operator::NotOperator, + Operator::ExistsOperator, + Operator::NotEmptyOperator, + Operator::EmptyOperator, + Operator::EqualOperator, + Operator::NotEqualOperator, + Operator::RegexpMatchOperator, + Operator::NotRegexpMatchOperator, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_OPERATOR: [&'static str; 21] = [ + "InvalidOperator", + "MultiplicationOperator", + "DivisionOperator", + "ModuloOperator", + "PowerOperator", + "AdditionOperator", + "SubtractionOperator", + "LessThanEqualOperator", + "LessThanOperator", + "GreaterThanEqualOperator", + "GreaterThanOperator", + "StartsWithOperator", + "InOperator", + "NotOperator", + "ExistsOperator", + "NotEmptyOperator", + "EmptyOperator", + "EqualOperator", + "NotEqualOperator", + "RegexpMatchOperator", + "NotRegexpMatchOperator", + ]; + + pub fn enum_name_operator(e: Operator) -> &'static str { + let index = e as i8; + ENUM_NAMES_OPERATOR[index as usize] + } + + #[allow(non_camel_case_types)] + #[repr(i8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum LogicalOperator { + AndOperator = 0, + OrOperator = 1, + } + + const ENUM_MIN_LOGICAL_OPERATOR: i8 = 0; + const ENUM_MAX_LOGICAL_OPERATOR: i8 = 1; + + impl<'a> flatbuffers::Follow<'a> for LogicalOperator { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for LogicalOperator { + #[inline] + fn to_little_endian(self) -> Self { + let n = i8::to_le(self as i8); + let p = &n as *const i8 as *const LogicalOperator; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = i8::from_le(self as i8); + let p = &n as *const i8 as *const LogicalOperator; + unsafe { *p } + } + } + + impl flatbuffers::Push for LogicalOperator { + type Output = LogicalOperator; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_LOGICAL_OPERATOR: [LogicalOperator; 2] = + [LogicalOperator::AndOperator, LogicalOperator::OrOperator]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_LOGICAL_OPERATOR: [&'static str; 2] = ["AndOperator", "OrOperator"]; + + pub fn enum_name_logical_operator(e: LogicalOperator) -> &'static str { + let index = e as i8; + ENUM_NAMES_LOGICAL_OPERATOR[index as usize] + } + + #[allow(non_camel_case_types)] + #[repr(i8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum TimeUnit { + y = 0, + mo = 1, + w = 2, + d = 3, + h = 4, + m = 5, + s = 6, + ms = 7, + us = 8, + ns = 9, } - } - pub fn line<'a>(&'a self) -> i32 { - self.line_.from_little_endian() - } - pub fn column<'a>(&'a self) -> i32 { - self.column_.from_little_endian() - } -} - -pub enum SourceLocationOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] -pub struct SourceLocation<'a> { - pub _tab: flatbuffers::Table<'a>, -} + const ENUM_MIN_TIME_UNIT: i8 = 0; + const ENUM_MAX_TIME_UNIT: i8 = 9; -impl<'a> flatbuffers::Follow<'a> for SourceLocation<'a> { - type Inner = SourceLocation<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for TimeUnit { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> SourceLocation<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - SourceLocation { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args SourceLocationArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = SourceLocationBuilder::new(_fbb); - if let Some(x) = args.source { builder.add_source(x); } - if let Some(x) = args.end { builder.add_end(x); } - if let Some(x) = args.start { builder.add_start(x); } - if let Some(x) = args.file { builder.add_file(x); } - builder.finish() - } - - pub const VT_FILE: flatbuffers::VOffsetT = 4; - pub const VT_START: flatbuffers::VOffsetT = 6; - pub const VT_END: flatbuffers::VOffsetT = 8; - pub const VT_SOURCE: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn file(&self) -> Option<&'a str> { - self._tab.get::>(SourceLocation::VT_FILE, None) - } - #[inline] - pub fn start(&self) -> Option<&'a Position> { - self._tab.get::(SourceLocation::VT_START, None) - } - #[inline] - pub fn end(&self) -> Option<&'a Position> { - self._tab.get::(SourceLocation::VT_END, None) - } - #[inline] - pub fn source(&self) -> Option<&'a str> { - self._tab.get::>(SourceLocation::VT_SOURCE, None) - } -} - -pub struct SourceLocationArgs<'a> { - pub file: Option>, - pub start: Option<&'a Position>, - pub end: Option<&'a Position>, - pub source: Option>, -} -impl<'a> Default for SourceLocationArgs<'a> { - #[inline] - fn default() -> Self { - SourceLocationArgs { - file: None, - start: None, - end: None, - source: None, - } - } -} -pub struct SourceLocationBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> SourceLocationBuilder<'a, 'b> { - #[inline] - pub fn add_file(&mut self, file: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(SourceLocation::VT_FILE, file); - } - #[inline] - pub fn add_start(&mut self, start: &'b Position) { - self.fbb_.push_slot_always::<&Position>(SourceLocation::VT_START, start); - } - #[inline] - pub fn add_end(&mut self, end: &'b Position) { - self.fbb_.push_slot_always::<&Position>(SourceLocation::VT_END, end); - } - #[inline] - pub fn add_source(&mut self, source: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(SourceLocation::VT_SOURCE, source); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> SourceLocationBuilder<'a, 'b> { - let start = _fbb.start_table(); - SourceLocationBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BaseNodeOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BaseNode<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BaseNode<'a> { - type Inner = BaseNode<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::EndianScalar for TimeUnit { + #[inline] + fn to_little_endian(self) -> Self { + let n = i8::to_le(self as i8); + let p = &n as *const i8 as *const TimeUnit; + unsafe { *p } } - } -} - -impl<'a> BaseNode<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BaseNode { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BaseNodeArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BaseNodeBuilder::new(_fbb); - if let Some(x) = args.errors { builder.add_errors(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ERRORS: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(BaseNode::VT_LOC, None) - } - #[inline] - pub fn errors(&self) -> Option>> { - self._tab.get::>>>(BaseNode::VT_ERRORS, None) - } -} - -pub struct BaseNodeArgs<'a> { - pub loc: Option>>, - pub errors: Option>>>, -} -impl<'a> Default for BaseNodeArgs<'a> { - #[inline] - fn default() -> Self { - BaseNodeArgs { - loc: None, - errors: None, - } - } -} -pub struct BaseNodeBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BaseNodeBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BaseNode::VT_LOC, loc); - } - #[inline] - pub fn add_errors(&mut self, errors: flatbuffers::WIPOffset>>) { - self.fbb_.push_slot_always::>(BaseNode::VT_ERRORS, errors); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BaseNodeBuilder<'a, 'b> { - let start = _fbb.start_table(); - BaseNodeBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PackageOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Package<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Package<'a> { - type Inner = Package<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + fn from_little_endian(self) -> Self { + let n = i8::from_le(self as i8); + let p = &n as *const i8 as *const TimeUnit; + unsafe { *p } } } -} -impl<'a> Package<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Package { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PackageArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PackageBuilder::new(_fbb); - if let Some(x) = args.files { builder.add_files(x); } - if let Some(x) = args.package { builder.add_package(x); } - if let Some(x) = args.path { builder.add_path(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_PATH: flatbuffers::VOffsetT = 6; - pub const VT_PACKAGE: flatbuffers::VOffsetT = 8; - pub const VT_FILES: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(Package::VT_BASE_NODE, None) - } - #[inline] - pub fn path(&self) -> Option<&'a str> { - self._tab.get::>(Package::VT_PATH, None) - } - #[inline] - pub fn package(&self) -> Option<&'a str> { - self._tab.get::>(Package::VT_PACKAGE, None) - } - #[inline] - pub fn files(&self) -> Option>>> { - self._tab.get::>>>>(Package::VT_FILES, None) - } -} - -pub struct PackageArgs<'a> { - pub base_node: Option>>, - pub path: Option>, - pub package: Option>, - pub files: Option>>>>, -} -impl<'a> Default for PackageArgs<'a> { - #[inline] - fn default() -> Self { - PackageArgs { - base_node: None, - path: None, - package: None, - files: None, - } - } -} -pub struct PackageBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PackageBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Package::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_path(&mut self, path: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Package::VT_PATH, path); - } - #[inline] - pub fn add_package(&mut self, package: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Package::VT_PACKAGE, package); - } - #[inline] - pub fn add_files(&mut self, files: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Package::VT_FILES, files); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageBuilder<'a, 'b> { - let start = _fbb.start_table(); - PackageBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FileOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct File<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for File<'a> { - type Inner = File<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::Push for TimeUnit { + type Output = TimeUnit; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); } } -} -impl<'a> File<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - File { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FileArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FileBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.imports { builder.add_imports(x); } - if let Some(x) = args.package { builder.add_package(x); } - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - pub const VT_PACKAGE: flatbuffers::VOffsetT = 8; - pub const VT_IMPORTS: flatbuffers::VOffsetT = 10; - pub const VT_BODY: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(File::VT_BASE_NODE, None) - } - #[inline] - pub fn name(&self) -> Option<&'a str> { - self._tab.get::>(File::VT_NAME, None) - } - #[inline] - pub fn package(&self) -> Option> { - self._tab.get::>>(File::VT_PACKAGE, None) - } - #[inline] - pub fn imports(&self) -> Option>>> { - self._tab.get::>>>>(File::VT_IMPORTS, None) - } - #[inline] - pub fn body(&self) -> Option>>> { - self._tab.get::>>>>(File::VT_BODY, None) - } -} - -pub struct FileArgs<'a> { - pub base_node: Option>>, - pub name: Option>, - pub package: Option>>, - pub imports: Option>>>>, - pub body: Option>>>>, -} -impl<'a> Default for FileArgs<'a> { - #[inline] - fn default() -> Self { - FileArgs { - base_node: None, - name: None, - package: None, - imports: None, - body: None, - } - } -} -pub struct FileBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FileBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(File::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(File::VT_NAME, name); - } - #[inline] - pub fn add_package(&mut self, package: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(File::VT_PACKAGE, package); - } - #[inline] - pub fn add_imports(&mut self, imports: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(File::VT_IMPORTS, imports); - } - #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(File::VT_BODY, body); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FileBuilder<'a, 'b> { - let start = _fbb.start_table(); - FileBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PackageClauseOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct PackageClause<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { - type Inner = PackageClause<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + #[allow(non_camel_case_types)] + const ENUM_VALUES_TIME_UNIT: [TimeUnit; 10] = [ + TimeUnit::y, + TimeUnit::mo, + TimeUnit::w, + TimeUnit::d, + TimeUnit::h, + TimeUnit::m, + TimeUnit::s, + TimeUnit::ms, + TimeUnit::us, + TimeUnit::ns, + ]; -impl<'a> PackageClause<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - PackageClause { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PackageClauseArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PackageClauseBuilder::new(_fbb); - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_BASE_NODE, None) - } - #[inline] - pub fn name(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_NAME, None) - } -} - -pub struct PackageClauseArgs<'a> { - pub base_node: Option>>, - pub name: Option>>, -} -impl<'a> Default for PackageClauseArgs<'a> { - #[inline] - fn default() -> Self { - PackageClauseArgs { - base_node: None, - name: None, - } - } -} -pub struct PackageClauseBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PackageClauseBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PackageClause::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PackageClause::VT_NAME, name); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageClauseBuilder<'a, 'b> { - let start = _fbb.start_table(); - PackageClauseBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ImportDeclarationOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ImportDeclaration<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ImportDeclaration<'a> { - type Inner = ImportDeclaration<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + #[allow(non_camel_case_types)] + const ENUM_NAMES_TIME_UNIT: [&'static str; 10] = + ["y", "mo", "w", "d", "h", "m", "s", "ms", "us", "ns"]; -impl<'a> ImportDeclaration<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ImportDeclaration { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ImportDeclarationArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ImportDeclarationBuilder::new(_fbb); - if let Some(x) = args.path { builder.add_path(x); } - if let Some(x) = args.as_ { builder.add_as_(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_AS_: flatbuffers::VOffsetT = 6; - pub const VT_PATH: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_BASE_NODE, None) - } - #[inline] - pub fn as_(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_AS_, None) - } - #[inline] - pub fn path(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_PATH, None) - } -} - -pub struct ImportDeclarationArgs<'a> { - pub base_node: Option>>, - pub as_: Option>>, - pub path: Option>>, -} -impl<'a> Default for ImportDeclarationArgs<'a> { - #[inline] - fn default() -> Self { - ImportDeclarationArgs { - base_node: None, - as_: None, - path: None, - } - } -} -pub struct ImportDeclarationBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ImportDeclarationBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_as_(&mut self, as_: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_AS_, as_); - } - #[inline] - pub fn add_path(&mut self, path: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_PATH, path); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ImportDeclarationBuilder<'a, 'b> { - let start = _fbb.start_table(); - ImportDeclarationBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum WrappedStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct WrappedStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for WrappedStatement<'a> { - type Inner = WrappedStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn enum_name_time_unit(e: TimeUnit) -> &'static str { + let index = e as i8; + ENUM_NAMES_TIME_UNIT[index as usize] } -} -impl<'a> WrappedStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - WrappedStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args WrappedStatementArgs) -> flatbuffers::WIPOffset> { - let mut builder = WrappedStatementBuilder::new(_fbb); - if let Some(x) = args.statement { builder.add_statement(x); } - builder.add_statement_type(args.statement_type); - builder.finish() - } - - pub const VT_STATEMENT_TYPE: flatbuffers::VOffsetT = 4; - pub const VT_STATEMENT: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn statement_type(&self) -> Statement { - self._tab.get::(WrappedStatement::VT_STATEMENT_TYPE, Some(Statement::NONE)).unwrap() - } - #[inline] - pub fn statement(&self) -> Option> { - self._tab.get::>>(WrappedStatement::VT_STATEMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_bad_statement(&self) -> Option> { - if self.statement_type() == Statement::BadStatement { - self.statement().map(|u| BadStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_variable_assignment(&self) -> Option> { - if self.statement_type() == Statement::VariableAssignment { - self.statement().map(|u| VariableAssignment::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_member_assignment(&self) -> Option> { - if self.statement_type() == Statement::MemberAssignment { - self.statement().map(|u| MemberAssignment::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_expression_statement(&self) -> Option> { - if self.statement_type() == Statement::ExpressionStatement { - self.statement().map(|u| ExpressionStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_return_statement(&self) -> Option> { - if self.statement_type() == Statement::ReturnStatement { - self.statement().map(|u| ReturnStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_option_statement(&self) -> Option> { - if self.statement_type() == Statement::OptionStatement { - self.statement().map(|u| OptionStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_builtin_statement(&self) -> Option> { - if self.statement_type() == Statement::BuiltinStatement { - self.statement().map(|u| BuiltinStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_test_statement(&self) -> Option> { - if self.statement_type() == Statement::TestStatement { - self.statement().map(|u| TestStatement::init_from_table(u)) - } else { - None - } - } - -} - -pub struct WrappedStatementArgs { - pub statement_type: Statement, - pub statement: Option>, -} -impl<'a> Default for WrappedStatementArgs { - #[inline] - fn default() -> Self { - WrappedStatementArgs { - statement_type: Statement::NONE, - statement: None, - } - } -} -pub struct WrappedStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> WrappedStatementBuilder<'a, 'b> { - #[inline] - pub fn add_statement_type(&mut self, statement_type: Statement) { - self.fbb_.push_slot::(WrappedStatement::VT_STATEMENT_TYPE, statement_type, Statement::NONE); - } - #[inline] - pub fn add_statement(&mut self, statement: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(WrappedStatement::VT_STATEMENT, statement); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> WrappedStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - WrappedStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BadStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BadStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BadStatement<'a> { - type Inner = BadStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum ExpressionOrBlock { + NONE = 0, + Block = 1, + WrappedExpression = 2, } -} -impl<'a> BadStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BadStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BadStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BadStatementBuilder::new(_fbb); - if let Some(x) = args.text { builder.add_text(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_TEXT: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(BadStatement::VT_BASE_NODE, None) - } - #[inline] - pub fn text(&self) -> Option<&'a str> { - self._tab.get::>(BadStatement::VT_TEXT, None) - } -} - -pub struct BadStatementArgs<'a> { - pub base_node: Option>>, - pub text: Option>, -} -impl<'a> Default for BadStatementArgs<'a> { - #[inline] - fn default() -> Self { - BadStatementArgs { - base_node: None, - text: None, - } - } -} -pub struct BadStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BadStatementBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BadStatement::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_text(&mut self, text: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(BadStatement::VT_TEXT, text); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BadStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - BadStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum VariableAssignmentOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct VariableAssignment<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for VariableAssignment<'a> { - type Inner = VariableAssignment<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + const ENUM_MIN_EXPRESSION_OR_BLOCK: u8 = 0; + const ENUM_MAX_EXPRESSION_OR_BLOCK: u8 = 2; -impl<'a> VariableAssignment<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - VariableAssignment { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args VariableAssignmentArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = VariableAssignmentBuilder::new(_fbb); - if let Some(x) = args.init_ { builder.add_init_(x); } - if let Some(x) = args.id { builder.add_id(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_init__type(args.init__type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ID: flatbuffers::VOffsetT = 6; - pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; - pub const VT_INIT_: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(VariableAssignment::VT_BASE_NODE, None) - } - #[inline] - pub fn id(&self) -> Option> { - self._tab.get::>>(VariableAssignment::VT_ID, None) - } - #[inline] - pub fn init__type(&self) -> Expression { - self._tab.get::(VariableAssignment::VT_INIT__TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn init_(&self) -> Option> { - self._tab.get::>>(VariableAssignment::VT_INIT_, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_expression(&self) -> Option> { - if self.init__type() == Expression::StringExpression { - self.init_().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_paren_expression(&self) -> Option> { - if self.init__type() == Expression::ParenExpression { - self.init_().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_array_expression(&self) -> Option> { - if self.init__type() == Expression::ArrayExpression { - self.init_().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_function_expression(&self) -> Option> { - if self.init__type() == Expression::FunctionExpression { - self.init_().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_binary_expression(&self) -> Option> { - if self.init__type() == Expression::BinaryExpression { - self.init_().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_boolean_literal(&self) -> Option> { - if self.init__type() == Expression::BooleanLiteral { - self.init_().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_call_expression(&self) -> Option> { - if self.init__type() == Expression::CallExpression { - self.init_().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_conditional_expression(&self) -> Option> { - if self.init__type() == Expression::ConditionalExpression { - self.init_().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_date_time_literal(&self) -> Option> { - if self.init__type() == Expression::DateTimeLiteral { - self.init_().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_duration_literal(&self) -> Option> { - if self.init__type() == Expression::DurationLiteral { - self.init_().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_float_literal(&self) -> Option> { - if self.init__type() == Expression::FloatLiteral { - self.init_().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_identifier(&self) -> Option> { - if self.init__type() == Expression::Identifier { - self.init_().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_integer_literal(&self) -> Option> { - if self.init__type() == Expression::IntegerLiteral { - self.init_().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_logical_expression(&self) -> Option> { - if self.init__type() == Expression::LogicalExpression { - self.init_().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_member_expression(&self) -> Option> { - if self.init__type() == Expression::MemberExpression { - self.init_().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_index_expression(&self) -> Option> { - if self.init__type() == Expression::IndexExpression { - self.init_().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_object_expression(&self) -> Option> { - if self.init__type() == Expression::ObjectExpression { - self.init_().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_pipe_expression(&self) -> Option> { - if self.init__type() == Expression::PipeExpression { - self.init_().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_pipe_literal(&self) -> Option> { - if self.init__type() == Expression::PipeLiteral { - self.init_().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_regexp_literal(&self) -> Option> { - if self.init__type() == Expression::RegexpLiteral { - self.init_().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_literal(&self) -> Option> { - if self.init__type() == Expression::StringLiteral { - self.init_().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unary_expression(&self) -> Option> { - if self.init__type() == Expression::UnaryExpression { - self.init_().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unsigned_integer_literal(&self) -> Option> { - if self.init__type() == Expression::UnsignedIntegerLiteral { - self.init_().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_bad_expression(&self) -> Option> { - if self.init__type() == Expression::BadExpression { - self.init_().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct VariableAssignmentArgs<'a> { - pub base_node: Option>>, - pub id: Option>>, - pub init__type: Expression, - pub init_: Option>, -} -impl<'a> Default for VariableAssignmentArgs<'a> { - #[inline] - fn default() -> Self { - VariableAssignmentArgs { - base_node: None, - id: None, - init__type: Expression::NONE, - init_: None, - } - } -} -pub struct VariableAssignmentBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> VariableAssignmentBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(VariableAssignment::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(VariableAssignment::VT_ID, id); - } - #[inline] - pub fn add_init__type(&mut self, init__type: Expression) { - self.fbb_.push_slot::(VariableAssignment::VT_INIT__TYPE, init__type, Expression::NONE); - } - #[inline] - pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(VariableAssignment::VT_INIT_, init_); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> VariableAssignmentBuilder<'a, 'b> { - let start = _fbb.start_table(); - VariableAssignmentBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum MemberAssignmentOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct MemberAssignment<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for MemberAssignment<'a> { - type Inner = MemberAssignment<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for ExpressionOrBlock { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> MemberAssignment<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - MemberAssignment { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args MemberAssignmentArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = MemberAssignmentBuilder::new(_fbb); - if let Some(x) = args.init_ { builder.add_init_(x); } - if let Some(x) = args.member { builder.add_member(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_init__type(args.init__type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_MEMBER: flatbuffers::VOffsetT = 6; - pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; - pub const VT_INIT_: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(MemberAssignment::VT_BASE_NODE, None) - } - #[inline] - pub fn member(&self) -> Option> { - self._tab.get::>>(MemberAssignment::VT_MEMBER, None) - } - #[inline] - pub fn init__type(&self) -> Expression { - self._tab.get::(MemberAssignment::VT_INIT__TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn init_(&self) -> Option> { - self._tab.get::>>(MemberAssignment::VT_INIT_, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_expression(&self) -> Option> { - if self.init__type() == Expression::StringExpression { - self.init_().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_paren_expression(&self) -> Option> { - if self.init__type() == Expression::ParenExpression { - self.init_().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_array_expression(&self) -> Option> { - if self.init__type() == Expression::ArrayExpression { - self.init_().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_function_expression(&self) -> Option> { - if self.init__type() == Expression::FunctionExpression { - self.init_().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_binary_expression(&self) -> Option> { - if self.init__type() == Expression::BinaryExpression { - self.init_().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_boolean_literal(&self) -> Option> { - if self.init__type() == Expression::BooleanLiteral { - self.init_().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_call_expression(&self) -> Option> { - if self.init__type() == Expression::CallExpression { - self.init_().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_conditional_expression(&self) -> Option> { - if self.init__type() == Expression::ConditionalExpression { - self.init_().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_date_time_literal(&self) -> Option> { - if self.init__type() == Expression::DateTimeLiteral { - self.init_().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_duration_literal(&self) -> Option> { - if self.init__type() == Expression::DurationLiteral { - self.init_().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_float_literal(&self) -> Option> { - if self.init__type() == Expression::FloatLiteral { - self.init_().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_identifier(&self) -> Option> { - if self.init__type() == Expression::Identifier { - self.init_().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_integer_literal(&self) -> Option> { - if self.init__type() == Expression::IntegerLiteral { - self.init_().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_logical_expression(&self) -> Option> { - if self.init__type() == Expression::LogicalExpression { - self.init_().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_member_expression(&self) -> Option> { - if self.init__type() == Expression::MemberExpression { - self.init_().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_index_expression(&self) -> Option> { - if self.init__type() == Expression::IndexExpression { - self.init_().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_object_expression(&self) -> Option> { - if self.init__type() == Expression::ObjectExpression { - self.init_().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_pipe_expression(&self) -> Option> { - if self.init__type() == Expression::PipeExpression { - self.init_().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_pipe_literal(&self) -> Option> { - if self.init__type() == Expression::PipeLiteral { - self.init_().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_regexp_literal(&self) -> Option> { - if self.init__type() == Expression::RegexpLiteral { - self.init_().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_literal(&self) -> Option> { - if self.init__type() == Expression::StringLiteral { - self.init_().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unary_expression(&self) -> Option> { - if self.init__type() == Expression::UnaryExpression { - self.init_().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unsigned_integer_literal(&self) -> Option> { - if self.init__type() == Expression::UnsignedIntegerLiteral { - self.init_().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_bad_expression(&self) -> Option> { - if self.init__type() == Expression::BadExpression { - self.init_().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct MemberAssignmentArgs<'a> { - pub base_node: Option>>, - pub member: Option>>, - pub init__type: Expression, - pub init_: Option>, -} -impl<'a> Default for MemberAssignmentArgs<'a> { - #[inline] - fn default() -> Self { - MemberAssignmentArgs { - base_node: None, - member: None, - init__type: Expression::NONE, - init_: None, - } - } -} -pub struct MemberAssignmentBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> MemberAssignmentBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(MemberAssignment::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_member(&mut self, member: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(MemberAssignment::VT_MEMBER, member); - } - #[inline] - pub fn add_init__type(&mut self, init__type: Expression) { - self.fbb_.push_slot::(MemberAssignment::VT_INIT__TYPE, init__type, Expression::NONE); - } - #[inline] - pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(MemberAssignment::VT_INIT_, init_); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MemberAssignmentBuilder<'a, 'b> { - let start = _fbb.start_table(); - MemberAssignmentBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ExpressionStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ExpressionStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ExpressionStatement<'a> { - type Inner = ExpressionStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::EndianScalar for ExpressionOrBlock { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const ExpressionOrBlock; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const ExpressionOrBlock; + unsafe { *p } } } -} -impl<'a> ExpressionStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ExpressionStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ExpressionStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ExpressionStatementBuilder::new(_fbb); - if let Some(x) = args.expression { builder.add_expression(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_expression_type(args.expression_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_EXPRESSION: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ExpressionStatement::VT_BASE_NODE, None) - } - #[inline] - pub fn expression_type(&self) -> Expression { - self._tab.get::(ExpressionStatement::VT_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn expression(&self) -> Option> { - self._tab.get::>>(ExpressionStatement::VT_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_expression(&self) -> Option> { - if self.expression_type() == Expression::StringExpression { - self.expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_paren_expression(&self) -> Option> { - if self.expression_type() == Expression::ParenExpression { - self.expression().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_array_expression(&self) -> Option> { - if self.expression_type() == Expression::ArrayExpression { - self.expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_function_expression(&self) -> Option> { - if self.expression_type() == Expression::FunctionExpression { - self.expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_binary_expression(&self) -> Option> { - if self.expression_type() == Expression::BinaryExpression { - self.expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_boolean_literal(&self) -> Option> { - if self.expression_type() == Expression::BooleanLiteral { - self.expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_call_expression(&self) -> Option> { - if self.expression_type() == Expression::CallExpression { - self.expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_conditional_expression(&self) -> Option> { - if self.expression_type() == Expression::ConditionalExpression { - self.expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_date_time_literal(&self) -> Option> { - if self.expression_type() == Expression::DateTimeLiteral { - self.expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_duration_literal(&self) -> Option> { - if self.expression_type() == Expression::DurationLiteral { - self.expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_float_literal(&self) -> Option> { - if self.expression_type() == Expression::FloatLiteral { - self.expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_identifier(&self) -> Option> { - if self.expression_type() == Expression::Identifier { - self.expression().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::IntegerLiteral { - self.expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_logical_expression(&self) -> Option> { - if self.expression_type() == Expression::LogicalExpression { - self.expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_member_expression(&self) -> Option> { - if self.expression_type() == Expression::MemberExpression { - self.expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_index_expression(&self) -> Option> { - if self.expression_type() == Expression::IndexExpression { - self.expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_object_expression(&self) -> Option> { - if self.expression_type() == Expression::ObjectExpression { - self.expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_pipe_expression(&self) -> Option> { - if self.expression_type() == Expression::PipeExpression { - self.expression().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_pipe_literal(&self) -> Option> { - if self.expression_type() == Expression::PipeLiteral { - self.expression().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_regexp_literal(&self) -> Option> { - if self.expression_type() == Expression::RegexpLiteral { - self.expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_literal(&self) -> Option> { - if self.expression_type() == Expression::StringLiteral { - self.expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unary_expression(&self) -> Option> { - if self.expression_type() == Expression::UnaryExpression { - self.expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unsigned_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::UnsignedIntegerLiteral { - self.expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_bad_expression(&self) -> Option> { - if self.expression_type() == Expression::BadExpression { - self.expression().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ExpressionStatementArgs<'a> { - pub base_node: Option>>, - pub expression_type: Expression, - pub expression: Option>, -} -impl<'a> Default for ExpressionStatementArgs<'a> { - #[inline] - fn default() -> Self { - ExpressionStatementArgs { - base_node: None, - expression_type: Expression::NONE, - expression: None, - } - } -} -pub struct ExpressionStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ExpressionStatementBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ExpressionStatement::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_expression_type(&mut self, expression_type: Expression) { - self.fbb_.push_slot::(ExpressionStatement::VT_EXPRESSION_TYPE, expression_type, Expression::NONE); - } - #[inline] - pub fn add_expression(&mut self, expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ExpressionStatement::VT_EXPRESSION, expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ExpressionStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - ExpressionStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ReturnStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ReturnStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ReturnStatement<'a> { - type Inner = ReturnStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::Push for ExpressionOrBlock { + type Output = ExpressionOrBlock; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); } } -} -impl<'a> ReturnStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ReturnStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ReturnStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ReturnStatementBuilder::new(_fbb); - if let Some(x) = args.argument { builder.add_argument(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_argument_type(args.argument_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ARGUMENT: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ReturnStatement::VT_BASE_NODE, None) - } - #[inline] - pub fn argument_type(&self) -> Expression { - self._tab.get::(ReturnStatement::VT_ARGUMENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn argument(&self) -> Option> { - self._tab.get::>>(ReturnStatement::VT_ARGUMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_expression(&self) -> Option> { - if self.argument_type() == Expression::StringExpression { - self.argument().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_paren_expression(&self) -> Option> { - if self.argument_type() == Expression::ParenExpression { - self.argument().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_array_expression(&self) -> Option> { - if self.argument_type() == Expression::ArrayExpression { - self.argument().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_function_expression(&self) -> Option> { - if self.argument_type() == Expression::FunctionExpression { - self.argument().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_binary_expression(&self) -> Option> { - if self.argument_type() == Expression::BinaryExpression { - self.argument().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_boolean_literal(&self) -> Option> { - if self.argument_type() == Expression::BooleanLiteral { - self.argument().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_call_expression(&self) -> Option> { - if self.argument_type() == Expression::CallExpression { - self.argument().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_conditional_expression(&self) -> Option> { - if self.argument_type() == Expression::ConditionalExpression { - self.argument().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_date_time_literal(&self) -> Option> { - if self.argument_type() == Expression::DateTimeLiteral { - self.argument().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_duration_literal(&self) -> Option> { - if self.argument_type() == Expression::DurationLiteral { - self.argument().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_float_literal(&self) -> Option> { - if self.argument_type() == Expression::FloatLiteral { - self.argument().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_identifier(&self) -> Option> { - if self.argument_type() == Expression::Identifier { - self.argument().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::IntegerLiteral { - self.argument().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_logical_expression(&self) -> Option> { - if self.argument_type() == Expression::LogicalExpression { - self.argument().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_member_expression(&self) -> Option> { - if self.argument_type() == Expression::MemberExpression { - self.argument().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_index_expression(&self) -> Option> { - if self.argument_type() == Expression::IndexExpression { - self.argument().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_object_expression(&self) -> Option> { - if self.argument_type() == Expression::ObjectExpression { - self.argument().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_pipe_expression(&self) -> Option> { - if self.argument_type() == Expression::PipeExpression { - self.argument().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_pipe_literal(&self) -> Option> { - if self.argument_type() == Expression::PipeLiteral { - self.argument().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_regexp_literal(&self) -> Option> { - if self.argument_type() == Expression::RegexpLiteral { - self.argument().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_literal(&self) -> Option> { - if self.argument_type() == Expression::StringLiteral { - self.argument().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unary_expression(&self) -> Option> { - if self.argument_type() == Expression::UnaryExpression { - self.argument().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unsigned_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::UnsignedIntegerLiteral { - self.argument().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_bad_expression(&self) -> Option> { - if self.argument_type() == Expression::BadExpression { - self.argument().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ReturnStatementArgs<'a> { - pub base_node: Option>>, - pub argument_type: Expression, - pub argument: Option>, -} -impl<'a> Default for ReturnStatementArgs<'a> { - #[inline] - fn default() -> Self { - ReturnStatementArgs { - base_node: None, - argument_type: Expression::NONE, - argument: None, - } - } -} -pub struct ReturnStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ReturnStatementBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ReturnStatement::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_argument_type(&mut self, argument_type: Expression) { - self.fbb_.push_slot::(ReturnStatement::VT_ARGUMENT_TYPE, argument_type, Expression::NONE); - } - #[inline] - pub fn add_argument(&mut self, argument: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ReturnStatement::VT_ARGUMENT, argument); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ReturnStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - ReturnStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum OptionStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct OptionStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for OptionStatement<'a> { - type Inner = OptionStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + #[allow(non_camel_case_types)] + const ENUM_VALUES_EXPRESSION_OR_BLOCK: [ExpressionOrBlock; 3] = [ + ExpressionOrBlock::NONE, + ExpressionOrBlock::Block, + ExpressionOrBlock::WrappedExpression, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_EXPRESSION_OR_BLOCK: [&'static str; 3] = + ["NONE", "Block", "WrappedExpression"]; + + pub fn enum_name_expression_or_block(e: ExpressionOrBlock) -> &'static str { + let index = e as u8; + ENUM_NAMES_EXPRESSION_OR_BLOCK[index as usize] } -} -impl<'a> OptionStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - OptionStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args OptionStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = OptionStatementBuilder::new(_fbb); - if let Some(x) = args.assignment { builder.add_assignment(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_assignment_type(args.assignment_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ASSIGNMENT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(OptionStatement::VT_BASE_NODE, None) - } - #[inline] - pub fn assignment_type(&self) -> Assignment { - self._tab.get::(OptionStatement::VT_ASSIGNMENT_TYPE, Some(Assignment::NONE)).unwrap() - } - #[inline] - pub fn assignment(&self) -> Option> { - self._tab.get::>>(OptionStatement::VT_ASSIGNMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn assignment_as_member_assignment(&self) -> Option> { - if self.assignment_type() == Assignment::MemberAssignment { - self.assignment().map(|u| MemberAssignment::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn assignment_as_variable_assignment(&self) -> Option> { - if self.assignment_type() == Assignment::VariableAssignment { - self.assignment().map(|u| VariableAssignment::init_from_table(u)) - } else { - None - } - } - -} - -pub struct OptionStatementArgs<'a> { - pub base_node: Option>>, - pub assignment_type: Assignment, - pub assignment: Option>, -} -impl<'a> Default for OptionStatementArgs<'a> { - #[inline] - fn default() -> Self { - OptionStatementArgs { - base_node: None, - assignment_type: Assignment::NONE, - assignment: None, - } - } -} -pub struct OptionStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> OptionStatementBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(OptionStatement::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_assignment_type(&mut self, assignment_type: Assignment) { - self.fbb_.push_slot::(OptionStatement::VT_ASSIGNMENT_TYPE, assignment_type, Assignment::NONE); - } - #[inline] - pub fn add_assignment(&mut self, assignment: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(OptionStatement::VT_ASSIGNMENT, assignment); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> OptionStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - OptionStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BuiltinStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BuiltinStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BuiltinStatement<'a> { - type Inner = BuiltinStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct ExpressionOrBlockUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum PropertyKey { + NONE = 0, + Identifier = 1, + StringLiteral = 2, } -} -impl<'a> BuiltinStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BuiltinStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BuiltinStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BuiltinStatementBuilder::new(_fbb); - if let Some(x) = args.id { builder.add_id(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ID: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(BuiltinStatement::VT_BASE_NODE, None) - } - #[inline] - pub fn id(&self) -> Option> { - self._tab.get::>>(BuiltinStatement::VT_ID, None) - } -} - -pub struct BuiltinStatementArgs<'a> { - pub base_node: Option>>, - pub id: Option>>, -} -impl<'a> Default for BuiltinStatementArgs<'a> { - #[inline] - fn default() -> Self { - BuiltinStatementArgs { - base_node: None, - id: None, - } - } -} -pub struct BuiltinStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BuiltinStatementBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BuiltinStatement::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BuiltinStatement::VT_ID, id); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BuiltinStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - BuiltinStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum TestStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct TestStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for TestStatement<'a> { - type Inner = TestStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + const ENUM_MIN_PROPERTY_KEY: u8 = 0; + const ENUM_MAX_PROPERTY_KEY: u8 = 2; + + impl<'a> flatbuffers::Follow<'a> for PropertyKey { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> TestStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - TestStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args TestStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = TestStatementBuilder::new(_fbb); - if let Some(x) = args.assignment { builder.add_assignment(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_assignment_type(args.assignment_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ASSIGNMENT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(TestStatement::VT_BASE_NODE, None) - } - #[inline] - pub fn assignment_type(&self) -> Assignment { - self._tab.get::(TestStatement::VT_ASSIGNMENT_TYPE, Some(Assignment::NONE)).unwrap() - } - #[inline] - pub fn assignment(&self) -> Option> { - self._tab.get::>>(TestStatement::VT_ASSIGNMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn assignment_as_member_assignment(&self) -> Option> { - if self.assignment_type() == Assignment::MemberAssignment { - self.assignment().map(|u| MemberAssignment::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn assignment_as_variable_assignment(&self) -> Option> { - if self.assignment_type() == Assignment::VariableAssignment { - self.assignment().map(|u| VariableAssignment::init_from_table(u)) - } else { - None - } - } - -} - -pub struct TestStatementArgs<'a> { - pub base_node: Option>>, - pub assignment_type: Assignment, - pub assignment: Option>, -} -impl<'a> Default for TestStatementArgs<'a> { - #[inline] - fn default() -> Self { - TestStatementArgs { - base_node: None, - assignment_type: Assignment::NONE, - assignment: None, - } - } -} -pub struct TestStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> TestStatementBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(TestStatement::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_assignment_type(&mut self, assignment_type: Assignment) { - self.fbb_.push_slot::(TestStatement::VT_ASSIGNMENT_TYPE, assignment_type, Assignment::NONE); - } - #[inline] - pub fn add_assignment(&mut self, assignment: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(TestStatement::VT_ASSIGNMENT, assignment); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TestStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - TestStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum WrappedExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct WrappedExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for WrappedExpression<'a> { - type Inner = WrappedExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::EndianScalar for PropertyKey { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const PropertyKey; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const PropertyKey; + unsafe { *p } } } -} -impl<'a> WrappedExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - WrappedExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args WrappedExpressionArgs) -> flatbuffers::WIPOffset> { - let mut builder = WrappedExpressionBuilder::new(_fbb); - if let Some(x) = args.expr { builder.add_expr(x); } - builder.add_expr_type(args.expr_type); - builder.finish() - } - - pub const VT_EXPR_TYPE: flatbuffers::VOffsetT = 4; - pub const VT_EXPR: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn expr_type(&self) -> Expression { - self._tab.get::(WrappedExpression::VT_EXPR_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn expr(&self) -> Option> { - self._tab.get::>>(WrappedExpression::VT_EXPR, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_string_expression(&self) -> Option> { - if self.expr_type() == Expression::StringExpression { - self.expr().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_paren_expression(&self) -> Option> { - if self.expr_type() == Expression::ParenExpression { - self.expr().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_array_expression(&self) -> Option> { - if self.expr_type() == Expression::ArrayExpression { - self.expr().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_function_expression(&self) -> Option> { - if self.expr_type() == Expression::FunctionExpression { - self.expr().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_binary_expression(&self) -> Option> { - if self.expr_type() == Expression::BinaryExpression { - self.expr().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_boolean_literal(&self) -> Option> { - if self.expr_type() == Expression::BooleanLiteral { - self.expr().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_call_expression(&self) -> Option> { - if self.expr_type() == Expression::CallExpression { - self.expr().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_conditional_expression(&self) -> Option> { - if self.expr_type() == Expression::ConditionalExpression { - self.expr().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_date_time_literal(&self) -> Option> { - if self.expr_type() == Expression::DateTimeLiteral { - self.expr().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_duration_literal(&self) -> Option> { - if self.expr_type() == Expression::DurationLiteral { - self.expr().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_float_literal(&self) -> Option> { - if self.expr_type() == Expression::FloatLiteral { - self.expr().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_identifier(&self) -> Option> { - if self.expr_type() == Expression::Identifier { - self.expr().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_integer_literal(&self) -> Option> { - if self.expr_type() == Expression::IntegerLiteral { - self.expr().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_logical_expression(&self) -> Option> { - if self.expr_type() == Expression::LogicalExpression { - self.expr().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_member_expression(&self) -> Option> { - if self.expr_type() == Expression::MemberExpression { - self.expr().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_index_expression(&self) -> Option> { - if self.expr_type() == Expression::IndexExpression { - self.expr().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_object_expression(&self) -> Option> { - if self.expr_type() == Expression::ObjectExpression { - self.expr().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_pipe_expression(&self) -> Option> { - if self.expr_type() == Expression::PipeExpression { - self.expr().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_pipe_literal(&self) -> Option> { - if self.expr_type() == Expression::PipeLiteral { - self.expr().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_regexp_literal(&self) -> Option> { - if self.expr_type() == Expression::RegexpLiteral { - self.expr().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_string_literal(&self) -> Option> { - if self.expr_type() == Expression::StringLiteral { - self.expr().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_unary_expression(&self) -> Option> { - if self.expr_type() == Expression::UnaryExpression { - self.expr().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_unsigned_integer_literal(&self) -> Option> { - if self.expr_type() == Expression::UnsignedIntegerLiteral { - self.expr().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_bad_expression(&self) -> Option> { - if self.expr_type() == Expression::BadExpression { - self.expr().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct WrappedExpressionArgs { - pub expr_type: Expression, - pub expr: Option>, -} -impl<'a> Default for WrappedExpressionArgs { - #[inline] - fn default() -> Self { - WrappedExpressionArgs { - expr_type: Expression::NONE, - expr: None, - } - } -} -pub struct WrappedExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> WrappedExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_expr_type(&mut self, expr_type: Expression) { - self.fbb_.push_slot::(WrappedExpression::VT_EXPR_TYPE, expr_type, Expression::NONE); - } - #[inline] - pub fn add_expr(&mut self, expr: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(WrappedExpression::VT_EXPR, expr); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> WrappedExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - WrappedExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BinaryExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BinaryExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BinaryExpression<'a> { - type Inner = BinaryExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::Push for PropertyKey { + type Output = PropertyKey; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); } } -} -impl<'a> BinaryExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BinaryExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BinaryExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BinaryExpressionBuilder::new(_fbb); - if let Some(x) = args.right { builder.add_right(x); } - if let Some(x) = args.left { builder.add_left(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_right_type(args.right_type); - builder.add_left_type(args.left_type); - builder.add_operator(args.operator); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; - pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_LEFT: flatbuffers::VOffsetT = 10; - pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_RIGHT: flatbuffers::VOffsetT = 14; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn operator(&self) -> Operator { - self._tab.get::(BinaryExpression::VT_OPERATOR, Some(Operator::InvalidOperator)).unwrap() - } - #[inline] - pub fn left_type(&self) -> Expression { - self._tab.get::(BinaryExpression::VT_LEFT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn left(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_LEFT, None) - } - #[inline] - pub fn right_type(&self) -> Expression { - self._tab.get::(BinaryExpression::VT_RIGHT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn right(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_RIGHT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_expression(&self) -> Option> { - if self.left_type() == Expression::StringExpression { - self.left().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_paren_expression(&self) -> Option> { - if self.left_type() == Expression::ParenExpression { - self.left().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_array_expression(&self) -> Option> { - if self.left_type() == Expression::ArrayExpression { - self.left().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_function_expression(&self) -> Option> { - if self.left_type() == Expression::FunctionExpression { - self.left().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_binary_expression(&self) -> Option> { - if self.left_type() == Expression::BinaryExpression { - self.left().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_boolean_literal(&self) -> Option> { - if self.left_type() == Expression::BooleanLiteral { - self.left().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_call_expression(&self) -> Option> { - if self.left_type() == Expression::CallExpression { - self.left().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_conditional_expression(&self) -> Option> { - if self.left_type() == Expression::ConditionalExpression { - self.left().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_date_time_literal(&self) -> Option> { - if self.left_type() == Expression::DateTimeLiteral { - self.left().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_duration_literal(&self) -> Option> { - if self.left_type() == Expression::DurationLiteral { - self.left().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_float_literal(&self) -> Option> { - if self.left_type() == Expression::FloatLiteral { - self.left().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_identifier(&self) -> Option> { - if self.left_type() == Expression::Identifier { - self.left().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_integer_literal(&self) -> Option> { - if self.left_type() == Expression::IntegerLiteral { - self.left().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_logical_expression(&self) -> Option> { - if self.left_type() == Expression::LogicalExpression { - self.left().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_member_expression(&self) -> Option> { - if self.left_type() == Expression::MemberExpression { - self.left().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_index_expression(&self) -> Option> { - if self.left_type() == Expression::IndexExpression { - self.left().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_object_expression(&self) -> Option> { - if self.left_type() == Expression::ObjectExpression { - self.left().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_pipe_expression(&self) -> Option> { - if self.left_type() == Expression::PipeExpression { - self.left().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_pipe_literal(&self) -> Option> { - if self.left_type() == Expression::PipeLiteral { - self.left().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_regexp_literal(&self) -> Option> { - if self.left_type() == Expression::RegexpLiteral { - self.left().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_literal(&self) -> Option> { - if self.left_type() == Expression::StringLiteral { - self.left().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unary_expression(&self) -> Option> { - if self.left_type() == Expression::UnaryExpression { - self.left().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unsigned_integer_literal(&self) -> Option> { - if self.left_type() == Expression::UnsignedIntegerLiteral { - self.left().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_bad_expression(&self) -> Option> { - if self.left_type() == Expression::BadExpression { - self.left().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_expression(&self) -> Option> { - if self.right_type() == Expression::StringExpression { - self.right().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_paren_expression(&self) -> Option> { - if self.right_type() == Expression::ParenExpression { - self.right().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_array_expression(&self) -> Option> { - if self.right_type() == Expression::ArrayExpression { - self.right().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_function_expression(&self) -> Option> { - if self.right_type() == Expression::FunctionExpression { - self.right().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_binary_expression(&self) -> Option> { - if self.right_type() == Expression::BinaryExpression { - self.right().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_boolean_literal(&self) -> Option> { - if self.right_type() == Expression::BooleanLiteral { - self.right().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_call_expression(&self) -> Option> { - if self.right_type() == Expression::CallExpression { - self.right().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_conditional_expression(&self) -> Option> { - if self.right_type() == Expression::ConditionalExpression { - self.right().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_date_time_literal(&self) -> Option> { - if self.right_type() == Expression::DateTimeLiteral { - self.right().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_duration_literal(&self) -> Option> { - if self.right_type() == Expression::DurationLiteral { - self.right().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_float_literal(&self) -> Option> { - if self.right_type() == Expression::FloatLiteral { - self.right().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_identifier(&self) -> Option> { - if self.right_type() == Expression::Identifier { - self.right().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_integer_literal(&self) -> Option> { - if self.right_type() == Expression::IntegerLiteral { - self.right().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_logical_expression(&self) -> Option> { - if self.right_type() == Expression::LogicalExpression { - self.right().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_member_expression(&self) -> Option> { - if self.right_type() == Expression::MemberExpression { - self.right().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_index_expression(&self) -> Option> { - if self.right_type() == Expression::IndexExpression { - self.right().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_object_expression(&self) -> Option> { - if self.right_type() == Expression::ObjectExpression { - self.right().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_pipe_expression(&self) -> Option> { - if self.right_type() == Expression::PipeExpression { - self.right().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_pipe_literal(&self) -> Option> { - if self.right_type() == Expression::PipeLiteral { - self.right().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_regexp_literal(&self) -> Option> { - if self.right_type() == Expression::RegexpLiteral { - self.right().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_literal(&self) -> Option> { - if self.right_type() == Expression::StringLiteral { - self.right().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unary_expression(&self) -> Option> { - if self.right_type() == Expression::UnaryExpression { - self.right().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unsigned_integer_literal(&self) -> Option> { - if self.right_type() == Expression::UnsignedIntegerLiteral { - self.right().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_bad_expression(&self) -> Option> { - if self.right_type() == Expression::BadExpression { - self.right().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct BinaryExpressionArgs<'a> { - pub base_node: Option>>, - pub operator: Operator, - pub left_type: Expression, - pub left: Option>, - pub right_type: Expression, - pub right: Option>, -} -impl<'a> Default for BinaryExpressionArgs<'a> { - #[inline] - fn default() -> Self { - BinaryExpressionArgs { - base_node: None, - operator: Operator::InvalidOperator, - left_type: Expression::NONE, - left: None, - right_type: Expression::NONE, - right: None, - } - } -} -pub struct BinaryExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BinaryExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_operator(&mut self, operator: Operator) { - self.fbb_.push_slot::(BinaryExpression::VT_OPERATOR, operator, Operator::InvalidOperator); - } - #[inline] - pub fn add_left_type(&mut self, left_type: Expression) { - self.fbb_.push_slot::(BinaryExpression::VT_LEFT_TYPE, left_type, Expression::NONE); - } - #[inline] - pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_LEFT, left); - } - #[inline] - pub fn add_right_type(&mut self, right_type: Expression) { - self.fbb_.push_slot::(BinaryExpression::VT_RIGHT_TYPE, right_type, Expression::NONE); - } - #[inline] - pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_RIGHT, right); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BinaryExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - BinaryExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum LogicalExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct LogicalExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for LogicalExpression<'a> { - type Inner = LogicalExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + #[allow(non_camel_case_types)] + const ENUM_VALUES_PROPERTY_KEY: [PropertyKey; 3] = [ + PropertyKey::NONE, + PropertyKey::Identifier, + PropertyKey::StringLiteral, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_PROPERTY_KEY: [&'static str; 3] = ["NONE", "Identifier", "StringLiteral"]; + + pub fn enum_name_property_key(e: PropertyKey) -> &'static str { + let index = e as u8; + ENUM_NAMES_PROPERTY_KEY[index as usize] } -} -impl<'a> LogicalExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - LogicalExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args LogicalExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = LogicalExpressionBuilder::new(_fbb); - if let Some(x) = args.right { builder.add_right(x); } - if let Some(x) = args.left { builder.add_left(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_right_type(args.right_type); - builder.add_left_type(args.left_type); - builder.add_operator(args.operator); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; - pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_LEFT: flatbuffers::VOffsetT = 10; - pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_RIGHT: flatbuffers::VOffsetT = 14; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn operator(&self) -> LogicalOperator { - self._tab.get::(LogicalExpression::VT_OPERATOR, Some(LogicalOperator::AndOperator)).unwrap() - } - #[inline] - pub fn left_type(&self) -> Expression { - self._tab.get::(LogicalExpression::VT_LEFT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn left(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_LEFT, None) - } - #[inline] - pub fn right_type(&self) -> Expression { - self._tab.get::(LogicalExpression::VT_RIGHT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn right(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_RIGHT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_expression(&self) -> Option> { - if self.left_type() == Expression::StringExpression { - self.left().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_paren_expression(&self) -> Option> { - if self.left_type() == Expression::ParenExpression { - self.left().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_array_expression(&self) -> Option> { - if self.left_type() == Expression::ArrayExpression { - self.left().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_function_expression(&self) -> Option> { - if self.left_type() == Expression::FunctionExpression { - self.left().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_binary_expression(&self) -> Option> { - if self.left_type() == Expression::BinaryExpression { - self.left().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_boolean_literal(&self) -> Option> { - if self.left_type() == Expression::BooleanLiteral { - self.left().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_call_expression(&self) -> Option> { - if self.left_type() == Expression::CallExpression { - self.left().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_conditional_expression(&self) -> Option> { - if self.left_type() == Expression::ConditionalExpression { - self.left().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_date_time_literal(&self) -> Option> { - if self.left_type() == Expression::DateTimeLiteral { - self.left().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_duration_literal(&self) -> Option> { - if self.left_type() == Expression::DurationLiteral { - self.left().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_float_literal(&self) -> Option> { - if self.left_type() == Expression::FloatLiteral { - self.left().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_identifier(&self) -> Option> { - if self.left_type() == Expression::Identifier { - self.left().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_integer_literal(&self) -> Option> { - if self.left_type() == Expression::IntegerLiteral { - self.left().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_logical_expression(&self) -> Option> { - if self.left_type() == Expression::LogicalExpression { - self.left().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_member_expression(&self) -> Option> { - if self.left_type() == Expression::MemberExpression { - self.left().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_index_expression(&self) -> Option> { - if self.left_type() == Expression::IndexExpression { - self.left().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_object_expression(&self) -> Option> { - if self.left_type() == Expression::ObjectExpression { - self.left().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_pipe_expression(&self) -> Option> { - if self.left_type() == Expression::PipeExpression { - self.left().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_pipe_literal(&self) -> Option> { - if self.left_type() == Expression::PipeLiteral { - self.left().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_regexp_literal(&self) -> Option> { - if self.left_type() == Expression::RegexpLiteral { - self.left().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_literal(&self) -> Option> { - if self.left_type() == Expression::StringLiteral { - self.left().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unary_expression(&self) -> Option> { - if self.left_type() == Expression::UnaryExpression { - self.left().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unsigned_integer_literal(&self) -> Option> { - if self.left_type() == Expression::UnsignedIntegerLiteral { - self.left().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_bad_expression(&self) -> Option> { - if self.left_type() == Expression::BadExpression { - self.left().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_expression(&self) -> Option> { - if self.right_type() == Expression::StringExpression { - self.right().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_paren_expression(&self) -> Option> { - if self.right_type() == Expression::ParenExpression { - self.right().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_array_expression(&self) -> Option> { - if self.right_type() == Expression::ArrayExpression { - self.right().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_function_expression(&self) -> Option> { - if self.right_type() == Expression::FunctionExpression { - self.right().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_binary_expression(&self) -> Option> { - if self.right_type() == Expression::BinaryExpression { - self.right().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_boolean_literal(&self) -> Option> { - if self.right_type() == Expression::BooleanLiteral { - self.right().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_call_expression(&self) -> Option> { - if self.right_type() == Expression::CallExpression { - self.right().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_conditional_expression(&self) -> Option> { - if self.right_type() == Expression::ConditionalExpression { - self.right().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_date_time_literal(&self) -> Option> { - if self.right_type() == Expression::DateTimeLiteral { - self.right().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_duration_literal(&self) -> Option> { - if self.right_type() == Expression::DurationLiteral { - self.right().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_float_literal(&self) -> Option> { - if self.right_type() == Expression::FloatLiteral { - self.right().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_identifier(&self) -> Option> { - if self.right_type() == Expression::Identifier { - self.right().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_integer_literal(&self) -> Option> { - if self.right_type() == Expression::IntegerLiteral { - self.right().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_logical_expression(&self) -> Option> { - if self.right_type() == Expression::LogicalExpression { - self.right().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_member_expression(&self) -> Option> { - if self.right_type() == Expression::MemberExpression { - self.right().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_index_expression(&self) -> Option> { - if self.right_type() == Expression::IndexExpression { - self.right().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_object_expression(&self) -> Option> { - if self.right_type() == Expression::ObjectExpression { - self.right().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_pipe_expression(&self) -> Option> { - if self.right_type() == Expression::PipeExpression { - self.right().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_pipe_literal(&self) -> Option> { - if self.right_type() == Expression::PipeLiteral { - self.right().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_regexp_literal(&self) -> Option> { - if self.right_type() == Expression::RegexpLiteral { - self.right().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_literal(&self) -> Option> { - if self.right_type() == Expression::StringLiteral { - self.right().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unary_expression(&self) -> Option> { - if self.right_type() == Expression::UnaryExpression { - self.right().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unsigned_integer_literal(&self) -> Option> { - if self.right_type() == Expression::UnsignedIntegerLiteral { - self.right().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_bad_expression(&self) -> Option> { - if self.right_type() == Expression::BadExpression { - self.right().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct LogicalExpressionArgs<'a> { - pub base_node: Option>>, - pub operator: LogicalOperator, - pub left_type: Expression, - pub left: Option>, - pub right_type: Expression, - pub right: Option>, -} -impl<'a> Default for LogicalExpressionArgs<'a> { - #[inline] - fn default() -> Self { - LogicalExpressionArgs { - base_node: None, - operator: LogicalOperator::AndOperator, - left_type: Expression::NONE, - left: None, - right_type: Expression::NONE, - right: None, - } - } -} -pub struct LogicalExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> LogicalExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_operator(&mut self, operator: LogicalOperator) { - self.fbb_.push_slot::(LogicalExpression::VT_OPERATOR, operator, LogicalOperator::AndOperator); - } - #[inline] - pub fn add_left_type(&mut self, left_type: Expression) { - self.fbb_.push_slot::(LogicalExpression::VT_LEFT_TYPE, left_type, Expression::NONE); - } - #[inline] - pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_LEFT, left); - } - #[inline] - pub fn add_right_type(&mut self, right_type: Expression) { - self.fbb_.push_slot::(LogicalExpression::VT_RIGHT_TYPE, right_type, Expression::NONE); - } - #[inline] - pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_RIGHT, right); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> LogicalExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - LogicalExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum UnaryExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct UnaryExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for UnaryExpression<'a> { - type Inner = UnaryExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub struct PropertyKeyUnionTableOffset {} + // struct Position, aligned to 4 + #[repr(C, align(4))] + #[derive(Clone, Copy, Debug, PartialEq)] + pub struct Position { + line_: i32, + column_: i32, + } // pub struct Position + impl flatbuffers::SafeSliceAccess for Position {} + impl<'a> flatbuffers::Follow<'a> for Position { + type Inner = &'a Position; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + <&'a Position>::follow(buf, loc) } } -} - -impl<'a> UnaryExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - UnaryExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args UnaryExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = UnaryExpressionBuilder::new(_fbb); - if let Some(x) = args.argument { builder.add_argument(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_argument_type(args.argument_type); - builder.add_operator(args.operator); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; - pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_ARGUMENT: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(UnaryExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn operator(&self) -> Operator { - self._tab.get::(UnaryExpression::VT_OPERATOR, Some(Operator::InvalidOperator)).unwrap() - } - #[inline] - pub fn argument_type(&self) -> Expression { - self._tab.get::(UnaryExpression::VT_ARGUMENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn argument(&self) -> Option> { - self._tab.get::>>(UnaryExpression::VT_ARGUMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_expression(&self) -> Option> { - if self.argument_type() == Expression::StringExpression { - self.argument().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_paren_expression(&self) -> Option> { - if self.argument_type() == Expression::ParenExpression { - self.argument().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_array_expression(&self) -> Option> { - if self.argument_type() == Expression::ArrayExpression { - self.argument().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_function_expression(&self) -> Option> { - if self.argument_type() == Expression::FunctionExpression { - self.argument().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_binary_expression(&self) -> Option> { - if self.argument_type() == Expression::BinaryExpression { - self.argument().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_boolean_literal(&self) -> Option> { - if self.argument_type() == Expression::BooleanLiteral { - self.argument().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_call_expression(&self) -> Option> { - if self.argument_type() == Expression::CallExpression { - self.argument().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_conditional_expression(&self) -> Option> { - if self.argument_type() == Expression::ConditionalExpression { - self.argument().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_date_time_literal(&self) -> Option> { - if self.argument_type() == Expression::DateTimeLiteral { - self.argument().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_duration_literal(&self) -> Option> { - if self.argument_type() == Expression::DurationLiteral { - self.argument().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_float_literal(&self) -> Option> { - if self.argument_type() == Expression::FloatLiteral { - self.argument().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_identifier(&self) -> Option> { - if self.argument_type() == Expression::Identifier { - self.argument().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::IntegerLiteral { - self.argument().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_logical_expression(&self) -> Option> { - if self.argument_type() == Expression::LogicalExpression { - self.argument().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_member_expression(&self) -> Option> { - if self.argument_type() == Expression::MemberExpression { - self.argument().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_index_expression(&self) -> Option> { - if self.argument_type() == Expression::IndexExpression { - self.argument().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_object_expression(&self) -> Option> { - if self.argument_type() == Expression::ObjectExpression { - self.argument().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_pipe_expression(&self) -> Option> { - if self.argument_type() == Expression::PipeExpression { - self.argument().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_pipe_literal(&self) -> Option> { - if self.argument_type() == Expression::PipeLiteral { - self.argument().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_regexp_literal(&self) -> Option> { - if self.argument_type() == Expression::RegexpLiteral { - self.argument().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_literal(&self) -> Option> { - if self.argument_type() == Expression::StringLiteral { - self.argument().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unary_expression(&self) -> Option> { - if self.argument_type() == Expression::UnaryExpression { - self.argument().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unsigned_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::UnsignedIntegerLiteral { - self.argument().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_bad_expression(&self) -> Option> { - if self.argument_type() == Expression::BadExpression { - self.argument().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct UnaryExpressionArgs<'a> { - pub base_node: Option>>, - pub operator: Operator, - pub argument_type: Expression, - pub argument: Option>, -} -impl<'a> Default for UnaryExpressionArgs<'a> { - #[inline] - fn default() -> Self { - UnaryExpressionArgs { - base_node: None, - operator: Operator::InvalidOperator, - argument_type: Expression::NONE, - argument: None, - } - } -} -pub struct UnaryExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> UnaryExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(UnaryExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_operator(&mut self, operator: Operator) { - self.fbb_.push_slot::(UnaryExpression::VT_OPERATOR, operator, Operator::InvalidOperator); - } - #[inline] - pub fn add_argument_type(&mut self, argument_type: Expression) { - self.fbb_.push_slot::(UnaryExpression::VT_ARGUMENT_TYPE, argument_type, Expression::NONE); - } - #[inline] - pub fn add_argument(&mut self, argument: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(UnaryExpression::VT_ARGUMENT, argument); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UnaryExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - UnaryExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BooleanLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BooleanLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BooleanLiteral<'a> { - type Inner = BooleanLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for &'a Position { + type Inner = &'a Position; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::follow_cast_ref::(buf, loc) } } -} - -impl<'a> BooleanLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BooleanLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BooleanLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BooleanLiteralBuilder::new(_fbb); - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_value(args.value); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(BooleanLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn value(&self) -> bool { - self._tab.get::(BooleanLiteral::VT_VALUE, Some(false)).unwrap() - } -} - -pub struct BooleanLiteralArgs<'a> { - pub base_node: Option>>, - pub value: bool, -} -impl<'a> Default for BooleanLiteralArgs<'a> { - #[inline] - fn default() -> Self { - BooleanLiteralArgs { - base_node: None, - value: false, - } - } -} -pub struct BooleanLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BooleanLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BooleanLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_value(&mut self, value: bool) { - self.fbb_.push_slot::(BooleanLiteral::VT_VALUE, value, false); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BooleanLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - BooleanLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum DateTimeLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct DateTimeLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for DateTimeLiteral<'a> { - type Inner = DateTimeLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'b> flatbuffers::Push for Position { + type Output = Position; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + let src = unsafe { + ::std::slice::from_raw_parts(self as *const Position as *const u8, Self::size()) + }; + dst.copy_from_slice(src); } } -} + impl<'b> flatbuffers::Push for &'b Position { + type Output = Position; -impl<'a> DateTimeLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - DateTimeLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DateTimeLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = DateTimeLiteralBuilder::new(_fbb); - builder.add_secs(args.secs); - builder.add_offset(args.offset); - builder.add_nsecs(args.nsecs); - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_SECS: flatbuffers::VOffsetT = 6; - pub const VT_NSECS: flatbuffers::VOffsetT = 8; - pub const VT_OFFSET: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(DateTimeLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn secs(&self) -> i64 { - self._tab.get::(DateTimeLiteral::VT_SECS, Some(0)).unwrap() - } - #[inline] - pub fn nsecs(&self) -> u32 { - self._tab.get::(DateTimeLiteral::VT_NSECS, Some(0)).unwrap() - } - #[inline] - pub fn offset(&self) -> i32 { - self._tab.get::(DateTimeLiteral::VT_OFFSET, Some(0)).unwrap() - } -} - -pub struct DateTimeLiteralArgs<'a> { - pub base_node: Option>>, - pub secs: i64, - pub nsecs: u32, - pub offset: i32, -} -impl<'a> Default for DateTimeLiteralArgs<'a> { - #[inline] - fn default() -> Self { - DateTimeLiteralArgs { - base_node: None, - secs: 0, - nsecs: 0, - offset: 0, - } - } -} -pub struct DateTimeLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> DateTimeLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(DateTimeLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_secs(&mut self, secs: i64) { - self.fbb_.push_slot::(DateTimeLiteral::VT_SECS, secs, 0); - } - #[inline] - pub fn add_nsecs(&mut self, nsecs: u32) { - self.fbb_.push_slot::(DateTimeLiteral::VT_NSECS, nsecs, 0); - } - #[inline] - pub fn add_offset(&mut self, offset: i32) { - self.fbb_.push_slot::(DateTimeLiteral::VT_OFFSET, offset, 0); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DateTimeLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - DateTimeLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum DurationLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct DurationLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for DurationLiteral<'a> { - type Inner = DurationLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + let src = unsafe { + ::std::slice::from_raw_parts(*self as *const Position as *const u8, Self::size()) + }; + dst.copy_from_slice(src); + } } -} -impl<'a> DurationLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - DurationLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DurationLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = DurationLiteralBuilder::new(_fbb); - if let Some(x) = args.values { builder.add_values(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUES: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(DurationLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn values(&self) -> Option>>> { - self._tab.get::>>>>(DurationLiteral::VT_VALUES, None) - } -} - -pub struct DurationLiteralArgs<'a> { - pub base_node: Option>>, - pub values: Option>>>>, -} -impl<'a> Default for DurationLiteralArgs<'a> { - #[inline] - fn default() -> Self { - DurationLiteralArgs { - base_node: None, - values: None, - } - } -} -pub struct DurationLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> DurationLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(DurationLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_values(&mut self, values: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(DurationLiteral::VT_VALUES, values); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - DurationLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum DurationOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Duration<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Duration<'a> { - type Inner = Duration<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl Position { + pub fn new<'a>(_line: i32, _column: i32) -> Self { + Position { + line_: _line.to_little_endian(), + column_: _column.to_little_endian(), + } + } + pub fn line<'a>(&'a self) -> i32 { + self.line_.from_little_endian() + } + pub fn column<'a>(&'a self) -> i32 { + self.column_.from_little_endian() } } -} -impl<'a> Duration<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Duration { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DurationArgs) -> flatbuffers::WIPOffset> { - let mut builder = DurationBuilder::new(_fbb); - builder.add_magnitude(args.magnitude); - builder.add_unit(args.unit); - builder.finish() - } - - pub const VT_MAGNITUDE: flatbuffers::VOffsetT = 4; - pub const VT_UNIT: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn magnitude(&self) -> i64 { - self._tab.get::(Duration::VT_MAGNITUDE, Some(0)).unwrap() - } - #[inline] - pub fn unit(&self) -> TimeUnit { - self._tab.get::(Duration::VT_UNIT, Some(TimeUnit::y)).unwrap() - } -} - -pub struct DurationArgs { - pub magnitude: i64, - pub unit: TimeUnit, -} -impl<'a> Default for DurationArgs { - #[inline] - fn default() -> Self { - DurationArgs { - magnitude: 0, - unit: TimeUnit::y, - } - } -} -pub struct DurationBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> DurationBuilder<'a, 'b> { - #[inline] - pub fn add_magnitude(&mut self, magnitude: i64) { - self.fbb_.push_slot::(Duration::VT_MAGNITUDE, magnitude, 0); - } - #[inline] - pub fn add_unit(&mut self, unit: TimeUnit) { - self.fbb_.push_slot::(Duration::VT_UNIT, unit, TimeUnit::y); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationBuilder<'a, 'b> { - let start = _fbb.start_table(); - DurationBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FloatLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct FloatLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for FloatLiteral<'a> { - type Inner = FloatLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub enum SourceLocationOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct SourceLocation<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for SourceLocation<'a> { + type Inner = SourceLocation<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> SourceLocation<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + SourceLocation { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args SourceLocationArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = SourceLocationBuilder::new(_fbb); + if let Some(x) = args.source { + builder.add_source(x); + } + if let Some(x) = args.end { + builder.add_end(x); + } + if let Some(x) = args.start { + builder.add_start(x); + } + if let Some(x) = args.file { + builder.add_file(x); + } + builder.finish() + } + + pub const VT_FILE: flatbuffers::VOffsetT = 4; + pub const VT_START: flatbuffers::VOffsetT = 6; + pub const VT_END: flatbuffers::VOffsetT = 8; + pub const VT_SOURCE: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn file(&self) -> Option<&'a str> { + self._tab + .get::>(SourceLocation::VT_FILE, None) + } + #[inline] + pub fn start(&self) -> Option<&'a Position> { + self._tab.get::(SourceLocation::VT_START, None) + } + #[inline] + pub fn end(&self) -> Option<&'a Position> { + self._tab.get::(SourceLocation::VT_END, None) + } + #[inline] + pub fn source(&self) -> Option<&'a str> { + self._tab + .get::>(SourceLocation::VT_SOURCE, None) + } + } + + pub struct SourceLocationArgs<'a> { + pub file: Option>, + pub start: Option<&'a Position>, + pub end: Option<&'a Position>, + pub source: Option>, + } + impl<'a> Default for SourceLocationArgs<'a> { + #[inline] + fn default() -> Self { + SourceLocationArgs { + file: None, + start: None, + end: None, + source: None, + } + } + } + pub struct SourceLocationBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> SourceLocationBuilder<'a, 'b> { + #[inline] + pub fn add_file(&mut self, file: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(SourceLocation::VT_FILE, file); + } + #[inline] + pub fn add_start(&mut self, start: &'b Position) { + self.fbb_ + .push_slot_always::<&Position>(SourceLocation::VT_START, start); + } + #[inline] + pub fn add_end(&mut self, end: &'b Position) { + self.fbb_ + .push_slot_always::<&Position>(SourceLocation::VT_END, end); + } + #[inline] + pub fn add_source(&mut self, source: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(SourceLocation::VT_SOURCE, source); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> SourceLocationBuilder<'a, 'b> { + let start = _fbb.start_table(); + SourceLocationBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BaseNodeOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BaseNode<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BaseNode<'a> { + type Inner = BaseNode<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BaseNode<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BaseNode { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BaseNodeArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BaseNodeBuilder::new(_fbb); + if let Some(x) = args.errors { + builder.add_errors(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ERRORS: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(BaseNode::VT_LOC, None) + } + #[inline] + pub fn errors( + &self, + ) -> Option>> { + self._tab.get::>, + >>(BaseNode::VT_ERRORS, None) + } + } + + pub struct BaseNodeArgs<'a> { + pub loc: Option>>, + pub errors: Option< + flatbuffers::WIPOffset>>, + >, + } + impl<'a> Default for BaseNodeArgs<'a> { + #[inline] + fn default() -> Self { + BaseNodeArgs { + loc: None, + errors: None, + } + } + } + pub struct BaseNodeBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BaseNodeBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(BaseNode::VT_LOC, loc); + } + #[inline] + pub fn add_errors( + &mut self, + errors: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>, + >, + ) { + self.fbb_ + .push_slot_always::>(BaseNode::VT_ERRORS, errors); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BaseNodeBuilder<'a, 'b> { + let start = _fbb.start_table(); + BaseNodeBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PackageOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Package<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Package<'a> { + type Inner = Package<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Package<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Package { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PackageArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PackageBuilder::new(_fbb); + if let Some(x) = args.files { + builder.add_files(x); + } + if let Some(x) = args.package { + builder.add_package(x); + } + if let Some(x) = args.path { + builder.add_path(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_PATH: flatbuffers::VOffsetT = 6; + pub const VT_PACKAGE: flatbuffers::VOffsetT = 8; + pub const VT_FILES: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(Package::VT_BASE_NODE, None) + } + #[inline] + pub fn path(&self) -> Option<&'a str> { + self._tab + .get::>(Package::VT_PATH, None) + } + #[inline] + pub fn package(&self) -> Option<&'a str> { + self._tab + .get::>(Package::VT_PACKAGE, None) + } + #[inline] + pub fn files( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(Package::VT_FILES, None) + } + } + + pub struct PackageArgs<'a> { + pub base_node: Option>>, + pub path: Option>, + pub package: Option>, + pub files: Option< + flatbuffers::WIPOffset>>>, + >, + } + impl<'a> Default for PackageArgs<'a> { + #[inline] + fn default() -> Self { + PackageArgs { + base_node: None, + path: None, + package: None, + files: None, + } + } + } + pub struct PackageBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PackageBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + Package::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_path(&mut self, path: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Package::VT_PATH, path); + } + #[inline] + pub fn add_package(&mut self, package: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Package::VT_PACKAGE, package); + } + #[inline] + pub fn add_files( + &mut self, + files: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(Package::VT_FILES, files); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageBuilder<'a, 'b> { + let start = _fbb.start_table(); + PackageBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FileOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct File<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for File<'a> { + type Inner = File<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> File<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + File { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FileArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FileBuilder::new(_fbb); + if let Some(x) = args.body { + builder.add_body(x); + } + if let Some(x) = args.imports { + builder.add_imports(x); + } + if let Some(x) = args.package { + builder.add_package(x); + } + if let Some(x) = args.name { + builder.add_name(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + pub const VT_PACKAGE: flatbuffers::VOffsetT = 8; + pub const VT_IMPORTS: flatbuffers::VOffsetT = 10; + pub const VT_BODY: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(File::VT_BASE_NODE, None) + } + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab + .get::>(File::VT_NAME, None) + } + #[inline] + pub fn package(&self) -> Option> { + self._tab + .get::>>(File::VT_PACKAGE, None) + } + #[inline] + pub fn imports( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(File::VT_IMPORTS, None) + } + #[inline] + pub fn body( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(File::VT_BODY, None) + } + } + + pub struct FileArgs<'a> { + pub base_node: Option>>, + pub name: Option>, + pub package: Option>>, + pub imports: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub body: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for FileArgs<'a> { + #[inline] + fn default() -> Self { + FileArgs { + base_node: None, + name: None, + package: None, + imports: None, + body: None, + } + } + } + pub struct FileBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FileBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + File::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(File::VT_NAME, name); + } + #[inline] + pub fn add_package(&mut self, package: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + File::VT_PACKAGE, + package, + ); + } + #[inline] + pub fn add_imports( + &mut self, + imports: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(File::VT_IMPORTS, imports); + } + #[inline] + pub fn add_body( + &mut self, + body: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(File::VT_BODY, body); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FileBuilder<'a, 'b> { + let start = _fbb.start_table(); + FileBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PackageClauseOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct PackageClause<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { + type Inner = PackageClause<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> PackageClause<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PackageClause { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PackageClauseArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PackageClauseBuilder::new(_fbb); + if let Some(x) = args.name { + builder.add_name(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + PackageClause::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn name(&self) -> Option> { + self._tab + .get::>>(PackageClause::VT_NAME, None) + } + } + + pub struct PackageClauseArgs<'a> { + pub base_node: Option>>, + pub name: Option>>, + } + impl<'a> Default for PackageClauseArgs<'a> { + #[inline] + fn default() -> Self { + PackageClauseArgs { + base_node: None, + name: None, + } + } + } + pub struct PackageClauseBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PackageClauseBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PackageClause::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PackageClause::VT_NAME, + name, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> PackageClauseBuilder<'a, 'b> { + let start = _fbb.start_table(); + PackageClauseBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ImportDeclarationOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ImportDeclaration<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ImportDeclaration<'a> { + type Inner = ImportDeclaration<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ImportDeclaration<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ImportDeclaration { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ImportDeclarationArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ImportDeclarationBuilder::new(_fbb); + if let Some(x) = args.path { + builder.add_path(x); + } + if let Some(x) = args.as_ { + builder.add_as_(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_AS_: flatbuffers::VOffsetT = 6; + pub const VT_PATH: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ImportDeclaration::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn as_(&self) -> Option> { + self._tab + .get::>>( + ImportDeclaration::VT_AS_, + None, + ) + } + #[inline] + pub fn path(&self) -> Option> { + self._tab + .get::>>( + ImportDeclaration::VT_PATH, + None, + ) + } + } + + pub struct ImportDeclarationArgs<'a> { + pub base_node: Option>>, + pub as_: Option>>, + pub path: Option>>, + } + impl<'a> Default for ImportDeclarationArgs<'a> { + #[inline] + fn default() -> Self { + ImportDeclarationArgs { + base_node: None, + as_: None, + path: None, + } + } + } + pub struct ImportDeclarationBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ImportDeclarationBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ImportDeclaration::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_as_(&mut self, as_: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ImportDeclaration::VT_AS_, + as_, + ); + } + #[inline] + pub fn add_path(&mut self, path: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ImportDeclaration::VT_PATH, + path, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ImportDeclarationBuilder<'a, 'b> { + let start = _fbb.start_table(); + ImportDeclarationBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum WrappedStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct WrappedStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for WrappedStatement<'a> { + type Inner = WrappedStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> WrappedStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + WrappedStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args WrappedStatementArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = WrappedStatementBuilder::new(_fbb); + if let Some(x) = args.statement { + builder.add_statement(x); + } + builder.add_statement_type(args.statement_type); + builder.finish() + } + + pub const VT_STATEMENT_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_STATEMENT: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn statement_type(&self) -> Statement { + self._tab + .get::(WrappedStatement::VT_STATEMENT_TYPE, Some(Statement::NONE)) + .unwrap() + } + #[inline] + pub fn statement(&self) -> Option> { + self._tab + .get::>>( + WrappedStatement::VT_STATEMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_bad_statement(&self) -> Option> { + if self.statement_type() == Statement::BadStatement { + self.statement().map(|u| BadStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_variable_assignment(&self) -> Option> { + if self.statement_type() == Statement::VariableAssignment { + self.statement() + .map(|u| VariableAssignment::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_member_assignment(&self) -> Option> { + if self.statement_type() == Statement::MemberAssignment { + self.statement() + .map(|u| MemberAssignment::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_expression_statement(&self) -> Option> { + if self.statement_type() == Statement::ExpressionStatement { + self.statement() + .map(|u| ExpressionStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_return_statement(&self) -> Option> { + if self.statement_type() == Statement::ReturnStatement { + self.statement() + .map(|u| ReturnStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_option_statement(&self) -> Option> { + if self.statement_type() == Statement::OptionStatement { + self.statement() + .map(|u| OptionStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_builtin_statement(&self) -> Option> { + if self.statement_type() == Statement::BuiltinStatement { + self.statement() + .map(|u| BuiltinStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_test_statement(&self) -> Option> { + if self.statement_type() == Statement::TestStatement { + self.statement().map(|u| TestStatement::init_from_table(u)) + } else { + None + } + } + } + + pub struct WrappedStatementArgs { + pub statement_type: Statement, + pub statement: Option>, + } + impl<'a> Default for WrappedStatementArgs { + #[inline] + fn default() -> Self { + WrappedStatementArgs { + statement_type: Statement::NONE, + statement: None, + } + } + } + pub struct WrappedStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> WrappedStatementBuilder<'a, 'b> { + #[inline] + pub fn add_statement_type(&mut self, statement_type: Statement) { + self.fbb_.push_slot::( + WrappedStatement::VT_STATEMENT_TYPE, + statement_type, + Statement::NONE, + ); + } + #[inline] + pub fn add_statement( + &mut self, + statement: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + WrappedStatement::VT_STATEMENT, + statement, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> WrappedStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + WrappedStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BadStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BadStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BadStatement<'a> { + type Inner = BadStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BadStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BadStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BadStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BadStatementBuilder::new(_fbb); + if let Some(x) = args.text { + builder.add_text(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_TEXT: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(BadStatement::VT_BASE_NODE, None) + } + #[inline] + pub fn text(&self) -> Option<&'a str> { + self._tab + .get::>(BadStatement::VT_TEXT, None) + } + } + + pub struct BadStatementArgs<'a> { + pub base_node: Option>>, + pub text: Option>, + } + impl<'a> Default for BadStatementArgs<'a> { + #[inline] + fn default() -> Self { + BadStatementArgs { + base_node: None, + text: None, + } + } + } + pub struct BadStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BadStatementBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BadStatement::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_text(&mut self, text: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(BadStatement::VT_TEXT, text); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BadStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + BadStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum VariableAssignmentOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct VariableAssignment<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for VariableAssignment<'a> { + type Inner = VariableAssignment<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> VariableAssignment<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + VariableAssignment { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args VariableAssignmentArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = VariableAssignmentBuilder::new(_fbb); + if let Some(x) = args.init_ { + builder.add_init_(x); + } + if let Some(x) = args.id { + builder.add_id(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_init__type(args.init__type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ID: flatbuffers::VOffsetT = 6; + pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; + pub const VT_INIT_: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + VariableAssignment::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn id(&self) -> Option> { + self._tab + .get::>>( + VariableAssignment::VT_ID, + None, + ) + } + #[inline] + pub fn init__type(&self) -> Expression { + self._tab + .get::(VariableAssignment::VT_INIT__TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn init_(&self) -> Option> { + self._tab + .get::>>( + VariableAssignment::VT_INIT_, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_expression(&self) -> Option> { + if self.init__type() == Expression::StringExpression { + self.init_().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_paren_expression(&self) -> Option> { + if self.init__type() == Expression::ParenExpression { + self.init_().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_array_expression(&self) -> Option> { + if self.init__type() == Expression::ArrayExpression { + self.init_().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_function_expression(&self) -> Option> { + if self.init__type() == Expression::FunctionExpression { + self.init_().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_binary_expression(&self) -> Option> { + if self.init__type() == Expression::BinaryExpression { + self.init_().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_boolean_literal(&self) -> Option> { + if self.init__type() == Expression::BooleanLiteral { + self.init_().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_call_expression(&self) -> Option> { + if self.init__type() == Expression::CallExpression { + self.init_().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_conditional_expression(&self) -> Option> { + if self.init__type() == Expression::ConditionalExpression { + self.init_() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_date_time_literal(&self) -> Option> { + if self.init__type() == Expression::DateTimeLiteral { + self.init_().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_duration_literal(&self) -> Option> { + if self.init__type() == Expression::DurationLiteral { + self.init_().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_float_literal(&self) -> Option> { + if self.init__type() == Expression::FloatLiteral { + self.init_().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_identifier(&self) -> Option> { + if self.init__type() == Expression::Identifier { + self.init_().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_integer_literal(&self) -> Option> { + if self.init__type() == Expression::IntegerLiteral { + self.init_().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_logical_expression(&self) -> Option> { + if self.init__type() == Expression::LogicalExpression { + self.init_().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_member_expression(&self) -> Option> { + if self.init__type() == Expression::MemberExpression { + self.init_().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_index_expression(&self) -> Option> { + if self.init__type() == Expression::IndexExpression { + self.init_().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_object_expression(&self) -> Option> { + if self.init__type() == Expression::ObjectExpression { + self.init_().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_pipe_expression(&self) -> Option> { + if self.init__type() == Expression::PipeExpression { + self.init_().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_pipe_literal(&self) -> Option> { + if self.init__type() == Expression::PipeLiteral { + self.init_().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_regexp_literal(&self) -> Option> { + if self.init__type() == Expression::RegexpLiteral { + self.init_().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_literal(&self) -> Option> { + if self.init__type() == Expression::StringLiteral { + self.init_().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unary_expression(&self) -> Option> { + if self.init__type() == Expression::UnaryExpression { + self.init_().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unsigned_integer_literal(&self) -> Option> { + if self.init__type() == Expression::UnsignedIntegerLiteral { + self.init_() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_bad_expression(&self) -> Option> { + if self.init__type() == Expression::BadExpression { + self.init_().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct VariableAssignmentArgs<'a> { + pub base_node: Option>>, + pub id: Option>>, + pub init__type: Expression, + pub init_: Option>, + } + impl<'a> Default for VariableAssignmentArgs<'a> { + #[inline] + fn default() -> Self { + VariableAssignmentArgs { + base_node: None, + id: None, + init__type: Expression::NONE, + init_: None, + } + } + } + pub struct VariableAssignmentBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> VariableAssignmentBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + VariableAssignment::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + VariableAssignment::VT_ID, + id, + ); + } + #[inline] + pub fn add_init__type(&mut self, init__type: Expression) { + self.fbb_.push_slot::( + VariableAssignment::VT_INIT__TYPE, + init__type, + Expression::NONE, + ); + } + #[inline] + pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(VariableAssignment::VT_INIT_, init_); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> VariableAssignmentBuilder<'a, 'b> { + let start = _fbb.start_table(); + VariableAssignmentBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum MemberAssignmentOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct MemberAssignment<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for MemberAssignment<'a> { + type Inner = MemberAssignment<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> MemberAssignment<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + MemberAssignment { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args MemberAssignmentArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = MemberAssignmentBuilder::new(_fbb); + if let Some(x) = args.init_ { + builder.add_init_(x); + } + if let Some(x) = args.member { + builder.add_member(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_init__type(args.init__type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_MEMBER: flatbuffers::VOffsetT = 6; + pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; + pub const VT_INIT_: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + MemberAssignment::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn member(&self) -> Option> { + self._tab + .get::>>( + MemberAssignment::VT_MEMBER, + None, + ) + } + #[inline] + pub fn init__type(&self) -> Expression { + self._tab + .get::(MemberAssignment::VT_INIT__TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn init_(&self) -> Option> { + self._tab + .get::>>( + MemberAssignment::VT_INIT_, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_expression(&self) -> Option> { + if self.init__type() == Expression::StringExpression { + self.init_().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_paren_expression(&self) -> Option> { + if self.init__type() == Expression::ParenExpression { + self.init_().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_array_expression(&self) -> Option> { + if self.init__type() == Expression::ArrayExpression { + self.init_().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_function_expression(&self) -> Option> { + if self.init__type() == Expression::FunctionExpression { + self.init_().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_binary_expression(&self) -> Option> { + if self.init__type() == Expression::BinaryExpression { + self.init_().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_boolean_literal(&self) -> Option> { + if self.init__type() == Expression::BooleanLiteral { + self.init_().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_call_expression(&self) -> Option> { + if self.init__type() == Expression::CallExpression { + self.init_().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_conditional_expression(&self) -> Option> { + if self.init__type() == Expression::ConditionalExpression { + self.init_() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_date_time_literal(&self) -> Option> { + if self.init__type() == Expression::DateTimeLiteral { + self.init_().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_duration_literal(&self) -> Option> { + if self.init__type() == Expression::DurationLiteral { + self.init_().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_float_literal(&self) -> Option> { + if self.init__type() == Expression::FloatLiteral { + self.init_().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_identifier(&self) -> Option> { + if self.init__type() == Expression::Identifier { + self.init_().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_integer_literal(&self) -> Option> { + if self.init__type() == Expression::IntegerLiteral { + self.init_().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_logical_expression(&self) -> Option> { + if self.init__type() == Expression::LogicalExpression { + self.init_().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_member_expression(&self) -> Option> { + if self.init__type() == Expression::MemberExpression { + self.init_().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_index_expression(&self) -> Option> { + if self.init__type() == Expression::IndexExpression { + self.init_().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_object_expression(&self) -> Option> { + if self.init__type() == Expression::ObjectExpression { + self.init_().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_pipe_expression(&self) -> Option> { + if self.init__type() == Expression::PipeExpression { + self.init_().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_pipe_literal(&self) -> Option> { + if self.init__type() == Expression::PipeLiteral { + self.init_().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_regexp_literal(&self) -> Option> { + if self.init__type() == Expression::RegexpLiteral { + self.init_().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_literal(&self) -> Option> { + if self.init__type() == Expression::StringLiteral { + self.init_().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unary_expression(&self) -> Option> { + if self.init__type() == Expression::UnaryExpression { + self.init_().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unsigned_integer_literal(&self) -> Option> { + if self.init__type() == Expression::UnsignedIntegerLiteral { + self.init_() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_bad_expression(&self) -> Option> { + if self.init__type() == Expression::BadExpression { + self.init_().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct MemberAssignmentArgs<'a> { + pub base_node: Option>>, + pub member: Option>>, + pub init__type: Expression, + pub init_: Option>, + } + impl<'a> Default for MemberAssignmentArgs<'a> { + #[inline] + fn default() -> Self { + MemberAssignmentArgs { + base_node: None, + member: None, + init__type: Expression::NONE, + init_: None, + } + } + } + pub struct MemberAssignmentBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> MemberAssignmentBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + MemberAssignment::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_member(&mut self, member: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + MemberAssignment::VT_MEMBER, + member, + ); + } + #[inline] + pub fn add_init__type(&mut self, init__type: Expression) { + self.fbb_.push_slot::( + MemberAssignment::VT_INIT__TYPE, + init__type, + Expression::NONE, + ); + } + #[inline] + pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(MemberAssignment::VT_INIT_, init_); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> MemberAssignmentBuilder<'a, 'b> { + let start = _fbb.start_table(); + MemberAssignmentBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ExpressionStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ExpressionStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ExpressionStatement<'a> { + type Inner = ExpressionStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ExpressionStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ExpressionStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ExpressionStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ExpressionStatementBuilder::new(_fbb); + if let Some(x) = args.expression { + builder.add_expression(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_expression_type(args.expression_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_EXPRESSION: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ExpressionStatement::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn expression_type(&self) -> Expression { + self._tab + .get::( + ExpressionStatement::VT_EXPRESSION_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn expression(&self) -> Option> { + self._tab + .get::>>( + ExpressionStatement::VT_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_expression(&self) -> Option> { + if self.expression_type() == Expression::StringExpression { + self.expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_paren_expression(&self) -> Option> { + if self.expression_type() == Expression::ParenExpression { + self.expression() + .map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_array_expression(&self) -> Option> { + if self.expression_type() == Expression::ArrayExpression { + self.expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_function_expression(&self) -> Option> { + if self.expression_type() == Expression::FunctionExpression { + self.expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_binary_expression(&self) -> Option> { + if self.expression_type() == Expression::BinaryExpression { + self.expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_boolean_literal(&self) -> Option> { + if self.expression_type() == Expression::BooleanLiteral { + self.expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_call_expression(&self) -> Option> { + if self.expression_type() == Expression::CallExpression { + self.expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_conditional_expression(&self) -> Option> { + if self.expression_type() == Expression::ConditionalExpression { + self.expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_date_time_literal(&self) -> Option> { + if self.expression_type() == Expression::DateTimeLiteral { + self.expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_duration_literal(&self) -> Option> { + if self.expression_type() == Expression::DurationLiteral { + self.expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_float_literal(&self) -> Option> { + if self.expression_type() == Expression::FloatLiteral { + self.expression().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_identifier(&self) -> Option> { + if self.expression_type() == Expression::Identifier { + self.expression().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::IntegerLiteral { + self.expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_logical_expression(&self) -> Option> { + if self.expression_type() == Expression::LogicalExpression { + self.expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_member_expression(&self) -> Option> { + if self.expression_type() == Expression::MemberExpression { + self.expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_index_expression(&self) -> Option> { + if self.expression_type() == Expression::IndexExpression { + self.expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_object_expression(&self) -> Option> { + if self.expression_type() == Expression::ObjectExpression { + self.expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_pipe_expression(&self) -> Option> { + if self.expression_type() == Expression::PipeExpression { + self.expression() + .map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_pipe_literal(&self) -> Option> { + if self.expression_type() == Expression::PipeLiteral { + self.expression().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_regexp_literal(&self) -> Option> { + if self.expression_type() == Expression::RegexpLiteral { + self.expression().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_literal(&self) -> Option> { + if self.expression_type() == Expression::StringLiteral { + self.expression().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unary_expression(&self) -> Option> { + if self.expression_type() == Expression::UnaryExpression { + self.expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unsigned_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::UnsignedIntegerLiteral { + self.expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_bad_expression(&self) -> Option> { + if self.expression_type() == Expression::BadExpression { + self.expression().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct ExpressionStatementArgs<'a> { + pub base_node: Option>>, + pub expression_type: Expression, + pub expression: Option>, + } + impl<'a> Default for ExpressionStatementArgs<'a> { + #[inline] + fn default() -> Self { + ExpressionStatementArgs { + base_node: None, + expression_type: Expression::NONE, + expression: None, + } + } + } + pub struct ExpressionStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ExpressionStatementBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ExpressionStatement::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_expression_type(&mut self, expression_type: Expression) { + self.fbb_.push_slot::( + ExpressionStatement::VT_EXPRESSION_TYPE, + expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_expression( + &mut self, + expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ExpressionStatement::VT_EXPRESSION, + expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ExpressionStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + ExpressionStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ReturnStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ReturnStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ReturnStatement<'a> { + type Inner = ReturnStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ReturnStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ReturnStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ReturnStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ReturnStatementBuilder::new(_fbb); + if let Some(x) = args.argument { + builder.add_argument(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_argument_type(args.argument_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ARGUMENT: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ReturnStatement::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn argument_type(&self) -> Expression { + self._tab + .get::(ReturnStatement::VT_ARGUMENT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn argument(&self) -> Option> { + self._tab + .get::>>( + ReturnStatement::VT_ARGUMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_expression(&self) -> Option> { + if self.argument_type() == Expression::StringExpression { + self.argument() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_paren_expression(&self) -> Option> { + if self.argument_type() == Expression::ParenExpression { + self.argument().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_array_expression(&self) -> Option> { + if self.argument_type() == Expression::ArrayExpression { + self.argument().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_function_expression(&self) -> Option> { + if self.argument_type() == Expression::FunctionExpression { + self.argument() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_binary_expression(&self) -> Option> { + if self.argument_type() == Expression::BinaryExpression { + self.argument() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_boolean_literal(&self) -> Option> { + if self.argument_type() == Expression::BooleanLiteral { + self.argument().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_call_expression(&self) -> Option> { + if self.argument_type() == Expression::CallExpression { + self.argument().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_conditional_expression(&self) -> Option> { + if self.argument_type() == Expression::ConditionalExpression { + self.argument() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_date_time_literal(&self) -> Option> { + if self.argument_type() == Expression::DateTimeLiteral { + self.argument().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_duration_literal(&self) -> Option> { + if self.argument_type() == Expression::DurationLiteral { + self.argument().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_float_literal(&self) -> Option> { + if self.argument_type() == Expression::FloatLiteral { + self.argument().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_identifier(&self) -> Option> { + if self.argument_type() == Expression::Identifier { + self.argument().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::IntegerLiteral { + self.argument().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_logical_expression(&self) -> Option> { + if self.argument_type() == Expression::LogicalExpression { + self.argument() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_member_expression(&self) -> Option> { + if self.argument_type() == Expression::MemberExpression { + self.argument() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_index_expression(&self) -> Option> { + if self.argument_type() == Expression::IndexExpression { + self.argument().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_object_expression(&self) -> Option> { + if self.argument_type() == Expression::ObjectExpression { + self.argument() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_pipe_expression(&self) -> Option> { + if self.argument_type() == Expression::PipeExpression { + self.argument().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_pipe_literal(&self) -> Option> { + if self.argument_type() == Expression::PipeLiteral { + self.argument().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_regexp_literal(&self) -> Option> { + if self.argument_type() == Expression::RegexpLiteral { + self.argument().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_literal(&self) -> Option> { + if self.argument_type() == Expression::StringLiteral { + self.argument().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unary_expression(&self) -> Option> { + if self.argument_type() == Expression::UnaryExpression { + self.argument().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unsigned_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::UnsignedIntegerLiteral { + self.argument() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_bad_expression(&self) -> Option> { + if self.argument_type() == Expression::BadExpression { + self.argument().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct ReturnStatementArgs<'a> { + pub base_node: Option>>, + pub argument_type: Expression, + pub argument: Option>, + } + impl<'a> Default for ReturnStatementArgs<'a> { + #[inline] + fn default() -> Self { + ReturnStatementArgs { + base_node: None, + argument_type: Expression::NONE, + argument: None, + } + } + } + pub struct ReturnStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ReturnStatementBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ReturnStatement::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_argument_type(&mut self, argument_type: Expression) { + self.fbb_.push_slot::( + ReturnStatement::VT_ARGUMENT_TYPE, + argument_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_argument( + &mut self, + argument: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ReturnStatement::VT_ARGUMENT, + argument, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ReturnStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + ReturnStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum OptionStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct OptionStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for OptionStatement<'a> { + type Inner = OptionStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> OptionStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + OptionStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args OptionStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = OptionStatementBuilder::new(_fbb); + if let Some(x) = args.assignment { + builder.add_assignment(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_assignment_type(args.assignment_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ASSIGNMENT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + OptionStatement::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn assignment_type(&self) -> Assignment { + self._tab + .get::(OptionStatement::VT_ASSIGNMENT_TYPE, Some(Assignment::NONE)) + .unwrap() + } + #[inline] + pub fn assignment(&self) -> Option> { + self._tab + .get::>>( + OptionStatement::VT_ASSIGNMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn assignment_as_member_assignment(&self) -> Option> { + if self.assignment_type() == Assignment::MemberAssignment { + self.assignment() + .map(|u| MemberAssignment::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn assignment_as_variable_assignment(&self) -> Option> { + if self.assignment_type() == Assignment::VariableAssignment { + self.assignment() + .map(|u| VariableAssignment::init_from_table(u)) + } else { + None + } + } + } + + pub struct OptionStatementArgs<'a> { + pub base_node: Option>>, + pub assignment_type: Assignment, + pub assignment: Option>, + } + impl<'a> Default for OptionStatementArgs<'a> { + #[inline] + fn default() -> Self { + OptionStatementArgs { + base_node: None, + assignment_type: Assignment::NONE, + assignment: None, + } + } + } + pub struct OptionStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> OptionStatementBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + OptionStatement::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_assignment_type(&mut self, assignment_type: Assignment) { + self.fbb_.push_slot::( + OptionStatement::VT_ASSIGNMENT_TYPE, + assignment_type, + Assignment::NONE, + ); + } + #[inline] + pub fn add_assignment( + &mut self, + assignment: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + OptionStatement::VT_ASSIGNMENT, + assignment, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> OptionStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + OptionStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BuiltinStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BuiltinStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BuiltinStatement<'a> { + type Inner = BuiltinStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BuiltinStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BuiltinStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BuiltinStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BuiltinStatementBuilder::new(_fbb); + if let Some(x) = args.id { + builder.add_id(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ID: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + BuiltinStatement::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn id(&self) -> Option> { + self._tab + .get::>>(BuiltinStatement::VT_ID, None) + } + } + + pub struct BuiltinStatementArgs<'a> { + pub base_node: Option>>, + pub id: Option>>, + } + impl<'a> Default for BuiltinStatementArgs<'a> { + #[inline] + fn default() -> Self { + BuiltinStatementArgs { + base_node: None, + id: None, + } + } + } + pub struct BuiltinStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BuiltinStatementBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BuiltinStatement::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BuiltinStatement::VT_ID, + id, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BuiltinStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + BuiltinStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum TestStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct TestStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for TestStatement<'a> { + type Inner = TestStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> TestStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + TestStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args TestStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = TestStatementBuilder::new(_fbb); + if let Some(x) = args.assignment { + builder.add_assignment(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_assignment_type(args.assignment_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ASSIGNMENT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + TestStatement::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn assignment_type(&self) -> Assignment { + self._tab + .get::(TestStatement::VT_ASSIGNMENT_TYPE, Some(Assignment::NONE)) + .unwrap() + } + #[inline] + pub fn assignment(&self) -> Option> { + self._tab + .get::>>( + TestStatement::VT_ASSIGNMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn assignment_as_member_assignment(&self) -> Option> { + if self.assignment_type() == Assignment::MemberAssignment { + self.assignment() + .map(|u| MemberAssignment::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn assignment_as_variable_assignment(&self) -> Option> { + if self.assignment_type() == Assignment::VariableAssignment { + self.assignment() + .map(|u| VariableAssignment::init_from_table(u)) + } else { + None + } + } + } + + pub struct TestStatementArgs<'a> { + pub base_node: Option>>, + pub assignment_type: Assignment, + pub assignment: Option>, + } + impl<'a> Default for TestStatementArgs<'a> { + #[inline] + fn default() -> Self { + TestStatementArgs { + base_node: None, + assignment_type: Assignment::NONE, + assignment: None, + } + } + } + pub struct TestStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> TestStatementBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + TestStatement::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_assignment_type(&mut self, assignment_type: Assignment) { + self.fbb_.push_slot::( + TestStatement::VT_ASSIGNMENT_TYPE, + assignment_type, + Assignment::NONE, + ); + } + #[inline] + pub fn add_assignment( + &mut self, + assignment: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + TestStatement::VT_ASSIGNMENT, + assignment, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> TestStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + TestStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum WrappedExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct WrappedExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for WrappedExpression<'a> { + type Inner = WrappedExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> WrappedExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + WrappedExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args WrappedExpressionArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = WrappedExpressionBuilder::new(_fbb); + if let Some(x) = args.expr { + builder.add_expr(x); + } + builder.add_expr_type(args.expr_type); + builder.finish() + } + + pub const VT_EXPR_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_EXPR: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn expr_type(&self) -> Expression { + self._tab + .get::(WrappedExpression::VT_EXPR_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn expr(&self) -> Option> { + self._tab + .get::>>( + WrappedExpression::VT_EXPR, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_string_expression(&self) -> Option> { + if self.expr_type() == Expression::StringExpression { + self.expr().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_paren_expression(&self) -> Option> { + if self.expr_type() == Expression::ParenExpression { + self.expr().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_array_expression(&self) -> Option> { + if self.expr_type() == Expression::ArrayExpression { + self.expr().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_function_expression(&self) -> Option> { + if self.expr_type() == Expression::FunctionExpression { + self.expr().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_binary_expression(&self) -> Option> { + if self.expr_type() == Expression::BinaryExpression { + self.expr().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_boolean_literal(&self) -> Option> { + if self.expr_type() == Expression::BooleanLiteral { + self.expr().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_call_expression(&self) -> Option> { + if self.expr_type() == Expression::CallExpression { + self.expr().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_conditional_expression(&self) -> Option> { + if self.expr_type() == Expression::ConditionalExpression { + self.expr() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_date_time_literal(&self) -> Option> { + if self.expr_type() == Expression::DateTimeLiteral { + self.expr().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_duration_literal(&self) -> Option> { + if self.expr_type() == Expression::DurationLiteral { + self.expr().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_float_literal(&self) -> Option> { + if self.expr_type() == Expression::FloatLiteral { + self.expr().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_identifier(&self) -> Option> { + if self.expr_type() == Expression::Identifier { + self.expr().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_integer_literal(&self) -> Option> { + if self.expr_type() == Expression::IntegerLiteral { + self.expr().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_logical_expression(&self) -> Option> { + if self.expr_type() == Expression::LogicalExpression { + self.expr().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_member_expression(&self) -> Option> { + if self.expr_type() == Expression::MemberExpression { + self.expr().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_index_expression(&self) -> Option> { + if self.expr_type() == Expression::IndexExpression { + self.expr().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_object_expression(&self) -> Option> { + if self.expr_type() == Expression::ObjectExpression { + self.expr().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_pipe_expression(&self) -> Option> { + if self.expr_type() == Expression::PipeExpression { + self.expr().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_pipe_literal(&self) -> Option> { + if self.expr_type() == Expression::PipeLiteral { + self.expr().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_regexp_literal(&self) -> Option> { + if self.expr_type() == Expression::RegexpLiteral { + self.expr().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_string_literal(&self) -> Option> { + if self.expr_type() == Expression::StringLiteral { + self.expr().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_unary_expression(&self) -> Option> { + if self.expr_type() == Expression::UnaryExpression { + self.expr().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_unsigned_integer_literal(&self) -> Option> { + if self.expr_type() == Expression::UnsignedIntegerLiteral { + self.expr() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_bad_expression(&self) -> Option> { + if self.expr_type() == Expression::BadExpression { + self.expr().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct WrappedExpressionArgs { + pub expr_type: Expression, + pub expr: Option>, + } + impl<'a> Default for WrappedExpressionArgs { + #[inline] + fn default() -> Self { + WrappedExpressionArgs { + expr_type: Expression::NONE, + expr: None, + } + } + } + pub struct WrappedExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> WrappedExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_expr_type(&mut self, expr_type: Expression) { + self.fbb_.push_slot::( + WrappedExpression::VT_EXPR_TYPE, + expr_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_expr(&mut self, expr: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(WrappedExpression::VT_EXPR, expr); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> WrappedExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + WrappedExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BinaryExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BinaryExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BinaryExpression<'a> { + type Inner = BinaryExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BinaryExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BinaryExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BinaryExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BinaryExpressionBuilder::new(_fbb); + if let Some(x) = args.right { + builder.add_right(x); + } + if let Some(x) = args.left { + builder.add_left(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_right_type(args.right_type); + builder.add_left_type(args.left_type); + builder.add_operator(args.operator); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; + pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_LEFT: flatbuffers::VOffsetT = 10; + pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_RIGHT: flatbuffers::VOffsetT = 14; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + BinaryExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn operator(&self) -> Operator { + self._tab + .get::( + BinaryExpression::VT_OPERATOR, + Some(Operator::InvalidOperator), + ) + .unwrap() + } + #[inline] + pub fn left_type(&self) -> Expression { + self._tab + .get::(BinaryExpression::VT_LEFT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn left(&self) -> Option> { + self._tab + .get::>>( + BinaryExpression::VT_LEFT, + None, + ) + } + #[inline] + pub fn right_type(&self) -> Expression { + self._tab + .get::(BinaryExpression::VT_RIGHT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn right(&self) -> Option> { + self._tab + .get::>>( + BinaryExpression::VT_RIGHT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_expression(&self) -> Option> { + if self.left_type() == Expression::StringExpression { + self.left().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_paren_expression(&self) -> Option> { + if self.left_type() == Expression::ParenExpression { + self.left().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_array_expression(&self) -> Option> { + if self.left_type() == Expression::ArrayExpression { + self.left().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_function_expression(&self) -> Option> { + if self.left_type() == Expression::FunctionExpression { + self.left().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_binary_expression(&self) -> Option> { + if self.left_type() == Expression::BinaryExpression { + self.left().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_boolean_literal(&self) -> Option> { + if self.left_type() == Expression::BooleanLiteral { + self.left().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_call_expression(&self) -> Option> { + if self.left_type() == Expression::CallExpression { + self.left().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_conditional_expression(&self) -> Option> { + if self.left_type() == Expression::ConditionalExpression { + self.left() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_date_time_literal(&self) -> Option> { + if self.left_type() == Expression::DateTimeLiteral { + self.left().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_duration_literal(&self) -> Option> { + if self.left_type() == Expression::DurationLiteral { + self.left().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_float_literal(&self) -> Option> { + if self.left_type() == Expression::FloatLiteral { + self.left().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_identifier(&self) -> Option> { + if self.left_type() == Expression::Identifier { + self.left().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_integer_literal(&self) -> Option> { + if self.left_type() == Expression::IntegerLiteral { + self.left().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_logical_expression(&self) -> Option> { + if self.left_type() == Expression::LogicalExpression { + self.left().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_member_expression(&self) -> Option> { + if self.left_type() == Expression::MemberExpression { + self.left().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_index_expression(&self) -> Option> { + if self.left_type() == Expression::IndexExpression { + self.left().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_object_expression(&self) -> Option> { + if self.left_type() == Expression::ObjectExpression { + self.left().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_pipe_expression(&self) -> Option> { + if self.left_type() == Expression::PipeExpression { + self.left().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_pipe_literal(&self) -> Option> { + if self.left_type() == Expression::PipeLiteral { + self.left().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_regexp_literal(&self) -> Option> { + if self.left_type() == Expression::RegexpLiteral { + self.left().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_literal(&self) -> Option> { + if self.left_type() == Expression::StringLiteral { + self.left().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unary_expression(&self) -> Option> { + if self.left_type() == Expression::UnaryExpression { + self.left().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unsigned_integer_literal(&self) -> Option> { + if self.left_type() == Expression::UnsignedIntegerLiteral { + self.left() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_bad_expression(&self) -> Option> { + if self.left_type() == Expression::BadExpression { + self.left().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_expression(&self) -> Option> { + if self.right_type() == Expression::StringExpression { + self.right().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_paren_expression(&self) -> Option> { + if self.right_type() == Expression::ParenExpression { + self.right().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_array_expression(&self) -> Option> { + if self.right_type() == Expression::ArrayExpression { + self.right().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_function_expression(&self) -> Option> { + if self.right_type() == Expression::FunctionExpression { + self.right().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_binary_expression(&self) -> Option> { + if self.right_type() == Expression::BinaryExpression { + self.right().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_boolean_literal(&self) -> Option> { + if self.right_type() == Expression::BooleanLiteral { + self.right().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_call_expression(&self) -> Option> { + if self.right_type() == Expression::CallExpression { + self.right().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_conditional_expression(&self) -> Option> { + if self.right_type() == Expression::ConditionalExpression { + self.right() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_date_time_literal(&self) -> Option> { + if self.right_type() == Expression::DateTimeLiteral { + self.right().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_duration_literal(&self) -> Option> { + if self.right_type() == Expression::DurationLiteral { + self.right().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_float_literal(&self) -> Option> { + if self.right_type() == Expression::FloatLiteral { + self.right().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_identifier(&self) -> Option> { + if self.right_type() == Expression::Identifier { + self.right().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_integer_literal(&self) -> Option> { + if self.right_type() == Expression::IntegerLiteral { + self.right().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_logical_expression(&self) -> Option> { + if self.right_type() == Expression::LogicalExpression { + self.right().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_member_expression(&self) -> Option> { + if self.right_type() == Expression::MemberExpression { + self.right().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_index_expression(&self) -> Option> { + if self.right_type() == Expression::IndexExpression { + self.right().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_object_expression(&self) -> Option> { + if self.right_type() == Expression::ObjectExpression { + self.right().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_pipe_expression(&self) -> Option> { + if self.right_type() == Expression::PipeExpression { + self.right().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_pipe_literal(&self) -> Option> { + if self.right_type() == Expression::PipeLiteral { + self.right().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_regexp_literal(&self) -> Option> { + if self.right_type() == Expression::RegexpLiteral { + self.right().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_literal(&self) -> Option> { + if self.right_type() == Expression::StringLiteral { + self.right().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unary_expression(&self) -> Option> { + if self.right_type() == Expression::UnaryExpression { + self.right().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unsigned_integer_literal(&self) -> Option> { + if self.right_type() == Expression::UnsignedIntegerLiteral { + self.right() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_bad_expression(&self) -> Option> { + if self.right_type() == Expression::BadExpression { + self.right().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct BinaryExpressionArgs<'a> { + pub base_node: Option>>, + pub operator: Operator, + pub left_type: Expression, + pub left: Option>, + pub right_type: Expression, + pub right: Option>, + } + impl<'a> Default for BinaryExpressionArgs<'a> { + #[inline] + fn default() -> Self { + BinaryExpressionArgs { + base_node: None, + operator: Operator::InvalidOperator, + left_type: Expression::NONE, + left: None, + right_type: Expression::NONE, + right: None, + } + } + } + pub struct BinaryExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BinaryExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BinaryExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_operator(&mut self, operator: Operator) { + self.fbb_.push_slot::( + BinaryExpression::VT_OPERATOR, + operator, + Operator::InvalidOperator, + ); + } + #[inline] + pub fn add_left_type(&mut self, left_type: Expression) { + self.fbb_.push_slot::( + BinaryExpression::VT_LEFT_TYPE, + left_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(BinaryExpression::VT_LEFT, left); + } + #[inline] + pub fn add_right_type(&mut self, right_type: Expression) { + self.fbb_.push_slot::( + BinaryExpression::VT_RIGHT_TYPE, + right_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(BinaryExpression::VT_RIGHT, right); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BinaryExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + BinaryExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum LogicalExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct LogicalExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for LogicalExpression<'a> { + type Inner = LogicalExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> LogicalExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + LogicalExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args LogicalExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = LogicalExpressionBuilder::new(_fbb); + if let Some(x) = args.right { + builder.add_right(x); + } + if let Some(x) = args.left { + builder.add_left(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_right_type(args.right_type); + builder.add_left_type(args.left_type); + builder.add_operator(args.operator); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; + pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_LEFT: flatbuffers::VOffsetT = 10; + pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_RIGHT: flatbuffers::VOffsetT = 14; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + LogicalExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn operator(&self) -> LogicalOperator { + self._tab + .get::( + LogicalExpression::VT_OPERATOR, + Some(LogicalOperator::AndOperator), + ) + .unwrap() + } + #[inline] + pub fn left_type(&self) -> Expression { + self._tab + .get::(LogicalExpression::VT_LEFT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn left(&self) -> Option> { + self._tab + .get::>>( + LogicalExpression::VT_LEFT, + None, + ) + } + #[inline] + pub fn right_type(&self) -> Expression { + self._tab + .get::(LogicalExpression::VT_RIGHT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn right(&self) -> Option> { + self._tab + .get::>>( + LogicalExpression::VT_RIGHT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_expression(&self) -> Option> { + if self.left_type() == Expression::StringExpression { + self.left().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_paren_expression(&self) -> Option> { + if self.left_type() == Expression::ParenExpression { + self.left().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_array_expression(&self) -> Option> { + if self.left_type() == Expression::ArrayExpression { + self.left().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_function_expression(&self) -> Option> { + if self.left_type() == Expression::FunctionExpression { + self.left().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_binary_expression(&self) -> Option> { + if self.left_type() == Expression::BinaryExpression { + self.left().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_boolean_literal(&self) -> Option> { + if self.left_type() == Expression::BooleanLiteral { + self.left().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_call_expression(&self) -> Option> { + if self.left_type() == Expression::CallExpression { + self.left().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_conditional_expression(&self) -> Option> { + if self.left_type() == Expression::ConditionalExpression { + self.left() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_date_time_literal(&self) -> Option> { + if self.left_type() == Expression::DateTimeLiteral { + self.left().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_duration_literal(&self) -> Option> { + if self.left_type() == Expression::DurationLiteral { + self.left().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_float_literal(&self) -> Option> { + if self.left_type() == Expression::FloatLiteral { + self.left().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_identifier(&self) -> Option> { + if self.left_type() == Expression::Identifier { + self.left().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_integer_literal(&self) -> Option> { + if self.left_type() == Expression::IntegerLiteral { + self.left().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_logical_expression(&self) -> Option> { + if self.left_type() == Expression::LogicalExpression { + self.left().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_member_expression(&self) -> Option> { + if self.left_type() == Expression::MemberExpression { + self.left().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_index_expression(&self) -> Option> { + if self.left_type() == Expression::IndexExpression { + self.left().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_object_expression(&self) -> Option> { + if self.left_type() == Expression::ObjectExpression { + self.left().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_pipe_expression(&self) -> Option> { + if self.left_type() == Expression::PipeExpression { + self.left().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_pipe_literal(&self) -> Option> { + if self.left_type() == Expression::PipeLiteral { + self.left().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_regexp_literal(&self) -> Option> { + if self.left_type() == Expression::RegexpLiteral { + self.left().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_literal(&self) -> Option> { + if self.left_type() == Expression::StringLiteral { + self.left().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unary_expression(&self) -> Option> { + if self.left_type() == Expression::UnaryExpression { + self.left().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unsigned_integer_literal(&self) -> Option> { + if self.left_type() == Expression::UnsignedIntegerLiteral { + self.left() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_bad_expression(&self) -> Option> { + if self.left_type() == Expression::BadExpression { + self.left().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_expression(&self) -> Option> { + if self.right_type() == Expression::StringExpression { + self.right().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_paren_expression(&self) -> Option> { + if self.right_type() == Expression::ParenExpression { + self.right().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_array_expression(&self) -> Option> { + if self.right_type() == Expression::ArrayExpression { + self.right().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_function_expression(&self) -> Option> { + if self.right_type() == Expression::FunctionExpression { + self.right().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_binary_expression(&self) -> Option> { + if self.right_type() == Expression::BinaryExpression { + self.right().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_boolean_literal(&self) -> Option> { + if self.right_type() == Expression::BooleanLiteral { + self.right().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_call_expression(&self) -> Option> { + if self.right_type() == Expression::CallExpression { + self.right().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_conditional_expression(&self) -> Option> { + if self.right_type() == Expression::ConditionalExpression { + self.right() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_date_time_literal(&self) -> Option> { + if self.right_type() == Expression::DateTimeLiteral { + self.right().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_duration_literal(&self) -> Option> { + if self.right_type() == Expression::DurationLiteral { + self.right().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_float_literal(&self) -> Option> { + if self.right_type() == Expression::FloatLiteral { + self.right().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_identifier(&self) -> Option> { + if self.right_type() == Expression::Identifier { + self.right().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_integer_literal(&self) -> Option> { + if self.right_type() == Expression::IntegerLiteral { + self.right().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_logical_expression(&self) -> Option> { + if self.right_type() == Expression::LogicalExpression { + self.right().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_member_expression(&self) -> Option> { + if self.right_type() == Expression::MemberExpression { + self.right().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_index_expression(&self) -> Option> { + if self.right_type() == Expression::IndexExpression { + self.right().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_object_expression(&self) -> Option> { + if self.right_type() == Expression::ObjectExpression { + self.right().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_pipe_expression(&self) -> Option> { + if self.right_type() == Expression::PipeExpression { + self.right().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_pipe_literal(&self) -> Option> { + if self.right_type() == Expression::PipeLiteral { + self.right().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_regexp_literal(&self) -> Option> { + if self.right_type() == Expression::RegexpLiteral { + self.right().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_literal(&self) -> Option> { + if self.right_type() == Expression::StringLiteral { + self.right().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unary_expression(&self) -> Option> { + if self.right_type() == Expression::UnaryExpression { + self.right().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unsigned_integer_literal(&self) -> Option> { + if self.right_type() == Expression::UnsignedIntegerLiteral { + self.right() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_bad_expression(&self) -> Option> { + if self.right_type() == Expression::BadExpression { + self.right().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct LogicalExpressionArgs<'a> { + pub base_node: Option>>, + pub operator: LogicalOperator, + pub left_type: Expression, + pub left: Option>, + pub right_type: Expression, + pub right: Option>, + } + impl<'a> Default for LogicalExpressionArgs<'a> { + #[inline] + fn default() -> Self { + LogicalExpressionArgs { + base_node: None, + operator: LogicalOperator::AndOperator, + left_type: Expression::NONE, + left: None, + right_type: Expression::NONE, + right: None, + } + } + } + pub struct LogicalExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> LogicalExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + LogicalExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_operator(&mut self, operator: LogicalOperator) { + self.fbb_.push_slot::( + LogicalExpression::VT_OPERATOR, + operator, + LogicalOperator::AndOperator, + ); + } + #[inline] + pub fn add_left_type(&mut self, left_type: Expression) { + self.fbb_.push_slot::( + LogicalExpression::VT_LEFT_TYPE, + left_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(LogicalExpression::VT_LEFT, left); + } + #[inline] + pub fn add_right_type(&mut self, right_type: Expression) { + self.fbb_.push_slot::( + LogicalExpression::VT_RIGHT_TYPE, + right_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(LogicalExpression::VT_RIGHT, right); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> LogicalExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + LogicalExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum UnaryExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct UnaryExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for UnaryExpression<'a> { + type Inner = UnaryExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> UnaryExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + UnaryExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args UnaryExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = UnaryExpressionBuilder::new(_fbb); + if let Some(x) = args.argument { + builder.add_argument(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_argument_type(args.argument_type); + builder.add_operator(args.operator); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; + pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_ARGUMENT: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + UnaryExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn operator(&self) -> Operator { + self._tab + .get::( + UnaryExpression::VT_OPERATOR, + Some(Operator::InvalidOperator), + ) + .unwrap() + } + #[inline] + pub fn argument_type(&self) -> Expression { + self._tab + .get::(UnaryExpression::VT_ARGUMENT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn argument(&self) -> Option> { + self._tab + .get::>>( + UnaryExpression::VT_ARGUMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_expression(&self) -> Option> { + if self.argument_type() == Expression::StringExpression { + self.argument() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_paren_expression(&self) -> Option> { + if self.argument_type() == Expression::ParenExpression { + self.argument().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_array_expression(&self) -> Option> { + if self.argument_type() == Expression::ArrayExpression { + self.argument().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_function_expression(&self) -> Option> { + if self.argument_type() == Expression::FunctionExpression { + self.argument() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_binary_expression(&self) -> Option> { + if self.argument_type() == Expression::BinaryExpression { + self.argument() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_boolean_literal(&self) -> Option> { + if self.argument_type() == Expression::BooleanLiteral { + self.argument().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_call_expression(&self) -> Option> { + if self.argument_type() == Expression::CallExpression { + self.argument().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_conditional_expression(&self) -> Option> { + if self.argument_type() == Expression::ConditionalExpression { + self.argument() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_date_time_literal(&self) -> Option> { + if self.argument_type() == Expression::DateTimeLiteral { + self.argument().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_duration_literal(&self) -> Option> { + if self.argument_type() == Expression::DurationLiteral { + self.argument().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_float_literal(&self) -> Option> { + if self.argument_type() == Expression::FloatLiteral { + self.argument().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_identifier(&self) -> Option> { + if self.argument_type() == Expression::Identifier { + self.argument().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::IntegerLiteral { + self.argument().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_logical_expression(&self) -> Option> { + if self.argument_type() == Expression::LogicalExpression { + self.argument() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_member_expression(&self) -> Option> { + if self.argument_type() == Expression::MemberExpression { + self.argument() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_index_expression(&self) -> Option> { + if self.argument_type() == Expression::IndexExpression { + self.argument().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_object_expression(&self) -> Option> { + if self.argument_type() == Expression::ObjectExpression { + self.argument() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_pipe_expression(&self) -> Option> { + if self.argument_type() == Expression::PipeExpression { + self.argument().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_pipe_literal(&self) -> Option> { + if self.argument_type() == Expression::PipeLiteral { + self.argument().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_regexp_literal(&self) -> Option> { + if self.argument_type() == Expression::RegexpLiteral { + self.argument().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_literal(&self) -> Option> { + if self.argument_type() == Expression::StringLiteral { + self.argument().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unary_expression(&self) -> Option> { + if self.argument_type() == Expression::UnaryExpression { + self.argument().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unsigned_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::UnsignedIntegerLiteral { + self.argument() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_bad_expression(&self) -> Option> { + if self.argument_type() == Expression::BadExpression { + self.argument().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct UnaryExpressionArgs<'a> { + pub base_node: Option>>, + pub operator: Operator, + pub argument_type: Expression, + pub argument: Option>, + } + impl<'a> Default for UnaryExpressionArgs<'a> { + #[inline] + fn default() -> Self { + UnaryExpressionArgs { + base_node: None, + operator: Operator::InvalidOperator, + argument_type: Expression::NONE, + argument: None, + } + } + } + pub struct UnaryExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> UnaryExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + UnaryExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_operator(&mut self, operator: Operator) { + self.fbb_.push_slot::( + UnaryExpression::VT_OPERATOR, + operator, + Operator::InvalidOperator, + ); + } + #[inline] + pub fn add_argument_type(&mut self, argument_type: Expression) { + self.fbb_.push_slot::( + UnaryExpression::VT_ARGUMENT_TYPE, + argument_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_argument( + &mut self, + argument: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + UnaryExpression::VT_ARGUMENT, + argument, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> UnaryExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + UnaryExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BooleanLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BooleanLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BooleanLiteral<'a> { + type Inner = BooleanLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BooleanLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BooleanLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BooleanLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BooleanLiteralBuilder::new(_fbb); + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_value(args.value); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + BooleanLiteral::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn value(&self) -> bool { + self._tab + .get::(BooleanLiteral::VT_VALUE, Some(false)) + .unwrap() + } + } + + pub struct BooleanLiteralArgs<'a> { + pub base_node: Option>>, + pub value: bool, + } + impl<'a> Default for BooleanLiteralArgs<'a> { + #[inline] + fn default() -> Self { + BooleanLiteralArgs { + base_node: None, + value: false, + } + } + } + pub struct BooleanLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BooleanLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BooleanLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_value(&mut self, value: bool) { + self.fbb_ + .push_slot::(BooleanLiteral::VT_VALUE, value, false); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BooleanLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + BooleanLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum DateTimeLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct DateTimeLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for DateTimeLiteral<'a> { + type Inner = DateTimeLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> DateTimeLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + DateTimeLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DateTimeLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = DateTimeLiteralBuilder::new(_fbb); + builder.add_secs(args.secs); + builder.add_offset(args.offset); + builder.add_nsecs(args.nsecs); + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_SECS: flatbuffers::VOffsetT = 6; + pub const VT_NSECS: flatbuffers::VOffsetT = 8; + pub const VT_OFFSET: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + DateTimeLiteral::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn secs(&self) -> i64 { + self._tab + .get::(DateTimeLiteral::VT_SECS, Some(0)) + .unwrap() + } + #[inline] + pub fn nsecs(&self) -> u32 { + self._tab + .get::(DateTimeLiteral::VT_NSECS, Some(0)) + .unwrap() + } + #[inline] + pub fn offset(&self) -> i32 { + self._tab + .get::(DateTimeLiteral::VT_OFFSET, Some(0)) + .unwrap() + } + } + + pub struct DateTimeLiteralArgs<'a> { + pub base_node: Option>>, + pub secs: i64, + pub nsecs: u32, + pub offset: i32, + } + impl<'a> Default for DateTimeLiteralArgs<'a> { + #[inline] + fn default() -> Self { + DateTimeLiteralArgs { + base_node: None, + secs: 0, + nsecs: 0, + offset: 0, + } + } + } + pub struct DateTimeLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> DateTimeLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + DateTimeLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_secs(&mut self, secs: i64) { + self.fbb_ + .push_slot::(DateTimeLiteral::VT_SECS, secs, 0); + } + #[inline] + pub fn add_nsecs(&mut self, nsecs: u32) { + self.fbb_ + .push_slot::(DateTimeLiteral::VT_NSECS, nsecs, 0); + } + #[inline] + pub fn add_offset(&mut self, offset: i32) { + self.fbb_ + .push_slot::(DateTimeLiteral::VT_OFFSET, offset, 0); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> DateTimeLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + DateTimeLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum DurationLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct DurationLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for DurationLiteral<'a> { + type Inner = DurationLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> DurationLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + DurationLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DurationLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = DurationLiteralBuilder::new(_fbb); + if let Some(x) = args.values { + builder.add_values(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUES: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + DurationLiteral::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn values( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(DurationLiteral::VT_VALUES, None) + } + } + + pub struct DurationLiteralArgs<'a> { + pub base_node: Option>>, + pub values: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for DurationLiteralArgs<'a> { + #[inline] + fn default() -> Self { + DurationLiteralArgs { + base_node: None, + values: None, + } + } + } + pub struct DurationLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> DurationLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + DurationLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_values( + &mut self, + values: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(DurationLiteral::VT_VALUES, values); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> DurationLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + DurationLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum DurationOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Duration<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Duration<'a> { + type Inner = Duration<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Duration<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Duration { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DurationArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = DurationBuilder::new(_fbb); + builder.add_magnitude(args.magnitude); + builder.add_unit(args.unit); + builder.finish() + } + + pub const VT_MAGNITUDE: flatbuffers::VOffsetT = 4; + pub const VT_UNIT: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn magnitude(&self) -> i64 { + self._tab + .get::(Duration::VT_MAGNITUDE, Some(0)) + .unwrap() + } + #[inline] + pub fn unit(&self) -> TimeUnit { + self._tab + .get::(Duration::VT_UNIT, Some(TimeUnit::y)) + .unwrap() + } + } + + pub struct DurationArgs { + pub magnitude: i64, + pub unit: TimeUnit, + } + impl<'a> Default for DurationArgs { + #[inline] + fn default() -> Self { + DurationArgs { + magnitude: 0, + unit: TimeUnit::y, + } + } + } + pub struct DurationBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> DurationBuilder<'a, 'b> { + #[inline] + pub fn add_magnitude(&mut self, magnitude: i64) { + self.fbb_ + .push_slot::(Duration::VT_MAGNITUDE, magnitude, 0); + } + #[inline] + pub fn add_unit(&mut self, unit: TimeUnit) { + self.fbb_ + .push_slot::(Duration::VT_UNIT, unit, TimeUnit::y); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationBuilder<'a, 'b> { + let start = _fbb.start_table(); + DurationBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) } } -} -impl<'a> FloatLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FloatLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FloatLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FloatLiteralBuilder::new(_fbb); - builder.add_value(args.value); - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(FloatLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn value(&self) -> f64 { - self._tab.get::(FloatLiteral::VT_VALUE, Some(0.0)).unwrap() - } -} - -pub struct FloatLiteralArgs<'a> { - pub base_node: Option>>, - pub value: f64, -} -impl<'a> Default for FloatLiteralArgs<'a> { - #[inline] - fn default() -> Self { - FloatLiteralArgs { - base_node: None, - value: 0.0, - } - } -} -pub struct FloatLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FloatLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FloatLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_value(&mut self, value: f64) { - self.fbb_.push_slot::(FloatLiteral::VT_VALUE, value, 0.0); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FloatLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - FloatLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IntegerLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct IntegerLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for IntegerLiteral<'a> { - type Inner = IntegerLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub enum FloatLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct FloatLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, } -} -impl<'a> IntegerLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - IntegerLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IntegerLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IntegerLiteralBuilder::new(_fbb); - builder.add_value(args.value); - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(IntegerLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn value(&self) -> i64 { - self._tab.get::(IntegerLiteral::VT_VALUE, Some(0)).unwrap() - } -} - -pub struct IntegerLiteralArgs<'a> { - pub base_node: Option>>, - pub value: i64, -} -impl<'a> Default for IntegerLiteralArgs<'a> { - #[inline] - fn default() -> Self { - IntegerLiteralArgs { - base_node: None, - value: 0, - } - } -} -pub struct IntegerLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IntegerLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(IntegerLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_value(&mut self, value: i64) { - self.fbb_.push_slot::(IntegerLiteral::VT_VALUE, value, 0); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IntegerLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - IntegerLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PipeLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct PipeLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for PipeLiteral<'a> { - type Inner = PipeLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for FloatLiteral<'a> { + type Inner = FloatLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> PipeLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - PipeLiteral { - _tab: table, + impl<'a> FloatLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + FloatLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FloatLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FloatLiteralBuilder::new(_fbb); + builder.add_value(args.value); + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PipeLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PipeLiteralBuilder::new(_fbb); - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(PipeLiteral::VT_BASE_NODE, None) - } -} + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(FloatLiteral::VT_BASE_NODE, None) + } + #[inline] + pub fn value(&self) -> f64 { + self._tab + .get::(FloatLiteral::VT_VALUE, Some(0.0)) + .unwrap() + } + } -pub struct PipeLiteralArgs<'a> { - pub base_node: Option>>, -} -impl<'a> Default for PipeLiteralArgs<'a> { - #[inline] - fn default() -> Self { - PipeLiteralArgs { - base_node: None, - } - } -} -pub struct PipeLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PipeLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PipeLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PipeLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - PipeLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum RegexpLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct RegexpLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for RegexpLiteral<'a> { - type Inner = RegexpLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct FloatLiteralArgs<'a> { + pub base_node: Option>>, + pub value: f64, } -} - -impl<'a> RegexpLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - RegexpLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args RegexpLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = RegexpLiteralBuilder::new(_fbb); - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(RegexpLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn value(&self) -> Option<&'a str> { - self._tab.get::>(RegexpLiteral::VT_VALUE, None) - } -} - -pub struct RegexpLiteralArgs<'a> { - pub base_node: Option>>, - pub value: Option>, -} -impl<'a> Default for RegexpLiteralArgs<'a> { - #[inline] - fn default() -> Self { - RegexpLiteralArgs { - base_node: None, - value: None, - } - } -} -pub struct RegexpLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> RegexpLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(RegexpLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(RegexpLiteral::VT_VALUE, value); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RegexpLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - RegexpLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum StringLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct StringLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for StringLiteral<'a> { - type Inner = StringLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + impl<'a> Default for FloatLiteralArgs<'a> { + #[inline] + fn default() -> Self { + FloatLiteralArgs { + base_node: None, + value: 0.0, + } + } + } + pub struct FloatLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, } -} + impl<'a: 'b, 'b> FloatLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + FloatLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_value(&mut self, value: f64) { + self.fbb_ + .push_slot::(FloatLiteral::VT_VALUE, value, 0.0); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> FloatLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + FloatLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IntegerLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct IntegerLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for IntegerLiteral<'a> { + type Inner = IntegerLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> IntegerLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + IntegerLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IntegerLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IntegerLiteralBuilder::new(_fbb); + builder.add_value(args.value); + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } -impl<'a> StringLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - StringLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args StringLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = StringLiteralBuilder::new(_fbb); - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(StringLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn value(&self) -> Option<&'a str> { - self._tab.get::>(StringLiteral::VT_VALUE, None) - } -} - -pub struct StringLiteralArgs<'a> { - pub base_node: Option>>, - pub value: Option>, -} -impl<'a> Default for StringLiteralArgs<'a> { - #[inline] - fn default() -> Self { - StringLiteralArgs { - base_node: None, - value: None, - } - } -} -pub struct StringLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> StringLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(StringLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(StringLiteral::VT_VALUE, value); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - StringLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum UnsignedIntegerLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct UnsignedIntegerLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for UnsignedIntegerLiteral<'a> { - type Inner = UnsignedIntegerLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + IntegerLiteral::VT_BASE_NODE, + None, + ) } - } -} - -impl<'a> UnsignedIntegerLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - UnsignedIntegerLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args UnsignedIntegerLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = UnsignedIntegerLiteralBuilder::new(_fbb); - builder.add_value(args.value); - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(UnsignedIntegerLiteral::VT_BASE_NODE, None) - } - #[inline] - pub fn value(&self) -> u64 { - self._tab.get::(UnsignedIntegerLiteral::VT_VALUE, Some(0)).unwrap() - } -} - -pub struct UnsignedIntegerLiteralArgs<'a> { - pub base_node: Option>>, - pub value: u64, -} -impl<'a> Default for UnsignedIntegerLiteralArgs<'a> { - #[inline] - fn default() -> Self { - UnsignedIntegerLiteralArgs { - base_node: None, - value: 0, - } - } -} -pub struct UnsignedIntegerLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> UnsignedIntegerLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(UnsignedIntegerLiteral::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_value(&mut self, value: u64) { - self.fbb_.push_slot::(UnsignedIntegerLiteral::VT_VALUE, value, 0); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UnsignedIntegerLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - UnsignedIntegerLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IdentifierOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Identifier<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Identifier<'a> { - type Inner = Identifier<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + pub fn value(&self) -> i64 { + self._tab + .get::(IntegerLiteral::VT_VALUE, Some(0)) + .unwrap() } } -} -impl<'a> Identifier<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Identifier { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IdentifierArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IdentifierBuilder::new(_fbb); - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(Identifier::VT_BASE_NODE, None) - } - #[inline] - pub fn name(&self) -> Option<&'a str> { - self._tab.get::>(Identifier::VT_NAME, None) - } -} - -pub struct IdentifierArgs<'a> { - pub base_node: Option>>, - pub name: Option>, -} -impl<'a> Default for IdentifierArgs<'a> { - #[inline] - fn default() -> Self { - IdentifierArgs { - base_node: None, - name: None, - } - } -} -pub struct IdentifierBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IdentifierBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Identifier::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Identifier::VT_NAME, name); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierBuilder<'a, 'b> { - let start = _fbb.start_table(); - IdentifierBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum StringExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct StringExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for StringExpression<'a> { - type Inner = StringExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct IntegerLiteralArgs<'a> { + pub base_node: Option>>, + pub value: i64, } -} - -impl<'a> StringExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - StringExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args StringExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = StringExpressionBuilder::new(_fbb); - if let Some(x) = args.parts { builder.add_parts(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_PARTS: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(StringExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn parts(&self) -> Option>>> { - self._tab.get::>>>>(StringExpression::VT_PARTS, None) - } -} - -pub struct StringExpressionArgs<'a> { - pub base_node: Option>>, - pub parts: Option>>>>, -} -impl<'a> Default for StringExpressionArgs<'a> { - #[inline] - fn default() -> Self { - StringExpressionArgs { - base_node: None, - parts: None, - } - } -} -pub struct StringExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> StringExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(StringExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_parts(&mut self, parts: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(StringExpression::VT_PARTS, parts); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - StringExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum StringExpressionPartOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct StringExpressionPart<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for StringExpressionPart<'a> { - type Inner = StringExpressionPart<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> Default for IntegerLiteralArgs<'a> { + #[inline] + fn default() -> Self { + IntegerLiteralArgs { + base_node: None, + value: 0, + } + } + } + pub struct IntegerLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IntegerLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + IntegerLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_value(&mut self, value: i64) { + self.fbb_ + .push_slot::(IntegerLiteral::VT_VALUE, value, 0); } - } -} - -impl<'a> StringExpressionPart<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - StringExpressionPart { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args StringExpressionPartArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = StringExpressionPartBuilder::new(_fbb); - if let Some(x) = args.interpolated_expression { builder.add_interpolated_expression(x); } - if let Some(x) = args.text_value { builder.add_text_value(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_interpolated_expression_type(args.interpolated_expression_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_TEXT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_INTERPOLATED_EXPRESSION_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_INTERPOLATED_EXPRESSION: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(StringExpressionPart::VT_BASE_NODE, None) - } - #[inline] - pub fn text_value(&self) -> Option<&'a str> { - self._tab.get::>(StringExpressionPart::VT_TEXT_VALUE, None) - } - #[inline] - pub fn interpolated_expression_type(&self) -> Expression { - self._tab.get::(StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn interpolated_expression(&self) -> Option> { - self._tab.get::>>(StringExpressionPart::VT_INTERPOLATED_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_string_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::StringExpression { - self.interpolated_expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_paren_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ParenExpression { - self.interpolated_expression().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_array_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ArrayExpression { - self.interpolated_expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_function_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::FunctionExpression { - self.interpolated_expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_binary_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::BinaryExpression { - self.interpolated_expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_boolean_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::BooleanLiteral { - self.interpolated_expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_call_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::CallExpression { - self.interpolated_expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_conditional_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ConditionalExpression { - self.interpolated_expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_date_time_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::DateTimeLiteral { - self.interpolated_expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_duration_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::DurationLiteral { - self.interpolated_expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_float_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::FloatLiteral { - self.interpolated_expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_identifier(&self) -> Option> { - if self.interpolated_expression_type() == Expression::Identifier { - self.interpolated_expression().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_integer_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::IntegerLiteral { - self.interpolated_expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_logical_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::LogicalExpression { - self.interpolated_expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_member_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::MemberExpression { - self.interpolated_expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_index_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::IndexExpression { - self.interpolated_expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_object_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ObjectExpression { - self.interpolated_expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_pipe_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::PipeExpression { - self.interpolated_expression().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_pipe_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::PipeLiteral { - self.interpolated_expression().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_regexp_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::RegexpLiteral { - self.interpolated_expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_string_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::StringLiteral { - self.interpolated_expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_unary_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::UnaryExpression { - self.interpolated_expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_unsigned_integer_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::UnsignedIntegerLiteral { - self.interpolated_expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_bad_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::BadExpression { - self.interpolated_expression().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct StringExpressionPartArgs<'a> { - pub base_node: Option>>, - pub text_value: Option>, - pub interpolated_expression_type: Expression, - pub interpolated_expression: Option>, -} -impl<'a> Default for StringExpressionPartArgs<'a> { - #[inline] - fn default() -> Self { - StringExpressionPartArgs { - base_node: None, - text_value: None, - interpolated_expression_type: Expression::NONE, - interpolated_expression: None, - } - } -} -pub struct StringExpressionPartBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> StringExpressionPartBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(StringExpressionPart::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_text_value(&mut self, text_value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(StringExpressionPart::VT_TEXT_VALUE, text_value); - } - #[inline] - pub fn add_interpolated_expression_type(&mut self, interpolated_expression_type: Expression) { - self.fbb_.push_slot::(StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, interpolated_expression_type, Expression::NONE); - } - #[inline] - pub fn add_interpolated_expression(&mut self, interpolated_expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(StringExpressionPart::VT_INTERPOLATED_EXPRESSION, interpolated_expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringExpressionPartBuilder<'a, 'b> { - let start = _fbb.start_table(); - StringExpressionPartBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ParenExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ParenExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ParenExpression<'a> { - type Inner = ParenExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> IntegerLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + IntegerLiteralBuilder { + fbb_: _fbb, + start_: start, + } } - } -} - -impl<'a> ParenExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ParenExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ParenExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ParenExpressionBuilder::new(_fbb); - if let Some(x) = args.expression { builder.add_expression(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_expression_type(args.expression_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_EXPRESSION: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ParenExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn expression_type(&self) -> Expression { - self._tab.get::(ParenExpression::VT_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn expression(&self) -> Option> { - self._tab.get::>>(ParenExpression::VT_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_expression(&self) -> Option> { - if self.expression_type() == Expression::StringExpression { - self.expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_paren_expression(&self) -> Option> { - if self.expression_type() == Expression::ParenExpression { - self.expression().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_array_expression(&self) -> Option> { - if self.expression_type() == Expression::ArrayExpression { - self.expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_function_expression(&self) -> Option> { - if self.expression_type() == Expression::FunctionExpression { - self.expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_binary_expression(&self) -> Option> { - if self.expression_type() == Expression::BinaryExpression { - self.expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_boolean_literal(&self) -> Option> { - if self.expression_type() == Expression::BooleanLiteral { - self.expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_call_expression(&self) -> Option> { - if self.expression_type() == Expression::CallExpression { - self.expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_conditional_expression(&self) -> Option> { - if self.expression_type() == Expression::ConditionalExpression { - self.expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_date_time_literal(&self) -> Option> { - if self.expression_type() == Expression::DateTimeLiteral { - self.expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_duration_literal(&self) -> Option> { - if self.expression_type() == Expression::DurationLiteral { - self.expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_float_literal(&self) -> Option> { - if self.expression_type() == Expression::FloatLiteral { - self.expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_identifier(&self) -> Option> { - if self.expression_type() == Expression::Identifier { - self.expression().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::IntegerLiteral { - self.expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_logical_expression(&self) -> Option> { - if self.expression_type() == Expression::LogicalExpression { - self.expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_member_expression(&self) -> Option> { - if self.expression_type() == Expression::MemberExpression { - self.expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_index_expression(&self) -> Option> { - if self.expression_type() == Expression::IndexExpression { - self.expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_object_expression(&self) -> Option> { - if self.expression_type() == Expression::ObjectExpression { - self.expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_pipe_expression(&self) -> Option> { - if self.expression_type() == Expression::PipeExpression { - self.expression().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_pipe_literal(&self) -> Option> { - if self.expression_type() == Expression::PipeLiteral { - self.expression().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_regexp_literal(&self) -> Option> { - if self.expression_type() == Expression::RegexpLiteral { - self.expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_literal(&self) -> Option> { - if self.expression_type() == Expression::StringLiteral { - self.expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unary_expression(&self) -> Option> { - if self.expression_type() == Expression::UnaryExpression { - self.expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unsigned_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::UnsignedIntegerLiteral { - self.expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_bad_expression(&self) -> Option> { - if self.expression_type() == Expression::BadExpression { - self.expression().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ParenExpressionArgs<'a> { - pub base_node: Option>>, - pub expression_type: Expression, - pub expression: Option>, -} -impl<'a> Default for ParenExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ParenExpressionArgs { - base_node: None, - expression_type: Expression::NONE, - expression: None, - } - } -} -pub struct ParenExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ParenExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ParenExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_expression_type(&mut self, expression_type: Expression) { - self.fbb_.push_slot::(ParenExpression::VT_EXPRESSION_TYPE, expression_type, Expression::NONE); - } - #[inline] - pub fn add_expression(&mut self, expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ParenExpression::VT_EXPRESSION, expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ParenExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ParenExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ArrayExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ArrayExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ArrayExpression<'a> { - type Inner = ArrayExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) } } -} -impl<'a> ArrayExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ArrayExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ArrayExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ArrayExpressionBuilder::new(_fbb); - if let Some(x) = args.elements { builder.add_elements(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ELEMENTS: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ArrayExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn elements(&self) -> Option>>> { - self._tab.get::>>>>(ArrayExpression::VT_ELEMENTS, None) - } -} - -pub struct ArrayExpressionArgs<'a> { - pub base_node: Option>>, - pub elements: Option>>>>, -} -impl<'a> Default for ArrayExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ArrayExpressionArgs { - base_node: None, - elements: None, - } - } -} -pub struct ArrayExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ArrayExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ArrayExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_elements(&mut self, elements: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(ArrayExpression::VT_ELEMENTS, elements); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArrayExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ArrayExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FunctionExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct FunctionExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for FunctionExpression<'a> { - type Inner = FunctionExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + pub enum PipeLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] -impl<'a> FunctionExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FunctionExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunctionExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunctionExpressionBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.params { builder.add_params(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_body_type(args.body_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_PARAMS: flatbuffers::VOffsetT = 6; - pub const VT_BODY_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_BODY: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn params(&self) -> Option>>> { - self._tab.get::>>>>(FunctionExpression::VT_PARAMS, None) - } - #[inline] - pub fn body_type(&self) -> ExpressionOrBlock { - self._tab.get::(FunctionExpression::VT_BODY_TYPE, Some(ExpressionOrBlock::NONE)).unwrap() - } - #[inline] - pub fn body(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_BODY, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn body_as_block(&self) -> Option> { - if self.body_type() == ExpressionOrBlock::Block { - self.body().map(|u| Block::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn body_as_wrapped_expression(&self) -> Option> { - if self.body_type() == ExpressionOrBlock::WrappedExpression { - self.body().map(|u| WrappedExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct FunctionExpressionArgs<'a> { - pub base_node: Option>>, - pub params: Option>>>>, - pub body_type: ExpressionOrBlock, - pub body: Option>, -} -impl<'a> Default for FunctionExpressionArgs<'a> { - #[inline] - fn default() -> Self { - FunctionExpressionArgs { - base_node: None, - params: None, - body_type: ExpressionOrBlock::NONE, - body: None, - } - } -} -pub struct FunctionExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_params(&mut self, params: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_PARAMS, params); - } - #[inline] - pub fn add_body_type(&mut self, body_type: ExpressionOrBlock) { - self.fbb_.push_slot::(FunctionExpression::VT_BODY_TYPE, body_type, ExpressionOrBlock::NONE); - } - #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_BODY, body); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - FunctionExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BlockOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Block<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Block<'a> { - type Inner = Block<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct PipeLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, } -} -impl<'a> Block<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Block { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BlockArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BlockBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_BODY: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(Block::VT_BASE_NODE, None) - } - #[inline] - pub fn body(&self) -> Option>>> { - self._tab.get::>>>>(Block::VT_BODY, None) - } -} - -pub struct BlockArgs<'a> { - pub base_node: Option>>, - pub body: Option>>>>, -} -impl<'a> Default for BlockArgs<'a> { - #[inline] - fn default() -> Self { - BlockArgs { - base_node: None, - body: None, - } - } -} -pub struct BlockBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BlockBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Block::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Block::VT_BODY, body); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BlockBuilder<'a, 'b> { - let start = _fbb.start_table(); - BlockBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum CallExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct CallExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for CallExpression<'a> { - type Inner = CallExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for PipeLiteral<'a> { + type Inner = PipeLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> PipeLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PipeLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PipeLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PipeLiteralBuilder::new(_fbb); + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() } - } -} -impl<'a> CallExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - CallExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args CallExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = CallExpressionBuilder::new(_fbb); - if let Some(x) = args.arguments { builder.add_arguments(x); } - if let Some(x) = args.callee { builder.add_callee(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_callee_type(args.callee_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_CALLEE_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_CALLEE: flatbuffers::VOffsetT = 8; - pub const VT_ARGUMENTS: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn callee_type(&self) -> Expression { - self._tab.get::(CallExpression::VT_CALLEE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn callee(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_CALLEE, None) - } - #[inline] - pub fn arguments(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_ARGUMENTS, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_string_expression(&self) -> Option> { - if self.callee_type() == Expression::StringExpression { - self.callee().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_paren_expression(&self) -> Option> { - if self.callee_type() == Expression::ParenExpression { - self.callee().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_array_expression(&self) -> Option> { - if self.callee_type() == Expression::ArrayExpression { - self.callee().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_function_expression(&self) -> Option> { - if self.callee_type() == Expression::FunctionExpression { - self.callee().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_binary_expression(&self) -> Option> { - if self.callee_type() == Expression::BinaryExpression { - self.callee().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_boolean_literal(&self) -> Option> { - if self.callee_type() == Expression::BooleanLiteral { - self.callee().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_call_expression(&self) -> Option> { - if self.callee_type() == Expression::CallExpression { - self.callee().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_conditional_expression(&self) -> Option> { - if self.callee_type() == Expression::ConditionalExpression { - self.callee().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_date_time_literal(&self) -> Option> { - if self.callee_type() == Expression::DateTimeLiteral { - self.callee().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_duration_literal(&self) -> Option> { - if self.callee_type() == Expression::DurationLiteral { - self.callee().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_float_literal(&self) -> Option> { - if self.callee_type() == Expression::FloatLiteral { - self.callee().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_identifier(&self) -> Option> { - if self.callee_type() == Expression::Identifier { - self.callee().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_integer_literal(&self) -> Option> { - if self.callee_type() == Expression::IntegerLiteral { - self.callee().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_logical_expression(&self) -> Option> { - if self.callee_type() == Expression::LogicalExpression { - self.callee().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_member_expression(&self) -> Option> { - if self.callee_type() == Expression::MemberExpression { - self.callee().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_index_expression(&self) -> Option> { - if self.callee_type() == Expression::IndexExpression { - self.callee().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_object_expression(&self) -> Option> { - if self.callee_type() == Expression::ObjectExpression { - self.callee().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_pipe_expression(&self) -> Option> { - if self.callee_type() == Expression::PipeExpression { - self.callee().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_pipe_literal(&self) -> Option> { - if self.callee_type() == Expression::PipeLiteral { - self.callee().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_regexp_literal(&self) -> Option> { - if self.callee_type() == Expression::RegexpLiteral { - self.callee().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_string_literal(&self) -> Option> { - if self.callee_type() == Expression::StringLiteral { - self.callee().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_unary_expression(&self) -> Option> { - if self.callee_type() == Expression::UnaryExpression { - self.callee().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_unsigned_integer_literal(&self) -> Option> { - if self.callee_type() == Expression::UnsignedIntegerLiteral { - self.callee().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_bad_expression(&self) -> Option> { - if self.callee_type() == Expression::BadExpression { - self.callee().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct CallExpressionArgs<'a> { - pub base_node: Option>>, - pub callee_type: Expression, - pub callee: Option>, - pub arguments: Option>>, -} -impl<'a> Default for CallExpressionArgs<'a> { - #[inline] - fn default() -> Self { - CallExpressionArgs { - base_node: None, - callee_type: Expression::NONE, - callee: None, - arguments: None, - } - } -} -pub struct CallExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> CallExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(CallExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_callee_type(&mut self, callee_type: Expression) { - self.fbb_.push_slot::(CallExpression::VT_CALLEE_TYPE, callee_type, Expression::NONE); - } - #[inline] - pub fn add_callee(&mut self, callee: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(CallExpression::VT_CALLEE, callee); - } - #[inline] - pub fn add_arguments(&mut self, arguments: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(CallExpression::VT_ARGUMENTS, arguments); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> CallExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - CallExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ConditionalExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ConditionalExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ConditionalExpression<'a> { - type Inner = ConditionalExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(PipeLiteral::VT_BASE_NODE, None) } } -} -impl<'a> ConditionalExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ConditionalExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ConditionalExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ConditionalExpressionBuilder::new(_fbb); - if let Some(x) = args.alternate { builder.add_alternate(x); } - if let Some(x) = args.consequent { builder.add_consequent(x); } - if let Some(x) = args.test { builder.add_test(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_alternate_type(args.alternate_type); - builder.add_consequent_type(args.consequent_type); - builder.add_test_type(args.test_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_TEST_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_TEST: flatbuffers::VOffsetT = 8; - pub const VT_CONSEQUENT_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_CONSEQUENT: flatbuffers::VOffsetT = 12; - pub const VT_ALTERNATE_TYPE: flatbuffers::VOffsetT = 14; - pub const VT_ALTERNATE: flatbuffers::VOffsetT = 16; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn test_type(&self) -> Expression { - self._tab.get::(ConditionalExpression::VT_TEST_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn test(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_TEST, None) - } - #[inline] - pub fn consequent_type(&self) -> Expression { - self._tab.get::(ConditionalExpression::VT_CONSEQUENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn consequent(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_CONSEQUENT, None) - } - #[inline] - pub fn alternate_type(&self) -> Expression { - self._tab.get::(ConditionalExpression::VT_ALTERNATE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn alternate(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_ALTERNATE, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn test_as_string_expression(&self) -> Option> { - if self.test_type() == Expression::StringExpression { - self.test().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_paren_expression(&self) -> Option> { - if self.test_type() == Expression::ParenExpression { - self.test().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_array_expression(&self) -> Option> { - if self.test_type() == Expression::ArrayExpression { - self.test().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_function_expression(&self) -> Option> { - if self.test_type() == Expression::FunctionExpression { - self.test().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_binary_expression(&self) -> Option> { - if self.test_type() == Expression::BinaryExpression { - self.test().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_boolean_literal(&self) -> Option> { - if self.test_type() == Expression::BooleanLiteral { - self.test().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_call_expression(&self) -> Option> { - if self.test_type() == Expression::CallExpression { - self.test().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_conditional_expression(&self) -> Option> { - if self.test_type() == Expression::ConditionalExpression { - self.test().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_date_time_literal(&self) -> Option> { - if self.test_type() == Expression::DateTimeLiteral { - self.test().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_duration_literal(&self) -> Option> { - if self.test_type() == Expression::DurationLiteral { - self.test().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_float_literal(&self) -> Option> { - if self.test_type() == Expression::FloatLiteral { - self.test().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_identifier(&self) -> Option> { - if self.test_type() == Expression::Identifier { - self.test().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_integer_literal(&self) -> Option> { - if self.test_type() == Expression::IntegerLiteral { - self.test().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_logical_expression(&self) -> Option> { - if self.test_type() == Expression::LogicalExpression { - self.test().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_member_expression(&self) -> Option> { - if self.test_type() == Expression::MemberExpression { - self.test().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_index_expression(&self) -> Option> { - if self.test_type() == Expression::IndexExpression { - self.test().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_object_expression(&self) -> Option> { - if self.test_type() == Expression::ObjectExpression { - self.test().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_pipe_expression(&self) -> Option> { - if self.test_type() == Expression::PipeExpression { - self.test().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_pipe_literal(&self) -> Option> { - if self.test_type() == Expression::PipeLiteral { - self.test().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_regexp_literal(&self) -> Option> { - if self.test_type() == Expression::RegexpLiteral { - self.test().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_string_literal(&self) -> Option> { - if self.test_type() == Expression::StringLiteral { - self.test().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_unary_expression(&self) -> Option> { - if self.test_type() == Expression::UnaryExpression { - self.test().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_unsigned_integer_literal(&self) -> Option> { - if self.test_type() == Expression::UnsignedIntegerLiteral { - self.test().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_bad_expression(&self) -> Option> { - if self.test_type() == Expression::BadExpression { - self.test().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_string_expression(&self) -> Option> { - if self.consequent_type() == Expression::StringExpression { - self.consequent().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_paren_expression(&self) -> Option> { - if self.consequent_type() == Expression::ParenExpression { - self.consequent().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_array_expression(&self) -> Option> { - if self.consequent_type() == Expression::ArrayExpression { - self.consequent().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_function_expression(&self) -> Option> { - if self.consequent_type() == Expression::FunctionExpression { - self.consequent().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_binary_expression(&self) -> Option> { - if self.consequent_type() == Expression::BinaryExpression { - self.consequent().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_boolean_literal(&self) -> Option> { - if self.consequent_type() == Expression::BooleanLiteral { - self.consequent().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_call_expression(&self) -> Option> { - if self.consequent_type() == Expression::CallExpression { - self.consequent().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_conditional_expression(&self) -> Option> { - if self.consequent_type() == Expression::ConditionalExpression { - self.consequent().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_date_time_literal(&self) -> Option> { - if self.consequent_type() == Expression::DateTimeLiteral { - self.consequent().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_duration_literal(&self) -> Option> { - if self.consequent_type() == Expression::DurationLiteral { - self.consequent().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_float_literal(&self) -> Option> { - if self.consequent_type() == Expression::FloatLiteral { - self.consequent().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_identifier(&self) -> Option> { - if self.consequent_type() == Expression::Identifier { - self.consequent().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_integer_literal(&self) -> Option> { - if self.consequent_type() == Expression::IntegerLiteral { - self.consequent().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_logical_expression(&self) -> Option> { - if self.consequent_type() == Expression::LogicalExpression { - self.consequent().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_member_expression(&self) -> Option> { - if self.consequent_type() == Expression::MemberExpression { - self.consequent().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_index_expression(&self) -> Option> { - if self.consequent_type() == Expression::IndexExpression { - self.consequent().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_object_expression(&self) -> Option> { - if self.consequent_type() == Expression::ObjectExpression { - self.consequent().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_pipe_expression(&self) -> Option> { - if self.consequent_type() == Expression::PipeExpression { - self.consequent().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_pipe_literal(&self) -> Option> { - if self.consequent_type() == Expression::PipeLiteral { - self.consequent().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_regexp_literal(&self) -> Option> { - if self.consequent_type() == Expression::RegexpLiteral { - self.consequent().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_string_literal(&self) -> Option> { - if self.consequent_type() == Expression::StringLiteral { - self.consequent().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_unary_expression(&self) -> Option> { - if self.consequent_type() == Expression::UnaryExpression { - self.consequent().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_unsigned_integer_literal(&self) -> Option> { - if self.consequent_type() == Expression::UnsignedIntegerLiteral { - self.consequent().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_bad_expression(&self) -> Option> { - if self.consequent_type() == Expression::BadExpression { - self.consequent().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_string_expression(&self) -> Option> { - if self.alternate_type() == Expression::StringExpression { - self.alternate().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_paren_expression(&self) -> Option> { - if self.alternate_type() == Expression::ParenExpression { - self.alternate().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_array_expression(&self) -> Option> { - if self.alternate_type() == Expression::ArrayExpression { - self.alternate().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_function_expression(&self) -> Option> { - if self.alternate_type() == Expression::FunctionExpression { - self.alternate().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_binary_expression(&self) -> Option> { - if self.alternate_type() == Expression::BinaryExpression { - self.alternate().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_boolean_literal(&self) -> Option> { - if self.alternate_type() == Expression::BooleanLiteral { - self.alternate().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_call_expression(&self) -> Option> { - if self.alternate_type() == Expression::CallExpression { - self.alternate().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_conditional_expression(&self) -> Option> { - if self.alternate_type() == Expression::ConditionalExpression { - self.alternate().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_date_time_literal(&self) -> Option> { - if self.alternate_type() == Expression::DateTimeLiteral { - self.alternate().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_duration_literal(&self) -> Option> { - if self.alternate_type() == Expression::DurationLiteral { - self.alternate().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_float_literal(&self) -> Option> { - if self.alternate_type() == Expression::FloatLiteral { - self.alternate().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_identifier(&self) -> Option> { - if self.alternate_type() == Expression::Identifier { - self.alternate().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_integer_literal(&self) -> Option> { - if self.alternate_type() == Expression::IntegerLiteral { - self.alternate().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_logical_expression(&self) -> Option> { - if self.alternate_type() == Expression::LogicalExpression { - self.alternate().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_member_expression(&self) -> Option> { - if self.alternate_type() == Expression::MemberExpression { - self.alternate().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_index_expression(&self) -> Option> { - if self.alternate_type() == Expression::IndexExpression { - self.alternate().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_object_expression(&self) -> Option> { - if self.alternate_type() == Expression::ObjectExpression { - self.alternate().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_pipe_expression(&self) -> Option> { - if self.alternate_type() == Expression::PipeExpression { - self.alternate().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_pipe_literal(&self) -> Option> { - if self.alternate_type() == Expression::PipeLiteral { - self.alternate().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_regexp_literal(&self) -> Option> { - if self.alternate_type() == Expression::RegexpLiteral { - self.alternate().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_string_literal(&self) -> Option> { - if self.alternate_type() == Expression::StringLiteral { - self.alternate().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_unary_expression(&self) -> Option> { - if self.alternate_type() == Expression::UnaryExpression { - self.alternate().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_unsigned_integer_literal(&self) -> Option> { - if self.alternate_type() == Expression::UnsignedIntegerLiteral { - self.alternate().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_bad_expression(&self) -> Option> { - if self.alternate_type() == Expression::BadExpression { - self.alternate().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ConditionalExpressionArgs<'a> { - pub base_node: Option>>, - pub test_type: Expression, - pub test: Option>, - pub consequent_type: Expression, - pub consequent: Option>, - pub alternate_type: Expression, - pub alternate: Option>, -} -impl<'a> Default for ConditionalExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ConditionalExpressionArgs { - base_node: None, - test_type: Expression::NONE, - test: None, - consequent_type: Expression::NONE, - consequent: None, - alternate_type: Expression::NONE, - alternate: None, - } - } -} -pub struct ConditionalExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ConditionalExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_test_type(&mut self, test_type: Expression) { - self.fbb_.push_slot::(ConditionalExpression::VT_TEST_TYPE, test_type, Expression::NONE); - } - #[inline] - pub fn add_test(&mut self, test: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_TEST, test); - } - #[inline] - pub fn add_consequent_type(&mut self, consequent_type: Expression) { - self.fbb_.push_slot::(ConditionalExpression::VT_CONSEQUENT_TYPE, consequent_type, Expression::NONE); - } - #[inline] - pub fn add_consequent(&mut self, consequent: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_CONSEQUENT, consequent); - } - #[inline] - pub fn add_alternate_type(&mut self, alternate_type: Expression) { - self.fbb_.push_slot::(ConditionalExpression::VT_ALTERNATE_TYPE, alternate_type, Expression::NONE); - } - #[inline] - pub fn add_alternate(&mut self, alternate: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_ALTERNATE, alternate); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ConditionalExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ConditionalExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PropertyOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Property<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Property<'a> { - type Inner = Property<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub struct PipeLiteralArgs<'a> { + pub base_node: Option>>, + } + impl<'a> Default for PipeLiteralArgs<'a> { + #[inline] + fn default() -> Self { + PipeLiteralArgs { base_node: None } } } -} - -impl<'a> Property<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Property { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PropertyArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PropertyBuilder::new(_fbb); - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.key { builder.add_key(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_value_type(args.value_type); - builder.add_key_type(args.key_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_KEY_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_KEY: flatbuffers::VOffsetT = 8; - pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_VALUE: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(Property::VT_BASE_NODE, None) - } - #[inline] - pub fn key_type(&self) -> PropertyKey { - self._tab.get::(Property::VT_KEY_TYPE, Some(PropertyKey::NONE)).unwrap() - } - #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(Property::VT_KEY, None) - } - #[inline] - pub fn value_type(&self) -> Expression { - self._tab.get::(Property::VT_VALUE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn value(&self) -> Option> { - self._tab.get::>>(Property::VT_VALUE, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn key_as_identifier(&self) -> Option> { - if self.key_type() == PropertyKey::Identifier { - self.key().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn key_as_string_literal(&self) -> Option> { - if self.key_type() == PropertyKey::StringLiteral { - self.key().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_string_expression(&self) -> Option> { - if self.value_type() == Expression::StringExpression { - self.value().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_paren_expression(&self) -> Option> { - if self.value_type() == Expression::ParenExpression { - self.value().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_array_expression(&self) -> Option> { - if self.value_type() == Expression::ArrayExpression { - self.value().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_function_expression(&self) -> Option> { - if self.value_type() == Expression::FunctionExpression { - self.value().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_binary_expression(&self) -> Option> { - if self.value_type() == Expression::BinaryExpression { - self.value().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_boolean_literal(&self) -> Option> { - if self.value_type() == Expression::BooleanLiteral { - self.value().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_call_expression(&self) -> Option> { - if self.value_type() == Expression::CallExpression { - self.value().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_conditional_expression(&self) -> Option> { - if self.value_type() == Expression::ConditionalExpression { - self.value().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_date_time_literal(&self) -> Option> { - if self.value_type() == Expression::DateTimeLiteral { - self.value().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_duration_literal(&self) -> Option> { - if self.value_type() == Expression::DurationLiteral { - self.value().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_float_literal(&self) -> Option> { - if self.value_type() == Expression::FloatLiteral { - self.value().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_identifier(&self) -> Option> { - if self.value_type() == Expression::Identifier { - self.value().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_integer_literal(&self) -> Option> { - if self.value_type() == Expression::IntegerLiteral { - self.value().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_logical_expression(&self) -> Option> { - if self.value_type() == Expression::LogicalExpression { - self.value().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_member_expression(&self) -> Option> { - if self.value_type() == Expression::MemberExpression { - self.value().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_index_expression(&self) -> Option> { - if self.value_type() == Expression::IndexExpression { - self.value().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_object_expression(&self) -> Option> { - if self.value_type() == Expression::ObjectExpression { - self.value().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_pipe_expression(&self) -> Option> { - if self.value_type() == Expression::PipeExpression { - self.value().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_pipe_literal(&self) -> Option> { - if self.value_type() == Expression::PipeLiteral { - self.value().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_regexp_literal(&self) -> Option> { - if self.value_type() == Expression::RegexpLiteral { - self.value().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_string_literal(&self) -> Option> { - if self.value_type() == Expression::StringLiteral { - self.value().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_unary_expression(&self) -> Option> { - if self.value_type() == Expression::UnaryExpression { - self.value().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_unsigned_integer_literal(&self) -> Option> { - if self.value_type() == Expression::UnsignedIntegerLiteral { - self.value().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_bad_expression(&self) -> Option> { - if self.value_type() == Expression::BadExpression { - self.value().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct PropertyArgs<'a> { - pub base_node: Option>>, - pub key_type: PropertyKey, - pub key: Option>, - pub value_type: Expression, - pub value: Option>, -} -impl<'a> Default for PropertyArgs<'a> { - #[inline] - fn default() -> Self { - PropertyArgs { - base_node: None, - key_type: PropertyKey::NONE, - key: None, - value_type: Expression::NONE, - value: None, - } - } -} -pub struct PropertyBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PropertyBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Property::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_key_type(&mut self, key_type: PropertyKey) { - self.fbb_.push_slot::(Property::VT_KEY_TYPE, key_type, PropertyKey::NONE); - } - #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Property::VT_KEY, key); - } - #[inline] - pub fn add_value_type(&mut self, value_type: Expression) { - self.fbb_.push_slot::(Property::VT_VALUE_TYPE, value_type, Expression::NONE); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Property::VT_VALUE, value); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropertyBuilder<'a, 'b> { - let start = _fbb.start_table(); - PropertyBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum MemberExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct MemberExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for MemberExpression<'a> { - type Inner = MemberExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub struct PipeLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PipeLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PipeLiteral::VT_BASE_NODE, + base_node, + ); } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PipeLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + PipeLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum RegexpLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct RegexpLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, } -} -impl<'a> MemberExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - MemberExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args MemberExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = MemberExpressionBuilder::new(_fbb); - if let Some(x) = args.property { builder.add_property(x); } - if let Some(x) = args.object { builder.add_object(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_property_type(args.property_type); - builder.add_object_type(args.object_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_OBJECT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_OBJECT: flatbuffers::VOffsetT = 8; - pub const VT_PROPERTY_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_PROPERTY: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(MemberExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn object_type(&self) -> Expression { - self._tab.get::(MemberExpression::VT_OBJECT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn object(&self) -> Option> { - self._tab.get::>>(MemberExpression::VT_OBJECT, None) - } - #[inline] - pub fn property_type(&self) -> PropertyKey { - self._tab.get::(MemberExpression::VT_PROPERTY_TYPE, Some(PropertyKey::NONE)).unwrap() - } - #[inline] - pub fn property(&self) -> Option> { - self._tab.get::>>(MemberExpression::VT_PROPERTY, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn object_as_string_expression(&self) -> Option> { - if self.object_type() == Expression::StringExpression { - self.object().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_paren_expression(&self) -> Option> { - if self.object_type() == Expression::ParenExpression { - self.object().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_array_expression(&self) -> Option> { - if self.object_type() == Expression::ArrayExpression { - self.object().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_function_expression(&self) -> Option> { - if self.object_type() == Expression::FunctionExpression { - self.object().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_binary_expression(&self) -> Option> { - if self.object_type() == Expression::BinaryExpression { - self.object().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_boolean_literal(&self) -> Option> { - if self.object_type() == Expression::BooleanLiteral { - self.object().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_call_expression(&self) -> Option> { - if self.object_type() == Expression::CallExpression { - self.object().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_conditional_expression(&self) -> Option> { - if self.object_type() == Expression::ConditionalExpression { - self.object().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_date_time_literal(&self) -> Option> { - if self.object_type() == Expression::DateTimeLiteral { - self.object().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_duration_literal(&self) -> Option> { - if self.object_type() == Expression::DurationLiteral { - self.object().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_float_literal(&self) -> Option> { - if self.object_type() == Expression::FloatLiteral { - self.object().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_identifier(&self) -> Option> { - if self.object_type() == Expression::Identifier { - self.object().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_integer_literal(&self) -> Option> { - if self.object_type() == Expression::IntegerLiteral { - self.object().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_logical_expression(&self) -> Option> { - if self.object_type() == Expression::LogicalExpression { - self.object().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_member_expression(&self) -> Option> { - if self.object_type() == Expression::MemberExpression { - self.object().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_index_expression(&self) -> Option> { - if self.object_type() == Expression::IndexExpression { - self.object().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_object_expression(&self) -> Option> { - if self.object_type() == Expression::ObjectExpression { - self.object().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_pipe_expression(&self) -> Option> { - if self.object_type() == Expression::PipeExpression { - self.object().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_pipe_literal(&self) -> Option> { - if self.object_type() == Expression::PipeLiteral { - self.object().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_regexp_literal(&self) -> Option> { - if self.object_type() == Expression::RegexpLiteral { - self.object().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_string_literal(&self) -> Option> { - if self.object_type() == Expression::StringLiteral { - self.object().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_unary_expression(&self) -> Option> { - if self.object_type() == Expression::UnaryExpression { - self.object().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_unsigned_integer_literal(&self) -> Option> { - if self.object_type() == Expression::UnsignedIntegerLiteral { - self.object().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_bad_expression(&self) -> Option> { - if self.object_type() == Expression::BadExpression { - self.object().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn property_as_identifier(&self) -> Option> { - if self.property_type() == PropertyKey::Identifier { - self.property().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn property_as_string_literal(&self) -> Option> { - if self.property_type() == PropertyKey::StringLiteral { - self.property().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct MemberExpressionArgs<'a> { - pub base_node: Option>>, - pub object_type: Expression, - pub object: Option>, - pub property_type: PropertyKey, - pub property: Option>, -} -impl<'a> Default for MemberExpressionArgs<'a> { - #[inline] - fn default() -> Self { - MemberExpressionArgs { - base_node: None, - object_type: Expression::NONE, - object: None, - property_type: PropertyKey::NONE, - property: None, - } - } -} -pub struct MemberExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> MemberExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(MemberExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_object_type(&mut self, object_type: Expression) { - self.fbb_.push_slot::(MemberExpression::VT_OBJECT_TYPE, object_type, Expression::NONE); - } - #[inline] - pub fn add_object(&mut self, object: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(MemberExpression::VT_OBJECT, object); - } - #[inline] - pub fn add_property_type(&mut self, property_type: PropertyKey) { - self.fbb_.push_slot::(MemberExpression::VT_PROPERTY_TYPE, property_type, PropertyKey::NONE); - } - #[inline] - pub fn add_property(&mut self, property: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(MemberExpression::VT_PROPERTY, property); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MemberExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - MemberExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IndexExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct IndexExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for IndexExpression<'a> { - type Inner = IndexExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for RegexpLiteral<'a> { + type Inner = RegexpLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> IndexExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - IndexExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IndexExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IndexExpressionBuilder::new(_fbb); - if let Some(x) = args.index { builder.add_index(x); } - if let Some(x) = args.array { builder.add_array(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_index_type(args.index_type); - builder.add_array_type(args.array_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ARRAY_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ARRAY: flatbuffers::VOffsetT = 8; - pub const VT_INDEX_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_INDEX: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn array_type(&self) -> Expression { - self._tab.get::(IndexExpression::VT_ARRAY_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn array(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_ARRAY, None) - } - #[inline] - pub fn index_type(&self) -> Expression { - self._tab.get::(IndexExpression::VT_INDEX_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn index(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_INDEX, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn array_as_string_expression(&self) -> Option> { - if self.array_type() == Expression::StringExpression { - self.array().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_paren_expression(&self) -> Option> { - if self.array_type() == Expression::ParenExpression { - self.array().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_array_expression(&self) -> Option> { - if self.array_type() == Expression::ArrayExpression { - self.array().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_function_expression(&self) -> Option> { - if self.array_type() == Expression::FunctionExpression { - self.array().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_binary_expression(&self) -> Option> { - if self.array_type() == Expression::BinaryExpression { - self.array().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_boolean_literal(&self) -> Option> { - if self.array_type() == Expression::BooleanLiteral { - self.array().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_call_expression(&self) -> Option> { - if self.array_type() == Expression::CallExpression { - self.array().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_conditional_expression(&self) -> Option> { - if self.array_type() == Expression::ConditionalExpression { - self.array().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_date_time_literal(&self) -> Option> { - if self.array_type() == Expression::DateTimeLiteral { - self.array().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_duration_literal(&self) -> Option> { - if self.array_type() == Expression::DurationLiteral { - self.array().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_float_literal(&self) -> Option> { - if self.array_type() == Expression::FloatLiteral { - self.array().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_identifier(&self) -> Option> { - if self.array_type() == Expression::Identifier { - self.array().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_integer_literal(&self) -> Option> { - if self.array_type() == Expression::IntegerLiteral { - self.array().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_logical_expression(&self) -> Option> { - if self.array_type() == Expression::LogicalExpression { - self.array().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_member_expression(&self) -> Option> { - if self.array_type() == Expression::MemberExpression { - self.array().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_index_expression(&self) -> Option> { - if self.array_type() == Expression::IndexExpression { - self.array().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_object_expression(&self) -> Option> { - if self.array_type() == Expression::ObjectExpression { - self.array().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_pipe_expression(&self) -> Option> { - if self.array_type() == Expression::PipeExpression { - self.array().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_pipe_literal(&self) -> Option> { - if self.array_type() == Expression::PipeLiteral { - self.array().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_regexp_literal(&self) -> Option> { - if self.array_type() == Expression::RegexpLiteral { - self.array().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_string_literal(&self) -> Option> { - if self.array_type() == Expression::StringLiteral { - self.array().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_unary_expression(&self) -> Option> { - if self.array_type() == Expression::UnaryExpression { - self.array().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_unsigned_integer_literal(&self) -> Option> { - if self.array_type() == Expression::UnsignedIntegerLiteral { - self.array().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_bad_expression(&self) -> Option> { - if self.array_type() == Expression::BadExpression { - self.array().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_string_expression(&self) -> Option> { - if self.index_type() == Expression::StringExpression { - self.index().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_paren_expression(&self) -> Option> { - if self.index_type() == Expression::ParenExpression { - self.index().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_array_expression(&self) -> Option> { - if self.index_type() == Expression::ArrayExpression { - self.index().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_function_expression(&self) -> Option> { - if self.index_type() == Expression::FunctionExpression { - self.index().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_binary_expression(&self) -> Option> { - if self.index_type() == Expression::BinaryExpression { - self.index().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_boolean_literal(&self) -> Option> { - if self.index_type() == Expression::BooleanLiteral { - self.index().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_call_expression(&self) -> Option> { - if self.index_type() == Expression::CallExpression { - self.index().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_conditional_expression(&self) -> Option> { - if self.index_type() == Expression::ConditionalExpression { - self.index().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_date_time_literal(&self) -> Option> { - if self.index_type() == Expression::DateTimeLiteral { - self.index().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_duration_literal(&self) -> Option> { - if self.index_type() == Expression::DurationLiteral { - self.index().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_float_literal(&self) -> Option> { - if self.index_type() == Expression::FloatLiteral { - self.index().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_identifier(&self) -> Option> { - if self.index_type() == Expression::Identifier { - self.index().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_integer_literal(&self) -> Option> { - if self.index_type() == Expression::IntegerLiteral { - self.index().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_logical_expression(&self) -> Option> { - if self.index_type() == Expression::LogicalExpression { - self.index().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_member_expression(&self) -> Option> { - if self.index_type() == Expression::MemberExpression { - self.index().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_index_expression(&self) -> Option> { - if self.index_type() == Expression::IndexExpression { - self.index().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_object_expression(&self) -> Option> { - if self.index_type() == Expression::ObjectExpression { - self.index().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_pipe_expression(&self) -> Option> { - if self.index_type() == Expression::PipeExpression { - self.index().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_pipe_literal(&self) -> Option> { - if self.index_type() == Expression::PipeLiteral { - self.index().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_regexp_literal(&self) -> Option> { - if self.index_type() == Expression::RegexpLiteral { - self.index().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_string_literal(&self) -> Option> { - if self.index_type() == Expression::StringLiteral { - self.index().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_unary_expression(&self) -> Option> { - if self.index_type() == Expression::UnaryExpression { - self.index().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_unsigned_integer_literal(&self) -> Option> { - if self.index_type() == Expression::UnsignedIntegerLiteral { - self.index().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_bad_expression(&self) -> Option> { - if self.index_type() == Expression::BadExpression { - self.index().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct IndexExpressionArgs<'a> { - pub base_node: Option>>, - pub array_type: Expression, - pub array: Option>, - pub index_type: Expression, - pub index: Option>, -} -impl<'a> Default for IndexExpressionArgs<'a> { - #[inline] - fn default() -> Self { - IndexExpressionArgs { - base_node: None, - array_type: Expression::NONE, - array: None, - index_type: Expression::NONE, - index: None, - } - } -} -pub struct IndexExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IndexExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(IndexExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_array_type(&mut self, array_type: Expression) { - self.fbb_.push_slot::(IndexExpression::VT_ARRAY_TYPE, array_type, Expression::NONE); - } - #[inline] - pub fn add_array(&mut self, array: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IndexExpression::VT_ARRAY, array); - } - #[inline] - pub fn add_index_type(&mut self, index_type: Expression) { - self.fbb_.push_slot::(IndexExpression::VT_INDEX_TYPE, index_type, Expression::NONE); - } - #[inline] - pub fn add_index(&mut self, index: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IndexExpression::VT_INDEX, index); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IndexExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - IndexExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ObjectExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ObjectExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ObjectExpression<'a> { - type Inner = ObjectExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> RegexpLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + RegexpLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args RegexpLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = RegexpLiteralBuilder::new(_fbb); + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + RegexpLiteral::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn value(&self) -> Option<&'a str> { + self._tab + .get::>(RegexpLiteral::VT_VALUE, None) } } -} -impl<'a> ObjectExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ObjectExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ObjectExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ObjectExpressionBuilder::new(_fbb); - if let Some(x) = args.properties { builder.add_properties(x); } - if let Some(x) = args.with { builder.add_with(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_WITH: flatbuffers::VOffsetT = 6; - pub const VT_PROPERTIES: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(ObjectExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn with(&self) -> Option> { - self._tab.get::>>(ObjectExpression::VT_WITH, None) - } - #[inline] - pub fn properties(&self) -> Option>>> { - self._tab.get::>>>>(ObjectExpression::VT_PROPERTIES, None) - } -} - -pub struct ObjectExpressionArgs<'a> { - pub base_node: Option>>, - pub with: Option>>, - pub properties: Option>>>>, -} -impl<'a> Default for ObjectExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ObjectExpressionArgs { - base_node: None, - with: None, - properties: None, - } - } -} -pub struct ObjectExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ObjectExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_with(&mut self, with: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_WITH, with); - } - #[inline] - pub fn add_properties(&mut self, properties: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_PROPERTIES, properties); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ObjectExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ObjectExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PipeExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct PipeExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for PipeExpression<'a> { - type Inner = PipeExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub struct RegexpLiteralArgs<'a> { + pub base_node: Option>>, + pub value: Option>, + } + impl<'a> Default for RegexpLiteralArgs<'a> { + #[inline] + fn default() -> Self { + RegexpLiteralArgs { + base_node: None, + value: None, + } + } + } + pub struct RegexpLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> RegexpLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + RegexpLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(RegexpLiteral::VT_VALUE, value); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> RegexpLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + RegexpLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum StringLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct StringLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for StringLiteral<'a> { + type Inner = StringLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> StringLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + StringLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args StringLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = StringLiteralBuilder::new(_fbb); + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + StringLiteral::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn value(&self) -> Option<&'a str> { + self._tab + .get::>(StringLiteral::VT_VALUE, None) + } + } + + pub struct StringLiteralArgs<'a> { + pub base_node: Option>>, + pub value: Option>, + } + impl<'a> Default for StringLiteralArgs<'a> { + #[inline] + fn default() -> Self { + StringLiteralArgs { + base_node: None, + value: None, + } + } + } + pub struct StringLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> StringLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + StringLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(StringLiteral::VT_VALUE, value); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> StringLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + StringLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum UnsignedIntegerLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct UnsignedIntegerLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for UnsignedIntegerLiteral<'a> { + type Inner = UnsignedIntegerLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> UnsignedIntegerLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + UnsignedIntegerLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args UnsignedIntegerLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = UnsignedIntegerLiteralBuilder::new(_fbb); + builder.add_value(args.value); + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + UnsignedIntegerLiteral::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn value(&self) -> u64 { + self._tab + .get::(UnsignedIntegerLiteral::VT_VALUE, Some(0)) + .unwrap() + } + } + + pub struct UnsignedIntegerLiteralArgs<'a> { + pub base_node: Option>>, + pub value: u64, + } + impl<'a> Default for UnsignedIntegerLiteralArgs<'a> { + #[inline] + fn default() -> Self { + UnsignedIntegerLiteralArgs { + base_node: None, + value: 0, + } + } + } + pub struct UnsignedIntegerLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> UnsignedIntegerLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + UnsignedIntegerLiteral::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_value(&mut self, value: u64) { + self.fbb_ + .push_slot::(UnsignedIntegerLiteral::VT_VALUE, value, 0); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> UnsignedIntegerLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + UnsignedIntegerLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IdentifierOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Identifier<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Identifier<'a> { + type Inner = Identifier<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> PipeExpression<'a> { + impl<'a> Identifier<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Identifier { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IdentifierArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IdentifierBuilder::new(_fbb); + if let Some(x) = args.name { + builder.add_name(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(Identifier::VT_BASE_NODE, None) + } + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab + .get::>(Identifier::VT_NAME, None) + } + } + + pub struct IdentifierArgs<'a> { + pub base_node: Option>>, + pub name: Option>, + } + impl<'a> Default for IdentifierArgs<'a> { + #[inline] + fn default() -> Self { + IdentifierArgs { + base_node: None, + name: None, + } + } + } + pub struct IdentifierBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IdentifierBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + Identifier::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Identifier::VT_NAME, name); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierBuilder<'a, 'b> { + let start = _fbb.start_table(); + IdentifierBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum StringExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct StringExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for StringExpression<'a> { + type Inner = StringExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> StringExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + StringExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args StringExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = StringExpressionBuilder::new(_fbb); + if let Some(x) = args.parts { + builder.add_parts(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_PARTS: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + StringExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn parts( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(StringExpression::VT_PARTS, None) + } + } + + pub struct StringExpressionArgs<'a> { + pub base_node: Option>>, + pub parts: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for StringExpressionArgs<'a> { + #[inline] + fn default() -> Self { + StringExpressionArgs { + base_node: None, + parts: None, + } + } + } + pub struct StringExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> StringExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + StringExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_parts( + &mut self, + parts: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(StringExpression::VT_PARTS, parts); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> StringExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + StringExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum StringExpressionPartOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct StringExpressionPart<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for StringExpressionPart<'a> { + type Inner = StringExpressionPart<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> StringExpressionPart<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + StringExpressionPart { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args StringExpressionPartArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = StringExpressionPartBuilder::new(_fbb); + if let Some(x) = args.interpolated_expression { + builder.add_interpolated_expression(x); + } + if let Some(x) = args.text_value { + builder.add_text_value(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_interpolated_expression_type(args.interpolated_expression_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_TEXT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_INTERPOLATED_EXPRESSION_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_INTERPOLATED_EXPRESSION: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + StringExpressionPart::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn text_value(&self) -> Option<&'a str> { + self._tab.get::>( + StringExpressionPart::VT_TEXT_VALUE, + None, + ) + } + #[inline] + pub fn interpolated_expression_type(&self) -> Expression { + self._tab + .get::( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn interpolated_expression(&self) -> Option> { + self._tab + .get::>>( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_string_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::StringExpression { + self.interpolated_expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_paren_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::ParenExpression { + self.interpolated_expression() + .map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_array_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::ArrayExpression { + self.interpolated_expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_function_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::FunctionExpression { + self.interpolated_expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_binary_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::BinaryExpression { + self.interpolated_expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_boolean_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::BooleanLiteral { + self.interpolated_expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_call_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::CallExpression { + self.interpolated_expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_conditional_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::ConditionalExpression { + self.interpolated_expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_date_time_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::DateTimeLiteral { + self.interpolated_expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_duration_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::DurationLiteral { + self.interpolated_expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_float_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::FloatLiteral { + self.interpolated_expression() + .map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_identifier(&self) -> Option> { + if self.interpolated_expression_type() == Expression::Identifier { + self.interpolated_expression() + .map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_integer_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::IntegerLiteral { + self.interpolated_expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_logical_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::LogicalExpression { + self.interpolated_expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_member_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::MemberExpression { + self.interpolated_expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_index_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::IndexExpression { + self.interpolated_expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_object_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::ObjectExpression { + self.interpolated_expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_pipe_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::PipeExpression { + self.interpolated_expression() + .map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_pipe_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::PipeLiteral { + self.interpolated_expression() + .map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_regexp_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::RegexpLiteral { + self.interpolated_expression() + .map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_string_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::StringLiteral { + self.interpolated_expression() + .map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_unary_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::UnaryExpression { + self.interpolated_expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_unsigned_integer_literal( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::UnsignedIntegerLiteral { + self.interpolated_expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_bad_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::BadExpression { + self.interpolated_expression() + .map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct StringExpressionPartArgs<'a> { + pub base_node: Option>>, + pub text_value: Option>, + pub interpolated_expression_type: Expression, + pub interpolated_expression: Option>, + } + impl<'a> Default for StringExpressionPartArgs<'a> { + #[inline] + fn default() -> Self { + StringExpressionPartArgs { + base_node: None, + text_value: None, + interpolated_expression_type: Expression::NONE, + interpolated_expression: None, + } + } + } + pub struct StringExpressionPartBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> StringExpressionPartBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + StringExpressionPart::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_text_value(&mut self, text_value: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>( + StringExpressionPart::VT_TEXT_VALUE, + text_value, + ); + } + #[inline] + pub fn add_interpolated_expression_type( + &mut self, + interpolated_expression_type: Expression, + ) { + self.fbb_.push_slot::( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, + interpolated_expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_interpolated_expression( + &mut self, + interpolated_expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION, + interpolated_expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> StringExpressionPartBuilder<'a, 'b> { + let start = _fbb.start_table(); + StringExpressionPartBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ParenExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ParenExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ParenExpression<'a> { + type Inner = ParenExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ParenExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ParenExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ParenExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ParenExpressionBuilder::new(_fbb); + if let Some(x) = args.expression { + builder.add_expression(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_expression_type(args.expression_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_EXPRESSION: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ParenExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn expression_type(&self) -> Expression { + self._tab + .get::(ParenExpression::VT_EXPRESSION_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn expression(&self) -> Option> { + self._tab + .get::>>( + ParenExpression::VT_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_expression(&self) -> Option> { + if self.expression_type() == Expression::StringExpression { + self.expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_paren_expression(&self) -> Option> { + if self.expression_type() == Expression::ParenExpression { + self.expression() + .map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_array_expression(&self) -> Option> { + if self.expression_type() == Expression::ArrayExpression { + self.expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_function_expression(&self) -> Option> { + if self.expression_type() == Expression::FunctionExpression { + self.expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_binary_expression(&self) -> Option> { + if self.expression_type() == Expression::BinaryExpression { + self.expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_boolean_literal(&self) -> Option> { + if self.expression_type() == Expression::BooleanLiteral { + self.expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_call_expression(&self) -> Option> { + if self.expression_type() == Expression::CallExpression { + self.expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_conditional_expression(&self) -> Option> { + if self.expression_type() == Expression::ConditionalExpression { + self.expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_date_time_literal(&self) -> Option> { + if self.expression_type() == Expression::DateTimeLiteral { + self.expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_duration_literal(&self) -> Option> { + if self.expression_type() == Expression::DurationLiteral { + self.expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_float_literal(&self) -> Option> { + if self.expression_type() == Expression::FloatLiteral { + self.expression().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_identifier(&self) -> Option> { + if self.expression_type() == Expression::Identifier { + self.expression().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::IntegerLiteral { + self.expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_logical_expression(&self) -> Option> { + if self.expression_type() == Expression::LogicalExpression { + self.expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_member_expression(&self) -> Option> { + if self.expression_type() == Expression::MemberExpression { + self.expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_index_expression(&self) -> Option> { + if self.expression_type() == Expression::IndexExpression { + self.expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_object_expression(&self) -> Option> { + if self.expression_type() == Expression::ObjectExpression { + self.expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_pipe_expression(&self) -> Option> { + if self.expression_type() == Expression::PipeExpression { + self.expression() + .map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_pipe_literal(&self) -> Option> { + if self.expression_type() == Expression::PipeLiteral { + self.expression().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_regexp_literal(&self) -> Option> { + if self.expression_type() == Expression::RegexpLiteral { + self.expression().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_literal(&self) -> Option> { + if self.expression_type() == Expression::StringLiteral { + self.expression().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unary_expression(&self) -> Option> { + if self.expression_type() == Expression::UnaryExpression { + self.expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unsigned_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::UnsignedIntegerLiteral { + self.expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_bad_expression(&self) -> Option> { + if self.expression_type() == Expression::BadExpression { + self.expression().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct ParenExpressionArgs<'a> { + pub base_node: Option>>, + pub expression_type: Expression, + pub expression: Option>, + } + impl<'a> Default for ParenExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ParenExpressionArgs { + base_node: None, + expression_type: Expression::NONE, + expression: None, + } + } + } + pub struct ParenExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ParenExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ParenExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_expression_type(&mut self, expression_type: Expression) { + self.fbb_.push_slot::( + ParenExpression::VT_EXPRESSION_TYPE, + expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_expression( + &mut self, + expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ParenExpression::VT_EXPRESSION, + expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ParenExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ParenExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ArrayExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ArrayExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ArrayExpression<'a> { + type Inner = ArrayExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ArrayExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ArrayExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ArrayExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ArrayExpressionBuilder::new(_fbb); + if let Some(x) = args.elements { + builder.add_elements(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ELEMENTS: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ArrayExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn elements( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(ArrayExpression::VT_ELEMENTS, None) + } + } + + pub struct ArrayExpressionArgs<'a> { + pub base_node: Option>>, + pub elements: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for ArrayExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ArrayExpressionArgs { + base_node: None, + elements: None, + } + } + } + pub struct ArrayExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ArrayExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ArrayExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_elements( + &mut self, + elements: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_.push_slot_always::>( + ArrayExpression::VT_ELEMENTS, + elements, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ArrayExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ArrayExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FunctionExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct FunctionExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for FunctionExpression<'a> { + type Inner = FunctionExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> FunctionExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + FunctionExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FunctionExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FunctionExpressionBuilder::new(_fbb); + if let Some(x) = args.body { + builder.add_body(x); + } + if let Some(x) = args.params { + builder.add_params(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_body_type(args.body_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_PARAMS: flatbuffers::VOffsetT = 6; + pub const VT_BODY_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_BODY: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + FunctionExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn params( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(FunctionExpression::VT_PARAMS, None) + } + #[inline] + pub fn body_type(&self) -> ExpressionOrBlock { + self._tab + .get::( + FunctionExpression::VT_BODY_TYPE, + Some(ExpressionOrBlock::NONE), + ) + .unwrap() + } + #[inline] + pub fn body(&self) -> Option> { + self._tab + .get::>>( + FunctionExpression::VT_BODY, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn body_as_block(&self) -> Option> { + if self.body_type() == ExpressionOrBlock::Block { + self.body().map(|u| Block::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn body_as_wrapped_expression(&self) -> Option> { + if self.body_type() == ExpressionOrBlock::WrappedExpression { + self.body().map(|u| WrappedExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct FunctionExpressionArgs<'a> { + pub base_node: Option>>, + pub params: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub body_type: ExpressionOrBlock, + pub body: Option>, + } + impl<'a> Default for FunctionExpressionArgs<'a> { + #[inline] + fn default() -> Self { + FunctionExpressionArgs { + base_node: None, + params: None, + body_type: ExpressionOrBlock::NONE, + body: None, + } + } + } + pub struct FunctionExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + FunctionExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_params( + &mut self, + params: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_.push_slot_always::>( + FunctionExpression::VT_PARAMS, + params, + ); + } + #[inline] + pub fn add_body_type(&mut self, body_type: ExpressionOrBlock) { + self.fbb_.push_slot::( + FunctionExpression::VT_BODY_TYPE, + body_type, + ExpressionOrBlock::NONE, + ); + } + #[inline] + pub fn add_body(&mut self, body: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(FunctionExpression::VT_BODY, body); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> FunctionExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + FunctionExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BlockOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Block<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Block<'a> { + type Inner = Block<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Block<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Block { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BlockArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BlockBuilder::new(_fbb); + if let Some(x) = args.body { + builder.add_body(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_BODY: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(Block::VT_BASE_NODE, None) + } + #[inline] + pub fn body( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(Block::VT_BODY, None) + } + } + + pub struct BlockArgs<'a> { + pub base_node: Option>>, + pub body: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for BlockArgs<'a> { + #[inline] + fn default() -> Self { + BlockArgs { + base_node: None, + body: None, + } + } + } + pub struct BlockBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BlockBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + Block::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_body( + &mut self, + body: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(Block::VT_BODY, body); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BlockBuilder<'a, 'b> { + let start = _fbb.start_table(); + BlockBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum CallExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct CallExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for CallExpression<'a> { + type Inner = CallExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> CallExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + CallExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args CallExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = CallExpressionBuilder::new(_fbb); + if let Some(x) = args.arguments { + builder.add_arguments(x); + } + if let Some(x) = args.callee { + builder.add_callee(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_callee_type(args.callee_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_CALLEE_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_CALLEE: flatbuffers::VOffsetT = 8; + pub const VT_ARGUMENTS: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + CallExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn callee_type(&self) -> Expression { + self._tab + .get::(CallExpression::VT_CALLEE_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn callee(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_CALLEE, + None, + ) + } + #[inline] + pub fn arguments(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_ARGUMENTS, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_string_expression(&self) -> Option> { + if self.callee_type() == Expression::StringExpression { + self.callee().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_paren_expression(&self) -> Option> { + if self.callee_type() == Expression::ParenExpression { + self.callee().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_array_expression(&self) -> Option> { + if self.callee_type() == Expression::ArrayExpression { + self.callee().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_function_expression(&self) -> Option> { + if self.callee_type() == Expression::FunctionExpression { + self.callee() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_binary_expression(&self) -> Option> { + if self.callee_type() == Expression::BinaryExpression { + self.callee().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_boolean_literal(&self) -> Option> { + if self.callee_type() == Expression::BooleanLiteral { + self.callee().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_call_expression(&self) -> Option> { + if self.callee_type() == Expression::CallExpression { + self.callee().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_conditional_expression(&self) -> Option> { + if self.callee_type() == Expression::ConditionalExpression { + self.callee() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_date_time_literal(&self) -> Option> { + if self.callee_type() == Expression::DateTimeLiteral { + self.callee().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_duration_literal(&self) -> Option> { + if self.callee_type() == Expression::DurationLiteral { + self.callee().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_float_literal(&self) -> Option> { + if self.callee_type() == Expression::FloatLiteral { + self.callee().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_identifier(&self) -> Option> { + if self.callee_type() == Expression::Identifier { + self.callee().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_integer_literal(&self) -> Option> { + if self.callee_type() == Expression::IntegerLiteral { + self.callee().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_logical_expression(&self) -> Option> { + if self.callee_type() == Expression::LogicalExpression { + self.callee().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_member_expression(&self) -> Option> { + if self.callee_type() == Expression::MemberExpression { + self.callee().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_index_expression(&self) -> Option> { + if self.callee_type() == Expression::IndexExpression { + self.callee().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_object_expression(&self) -> Option> { + if self.callee_type() == Expression::ObjectExpression { + self.callee().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_pipe_expression(&self) -> Option> { + if self.callee_type() == Expression::PipeExpression { + self.callee().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_pipe_literal(&self) -> Option> { + if self.callee_type() == Expression::PipeLiteral { + self.callee().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_regexp_literal(&self) -> Option> { + if self.callee_type() == Expression::RegexpLiteral { + self.callee().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_string_literal(&self) -> Option> { + if self.callee_type() == Expression::StringLiteral { + self.callee().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_unary_expression(&self) -> Option> { + if self.callee_type() == Expression::UnaryExpression { + self.callee().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_unsigned_integer_literal(&self) -> Option> { + if self.callee_type() == Expression::UnsignedIntegerLiteral { + self.callee() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_bad_expression(&self) -> Option> { + if self.callee_type() == Expression::BadExpression { + self.callee().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct CallExpressionArgs<'a> { + pub base_node: Option>>, + pub callee_type: Expression, + pub callee: Option>, + pub arguments: Option>>, + } + impl<'a> Default for CallExpressionArgs<'a> { + #[inline] + fn default() -> Self { + CallExpressionArgs { + base_node: None, + callee_type: Expression::NONE, + callee: None, + arguments: None, + } + } + } + pub struct CallExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> CallExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + CallExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_callee_type(&mut self, callee_type: Expression) { + self.fbb_.push_slot::( + CallExpression::VT_CALLEE_TYPE, + callee_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_callee(&mut self, callee: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(CallExpression::VT_CALLEE, callee); + } + #[inline] + pub fn add_arguments(&mut self, arguments: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + CallExpression::VT_ARGUMENTS, + arguments, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> CallExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + CallExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ConditionalExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ConditionalExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ConditionalExpression<'a> { + type Inner = ConditionalExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ConditionalExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ConditionalExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ConditionalExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ConditionalExpressionBuilder::new(_fbb); + if let Some(x) = args.alternate { + builder.add_alternate(x); + } + if let Some(x) = args.consequent { + builder.add_consequent(x); + } + if let Some(x) = args.test { + builder.add_test(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_alternate_type(args.alternate_type); + builder.add_consequent_type(args.consequent_type); + builder.add_test_type(args.test_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_TEST_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_TEST: flatbuffers::VOffsetT = 8; + pub const VT_CONSEQUENT_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_CONSEQUENT: flatbuffers::VOffsetT = 12; + pub const VT_ALTERNATE_TYPE: flatbuffers::VOffsetT = 14; + pub const VT_ALTERNATE: flatbuffers::VOffsetT = 16; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ConditionalExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn test_type(&self) -> Expression { + self._tab + .get::(ConditionalExpression::VT_TEST_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn test(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_TEST, + None, + ) + } + #[inline] + pub fn consequent_type(&self) -> Expression { + self._tab + .get::( + ConditionalExpression::VT_CONSEQUENT_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn consequent(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_CONSEQUENT, + None, + ) + } + #[inline] + pub fn alternate_type(&self) -> Expression { + self._tab + .get::( + ConditionalExpression::VT_ALTERNATE_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn alternate(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_ALTERNATE, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn test_as_string_expression(&self) -> Option> { + if self.test_type() == Expression::StringExpression { + self.test().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_paren_expression(&self) -> Option> { + if self.test_type() == Expression::ParenExpression { + self.test().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_array_expression(&self) -> Option> { + if self.test_type() == Expression::ArrayExpression { + self.test().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_function_expression(&self) -> Option> { + if self.test_type() == Expression::FunctionExpression { + self.test().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_binary_expression(&self) -> Option> { + if self.test_type() == Expression::BinaryExpression { + self.test().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_boolean_literal(&self) -> Option> { + if self.test_type() == Expression::BooleanLiteral { + self.test().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_call_expression(&self) -> Option> { + if self.test_type() == Expression::CallExpression { + self.test().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_conditional_expression(&self) -> Option> { + if self.test_type() == Expression::ConditionalExpression { + self.test() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_date_time_literal(&self) -> Option> { + if self.test_type() == Expression::DateTimeLiteral { + self.test().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_duration_literal(&self) -> Option> { + if self.test_type() == Expression::DurationLiteral { + self.test().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_float_literal(&self) -> Option> { + if self.test_type() == Expression::FloatLiteral { + self.test().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_identifier(&self) -> Option> { + if self.test_type() == Expression::Identifier { + self.test().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_integer_literal(&self) -> Option> { + if self.test_type() == Expression::IntegerLiteral { + self.test().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_logical_expression(&self) -> Option> { + if self.test_type() == Expression::LogicalExpression { + self.test().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_member_expression(&self) -> Option> { + if self.test_type() == Expression::MemberExpression { + self.test().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_index_expression(&self) -> Option> { + if self.test_type() == Expression::IndexExpression { + self.test().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_object_expression(&self) -> Option> { + if self.test_type() == Expression::ObjectExpression { + self.test().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_pipe_expression(&self) -> Option> { + if self.test_type() == Expression::PipeExpression { + self.test().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_pipe_literal(&self) -> Option> { + if self.test_type() == Expression::PipeLiteral { + self.test().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_regexp_literal(&self) -> Option> { + if self.test_type() == Expression::RegexpLiteral { + self.test().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_string_literal(&self) -> Option> { + if self.test_type() == Expression::StringLiteral { + self.test().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_unary_expression(&self) -> Option> { + if self.test_type() == Expression::UnaryExpression { + self.test().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_unsigned_integer_literal(&self) -> Option> { + if self.test_type() == Expression::UnsignedIntegerLiteral { + self.test() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_bad_expression(&self) -> Option> { + if self.test_type() == Expression::BadExpression { + self.test().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_string_expression(&self) -> Option> { + if self.consequent_type() == Expression::StringExpression { + self.consequent() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_paren_expression(&self) -> Option> { + if self.consequent_type() == Expression::ParenExpression { + self.consequent() + .map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_array_expression(&self) -> Option> { + if self.consequent_type() == Expression::ArrayExpression { + self.consequent() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_function_expression(&self) -> Option> { + if self.consequent_type() == Expression::FunctionExpression { + self.consequent() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_binary_expression(&self) -> Option> { + if self.consequent_type() == Expression::BinaryExpression { + self.consequent() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_boolean_literal(&self) -> Option> { + if self.consequent_type() == Expression::BooleanLiteral { + self.consequent() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_call_expression(&self) -> Option> { + if self.consequent_type() == Expression::CallExpression { + self.consequent() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_conditional_expression(&self) -> Option> { + if self.consequent_type() == Expression::ConditionalExpression { + self.consequent() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_date_time_literal(&self) -> Option> { + if self.consequent_type() == Expression::DateTimeLiteral { + self.consequent() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_duration_literal(&self) -> Option> { + if self.consequent_type() == Expression::DurationLiteral { + self.consequent() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_float_literal(&self) -> Option> { + if self.consequent_type() == Expression::FloatLiteral { + self.consequent().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_identifier(&self) -> Option> { + if self.consequent_type() == Expression::Identifier { + self.consequent().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_integer_literal(&self) -> Option> { + if self.consequent_type() == Expression::IntegerLiteral { + self.consequent() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_logical_expression(&self) -> Option> { + if self.consequent_type() == Expression::LogicalExpression { + self.consequent() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_member_expression(&self) -> Option> { + if self.consequent_type() == Expression::MemberExpression { + self.consequent() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_index_expression(&self) -> Option> { + if self.consequent_type() == Expression::IndexExpression { + self.consequent() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_object_expression(&self) -> Option> { + if self.consequent_type() == Expression::ObjectExpression { + self.consequent() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_pipe_expression(&self) -> Option> { + if self.consequent_type() == Expression::PipeExpression { + self.consequent() + .map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_pipe_literal(&self) -> Option> { + if self.consequent_type() == Expression::PipeLiteral { + self.consequent().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_regexp_literal(&self) -> Option> { + if self.consequent_type() == Expression::RegexpLiteral { + self.consequent().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_string_literal(&self) -> Option> { + if self.consequent_type() == Expression::StringLiteral { + self.consequent().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_unary_expression(&self) -> Option> { + if self.consequent_type() == Expression::UnaryExpression { + self.consequent() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_unsigned_integer_literal(&self) -> Option> { + if self.consequent_type() == Expression::UnsignedIntegerLiteral { + self.consequent() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_bad_expression(&self) -> Option> { + if self.consequent_type() == Expression::BadExpression { + self.consequent().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_string_expression(&self) -> Option> { + if self.alternate_type() == Expression::StringExpression { + self.alternate() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_paren_expression(&self) -> Option> { + if self.alternate_type() == Expression::ParenExpression { + self.alternate() + .map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_array_expression(&self) -> Option> { + if self.alternate_type() == Expression::ArrayExpression { + self.alternate() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_function_expression(&self) -> Option> { + if self.alternate_type() == Expression::FunctionExpression { + self.alternate() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_binary_expression(&self) -> Option> { + if self.alternate_type() == Expression::BinaryExpression { + self.alternate() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_boolean_literal(&self) -> Option> { + if self.alternate_type() == Expression::BooleanLiteral { + self.alternate().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_call_expression(&self) -> Option> { + if self.alternate_type() == Expression::CallExpression { + self.alternate().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_conditional_expression(&self) -> Option> { + if self.alternate_type() == Expression::ConditionalExpression { + self.alternate() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_date_time_literal(&self) -> Option> { + if self.alternate_type() == Expression::DateTimeLiteral { + self.alternate() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_duration_literal(&self) -> Option> { + if self.alternate_type() == Expression::DurationLiteral { + self.alternate() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_float_literal(&self) -> Option> { + if self.alternate_type() == Expression::FloatLiteral { + self.alternate().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_identifier(&self) -> Option> { + if self.alternate_type() == Expression::Identifier { + self.alternate().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_integer_literal(&self) -> Option> { + if self.alternate_type() == Expression::IntegerLiteral { + self.alternate().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_logical_expression(&self) -> Option> { + if self.alternate_type() == Expression::LogicalExpression { + self.alternate() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_member_expression(&self) -> Option> { + if self.alternate_type() == Expression::MemberExpression { + self.alternate() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_index_expression(&self) -> Option> { + if self.alternate_type() == Expression::IndexExpression { + self.alternate() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_object_expression(&self) -> Option> { + if self.alternate_type() == Expression::ObjectExpression { + self.alternate() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_pipe_expression(&self) -> Option> { + if self.alternate_type() == Expression::PipeExpression { + self.alternate().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_pipe_literal(&self) -> Option> { + if self.alternate_type() == Expression::PipeLiteral { + self.alternate().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_regexp_literal(&self) -> Option> { + if self.alternate_type() == Expression::RegexpLiteral { + self.alternate().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_string_literal(&self) -> Option> { + if self.alternate_type() == Expression::StringLiteral { + self.alternate().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_unary_expression(&self) -> Option> { + if self.alternate_type() == Expression::UnaryExpression { + self.alternate() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_unsigned_integer_literal(&self) -> Option> { + if self.alternate_type() == Expression::UnsignedIntegerLiteral { + self.alternate() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_bad_expression(&self) -> Option> { + if self.alternate_type() == Expression::BadExpression { + self.alternate().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct ConditionalExpressionArgs<'a> { + pub base_node: Option>>, + pub test_type: Expression, + pub test: Option>, + pub consequent_type: Expression, + pub consequent: Option>, + pub alternate_type: Expression, + pub alternate: Option>, + } + impl<'a> Default for ConditionalExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ConditionalExpressionArgs { + base_node: None, + test_type: Expression::NONE, + test: None, + consequent_type: Expression::NONE, + consequent: None, + alternate_type: Expression::NONE, + alternate: None, + } + } + } + pub struct ConditionalExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ConditionalExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ConditionalExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_test_type(&mut self, test_type: Expression) { + self.fbb_.push_slot::( + ConditionalExpression::VT_TEST_TYPE, + test_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_test(&mut self, test: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>( + ConditionalExpression::VT_TEST, + test, + ); + } + #[inline] + pub fn add_consequent_type(&mut self, consequent_type: Expression) { + self.fbb_.push_slot::( + ConditionalExpression::VT_CONSEQUENT_TYPE, + consequent_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_consequent( + &mut self, + consequent: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ConditionalExpression::VT_CONSEQUENT, + consequent, + ); + } + #[inline] + pub fn add_alternate_type(&mut self, alternate_type: Expression) { + self.fbb_.push_slot::( + ConditionalExpression::VT_ALTERNATE_TYPE, + alternate_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_alternate( + &mut self, + alternate: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ConditionalExpression::VT_ALTERNATE, + alternate, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ConditionalExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ConditionalExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PropertyOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Property<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Property<'a> { + type Inner = Property<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Property<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Property { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PropertyArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PropertyBuilder::new(_fbb); + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.key { + builder.add_key(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_value_type(args.value_type); + builder.add_key_type(args.key_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_KEY_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_KEY: flatbuffers::VOffsetT = 8; + pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_VALUE: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab + .get::>>(Property::VT_BASE_NODE, None) + } + #[inline] + pub fn key_type(&self) -> PropertyKey { + self._tab + .get::(Property::VT_KEY_TYPE, Some(PropertyKey::NONE)) + .unwrap() + } + #[inline] + pub fn key(&self) -> Option> { + self._tab + .get::>>(Property::VT_KEY, None) + } + #[inline] + pub fn value_type(&self) -> Expression { + self._tab + .get::(Property::VT_VALUE_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn value(&self) -> Option> { + self._tab + .get::>>( + Property::VT_VALUE, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn key_as_identifier(&self) -> Option> { + if self.key_type() == PropertyKey::Identifier { + self.key().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn key_as_string_literal(&self) -> Option> { + if self.key_type() == PropertyKey::StringLiteral { + self.key().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_string_expression(&self) -> Option> { + if self.value_type() == Expression::StringExpression { + self.value().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_paren_expression(&self) -> Option> { + if self.value_type() == Expression::ParenExpression { + self.value().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_array_expression(&self) -> Option> { + if self.value_type() == Expression::ArrayExpression { + self.value().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_function_expression(&self) -> Option> { + if self.value_type() == Expression::FunctionExpression { + self.value().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_binary_expression(&self) -> Option> { + if self.value_type() == Expression::BinaryExpression { + self.value().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_boolean_literal(&self) -> Option> { + if self.value_type() == Expression::BooleanLiteral { + self.value().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_call_expression(&self) -> Option> { + if self.value_type() == Expression::CallExpression { + self.value().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_conditional_expression(&self) -> Option> { + if self.value_type() == Expression::ConditionalExpression { + self.value() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_date_time_literal(&self) -> Option> { + if self.value_type() == Expression::DateTimeLiteral { + self.value().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_duration_literal(&self) -> Option> { + if self.value_type() == Expression::DurationLiteral { + self.value().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_float_literal(&self) -> Option> { + if self.value_type() == Expression::FloatLiteral { + self.value().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_identifier(&self) -> Option> { + if self.value_type() == Expression::Identifier { + self.value().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_integer_literal(&self) -> Option> { + if self.value_type() == Expression::IntegerLiteral { + self.value().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_logical_expression(&self) -> Option> { + if self.value_type() == Expression::LogicalExpression { + self.value().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_member_expression(&self) -> Option> { + if self.value_type() == Expression::MemberExpression { + self.value().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_index_expression(&self) -> Option> { + if self.value_type() == Expression::IndexExpression { + self.value().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_object_expression(&self) -> Option> { + if self.value_type() == Expression::ObjectExpression { + self.value().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_pipe_expression(&self) -> Option> { + if self.value_type() == Expression::PipeExpression { + self.value().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_pipe_literal(&self) -> Option> { + if self.value_type() == Expression::PipeLiteral { + self.value().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_regexp_literal(&self) -> Option> { + if self.value_type() == Expression::RegexpLiteral { + self.value().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_string_literal(&self) -> Option> { + if self.value_type() == Expression::StringLiteral { + self.value().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_unary_expression(&self) -> Option> { + if self.value_type() == Expression::UnaryExpression { + self.value().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_unsigned_integer_literal(&self) -> Option> { + if self.value_type() == Expression::UnsignedIntegerLiteral { + self.value() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_bad_expression(&self) -> Option> { + if self.value_type() == Expression::BadExpression { + self.value().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct PropertyArgs<'a> { + pub base_node: Option>>, + pub key_type: PropertyKey, + pub key: Option>, + pub value_type: Expression, + pub value: Option>, + } + impl<'a> Default for PropertyArgs<'a> { + #[inline] + fn default() -> Self { + PropertyArgs { + base_node: None, + key_type: PropertyKey::NONE, + key: None, + value_type: Expression::NONE, + value: None, + } + } + } + pub struct PropertyBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PropertyBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + Property::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_key_type(&mut self, key_type: PropertyKey) { + self.fbb_ + .push_slot::(Property::VT_KEY_TYPE, key_type, PropertyKey::NONE); + } + #[inline] + pub fn add_key(&mut self, key: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Property::VT_KEY, key); + } + #[inline] + pub fn add_value_type(&mut self, value_type: Expression) { + self.fbb_.push_slot::( + Property::VT_VALUE_TYPE, + value_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Property::VT_VALUE, value); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropertyBuilder<'a, 'b> { + let start = _fbb.start_table(); + PropertyBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum MemberExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct MemberExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for MemberExpression<'a> { + type Inner = MemberExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> MemberExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + MemberExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args MemberExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = MemberExpressionBuilder::new(_fbb); + if let Some(x) = args.property { + builder.add_property(x); + } + if let Some(x) = args.object { + builder.add_object(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_property_type(args.property_type); + builder.add_object_type(args.object_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_OBJECT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_OBJECT: flatbuffers::VOffsetT = 8; + pub const VT_PROPERTY_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_PROPERTY: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + MemberExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn object_type(&self) -> Expression { + self._tab + .get::(MemberExpression::VT_OBJECT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn object(&self) -> Option> { + self._tab + .get::>>( + MemberExpression::VT_OBJECT, + None, + ) + } + #[inline] + pub fn property_type(&self) -> PropertyKey { + self._tab + .get::(MemberExpression::VT_PROPERTY_TYPE, Some(PropertyKey::NONE)) + .unwrap() + } + #[inline] + pub fn property(&self) -> Option> { + self._tab + .get::>>( + MemberExpression::VT_PROPERTY, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn object_as_string_expression(&self) -> Option> { + if self.object_type() == Expression::StringExpression { + self.object().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_paren_expression(&self) -> Option> { + if self.object_type() == Expression::ParenExpression { + self.object().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_array_expression(&self) -> Option> { + if self.object_type() == Expression::ArrayExpression { + self.object().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_function_expression(&self) -> Option> { + if self.object_type() == Expression::FunctionExpression { + self.object() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_binary_expression(&self) -> Option> { + if self.object_type() == Expression::BinaryExpression { + self.object().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_boolean_literal(&self) -> Option> { + if self.object_type() == Expression::BooleanLiteral { + self.object().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_call_expression(&self) -> Option> { + if self.object_type() == Expression::CallExpression { + self.object().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_conditional_expression(&self) -> Option> { + if self.object_type() == Expression::ConditionalExpression { + self.object() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_date_time_literal(&self) -> Option> { + if self.object_type() == Expression::DateTimeLiteral { + self.object().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_duration_literal(&self) -> Option> { + if self.object_type() == Expression::DurationLiteral { + self.object().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_float_literal(&self) -> Option> { + if self.object_type() == Expression::FloatLiteral { + self.object().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_identifier(&self) -> Option> { + if self.object_type() == Expression::Identifier { + self.object().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_integer_literal(&self) -> Option> { + if self.object_type() == Expression::IntegerLiteral { + self.object().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_logical_expression(&self) -> Option> { + if self.object_type() == Expression::LogicalExpression { + self.object().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_member_expression(&self) -> Option> { + if self.object_type() == Expression::MemberExpression { + self.object().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_index_expression(&self) -> Option> { + if self.object_type() == Expression::IndexExpression { + self.object().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_object_expression(&self) -> Option> { + if self.object_type() == Expression::ObjectExpression { + self.object().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_pipe_expression(&self) -> Option> { + if self.object_type() == Expression::PipeExpression { + self.object().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_pipe_literal(&self) -> Option> { + if self.object_type() == Expression::PipeLiteral { + self.object().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_regexp_literal(&self) -> Option> { + if self.object_type() == Expression::RegexpLiteral { + self.object().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_string_literal(&self) -> Option> { + if self.object_type() == Expression::StringLiteral { + self.object().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_unary_expression(&self) -> Option> { + if self.object_type() == Expression::UnaryExpression { + self.object().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_unsigned_integer_literal(&self) -> Option> { + if self.object_type() == Expression::UnsignedIntegerLiteral { + self.object() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_bad_expression(&self) -> Option> { + if self.object_type() == Expression::BadExpression { + self.object().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn property_as_identifier(&self) -> Option> { + if self.property_type() == PropertyKey::Identifier { + self.property().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn property_as_string_literal(&self) -> Option> { + if self.property_type() == PropertyKey::StringLiteral { + self.property().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct MemberExpressionArgs<'a> { + pub base_node: Option>>, + pub object_type: Expression, + pub object: Option>, + pub property_type: PropertyKey, + pub property: Option>, + } + impl<'a> Default for MemberExpressionArgs<'a> { + #[inline] + fn default() -> Self { + MemberExpressionArgs { + base_node: None, + object_type: Expression::NONE, + object: None, + property_type: PropertyKey::NONE, + property: None, + } + } + } + pub struct MemberExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> MemberExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + MemberExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_object_type(&mut self, object_type: Expression) { + self.fbb_.push_slot::( + MemberExpression::VT_OBJECT_TYPE, + object_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_object(&mut self, object: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(MemberExpression::VT_OBJECT, object); + } + #[inline] + pub fn add_property_type(&mut self, property_type: PropertyKey) { + self.fbb_.push_slot::( + MemberExpression::VT_PROPERTY_TYPE, + property_type, + PropertyKey::NONE, + ); + } + #[inline] + pub fn add_property( + &mut self, + property: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + MemberExpression::VT_PROPERTY, + property, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> MemberExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + MemberExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IndexExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct IndexExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for IndexExpression<'a> { + type Inner = IndexExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> IndexExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + IndexExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IndexExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IndexExpressionBuilder::new(_fbb); + if let Some(x) = args.index { + builder.add_index(x); + } + if let Some(x) = args.array { + builder.add_array(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_index_type(args.index_type); + builder.add_array_type(args.array_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ARRAY_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ARRAY: flatbuffers::VOffsetT = 8; + pub const VT_INDEX_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_INDEX: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + IndexExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn array_type(&self) -> Expression { + self._tab + .get::(IndexExpression::VT_ARRAY_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn array(&self) -> Option> { + self._tab + .get::>>( + IndexExpression::VT_ARRAY, + None, + ) + } + #[inline] + pub fn index_type(&self) -> Expression { + self._tab + .get::(IndexExpression::VT_INDEX_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn index(&self) -> Option> { + self._tab + .get::>>( + IndexExpression::VT_INDEX, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn array_as_string_expression(&self) -> Option> { + if self.array_type() == Expression::StringExpression { + self.array().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_paren_expression(&self) -> Option> { + if self.array_type() == Expression::ParenExpression { + self.array().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_array_expression(&self) -> Option> { + if self.array_type() == Expression::ArrayExpression { + self.array().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_function_expression(&self) -> Option> { + if self.array_type() == Expression::FunctionExpression { + self.array().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_binary_expression(&self) -> Option> { + if self.array_type() == Expression::BinaryExpression { + self.array().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_boolean_literal(&self) -> Option> { + if self.array_type() == Expression::BooleanLiteral { + self.array().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_call_expression(&self) -> Option> { + if self.array_type() == Expression::CallExpression { + self.array().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_conditional_expression(&self) -> Option> { + if self.array_type() == Expression::ConditionalExpression { + self.array() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_date_time_literal(&self) -> Option> { + if self.array_type() == Expression::DateTimeLiteral { + self.array().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_duration_literal(&self) -> Option> { + if self.array_type() == Expression::DurationLiteral { + self.array().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_float_literal(&self) -> Option> { + if self.array_type() == Expression::FloatLiteral { + self.array().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_identifier(&self) -> Option> { + if self.array_type() == Expression::Identifier { + self.array().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_integer_literal(&self) -> Option> { + if self.array_type() == Expression::IntegerLiteral { + self.array().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_logical_expression(&self) -> Option> { + if self.array_type() == Expression::LogicalExpression { + self.array().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_member_expression(&self) -> Option> { + if self.array_type() == Expression::MemberExpression { + self.array().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_index_expression(&self) -> Option> { + if self.array_type() == Expression::IndexExpression { + self.array().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_object_expression(&self) -> Option> { + if self.array_type() == Expression::ObjectExpression { + self.array().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_pipe_expression(&self) -> Option> { + if self.array_type() == Expression::PipeExpression { + self.array().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_pipe_literal(&self) -> Option> { + if self.array_type() == Expression::PipeLiteral { + self.array().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_regexp_literal(&self) -> Option> { + if self.array_type() == Expression::RegexpLiteral { + self.array().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_string_literal(&self) -> Option> { + if self.array_type() == Expression::StringLiteral { + self.array().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_unary_expression(&self) -> Option> { + if self.array_type() == Expression::UnaryExpression { + self.array().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_unsigned_integer_literal(&self) -> Option> { + if self.array_type() == Expression::UnsignedIntegerLiteral { + self.array() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_bad_expression(&self) -> Option> { + if self.array_type() == Expression::BadExpression { + self.array().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_string_expression(&self) -> Option> { + if self.index_type() == Expression::StringExpression { + self.index().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_paren_expression(&self) -> Option> { + if self.index_type() == Expression::ParenExpression { + self.index().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_array_expression(&self) -> Option> { + if self.index_type() == Expression::ArrayExpression { + self.index().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_function_expression(&self) -> Option> { + if self.index_type() == Expression::FunctionExpression { + self.index().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_binary_expression(&self) -> Option> { + if self.index_type() == Expression::BinaryExpression { + self.index().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_boolean_literal(&self) -> Option> { + if self.index_type() == Expression::BooleanLiteral { + self.index().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_call_expression(&self) -> Option> { + if self.index_type() == Expression::CallExpression { + self.index().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_conditional_expression(&self) -> Option> { + if self.index_type() == Expression::ConditionalExpression { + self.index() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_date_time_literal(&self) -> Option> { + if self.index_type() == Expression::DateTimeLiteral { + self.index().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_duration_literal(&self) -> Option> { + if self.index_type() == Expression::DurationLiteral { + self.index().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_float_literal(&self) -> Option> { + if self.index_type() == Expression::FloatLiteral { + self.index().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_identifier(&self) -> Option> { + if self.index_type() == Expression::Identifier { + self.index().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_integer_literal(&self) -> Option> { + if self.index_type() == Expression::IntegerLiteral { + self.index().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_logical_expression(&self) -> Option> { + if self.index_type() == Expression::LogicalExpression { + self.index().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_member_expression(&self) -> Option> { + if self.index_type() == Expression::MemberExpression { + self.index().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_index_expression(&self) -> Option> { + if self.index_type() == Expression::IndexExpression { + self.index().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_object_expression(&self) -> Option> { + if self.index_type() == Expression::ObjectExpression { + self.index().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_pipe_expression(&self) -> Option> { + if self.index_type() == Expression::PipeExpression { + self.index().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_pipe_literal(&self) -> Option> { + if self.index_type() == Expression::PipeLiteral { + self.index().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_regexp_literal(&self) -> Option> { + if self.index_type() == Expression::RegexpLiteral { + self.index().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_string_literal(&self) -> Option> { + if self.index_type() == Expression::StringLiteral { + self.index().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_unary_expression(&self) -> Option> { + if self.index_type() == Expression::UnaryExpression { + self.index().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_unsigned_integer_literal(&self) -> Option> { + if self.index_type() == Expression::UnsignedIntegerLiteral { + self.index() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_bad_expression(&self) -> Option> { + if self.index_type() == Expression::BadExpression { + self.index().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct IndexExpressionArgs<'a> { + pub base_node: Option>>, + pub array_type: Expression, + pub array: Option>, + pub index_type: Expression, + pub index: Option>, + } + impl<'a> Default for IndexExpressionArgs<'a> { + #[inline] + fn default() -> Self { + IndexExpressionArgs { + base_node: None, + array_type: Expression::NONE, + array: None, + index_type: Expression::NONE, + index: None, + } + } + } + pub struct IndexExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IndexExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + IndexExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_array_type(&mut self, array_type: Expression) { + self.fbb_.push_slot::( + IndexExpression::VT_ARRAY_TYPE, + array_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_array(&mut self, array: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IndexExpression::VT_ARRAY, array); + } + #[inline] + pub fn add_index_type(&mut self, index_type: Expression) { + self.fbb_.push_slot::( + IndexExpression::VT_INDEX_TYPE, + index_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_index(&mut self, index: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IndexExpression::VT_INDEX, index); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> IndexExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + IndexExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ObjectExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ObjectExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ObjectExpression<'a> { + type Inner = ObjectExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ObjectExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ObjectExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ObjectExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ObjectExpressionBuilder::new(_fbb); + if let Some(x) = args.properties { + builder.add_properties(x); + } + if let Some(x) = args.with { + builder.add_with(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_WITH: flatbuffers::VOffsetT = 6; + pub const VT_PROPERTIES: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + ObjectExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn with(&self) -> Option> { + self._tab + .get::>>( + ObjectExpression::VT_WITH, + None, + ) + } + #[inline] + pub fn properties( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(ObjectExpression::VT_PROPERTIES, None) + } + } + + pub struct ObjectExpressionArgs<'a> { + pub base_node: Option>>, + pub with: Option>>, + pub properties: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for ObjectExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ObjectExpressionArgs { + base_node: None, + with: None, + properties: None, + } + } + } + pub struct ObjectExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ObjectExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ObjectExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_with(&mut self, with: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ObjectExpression::VT_WITH, + with, + ); + } + #[inline] + pub fn add_properties( + &mut self, + properties: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_.push_slot_always::>( + ObjectExpression::VT_PROPERTIES, + properties, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ObjectExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ObjectExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PipeExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct PipeExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for PipeExpression<'a> { + type Inner = PipeExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> PipeExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PipeExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PipeExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PipeExpressionBuilder::new(_fbb); + if let Some(x) = args.call { + builder.add_call(x); + } + if let Some(x) = args.argument { + builder.add_argument(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_argument_type(args.argument_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ARGUMENT: flatbuffers::VOffsetT = 8; + pub const VT_CALL: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + PipeExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn argument_type(&self) -> Expression { + self._tab + .get::(PipeExpression::VT_ARGUMENT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn argument(&self) -> Option> { + self._tab + .get::>>( + PipeExpression::VT_ARGUMENT, + None, + ) + } + #[inline] + pub fn call(&self) -> Option> { + self._tab + .get::>>( + PipeExpression::VT_CALL, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_expression(&self) -> Option> { + if self.argument_type() == Expression::StringExpression { + self.argument() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_paren_expression(&self) -> Option> { + if self.argument_type() == Expression::ParenExpression { + self.argument().map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_array_expression(&self) -> Option> { + if self.argument_type() == Expression::ArrayExpression { + self.argument().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_function_expression(&self) -> Option> { + if self.argument_type() == Expression::FunctionExpression { + self.argument() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_binary_expression(&self) -> Option> { + if self.argument_type() == Expression::BinaryExpression { + self.argument() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_boolean_literal(&self) -> Option> { + if self.argument_type() == Expression::BooleanLiteral { + self.argument().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_call_expression(&self) -> Option> { + if self.argument_type() == Expression::CallExpression { + self.argument().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_conditional_expression(&self) -> Option> { + if self.argument_type() == Expression::ConditionalExpression { + self.argument() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_date_time_literal(&self) -> Option> { + if self.argument_type() == Expression::DateTimeLiteral { + self.argument().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_duration_literal(&self) -> Option> { + if self.argument_type() == Expression::DurationLiteral { + self.argument().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_float_literal(&self) -> Option> { + if self.argument_type() == Expression::FloatLiteral { + self.argument().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_identifier(&self) -> Option> { + if self.argument_type() == Expression::Identifier { + self.argument().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::IntegerLiteral { + self.argument().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_logical_expression(&self) -> Option> { + if self.argument_type() == Expression::LogicalExpression { + self.argument() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_member_expression(&self) -> Option> { + if self.argument_type() == Expression::MemberExpression { + self.argument() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_index_expression(&self) -> Option> { + if self.argument_type() == Expression::IndexExpression { + self.argument().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_object_expression(&self) -> Option> { + if self.argument_type() == Expression::ObjectExpression { + self.argument() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_pipe_expression(&self) -> Option> { + if self.argument_type() == Expression::PipeExpression { + self.argument().map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_pipe_literal(&self) -> Option> { + if self.argument_type() == Expression::PipeLiteral { + self.argument().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_regexp_literal(&self) -> Option> { + if self.argument_type() == Expression::RegexpLiteral { + self.argument().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_literal(&self) -> Option> { + if self.argument_type() == Expression::StringLiteral { + self.argument().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unary_expression(&self) -> Option> { + if self.argument_type() == Expression::UnaryExpression { + self.argument().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unsigned_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::UnsignedIntegerLiteral { + self.argument() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_bad_expression(&self) -> Option> { + if self.argument_type() == Expression::BadExpression { + self.argument().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct PipeExpressionArgs<'a> { + pub base_node: Option>>, + pub argument_type: Expression, + pub argument: Option>, + pub call: Option>>, + } + impl<'a> Default for PipeExpressionArgs<'a> { + #[inline] + fn default() -> Self { + PipeExpressionArgs { + base_node: None, + argument_type: Expression::NONE, + argument: None, + call: None, + } + } + } + pub struct PipeExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PipeExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PipeExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_argument_type(&mut self, argument_type: Expression) { + self.fbb_.push_slot::( + PipeExpression::VT_ARGUMENT_TYPE, + argument_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_argument( + &mut self, + argument: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + PipeExpression::VT_ARGUMENT, + argument, + ); + } + #[inline] + pub fn add_call(&mut self, call: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PipeExpression::VT_CALL, + call, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> PipeExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + PipeExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BadExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BadExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BadExpression<'a> { + type Inner = BadExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BadExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BadExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BadExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BadExpressionBuilder::new(_fbb); + if let Some(x) = args.expression { + builder.add_expression(x); + } + if let Some(x) = args.text { + builder.add_text(x); + } + if let Some(x) = args.base_node { + builder.add_base_node(x); + } + builder.add_expression_type(args.expression_type); + builder.finish() + } + + pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; + pub const VT_TEXT: flatbuffers::VOffsetT = 6; + pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_EXPRESSION: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn base_node(&self) -> Option> { + self._tab.get::>>( + BadExpression::VT_BASE_NODE, + None, + ) + } + #[inline] + pub fn text(&self) -> Option<&'a str> { + self._tab + .get::>(BadExpression::VT_TEXT, None) + } + #[inline] + pub fn expression_type(&self) -> Expression { + self._tab + .get::(BadExpression::VT_EXPRESSION_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn expression(&self) -> Option> { + self._tab + .get::>>( + BadExpression::VT_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_expression(&self) -> Option> { + if self.expression_type() == Expression::StringExpression { + self.expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_paren_expression(&self) -> Option> { + if self.expression_type() == Expression::ParenExpression { + self.expression() + .map(|u| ParenExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_array_expression(&self) -> Option> { + if self.expression_type() == Expression::ArrayExpression { + self.expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_function_expression(&self) -> Option> { + if self.expression_type() == Expression::FunctionExpression { + self.expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_binary_expression(&self) -> Option> { + if self.expression_type() == Expression::BinaryExpression { + self.expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_boolean_literal(&self) -> Option> { + if self.expression_type() == Expression::BooleanLiteral { + self.expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_call_expression(&self) -> Option> { + if self.expression_type() == Expression::CallExpression { + self.expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_conditional_expression(&self) -> Option> { + if self.expression_type() == Expression::ConditionalExpression { + self.expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_date_time_literal(&self) -> Option> { + if self.expression_type() == Expression::DateTimeLiteral { + self.expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_duration_literal(&self) -> Option> { + if self.expression_type() == Expression::DurationLiteral { + self.expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_float_literal(&self) -> Option> { + if self.expression_type() == Expression::FloatLiteral { + self.expression().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_identifier(&self) -> Option> { + if self.expression_type() == Expression::Identifier { + self.expression().map(|u| Identifier::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::IntegerLiteral { + self.expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_logical_expression(&self) -> Option> { + if self.expression_type() == Expression::LogicalExpression { + self.expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_member_expression(&self) -> Option> { + if self.expression_type() == Expression::MemberExpression { + self.expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_index_expression(&self) -> Option> { + if self.expression_type() == Expression::IndexExpression { + self.expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_object_expression(&self) -> Option> { + if self.expression_type() == Expression::ObjectExpression { + self.expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_pipe_expression(&self) -> Option> { + if self.expression_type() == Expression::PipeExpression { + self.expression() + .map(|u| PipeExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_pipe_literal(&self) -> Option> { + if self.expression_type() == Expression::PipeLiteral { + self.expression().map(|u| PipeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_regexp_literal(&self) -> Option> { + if self.expression_type() == Expression::RegexpLiteral { + self.expression().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_literal(&self) -> Option> { + if self.expression_type() == Expression::StringLiteral { + self.expression().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unary_expression(&self) -> Option> { + if self.expression_type() == Expression::UnaryExpression { + self.expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unsigned_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::UnsignedIntegerLiteral { + self.expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_bad_expression(&self) -> Option> { + if self.expression_type() == Expression::BadExpression { + self.expression().map(|u| BadExpression::init_from_table(u)) + } else { + None + } + } + } + + pub struct BadExpressionArgs<'a> { + pub base_node: Option>>, + pub text: Option>, + pub expression_type: Expression, + pub expression: Option>, + } + impl<'a> Default for BadExpressionArgs<'a> { + #[inline] + fn default() -> Self { + BadExpressionArgs { + base_node: None, + text: None, + expression_type: Expression::NONE, + expression: None, + } + } + } + pub struct BadExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BadExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BadExpression::VT_BASE_NODE, + base_node, + ); + } + #[inline] + pub fn add_text(&mut self, text: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(BadExpression::VT_TEXT, text); + } + #[inline] + pub fn add_expression_type(&mut self, expression_type: Expression) { + self.fbb_.push_slot::( + BadExpression::VT_EXPRESSION_TYPE, + expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_expression( + &mut self, + expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + BadExpression::VT_EXPRESSION, + expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BadExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + BadExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + #[inline] + pub fn get_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { + flatbuffers::get_root::>(buf) + } + #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - PipeExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PipeExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PipeExpressionBuilder::new(_fbb); - if let Some(x) = args.call { builder.add_call(x); } - if let Some(x) = args.argument { builder.add_argument(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_argument_type(args.argument_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ARGUMENT: flatbuffers::VOffsetT = 8; - pub const VT_CALL: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(PipeExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn argument_type(&self) -> Expression { - self._tab.get::(PipeExpression::VT_ARGUMENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn argument(&self) -> Option> { - self._tab.get::>>(PipeExpression::VT_ARGUMENT, None) - } - #[inline] - pub fn call(&self) -> Option> { - self._tab.get::>>(PipeExpression::VT_CALL, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_expression(&self) -> Option> { - if self.argument_type() == Expression::StringExpression { - self.argument().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_paren_expression(&self) -> Option> { - if self.argument_type() == Expression::ParenExpression { - self.argument().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_array_expression(&self) -> Option> { - if self.argument_type() == Expression::ArrayExpression { - self.argument().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_function_expression(&self) -> Option> { - if self.argument_type() == Expression::FunctionExpression { - self.argument().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_binary_expression(&self) -> Option> { - if self.argument_type() == Expression::BinaryExpression { - self.argument().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_boolean_literal(&self) -> Option> { - if self.argument_type() == Expression::BooleanLiteral { - self.argument().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_call_expression(&self) -> Option> { - if self.argument_type() == Expression::CallExpression { - self.argument().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_conditional_expression(&self) -> Option> { - if self.argument_type() == Expression::ConditionalExpression { - self.argument().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_date_time_literal(&self) -> Option> { - if self.argument_type() == Expression::DateTimeLiteral { - self.argument().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_duration_literal(&self) -> Option> { - if self.argument_type() == Expression::DurationLiteral { - self.argument().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_float_literal(&self) -> Option> { - if self.argument_type() == Expression::FloatLiteral { - self.argument().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_identifier(&self) -> Option> { - if self.argument_type() == Expression::Identifier { - self.argument().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::IntegerLiteral { - self.argument().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_logical_expression(&self) -> Option> { - if self.argument_type() == Expression::LogicalExpression { - self.argument().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_member_expression(&self) -> Option> { - if self.argument_type() == Expression::MemberExpression { - self.argument().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_index_expression(&self) -> Option> { - if self.argument_type() == Expression::IndexExpression { - self.argument().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_object_expression(&self) -> Option> { - if self.argument_type() == Expression::ObjectExpression { - self.argument().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_pipe_expression(&self) -> Option> { - if self.argument_type() == Expression::PipeExpression { - self.argument().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_pipe_literal(&self) -> Option> { - if self.argument_type() == Expression::PipeLiteral { - self.argument().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_regexp_literal(&self) -> Option> { - if self.argument_type() == Expression::RegexpLiteral { - self.argument().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_literal(&self) -> Option> { - if self.argument_type() == Expression::StringLiteral { - self.argument().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unary_expression(&self) -> Option> { - if self.argument_type() == Expression::UnaryExpression { - self.argument().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unsigned_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::UnsignedIntegerLiteral { - self.argument().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_bad_expression(&self) -> Option> { - if self.argument_type() == Expression::BadExpression { - self.argument().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct PipeExpressionArgs<'a> { - pub base_node: Option>>, - pub argument_type: Expression, - pub argument: Option>, - pub call: Option>>, -} -impl<'a> Default for PipeExpressionArgs<'a> { - #[inline] - fn default() -> Self { - PipeExpressionArgs { - base_node: None, - argument_type: Expression::NONE, - argument: None, - call: None, - } - } -} -pub struct PipeExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PipeExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PipeExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_argument_type(&mut self, argument_type: Expression) { - self.fbb_.push_slot::(PipeExpression::VT_ARGUMENT_TYPE, argument_type, Expression::NONE); - } - #[inline] - pub fn add_argument(&mut self, argument: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(PipeExpression::VT_ARGUMENT, argument); - } - #[inline] - pub fn add_call(&mut self, call: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PipeExpression::VT_CALL, call); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PipeExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - PipeExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BadExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BadExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BadExpression<'a> { - type Inner = BadExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn get_size_prefixed_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { + flatbuffers::get_size_prefixed_root::>(buf) + } + + #[inline] + pub fn finish_package_buffer<'a, 'b>( + fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + root: flatbuffers::WIPOffset>, + ) { + fbb.finish(root, None); } -} -impl<'a> BadExpression<'a> { #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BadExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BadExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BadExpressionBuilder::new(_fbb); - if let Some(x) = args.expression { builder.add_expression(x); } - if let Some(x) = args.text { builder.add_text(x); } - if let Some(x) = args.base_node { builder.add_base_node(x); } - builder.add_expression_type(args.expression_type); - builder.finish() - } - - pub const VT_BASE_NODE: flatbuffers::VOffsetT = 4; - pub const VT_TEXT: flatbuffers::VOffsetT = 6; - pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_EXPRESSION: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn base_node(&self) -> Option> { - self._tab.get::>>(BadExpression::VT_BASE_NODE, None) - } - #[inline] - pub fn text(&self) -> Option<&'a str> { - self._tab.get::>(BadExpression::VT_TEXT, None) - } - #[inline] - pub fn expression_type(&self) -> Expression { - self._tab.get::(BadExpression::VT_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn expression(&self) -> Option> { - self._tab.get::>>(BadExpression::VT_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_expression(&self) -> Option> { - if self.expression_type() == Expression::StringExpression { - self.expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_paren_expression(&self) -> Option> { - if self.expression_type() == Expression::ParenExpression { - self.expression().map(|u| ParenExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_array_expression(&self) -> Option> { - if self.expression_type() == Expression::ArrayExpression { - self.expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_function_expression(&self) -> Option> { - if self.expression_type() == Expression::FunctionExpression { - self.expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_binary_expression(&self) -> Option> { - if self.expression_type() == Expression::BinaryExpression { - self.expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_boolean_literal(&self) -> Option> { - if self.expression_type() == Expression::BooleanLiteral { - self.expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_call_expression(&self) -> Option> { - if self.expression_type() == Expression::CallExpression { - self.expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_conditional_expression(&self) -> Option> { - if self.expression_type() == Expression::ConditionalExpression { - self.expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_date_time_literal(&self) -> Option> { - if self.expression_type() == Expression::DateTimeLiteral { - self.expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_duration_literal(&self) -> Option> { - if self.expression_type() == Expression::DurationLiteral { - self.expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_float_literal(&self) -> Option> { - if self.expression_type() == Expression::FloatLiteral { - self.expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_identifier(&self) -> Option> { - if self.expression_type() == Expression::Identifier { - self.expression().map(|u| Identifier::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::IntegerLiteral { - self.expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_logical_expression(&self) -> Option> { - if self.expression_type() == Expression::LogicalExpression { - self.expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_member_expression(&self) -> Option> { - if self.expression_type() == Expression::MemberExpression { - self.expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_index_expression(&self) -> Option> { - if self.expression_type() == Expression::IndexExpression { - self.expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_object_expression(&self) -> Option> { - if self.expression_type() == Expression::ObjectExpression { - self.expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_pipe_expression(&self) -> Option> { - if self.expression_type() == Expression::PipeExpression { - self.expression().map(|u| PipeExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_pipe_literal(&self) -> Option> { - if self.expression_type() == Expression::PipeLiteral { - self.expression().map(|u| PipeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_regexp_literal(&self) -> Option> { - if self.expression_type() == Expression::RegexpLiteral { - self.expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_literal(&self) -> Option> { - if self.expression_type() == Expression::StringLiteral { - self.expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unary_expression(&self) -> Option> { - if self.expression_type() == Expression::UnaryExpression { - self.expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unsigned_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::UnsignedIntegerLiteral { - self.expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_bad_expression(&self) -> Option> { - if self.expression_type() == Expression::BadExpression { - self.expression().map(|u| BadExpression::init_from_table(u)) - } else { - None - } - } - -} - -pub struct BadExpressionArgs<'a> { - pub base_node: Option>>, - pub text: Option>, - pub expression_type: Expression, - pub expression: Option>, -} -impl<'a> Default for BadExpressionArgs<'a> { - #[inline] - fn default() -> Self { - BadExpressionArgs { - base_node: None, - text: None, - expression_type: Expression::NONE, - expression: None, - } - } -} -pub struct BadExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BadExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_base_node(&mut self, base_node: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BadExpression::VT_BASE_NODE, base_node); - } - #[inline] - pub fn add_text(&mut self, text: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(BadExpression::VT_TEXT, text); - } - #[inline] - pub fn add_expression_type(&mut self, expression_type: Expression) { - self.fbb_.push_slot::(BadExpression::VT_EXPRESSION_TYPE, expression_type, Expression::NONE); - } - #[inline] - pub fn add_expression(&mut self, expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BadExpression::VT_EXPRESSION, expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BadExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - BadExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -#[inline] -pub fn get_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { - flatbuffers::get_root::>(buf) -} - -#[inline] -pub fn get_size_prefixed_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { - flatbuffers::get_size_prefixed_root::>(buf) -} - -#[inline] -pub fn finish_package_buffer<'a, 'b>( - fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, - root: flatbuffers::WIPOffset>) { - fbb.finish(root, None); -} - -#[inline] -pub fn finish_size_prefixed_package_buffer<'a, 'b>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset>) { - fbb.finish_size_prefixed(root, None); -} -} // pub mod fbast - + pub fn finish_size_prefixed_package_buffer<'a, 'b>( + fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + root: flatbuffers::WIPOffset>, + ) { + fbb.finish_size_prefixed(root, None); + } +} // pub mod fbast diff --git a/libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs b/libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs index 362d09e5b8..3873a5aa99 100644 --- a/libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs +++ b/libflux/src/libflux/semantic/flatbuffers/semantic_generated.rs @@ -1,9 +1,7 @@ // automatically generated by the FlatBuffers compiler, do not modify - - -use std::mem; use std::cmp::Ordering; +use std::mem; extern crate flatbuffers; use self::flatbuffers::EndianScalar; @@ -11,11933 +9,13476 @@ use self::flatbuffers::EndianScalar; #[allow(unused_imports, dead_code)] pub mod fbsemantic { - use std::mem; - use std::cmp::Ordering; - - extern crate flatbuffers; - use self::flatbuffers::EndianScalar; - -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum MonoType { - NONE = 0, - Basic = 1, - Var = 2, - Arr = 3, - Row = 4, - Fun = 5, - -} - -const ENUM_MIN_MONO_TYPE: u8 = 0; -const ENUM_MAX_MONO_TYPE: u8 = 5; - -impl<'a> flatbuffers::Follow<'a> for MonoType { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for MonoType { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const MonoType; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const MonoType; - unsafe { *p } - } -} - -impl flatbuffers::Push for MonoType { - type Output = MonoType; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_MONO_TYPE:[MonoType; 6] = [ - MonoType::NONE, - MonoType::Basic, - MonoType::Var, - MonoType::Arr, - MonoType::Row, - MonoType::Fun -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_MONO_TYPE:[&'static str; 6] = [ - "NONE", - "Basic", - "Var", - "Arr", - "Row", - "Fun" -]; - -pub fn enum_name_mono_type(e: MonoType) -> &'static str { - let index = e as u8; - ENUM_NAMES_MONO_TYPE[index as usize] -} - -pub struct MonoTypeUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Type { - Bool = 0, - Int = 1, - Uint = 2, - Float = 3, - String = 4, - Duration = 5, - Time = 6, - Regexp = 7, - Bytes = 8, - -} - -const ENUM_MIN_TYPE: u8 = 0; -const ENUM_MAX_TYPE: u8 = 8; - -impl<'a> flatbuffers::Follow<'a> for Type { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Type { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Type; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Type; - unsafe { *p } - } -} - -impl flatbuffers::Push for Type { - type Output = Type; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_TYPE:[Type; 9] = [ - Type::Bool, - Type::Int, - Type::Uint, - Type::Float, - Type::String, - Type::Duration, - Type::Time, - Type::Regexp, - Type::Bytes -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_TYPE:[&'static str; 9] = [ - "Bool", - "Int", - "Uint", - "Float", - "String", - "Duration", - "Time", - "Regexp", - "Bytes" -]; - -pub fn enum_name_type(e: Type) -> &'static str { - let index = e as u8; - ENUM_NAMES_TYPE[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Kind { - Addable = 0, - Subtractable = 1, - Divisible = 2, - Comparable = 3, - Equatable = 4, - Nullable = 5, - -} - -const ENUM_MIN_KIND: u8 = 0; -const ENUM_MAX_KIND: u8 = 5; - -impl<'a> flatbuffers::Follow<'a> for Kind { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Kind { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Kind; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Kind; - unsafe { *p } - } -} - -impl flatbuffers::Push for Kind { - type Output = Kind; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_KIND:[Kind; 6] = [ - Kind::Addable, - Kind::Subtractable, - Kind::Divisible, - Kind::Comparable, - Kind::Equatable, - Kind::Nullable -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_KIND:[&'static str; 6] = [ - "Addable", - "Subtractable", - "Divisible", - "Comparable", - "Equatable", - "Nullable" -]; - -pub fn enum_name_kind(e: Kind) -> &'static str { - let index = e as u8; - ENUM_NAMES_KIND[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Statement { - NONE = 0, - OptionStatement = 1, - BuiltinStatement = 2, - TestStatement = 3, - ExpressionStatement = 4, - ReturnStatement = 5, - -} - -const ENUM_MIN_STATEMENT: u8 = 0; -const ENUM_MAX_STATEMENT: u8 = 5; - -impl<'a> flatbuffers::Follow<'a> for Statement { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Statement { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Statement; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Statement; - unsafe { *p } - } -} - -impl flatbuffers::Push for Statement { - type Output = Statement; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_STATEMENT:[Statement; 6] = [ - Statement::NONE, - Statement::OptionStatement, - Statement::BuiltinStatement, - Statement::TestStatement, - Statement::ExpressionStatement, - Statement::ReturnStatement -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_STATEMENT:[&'static str; 6] = [ - "NONE", - "OptionStatement", - "BuiltinStatement", - "TestStatement", - "ExpressionStatement", - "ReturnStatement" -]; - -pub fn enum_name_statement(e: Statement) -> &'static str { - let index = e as u8; - ENUM_NAMES_STATEMENT[index as usize] -} - -pub struct StatementUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Assignment { - NONE = 0, - MemberAssignment = 1, - NativeVariableAssignment = 2, - -} - -const ENUM_MIN_ASSIGNMENT: u8 = 0; -const ENUM_MAX_ASSIGNMENT: u8 = 2; - -impl<'a> flatbuffers::Follow<'a> for Assignment { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Assignment { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Assignment; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Assignment; - unsafe { *p } - } -} - -impl flatbuffers::Push for Assignment { - type Output = Assignment; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_ASSIGNMENT:[Assignment; 3] = [ - Assignment::NONE, - Assignment::MemberAssignment, - Assignment::NativeVariableAssignment -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_ASSIGNMENT:[&'static str; 3] = [ - "NONE", - "MemberAssignment", - "NativeVariableAssignment" -]; - -pub fn enum_name_assignment(e: Assignment) -> &'static str { - let index = e as u8; - ENUM_NAMES_ASSIGNMENT[index as usize] -} - -pub struct AssignmentUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(u8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Expression { - NONE = 0, - StringExpression = 1, - ArrayExpression = 2, - FunctionExpression = 3, - BinaryExpression = 4, - CallExpression = 5, - ConditionalExpression = 6, - IdentifierExpression = 7, - LogicalExpression = 8, - MemberExpression = 9, - IndexExpression = 10, - ObjectExpression = 11, - UnaryExpression = 12, - BooleanLiteral = 13, - DateTimeLiteral = 14, - DurationLiteral = 15, - FloatLiteral = 16, - IntegerLiteral = 17, - StringLiteral = 18, - RegexpLiteral = 19, - UnsignedIntegerLiteral = 20, - -} - -const ENUM_MIN_EXPRESSION: u8 = 0; -const ENUM_MAX_EXPRESSION: u8 = 20; - -impl<'a> flatbuffers::Follow<'a> for Expression { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Expression { - #[inline] - fn to_little_endian(self) -> Self { - let n = u8::to_le(self as u8); - let p = &n as *const u8 as *const Expression; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = u8::from_le(self as u8); - let p = &n as *const u8 as *const Expression; - unsafe { *p } - } -} - -impl flatbuffers::Push for Expression { - type Output = Expression; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_EXPRESSION:[Expression; 21] = [ - Expression::NONE, - Expression::StringExpression, - Expression::ArrayExpression, - Expression::FunctionExpression, - Expression::BinaryExpression, - Expression::CallExpression, - Expression::ConditionalExpression, - Expression::IdentifierExpression, - Expression::LogicalExpression, - Expression::MemberExpression, - Expression::IndexExpression, - Expression::ObjectExpression, - Expression::UnaryExpression, - Expression::BooleanLiteral, - Expression::DateTimeLiteral, - Expression::DurationLiteral, - Expression::FloatLiteral, - Expression::IntegerLiteral, - Expression::StringLiteral, - Expression::RegexpLiteral, - Expression::UnsignedIntegerLiteral -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_EXPRESSION:[&'static str; 21] = [ - "NONE", - "StringExpression", - "ArrayExpression", - "FunctionExpression", - "BinaryExpression", - "CallExpression", - "ConditionalExpression", - "IdentifierExpression", - "LogicalExpression", - "MemberExpression", - "IndexExpression", - "ObjectExpression", - "UnaryExpression", - "BooleanLiteral", - "DateTimeLiteral", - "DurationLiteral", - "FloatLiteral", - "IntegerLiteral", - "StringLiteral", - "RegexpLiteral", - "UnsignedIntegerLiteral" -]; - -pub fn enum_name_expression(e: Expression) -> &'static str { - let index = e as u8; - ENUM_NAMES_EXPRESSION[index as usize] -} - -pub struct ExpressionUnionTableOffset {} -#[allow(non_camel_case_types)] -#[repr(i8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum Operator { - MultiplicationOperator = 0, - DivisionOperator = 1, - ModuloOperator = 2, - PowerOperator = 3, - AdditionOperator = 4, - SubtractionOperator = 5, - LessThanEqualOperator = 6, - LessThanOperator = 7, - GreaterThanEqualOperator = 8, - GreaterThanOperator = 9, - StartsWithOperator = 10, - InOperator = 11, - NotOperator = 12, - ExistsOperator = 13, - NotEmptyOperator = 14, - EmptyOperator = 15, - EqualOperator = 16, - NotEqualOperator = 17, - RegexpMatchOperator = 18, - NotRegexpMatchOperator = 19, - InvalidOperator = 20, - -} - -const ENUM_MIN_OPERATOR: i8 = 0; -const ENUM_MAX_OPERATOR: i8 = 20; - -impl<'a> flatbuffers::Follow<'a> for Operator { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for Operator { - #[inline] - fn to_little_endian(self) -> Self { - let n = i8::to_le(self as i8); - let p = &n as *const i8 as *const Operator; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = i8::from_le(self as i8); - let p = &n as *const i8 as *const Operator; - unsafe { *p } - } -} - -impl flatbuffers::Push for Operator { - type Output = Operator; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_OPERATOR:[Operator; 21] = [ - Operator::MultiplicationOperator, - Operator::DivisionOperator, - Operator::ModuloOperator, - Operator::PowerOperator, - Operator::AdditionOperator, - Operator::SubtractionOperator, - Operator::LessThanEqualOperator, - Operator::LessThanOperator, - Operator::GreaterThanEqualOperator, - Operator::GreaterThanOperator, - Operator::StartsWithOperator, - Operator::InOperator, - Operator::NotOperator, - Operator::ExistsOperator, - Operator::NotEmptyOperator, - Operator::EmptyOperator, - Operator::EqualOperator, - Operator::NotEqualOperator, - Operator::RegexpMatchOperator, - Operator::NotRegexpMatchOperator, - Operator::InvalidOperator -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_OPERATOR:[&'static str; 21] = [ - "MultiplicationOperator", - "DivisionOperator", - "ModuloOperator", - "PowerOperator", - "AdditionOperator", - "SubtractionOperator", - "LessThanEqualOperator", - "LessThanOperator", - "GreaterThanEqualOperator", - "GreaterThanOperator", - "StartsWithOperator", - "InOperator", - "NotOperator", - "ExistsOperator", - "NotEmptyOperator", - "EmptyOperator", - "EqualOperator", - "NotEqualOperator", - "RegexpMatchOperator", - "NotRegexpMatchOperator", - "InvalidOperator" -]; - -pub fn enum_name_operator(e: Operator) -> &'static str { - let index = e as i8; - ENUM_NAMES_OPERATOR[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(i8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum LogicalOperator { - AndOperator = 0, - OrOperator = 1, - -} - -const ENUM_MIN_LOGICAL_OPERATOR: i8 = 0; -const ENUM_MAX_LOGICAL_OPERATOR: i8 = 1; - -impl<'a> flatbuffers::Follow<'a> for LogicalOperator { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for LogicalOperator { - #[inline] - fn to_little_endian(self) -> Self { - let n = i8::to_le(self as i8); - let p = &n as *const i8 as *const LogicalOperator; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = i8::from_le(self as i8); - let p = &n as *const i8 as *const LogicalOperator; - unsafe { *p } - } -} - -impl flatbuffers::Push for LogicalOperator { - type Output = LogicalOperator; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_LOGICAL_OPERATOR:[LogicalOperator; 2] = [ - LogicalOperator::AndOperator, - LogicalOperator::OrOperator -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_LOGICAL_OPERATOR:[&'static str; 2] = [ - "AndOperator", - "OrOperator" -]; - -pub fn enum_name_logical_operator(e: LogicalOperator) -> &'static str { - let index = e as i8; - ENUM_NAMES_LOGICAL_OPERATOR[index as usize] -} - -#[allow(non_camel_case_types)] -#[repr(i8)] -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] -pub enum TimeUnit { - y = 0, - mo = 1, - w = 2, - d = 3, - h = 4, - m = 5, - s = 6, - ms = 7, - us = 8, - ns = 9, - -} - -const ENUM_MIN_TIME_UNIT: i8 = 0; -const ENUM_MAX_TIME_UNIT: i8 = 9; - -impl<'a> flatbuffers::Follow<'a> for TimeUnit { - type Inner = Self; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::read_scalar_at::(buf, loc) - } -} - -impl flatbuffers::EndianScalar for TimeUnit { - #[inline] - fn to_little_endian(self) -> Self { - let n = i8::to_le(self as i8); - let p = &n as *const i8 as *const TimeUnit; - unsafe { *p } - } - #[inline] - fn from_little_endian(self) -> Self { - let n = i8::from_le(self as i8); - let p = &n as *const i8 as *const TimeUnit; - unsafe { *p } - } -} - -impl flatbuffers::Push for TimeUnit { - type Output = TimeUnit; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - flatbuffers::emplace_scalar::(dst, *self); - } -} - -#[allow(non_camel_case_types)] -const ENUM_VALUES_TIME_UNIT:[TimeUnit; 10] = [ - TimeUnit::y, - TimeUnit::mo, - TimeUnit::w, - TimeUnit::d, - TimeUnit::h, - TimeUnit::m, - TimeUnit::s, - TimeUnit::ms, - TimeUnit::us, - TimeUnit::ns -]; - -#[allow(non_camel_case_types)] -const ENUM_NAMES_TIME_UNIT:[&'static str; 10] = [ - "y", - "mo", - "w", - "d", - "h", - "m", - "s", - "ms", - "us", - "ns" -]; - -pub fn enum_name_time_unit(e: TimeUnit) -> &'static str { - let index = e as i8; - ENUM_NAMES_TIME_UNIT[index as usize] -} - -// struct Position, aligned to 4 -#[repr(C, align(4))] -#[derive(Clone, Copy, Debug, PartialEq)] -pub struct Position { - line_: i32, - column_: i32, -} // pub struct Position -impl flatbuffers::SafeSliceAccess for Position {} -impl<'a> flatbuffers::Follow<'a> for Position { - type Inner = &'a Position; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - <&'a Position>::follow(buf, loc) - } -} -impl<'a> flatbuffers::Follow<'a> for &'a Position { - type Inner = &'a Position; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - flatbuffers::follow_cast_ref::(buf, loc) - } -} -impl<'b> flatbuffers::Push for Position { - type Output = Position; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - let src = unsafe { - ::std::slice::from_raw_parts(self as *const Position as *const u8, Self::size()) - }; - dst.copy_from_slice(src); - } -} -impl<'b> flatbuffers::Push for &'b Position { - type Output = Position; + use std::cmp::Ordering; + use std::mem; - #[inline] - fn push(&self, dst: &mut [u8], _rest: &[u8]) { - let src = unsafe { - ::std::slice::from_raw_parts(*self as *const Position as *const u8, Self::size()) - }; - dst.copy_from_slice(src); - } -} - - -impl Position { - pub fn new<'a>(_line: i32, _column: i32) -> Self { - Position { - line_: _line.to_little_endian(), - column_: _column.to_little_endian(), + extern crate flatbuffers; + use self::flatbuffers::EndianScalar; + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum MonoType { + NONE = 0, + Basic = 1, + Var = 2, + Arr = 3, + Row = 4, + Fun = 5, } - } - pub fn line<'a>(&'a self) -> i32 { - self.line_.from_little_endian() - } - pub fn column<'a>(&'a self) -> i32 { - self.column_.from_little_endian() - } -} -pub enum VarOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] + const ENUM_MIN_MONO_TYPE: u8 = 0; + const ENUM_MAX_MONO_TYPE: u8 = 5; -pub struct Var<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Var<'a> { - type Inner = Var<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for MonoType { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> Var<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Var { - _tab: table, + impl flatbuffers::EndianScalar for MonoType { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const MonoType; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const MonoType; + unsafe { *p } } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args VarArgs) -> flatbuffers::WIPOffset> { - let mut builder = VarBuilder::new(_fbb); - builder.add_i(args.i); - builder.finish() } - pub const VT_I: flatbuffers::VOffsetT = 4; + impl flatbuffers::Push for MonoType { + type Output = MonoType; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_MONO_TYPE: [MonoType; 6] = [ + MonoType::NONE, + MonoType::Basic, + MonoType::Var, + MonoType::Arr, + MonoType::Row, + MonoType::Fun, + ]; - #[inline] - pub fn i(&self) -> u64 { - self._tab.get::(Var::VT_I, Some(0)).unwrap() - } -} + #[allow(non_camel_case_types)] + const ENUM_NAMES_MONO_TYPE: [&'static str; 6] = ["NONE", "Basic", "Var", "Arr", "Row", "Fun"]; -pub struct VarArgs { - pub i: u64, -} -impl<'a> Default for VarArgs { - #[inline] - fn default() -> Self { - VarArgs { - i: 0, - } - } -} -pub struct VarBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> VarBuilder<'a, 'b> { - #[inline] - pub fn add_i(&mut self, i: u64) { - self.fbb_.push_slot::(Var::VT_I, i, 0); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> VarBuilder<'a, 'b> { - let start = _fbb.start_table(); - VarBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BasicOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Basic<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Basic<'a> { - type Inner = Basic<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn enum_name_mono_type(e: MonoType) -> &'static str { + let index = e as u8; + ENUM_NAMES_MONO_TYPE[index as usize] } -} -impl<'a> Basic<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Basic { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BasicArgs) -> flatbuffers::WIPOffset> { - let mut builder = BasicBuilder::new(_fbb); - builder.add_t(args.t); - builder.finish() + pub struct MonoTypeUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Type { + Bool = 0, + Int = 1, + Uint = 2, + Float = 3, + String = 4, + Duration = 5, + Time = 6, + Regexp = 7, + Bytes = 8, } - pub const VT_T: flatbuffers::VOffsetT = 4; + const ENUM_MIN_TYPE: u8 = 0; + const ENUM_MAX_TYPE: u8 = 8; - #[inline] - pub fn t(&self) -> Type { - self._tab.get::(Basic::VT_T, Some(Type::Bool)).unwrap() - } -} - -pub struct BasicArgs { - pub t: Type, -} -impl<'a> Default for BasicArgs { - #[inline] - fn default() -> Self { - BasicArgs { - t: Type::Bool, - } - } -} -pub struct BasicBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BasicBuilder<'a, 'b> { - #[inline] - pub fn add_t(&mut self, t: Type) { - self.fbb_.push_slot::(Basic::VT_T, t, Type::Bool); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BasicBuilder<'a, 'b> { - let start = _fbb.start_table(); - BasicBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ArrOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Arr<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Arr<'a> { - type Inner = Arr<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for Type { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> Arr<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Arr { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ArrArgs) -> flatbuffers::WIPOffset> { - let mut builder = ArrBuilder::new(_fbb); - if let Some(x) = args.t { builder.add_t(x); } - builder.add_t_type(args.t_type); - builder.finish() - } - - pub const VT_T_TYPE: flatbuffers::VOffsetT = 4; - pub const VT_T: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn t_type(&self) -> MonoType { - self._tab.get::(Arr::VT_T_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn t(&self) -> Option> { - self._tab.get::>>(Arr::VT_T, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn t_as_basic(&self) -> Option> { - if self.t_type() == MonoType::Basic { - self.t().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_var(&self) -> Option> { - if self.t_type() == MonoType::Var { - self.t().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_arr(&self) -> Option> { - if self.t_type() == MonoType::Arr { - self.t().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_row(&self) -> Option> { - if self.t_type() == MonoType::Row { - self.t().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_fun(&self) -> Option> { - if self.t_type() == MonoType::Fun { - self.t().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ArrArgs { - pub t_type: MonoType, - pub t: Option>, -} -impl<'a> Default for ArrArgs { - #[inline] - fn default() -> Self { - ArrArgs { - t_type: MonoType::NONE, - t: None, - } - } -} -pub struct ArrBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ArrBuilder<'a, 'b> { - #[inline] - pub fn add_t_type(&mut self, t_type: MonoType) { - self.fbb_.push_slot::(Arr::VT_T_TYPE, t_type, MonoType::NONE); - } - #[inline] - pub fn add_t(&mut self, t: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Arr::VT_T, t); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArrBuilder<'a, 'b> { - let start = _fbb.start_table(); - ArrBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum RowOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Row<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Row<'a> { - type Inner = Row<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::EndianScalar for Type { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Type; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Type; + unsafe { *p } + } + } + + impl flatbuffers::Push for Type { + type Output = Type; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); } - } -} + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_TYPE: [Type; 9] = [ + Type::Bool, + Type::Int, + Type::Uint, + Type::Float, + Type::String, + Type::Duration, + Type::Time, + Type::Regexp, + Type::Bytes, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_TYPE: [&'static str; 9] = [ + "Bool", "Int", "Uint", "Float", "String", "Duration", "Time", "Regexp", "Bytes", + ]; -impl<'a> Row<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Row { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args RowArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = RowBuilder::new(_fbb); - if let Some(x) = args.extends { builder.add_extends(x); } - if let Some(x) = args.props { builder.add_props(x); } - builder.finish() - } - - pub const VT_PROPS: flatbuffers::VOffsetT = 4; - pub const VT_EXTENDS: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn props(&self) -> Option>>> { - self._tab.get::>>>>(Row::VT_PROPS, None) - } - #[inline] - pub fn extends(&self) -> Option> { - self._tab.get::>>(Row::VT_EXTENDS, None) - } -} - -pub struct RowArgs<'a> { - pub props: Option>>>>, - pub extends: Option>>, -} -impl<'a> Default for RowArgs<'a> { - #[inline] - fn default() -> Self { - RowArgs { - props: None, - extends: None, - } - } -} -pub struct RowBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> RowBuilder<'a, 'b> { - #[inline] - pub fn add_props(&mut self, props: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Row::VT_PROPS, props); - } - #[inline] - pub fn add_extends(&mut self, extends: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Row::VT_EXTENDS, extends); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RowBuilder<'a, 'b> { - let start = _fbb.start_table(); - RowBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FunOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Fun<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Fun<'a> { - type Inner = Fun<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn enum_name_type(e: Type) -> &'static str { + let index = e as u8; + ENUM_NAMES_TYPE[index as usize] } -} - -impl<'a> Fun<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Fun { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunBuilder::new(_fbb); - if let Some(x) = args.retn { builder.add_retn(x); } - if let Some(x) = args.args { builder.add_args(x); } - builder.add_retn_type(args.retn_type); - builder.finish() - } - - pub const VT_ARGS: flatbuffers::VOffsetT = 4; - pub const VT_RETN_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_RETN: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn args(&self) -> Option>>> { - self._tab.get::>>>>(Fun::VT_ARGS, None) - } - #[inline] - pub fn retn_type(&self) -> MonoType { - self._tab.get::(Fun::VT_RETN_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn retn(&self) -> Option> { - self._tab.get::>>(Fun::VT_RETN, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn retn_as_basic(&self) -> Option> { - if self.retn_type() == MonoType::Basic { - self.retn().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn retn_as_var(&self) -> Option> { - if self.retn_type() == MonoType::Var { - self.retn().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn retn_as_arr(&self) -> Option> { - if self.retn_type() == MonoType::Arr { - self.retn().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn retn_as_row(&self) -> Option> { - if self.retn_type() == MonoType::Row { - self.retn().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn retn_as_fun(&self) -> Option> { - if self.retn_type() == MonoType::Fun { - self.retn().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct FunArgs<'a> { - pub args: Option>>>>, - pub retn_type: MonoType, - pub retn: Option>, -} -impl<'a> Default for FunArgs<'a> { - #[inline] - fn default() -> Self { - FunArgs { - args: None, - retn_type: MonoType::NONE, - retn: None, - } - } -} -pub struct FunBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FunBuilder<'a, 'b> { - #[inline] - pub fn add_args(&mut self, args: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Fun::VT_ARGS, args); - } - #[inline] - pub fn add_retn_type(&mut self, retn_type: MonoType) { - self.fbb_.push_slot::(Fun::VT_RETN_TYPE, retn_type, MonoType::NONE); - } - #[inline] - pub fn add_retn(&mut self, retn: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Fun::VT_RETN, retn); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunBuilder<'a, 'b> { - let start = _fbb.start_table(); - FunBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ArgumentOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Argument<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Argument<'a> { - type Inner = Argument<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Kind { + Addable = 0, + Subtractable = 1, + Divisible = 2, + Comparable = 3, + Equatable = 4, + Nullable = 5, + } + + const ENUM_MIN_KIND: u8 = 0; + const ENUM_MAX_KIND: u8 = 5; + + impl<'a> flatbuffers::Follow<'a> for Kind { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> Argument<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Argument { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ArgumentArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ArgumentBuilder::new(_fbb); - if let Some(x) = args.t { builder.add_t(x); } - if let Some(x) = args.name { builder.add_name(x); } - builder.add_optional(args.optional); - builder.add_pipe(args.pipe); - builder.add_t_type(args.t_type); - builder.finish() - } - - pub const VT_NAME: flatbuffers::VOffsetT = 4; - pub const VT_T_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_T: flatbuffers::VOffsetT = 8; - pub const VT_PIPE: flatbuffers::VOffsetT = 10; - pub const VT_OPTIONAL: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn name(&self) -> Option<&'a str> { - self._tab.get::>(Argument::VT_NAME, None) - } - #[inline] - pub fn t_type(&self) -> MonoType { - self._tab.get::(Argument::VT_T_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn t(&self) -> Option> { - self._tab.get::>>(Argument::VT_T, None) - } - #[inline] - pub fn pipe(&self) -> bool { - self._tab.get::(Argument::VT_PIPE, Some(false)).unwrap() - } - #[inline] - pub fn optional(&self) -> bool { - self._tab.get::(Argument::VT_OPTIONAL, Some(false)).unwrap() - } - #[inline] - #[allow(non_snake_case)] - pub fn t_as_basic(&self) -> Option> { - if self.t_type() == MonoType::Basic { - self.t().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_var(&self) -> Option> { - if self.t_type() == MonoType::Var { - self.t().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_arr(&self) -> Option> { - if self.t_type() == MonoType::Arr { - self.t().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_row(&self) -> Option> { - if self.t_type() == MonoType::Row { - self.t().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn t_as_fun(&self) -> Option> { - if self.t_type() == MonoType::Fun { - self.t().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ArgumentArgs<'a> { - pub name: Option>, - pub t_type: MonoType, - pub t: Option>, - pub pipe: bool, - pub optional: bool, -} -impl<'a> Default for ArgumentArgs<'a> { - #[inline] - fn default() -> Self { - ArgumentArgs { - name: None, - t_type: MonoType::NONE, - t: None, - pipe: false, - optional: false, - } - } -} -pub struct ArgumentBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ArgumentBuilder<'a, 'b> { - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Argument::VT_NAME, name); - } - #[inline] - pub fn add_t_type(&mut self, t_type: MonoType) { - self.fbb_.push_slot::(Argument::VT_T_TYPE, t_type, MonoType::NONE); - } - #[inline] - pub fn add_t(&mut self, t: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Argument::VT_T, t); - } - #[inline] - pub fn add_pipe(&mut self, pipe: bool) { - self.fbb_.push_slot::(Argument::VT_PIPE, pipe, false); - } - #[inline] - pub fn add_optional(&mut self, optional: bool) { - self.fbb_.push_slot::(Argument::VT_OPTIONAL, optional, false); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArgumentBuilder<'a, 'b> { - let start = _fbb.start_table(); - ArgumentBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PropOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Prop<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Prop<'a> { - type Inner = Prop<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + impl flatbuffers::EndianScalar for Kind { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Kind; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Kind; + unsafe { *p } + } + } + + impl flatbuffers::Push for Kind { + type Output = Kind; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_KIND: [Kind; 6] = [ + Kind::Addable, + Kind::Subtractable, + Kind::Divisible, + Kind::Comparable, + Kind::Equatable, + Kind::Nullable, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_KIND: [&'static str; 6] = [ + "Addable", + "Subtractable", + "Divisible", + "Comparable", + "Equatable", + "Nullable", + ]; + + pub fn enum_name_kind(e: Kind) -> &'static str { + let index = e as u8; + ENUM_NAMES_KIND[index as usize] + } + + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Statement { + NONE = 0, + OptionStatement = 1, + BuiltinStatement = 2, + TestStatement = 3, + ExpressionStatement = 4, + ReturnStatement = 5, + } + + const ENUM_MIN_STATEMENT: u8 = 0; + const ENUM_MAX_STATEMENT: u8 = 5; -impl<'a> Prop<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Prop { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PropArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PropBuilder::new(_fbb); - if let Some(x) = args.v { builder.add_v(x); } - if let Some(x) = args.k { builder.add_k(x); } - builder.add_v_type(args.v_type); - builder.finish() - } - - pub const VT_K: flatbuffers::VOffsetT = 4; - pub const VT_V_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_V: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn k(&self) -> Option<&'a str> { - self._tab.get::>(Prop::VT_K, None) - } - #[inline] - pub fn v_type(&self) -> MonoType { - self._tab.get::(Prop::VT_V_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn v(&self) -> Option> { - self._tab.get::>>(Prop::VT_V, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn v_as_basic(&self) -> Option> { - if self.v_type() == MonoType::Basic { - self.v().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn v_as_var(&self) -> Option> { - if self.v_type() == MonoType::Var { - self.v().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn v_as_arr(&self) -> Option> { - if self.v_type() == MonoType::Arr { - self.v().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn v_as_row(&self) -> Option> { - if self.v_type() == MonoType::Row { - self.v().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn v_as_fun(&self) -> Option> { - if self.v_type() == MonoType::Fun { - self.v().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct PropArgs<'a> { - pub k: Option>, - pub v_type: MonoType, - pub v: Option>, -} -impl<'a> Default for PropArgs<'a> { - #[inline] - fn default() -> Self { - PropArgs { - k: None, - v_type: MonoType::NONE, - v: None, - } - } -} -pub struct PropBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PropBuilder<'a, 'b> { - #[inline] - pub fn add_k(&mut self, k: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Prop::VT_K, k); - } - #[inline] - pub fn add_v_type(&mut self, v_type: MonoType) { - self.fbb_.push_slot::(Prop::VT_V_TYPE, v_type, MonoType::NONE); - } - #[inline] - pub fn add_v(&mut self, v: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Prop::VT_V, v); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropBuilder<'a, 'b> { - let start = _fbb.start_table(); - PropBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PolyTypeOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct PolyType<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for PolyType<'a> { - type Inner = PolyType<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for Statement { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) } } -} -impl<'a> PolyType<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - PolyType { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PolyTypeArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PolyTypeBuilder::new(_fbb); - if let Some(x) = args.expr { builder.add_expr(x); } - if let Some(x) = args.cons { builder.add_cons(x); } - if let Some(x) = args.vars { builder.add_vars(x); } - builder.add_expr_type(args.expr_type); - builder.finish() - } - - pub const VT_VARS: flatbuffers::VOffsetT = 4; - pub const VT_CONS: flatbuffers::VOffsetT = 6; - pub const VT_EXPR_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_EXPR: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn vars(&self) -> Option>>> { - self._tab.get::>>>>(PolyType::VT_VARS, None) - } - #[inline] - pub fn cons(&self) -> Option>>> { - self._tab.get::>>>>(PolyType::VT_CONS, None) - } - #[inline] - pub fn expr_type(&self) -> MonoType { - self._tab.get::(PolyType::VT_EXPR_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn expr(&self) -> Option> { - self._tab.get::>>(PolyType::VT_EXPR, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_basic(&self) -> Option> { - if self.expr_type() == MonoType::Basic { - self.expr().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_var(&self) -> Option> { - if self.expr_type() == MonoType::Var { - self.expr().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_arr(&self) -> Option> { - if self.expr_type() == MonoType::Arr { - self.expr().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_row(&self) -> Option> { - if self.expr_type() == MonoType::Row { - self.expr().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expr_as_fun(&self) -> Option> { - if self.expr_type() == MonoType::Fun { - self.expr().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct PolyTypeArgs<'a> { - pub vars: Option>>>>, - pub cons: Option>>>>, - pub expr_type: MonoType, - pub expr: Option>, -} -impl<'a> Default for PolyTypeArgs<'a> { - #[inline] - fn default() -> Self { - PolyTypeArgs { - vars: None, - cons: None, - expr_type: MonoType::NONE, - expr: None, - } - } -} -pub struct PolyTypeBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PolyTypeBuilder<'a, 'b> { - #[inline] - pub fn add_vars(&mut self, vars: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(PolyType::VT_VARS, vars); - } - #[inline] - pub fn add_cons(&mut self, cons: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(PolyType::VT_CONS, cons); - } - #[inline] - pub fn add_expr_type(&mut self, expr_type: MonoType) { - self.fbb_.push_slot::(PolyType::VT_EXPR_TYPE, expr_type, MonoType::NONE); - } - #[inline] - pub fn add_expr(&mut self, expr: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(PolyType::VT_EXPR, expr); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PolyTypeBuilder<'a, 'b> { - let start = _fbb.start_table(); - PolyTypeBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ConstraintOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Constraint<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Constraint<'a> { - type Inner = Constraint<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::EndianScalar for Statement { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Statement; + unsafe { *p } } - } -} - -impl<'a> Constraint<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Constraint { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ConstraintArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ConstraintBuilder::new(_fbb); - if let Some(x) = args.tvar { builder.add_tvar(x); } - builder.add_kind(args.kind); - builder.finish() - } - - pub const VT_TVAR: flatbuffers::VOffsetT = 4; - pub const VT_KIND: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn tvar(&self) -> Option> { - self._tab.get::>>(Constraint::VT_TVAR, None) - } - #[inline] - pub fn kind(&self) -> Kind { - self._tab.get::(Constraint::VT_KIND, Some(Kind::Addable)).unwrap() - } -} - -pub struct ConstraintArgs<'a> { - pub tvar: Option>>, - pub kind: Kind, -} -impl<'a> Default for ConstraintArgs<'a> { - #[inline] - fn default() -> Self { - ConstraintArgs { - tvar: None, - kind: Kind::Addable, - } - } -} -pub struct ConstraintBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ConstraintBuilder<'a, 'b> { - #[inline] - pub fn add_tvar(&mut self, tvar: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Constraint::VT_TVAR, tvar); - } - #[inline] - pub fn add_kind(&mut self, kind: Kind) { - self.fbb_.push_slot::(Constraint::VT_KIND, kind, Kind::Addable); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ConstraintBuilder<'a, 'b> { - let start = _fbb.start_table(); - ConstraintBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PackageOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Package<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Package<'a> { - type Inner = Package<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Statement; + unsafe { *p } } } -} -impl<'a> Package<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Package { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PackageArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PackageBuilder::new(_fbb); - if let Some(x) = args.files { builder.add_files(x); } - if let Some(x) = args.package { builder.add_package(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; - pub const VT_FILES: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(Package::VT_LOC, None) - } - #[inline] - pub fn package(&self) -> Option<&'a str> { - self._tab.get::>(Package::VT_PACKAGE, None) - } - #[inline] - pub fn files(&self) -> Option>>> { - self._tab.get::>>>>(Package::VT_FILES, None) - } -} - -pub struct PackageArgs<'a> { - pub loc: Option>>, - pub package: Option>, - pub files: Option>>>>, -} -impl<'a> Default for PackageArgs<'a> { - #[inline] - fn default() -> Self { - PackageArgs { - loc: None, - package: None, - files: None, - } - } -} -pub struct PackageBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PackageBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Package::VT_LOC, loc); - } - #[inline] - pub fn add_package(&mut self, package: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Package::VT_PACKAGE, package); - } - #[inline] - pub fn add_files(&mut self, files: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Package::VT_FILES, files); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageBuilder<'a, 'b> { - let start = _fbb.start_table(); - PackageBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FileOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct File<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for File<'a> { - type Inner = File<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::Push for Statement { + type Output = Statement; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_STATEMENT: [Statement; 6] = [ + Statement::NONE, + Statement::OptionStatement, + Statement::BuiltinStatement, + Statement::TestStatement, + Statement::ExpressionStatement, + Statement::ReturnStatement, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_STATEMENT: [&'static str; 6] = [ + "NONE", + "OptionStatement", + "BuiltinStatement", + "TestStatement", + "ExpressionStatement", + "ReturnStatement", + ]; + + pub fn enum_name_statement(e: Statement) -> &'static str { + let index = e as u8; + ENUM_NAMES_STATEMENT[index as usize] + } + + pub struct StatementUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Assignment { + NONE = 0, + MemberAssignment = 1, + NativeVariableAssignment = 2, + } + + const ENUM_MIN_ASSIGNMENT: u8 = 0; + const ENUM_MAX_ASSIGNMENT: u8 = 2; + + impl<'a> flatbuffers::Follow<'a> for Assignment { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for Assignment { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Assignment; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Assignment; + unsafe { *p } + } + } + + impl flatbuffers::Push for Assignment { + type Output = Assignment; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_ASSIGNMENT: [Assignment; 3] = [ + Assignment::NONE, + Assignment::MemberAssignment, + Assignment::NativeVariableAssignment, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_ASSIGNMENT: [&'static str; 3] = + ["NONE", "MemberAssignment", "NativeVariableAssignment"]; + + pub fn enum_name_assignment(e: Assignment) -> &'static str { + let index = e as u8; + ENUM_NAMES_ASSIGNMENT[index as usize] + } + + pub struct AssignmentUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(u8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Expression { + NONE = 0, + StringExpression = 1, + ArrayExpression = 2, + FunctionExpression = 3, + BinaryExpression = 4, + CallExpression = 5, + ConditionalExpression = 6, + IdentifierExpression = 7, + LogicalExpression = 8, + MemberExpression = 9, + IndexExpression = 10, + ObjectExpression = 11, + UnaryExpression = 12, + BooleanLiteral = 13, + DateTimeLiteral = 14, + DurationLiteral = 15, + FloatLiteral = 16, + IntegerLiteral = 17, + StringLiteral = 18, + RegexpLiteral = 19, + UnsignedIntegerLiteral = 20, + } + + const ENUM_MIN_EXPRESSION: u8 = 0; + const ENUM_MAX_EXPRESSION: u8 = 20; + + impl<'a> flatbuffers::Follow<'a> for Expression { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for Expression { + #[inline] + fn to_little_endian(self) -> Self { + let n = u8::to_le(self as u8); + let p = &n as *const u8 as *const Expression; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = u8::from_le(self as u8); + let p = &n as *const u8 as *const Expression; + unsafe { *p } + } + } + + impl flatbuffers::Push for Expression { + type Output = Expression; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_EXPRESSION: [Expression; 21] = [ + Expression::NONE, + Expression::StringExpression, + Expression::ArrayExpression, + Expression::FunctionExpression, + Expression::BinaryExpression, + Expression::CallExpression, + Expression::ConditionalExpression, + Expression::IdentifierExpression, + Expression::LogicalExpression, + Expression::MemberExpression, + Expression::IndexExpression, + Expression::ObjectExpression, + Expression::UnaryExpression, + Expression::BooleanLiteral, + Expression::DateTimeLiteral, + Expression::DurationLiteral, + Expression::FloatLiteral, + Expression::IntegerLiteral, + Expression::StringLiteral, + Expression::RegexpLiteral, + Expression::UnsignedIntegerLiteral, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_EXPRESSION: [&'static str; 21] = [ + "NONE", + "StringExpression", + "ArrayExpression", + "FunctionExpression", + "BinaryExpression", + "CallExpression", + "ConditionalExpression", + "IdentifierExpression", + "LogicalExpression", + "MemberExpression", + "IndexExpression", + "ObjectExpression", + "UnaryExpression", + "BooleanLiteral", + "DateTimeLiteral", + "DurationLiteral", + "FloatLiteral", + "IntegerLiteral", + "StringLiteral", + "RegexpLiteral", + "UnsignedIntegerLiteral", + ]; + + pub fn enum_name_expression(e: Expression) -> &'static str { + let index = e as u8; + ENUM_NAMES_EXPRESSION[index as usize] + } + + pub struct ExpressionUnionTableOffset {} + #[allow(non_camel_case_types)] + #[repr(i8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum Operator { + MultiplicationOperator = 0, + DivisionOperator = 1, + ModuloOperator = 2, + PowerOperator = 3, + AdditionOperator = 4, + SubtractionOperator = 5, + LessThanEqualOperator = 6, + LessThanOperator = 7, + GreaterThanEqualOperator = 8, + GreaterThanOperator = 9, + StartsWithOperator = 10, + InOperator = 11, + NotOperator = 12, + ExistsOperator = 13, + NotEmptyOperator = 14, + EmptyOperator = 15, + EqualOperator = 16, + NotEqualOperator = 17, + RegexpMatchOperator = 18, + NotRegexpMatchOperator = 19, + InvalidOperator = 20, + } + + const ENUM_MIN_OPERATOR: i8 = 0; + const ENUM_MAX_OPERATOR: i8 = 20; + + impl<'a> flatbuffers::Follow<'a> for Operator { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for Operator { + #[inline] + fn to_little_endian(self) -> Self { + let n = i8::to_le(self as i8); + let p = &n as *const i8 as *const Operator; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = i8::from_le(self as i8); + let p = &n as *const i8 as *const Operator; + unsafe { *p } + } + } + + impl flatbuffers::Push for Operator { + type Output = Operator; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_OPERATOR: [Operator; 21] = [ + Operator::MultiplicationOperator, + Operator::DivisionOperator, + Operator::ModuloOperator, + Operator::PowerOperator, + Operator::AdditionOperator, + Operator::SubtractionOperator, + Operator::LessThanEqualOperator, + Operator::LessThanOperator, + Operator::GreaterThanEqualOperator, + Operator::GreaterThanOperator, + Operator::StartsWithOperator, + Operator::InOperator, + Operator::NotOperator, + Operator::ExistsOperator, + Operator::NotEmptyOperator, + Operator::EmptyOperator, + Operator::EqualOperator, + Operator::NotEqualOperator, + Operator::RegexpMatchOperator, + Operator::NotRegexpMatchOperator, + Operator::InvalidOperator, + ]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_OPERATOR: [&'static str; 21] = [ + "MultiplicationOperator", + "DivisionOperator", + "ModuloOperator", + "PowerOperator", + "AdditionOperator", + "SubtractionOperator", + "LessThanEqualOperator", + "LessThanOperator", + "GreaterThanEqualOperator", + "GreaterThanOperator", + "StartsWithOperator", + "InOperator", + "NotOperator", + "ExistsOperator", + "NotEmptyOperator", + "EmptyOperator", + "EqualOperator", + "NotEqualOperator", + "RegexpMatchOperator", + "NotRegexpMatchOperator", + "InvalidOperator", + ]; + + pub fn enum_name_operator(e: Operator) -> &'static str { + let index = e as i8; + ENUM_NAMES_OPERATOR[index as usize] + } + + #[allow(non_camel_case_types)] + #[repr(i8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum LogicalOperator { + AndOperator = 0, + OrOperator = 1, + } + + const ENUM_MIN_LOGICAL_OPERATOR: i8 = 0; + const ENUM_MAX_LOGICAL_OPERATOR: i8 = 1; + + impl<'a> flatbuffers::Follow<'a> for LogicalOperator { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for LogicalOperator { + #[inline] + fn to_little_endian(self) -> Self { + let n = i8::to_le(self as i8); + let p = &n as *const i8 as *const LogicalOperator; + unsafe { *p } + } + #[inline] + fn from_little_endian(self) -> Self { + let n = i8::from_le(self as i8); + let p = &n as *const i8 as *const LogicalOperator; + unsafe { *p } + } + } + + impl flatbuffers::Push for LogicalOperator { + type Output = LogicalOperator; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); + } + } + + #[allow(non_camel_case_types)] + const ENUM_VALUES_LOGICAL_OPERATOR: [LogicalOperator; 2] = + [LogicalOperator::AndOperator, LogicalOperator::OrOperator]; + + #[allow(non_camel_case_types)] + const ENUM_NAMES_LOGICAL_OPERATOR: [&'static str; 2] = ["AndOperator", "OrOperator"]; + + pub fn enum_name_logical_operator(e: LogicalOperator) -> &'static str { + let index = e as i8; + ENUM_NAMES_LOGICAL_OPERATOR[index as usize] + } + + #[allow(non_camel_case_types)] + #[repr(i8)] + #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] + pub enum TimeUnit { + y = 0, + mo = 1, + w = 2, + d = 3, + h = 4, + m = 5, + s = 6, + ms = 7, + us = 8, + ns = 9, + } + + const ENUM_MIN_TIME_UNIT: i8 = 0; + const ENUM_MAX_TIME_UNIT: i8 = 9; + + impl<'a> flatbuffers::Follow<'a> for TimeUnit { + type Inner = Self; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::read_scalar_at::(buf, loc) + } + } + + impl flatbuffers::EndianScalar for TimeUnit { + #[inline] + fn to_little_endian(self) -> Self { + let n = i8::to_le(self as i8); + let p = &n as *const i8 as *const TimeUnit; + unsafe { *p } } - } -} - -impl<'a> File<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - File { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FileArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FileBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.imports { builder.add_imports(x); } - if let Some(x) = args.package { builder.add_package(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; - pub const VT_IMPORTS: flatbuffers::VOffsetT = 8; - pub const VT_BODY: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(File::VT_LOC, None) - } - #[inline] - pub fn package(&self) -> Option> { - self._tab.get::>>(File::VT_PACKAGE, None) - } - #[inline] - pub fn imports(&self) -> Option>>> { - self._tab.get::>>>>(File::VT_IMPORTS, None) - } - #[inline] - pub fn body(&self) -> Option>>> { - self._tab.get::>>>>(File::VT_BODY, None) - } -} - -pub struct FileArgs<'a> { - pub loc: Option>>, - pub package: Option>>, - pub imports: Option>>>>, - pub body: Option>>>>, -} -impl<'a> Default for FileArgs<'a> { - #[inline] - fn default() -> Self { - FileArgs { - loc: None, - package: None, - imports: None, - body: None, - } - } -} -pub struct FileBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FileBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(File::VT_LOC, loc); - } - #[inline] - pub fn add_package(&mut self, package: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(File::VT_PACKAGE, package); - } - #[inline] - pub fn add_imports(&mut self, imports: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(File::VT_IMPORTS, imports); - } - #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(File::VT_BODY, body); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FileBuilder<'a, 'b> { - let start = _fbb.start_table(); - FileBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PackageClauseOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct PackageClause<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { - type Inner = PackageClause<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + fn from_little_endian(self) -> Self { + let n = i8::from_le(self as i8); + let p = &n as *const i8 as *const TimeUnit; + unsafe { *p } } } -} -impl<'a> PackageClause<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - PackageClause { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PackageClauseArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PackageClauseBuilder::new(_fbb); - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_LOC, None) - } - #[inline] - pub fn name(&self) -> Option> { - self._tab.get::>>(PackageClause::VT_NAME, None) - } -} - -pub struct PackageClauseArgs<'a> { - pub loc: Option>>, - pub name: Option>>, -} -impl<'a> Default for PackageClauseArgs<'a> { - #[inline] - fn default() -> Self { - PackageClauseArgs { - loc: None, - name: None, - } - } -} -pub struct PackageClauseBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PackageClauseBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PackageClause::VT_LOC, loc); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(PackageClause::VT_NAME, name); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageClauseBuilder<'a, 'b> { - let start = _fbb.start_table(); - PackageClauseBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ImportDeclarationOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ImportDeclaration<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ImportDeclaration<'a> { - type Inner = ImportDeclaration<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl flatbuffers::Push for TimeUnit { + type Output = TimeUnit; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + flatbuffers::emplace_scalar::(dst, *self); } } -} -impl<'a> ImportDeclaration<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ImportDeclaration { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ImportDeclarationArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ImportDeclarationBuilder::new(_fbb); - if let Some(x) = args.path { builder.add_path(x); } - if let Some(x) = args.alias { builder.add_alias(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ALIAS: flatbuffers::VOffsetT = 6; - pub const VT_PATH: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_LOC, None) - } - #[inline] - pub fn alias(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_ALIAS, None) - } - #[inline] - pub fn path(&self) -> Option> { - self._tab.get::>>(ImportDeclaration::VT_PATH, None) - } -} - -pub struct ImportDeclarationArgs<'a> { - pub loc: Option>>, - pub alias: Option>>, - pub path: Option>>, -} -impl<'a> Default for ImportDeclarationArgs<'a> { - #[inline] - fn default() -> Self { - ImportDeclarationArgs { - loc: None, - alias: None, - path: None, - } - } -} -pub struct ImportDeclarationBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ImportDeclarationBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_LOC, loc); - } - #[inline] - pub fn add_alias(&mut self, alias: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_ALIAS, alias); - } - #[inline] - pub fn add_path(&mut self, path: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ImportDeclaration::VT_PATH, path); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ImportDeclarationBuilder<'a, 'b> { - let start = _fbb.start_table(); - ImportDeclarationBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BlockOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Block<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Block<'a> { - type Inner = Block<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + #[allow(non_camel_case_types)] + const ENUM_VALUES_TIME_UNIT: [TimeUnit; 10] = [ + TimeUnit::y, + TimeUnit::mo, + TimeUnit::w, + TimeUnit::d, + TimeUnit::h, + TimeUnit::m, + TimeUnit::s, + TimeUnit::ms, + TimeUnit::us, + TimeUnit::ns, + ]; -impl<'a> Block<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Block { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BlockArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BlockBuilder::new(_fbb); - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_BODY: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(Block::VT_LOC, None) - } - #[inline] - pub fn body(&self) -> Option>>> { - self._tab.get::>>>>(Block::VT_BODY, None) - } -} - -pub struct BlockArgs<'a> { - pub loc: Option>>, - pub body: Option>>>>, -} -impl<'a> Default for BlockArgs<'a> { - #[inline] - fn default() -> Self { - BlockArgs { - loc: None, - body: None, - } - } -} -pub struct BlockBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BlockBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Block::VT_LOC, loc); - } - #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(Block::VT_BODY, body); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BlockBuilder<'a, 'b> { - let start = _fbb.start_table(); - BlockBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum SourceLocationOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct SourceLocation<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for SourceLocation<'a> { - type Inner = SourceLocation<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + #[allow(non_camel_case_types)] + const ENUM_NAMES_TIME_UNIT: [&'static str; 10] = + ["y", "mo", "w", "d", "h", "m", "s", "ms", "us", "ns"]; -impl<'a> SourceLocation<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - SourceLocation { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args SourceLocationArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = SourceLocationBuilder::new(_fbb); - if let Some(x) = args.source { builder.add_source(x); } - if let Some(x) = args.end { builder.add_end(x); } - if let Some(x) = args.start { builder.add_start(x); } - if let Some(x) = args.file { builder.add_file(x); } - builder.finish() - } - - pub const VT_FILE: flatbuffers::VOffsetT = 4; - pub const VT_START: flatbuffers::VOffsetT = 6; - pub const VT_END: flatbuffers::VOffsetT = 8; - pub const VT_SOURCE: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn file(&self) -> Option<&'a str> { - self._tab.get::>(SourceLocation::VT_FILE, None) - } - #[inline] - pub fn start(&self) -> Option<&'a Position> { - self._tab.get::(SourceLocation::VT_START, None) - } - #[inline] - pub fn end(&self) -> Option<&'a Position> { - self._tab.get::(SourceLocation::VT_END, None) - } - #[inline] - pub fn source(&self) -> Option<&'a str> { - self._tab.get::>(SourceLocation::VT_SOURCE, None) - } -} - -pub struct SourceLocationArgs<'a> { - pub file: Option>, - pub start: Option<&'a Position>, - pub end: Option<&'a Position>, - pub source: Option>, -} -impl<'a> Default for SourceLocationArgs<'a> { - #[inline] - fn default() -> Self { - SourceLocationArgs { - file: None, - start: None, - end: None, - source: None, - } - } -} -pub struct SourceLocationBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> SourceLocationBuilder<'a, 'b> { - #[inline] - pub fn add_file(&mut self, file: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(SourceLocation::VT_FILE, file); - } - #[inline] - pub fn add_start(&mut self, start: &'b Position) { - self.fbb_.push_slot_always::<&Position>(SourceLocation::VT_START, start); - } - #[inline] - pub fn add_end(&mut self, end: &'b Position) { - self.fbb_.push_slot_always::<&Position>(SourceLocation::VT_END, end); - } - #[inline] - pub fn add_source(&mut self, source: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(SourceLocation::VT_SOURCE, source); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> SourceLocationBuilder<'a, 'b> { - let start = _fbb.start_table(); - SourceLocationBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum WrappedStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct WrappedStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for WrappedStatement<'a> { - type Inner = WrappedStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn enum_name_time_unit(e: TimeUnit) -> &'static str { + let index = e as i8; + ENUM_NAMES_TIME_UNIT[index as usize] } -} -impl<'a> WrappedStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - WrappedStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args WrappedStatementArgs) -> flatbuffers::WIPOffset> { - let mut builder = WrappedStatementBuilder::new(_fbb); - if let Some(x) = args.statement { builder.add_statement(x); } - builder.add_statement_type(args.statement_type); - builder.finish() - } - - pub const VT_STATEMENT_TYPE: flatbuffers::VOffsetT = 4; - pub const VT_STATEMENT: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn statement_type(&self) -> Statement { - self._tab.get::(WrappedStatement::VT_STATEMENT_TYPE, Some(Statement::NONE)).unwrap() - } - #[inline] - pub fn statement(&self) -> Option> { - self._tab.get::>>(WrappedStatement::VT_STATEMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_option_statement(&self) -> Option> { - if self.statement_type() == Statement::OptionStatement { - self.statement().map(|u| OptionStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_builtin_statement(&self) -> Option> { - if self.statement_type() == Statement::BuiltinStatement { - self.statement().map(|u| BuiltinStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_test_statement(&self) -> Option> { - if self.statement_type() == Statement::TestStatement { - self.statement().map(|u| TestStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_expression_statement(&self) -> Option> { - if self.statement_type() == Statement::ExpressionStatement { - self.statement().map(|u| ExpressionStatement::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn statement_as_return_statement(&self) -> Option> { - if self.statement_type() == Statement::ReturnStatement { - self.statement().map(|u| ReturnStatement::init_from_table(u)) - } else { - None - } - } - -} - -pub struct WrappedStatementArgs { - pub statement_type: Statement, - pub statement: Option>, -} -impl<'a> Default for WrappedStatementArgs { - #[inline] - fn default() -> Self { - WrappedStatementArgs { - statement_type: Statement::NONE, - statement: None, - } - } -} -pub struct WrappedStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> WrappedStatementBuilder<'a, 'b> { - #[inline] - pub fn add_statement_type(&mut self, statement_type: Statement) { - self.fbb_.push_slot::(WrappedStatement::VT_STATEMENT_TYPE, statement_type, Statement::NONE); - } - #[inline] - pub fn add_statement(&mut self, statement: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(WrappedStatement::VT_STATEMENT, statement); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> WrappedStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - WrappedStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum OptionStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct OptionStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for OptionStatement<'a> { - type Inner = OptionStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + // struct Position, aligned to 4 + #[repr(C, align(4))] + #[derive(Clone, Copy, Debug, PartialEq)] + pub struct Position { + line_: i32, + column_: i32, + } // pub struct Position + impl flatbuffers::SafeSliceAccess for Position {} + impl<'a> flatbuffers::Follow<'a> for Position { + type Inner = &'a Position; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + <&'a Position>::follow(buf, loc) } } -} - -impl<'a> OptionStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - OptionStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args OptionStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = OptionStatementBuilder::new(_fbb); - if let Some(x) = args.assignment { builder.add_assignment(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_assignment_type(args.assignment_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ASSIGNMENT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(OptionStatement::VT_LOC, None) - } - #[inline] - pub fn assignment_type(&self) -> Assignment { - self._tab.get::(OptionStatement::VT_ASSIGNMENT_TYPE, Some(Assignment::NONE)).unwrap() - } - #[inline] - pub fn assignment(&self) -> Option> { - self._tab.get::>>(OptionStatement::VT_ASSIGNMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn assignment_as_member_assignment(&self) -> Option> { - if self.assignment_type() == Assignment::MemberAssignment { - self.assignment().map(|u| MemberAssignment::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn assignment_as_native_variable_assignment(&self) -> Option> { - if self.assignment_type() == Assignment::NativeVariableAssignment { - self.assignment().map(|u| NativeVariableAssignment::init_from_table(u)) - } else { - None - } - } - -} - -pub struct OptionStatementArgs<'a> { - pub loc: Option>>, - pub assignment_type: Assignment, - pub assignment: Option>, -} -impl<'a> Default for OptionStatementArgs<'a> { - #[inline] - fn default() -> Self { - OptionStatementArgs { - loc: None, - assignment_type: Assignment::NONE, - assignment: None, - } - } -} -pub struct OptionStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> OptionStatementBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(OptionStatement::VT_LOC, loc); - } - #[inline] - pub fn add_assignment_type(&mut self, assignment_type: Assignment) { - self.fbb_.push_slot::(OptionStatement::VT_ASSIGNMENT_TYPE, assignment_type, Assignment::NONE); - } - #[inline] - pub fn add_assignment(&mut self, assignment: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(OptionStatement::VT_ASSIGNMENT, assignment); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> OptionStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - OptionStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BuiltinStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BuiltinStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BuiltinStatement<'a> { - type Inner = BuiltinStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for &'a Position { + type Inner = &'a Position; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + flatbuffers::follow_cast_ref::(buf, loc) } } -} - -impl<'a> BuiltinStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BuiltinStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BuiltinStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BuiltinStatementBuilder::new(_fbb); - if let Some(x) = args.id { builder.add_id(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ID: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(BuiltinStatement::VT_LOC, None) - } - #[inline] - pub fn id(&self) -> Option> { - self._tab.get::>>(BuiltinStatement::VT_ID, None) - } -} - -pub struct BuiltinStatementArgs<'a> { - pub loc: Option>>, - pub id: Option>>, -} -impl<'a> Default for BuiltinStatementArgs<'a> { - #[inline] - fn default() -> Self { - BuiltinStatementArgs { - loc: None, - id: None, - } - } -} -pub struct BuiltinStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BuiltinStatementBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BuiltinStatement::VT_LOC, loc); - } - #[inline] - pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BuiltinStatement::VT_ID, id); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BuiltinStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - BuiltinStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum TestStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct TestStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for TestStatement<'a> { - type Inner = TestStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'b> flatbuffers::Push for Position { + type Output = Position; + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + let src = unsafe { + ::std::slice::from_raw_parts(self as *const Position as *const u8, Self::size()) + }; + dst.copy_from_slice(src); } } -} + impl<'b> flatbuffers::Push for &'b Position { + type Output = Position; -impl<'a> TestStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - TestStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args TestStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = TestStatementBuilder::new(_fbb); - if let Some(x) = args.assignment { builder.add_assignment(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(TestStatement::VT_LOC, None) - } - #[inline] - pub fn assignment(&self) -> Option> { - self._tab.get::>>(TestStatement::VT_ASSIGNMENT, None) - } -} - -pub struct TestStatementArgs<'a> { - pub loc: Option>>, - pub assignment: Option>>, -} -impl<'a> Default for TestStatementArgs<'a> { - #[inline] - fn default() -> Self { - TestStatementArgs { - loc: None, - assignment: None, - } - } -} -pub struct TestStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> TestStatementBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(TestStatement::VT_LOC, loc); - } - #[inline] - pub fn add_assignment(&mut self, assignment: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(TestStatement::VT_ASSIGNMENT, assignment); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TestStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - TestStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ExpressionStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ExpressionStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ExpressionStatement<'a> { - type Inner = ExpressionStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + fn push(&self, dst: &mut [u8], _rest: &[u8]) { + let src = unsafe { + ::std::slice::from_raw_parts(*self as *const Position as *const u8, Self::size()) + }; + dst.copy_from_slice(src); } } -} -impl<'a> ExpressionStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ExpressionStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ExpressionStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ExpressionStatementBuilder::new(_fbb); - if let Some(x) = args.expression { builder.add_expression(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_expression_type(args.expression_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_EXPRESSION: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(ExpressionStatement::VT_LOC, None) - } - #[inline] - pub fn expression_type(&self) -> Expression { - self._tab.get::(ExpressionStatement::VT_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn expression(&self) -> Option> { - self._tab.get::>>(ExpressionStatement::VT_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_expression(&self) -> Option> { - if self.expression_type() == Expression::StringExpression { - self.expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_array_expression(&self) -> Option> { - if self.expression_type() == Expression::ArrayExpression { - self.expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_function_expression(&self) -> Option> { - if self.expression_type() == Expression::FunctionExpression { - self.expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_binary_expression(&self) -> Option> { - if self.expression_type() == Expression::BinaryExpression { - self.expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_call_expression(&self) -> Option> { - if self.expression_type() == Expression::CallExpression { - self.expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_conditional_expression(&self) -> Option> { - if self.expression_type() == Expression::ConditionalExpression { - self.expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_identifier_expression(&self) -> Option> { - if self.expression_type() == Expression::IdentifierExpression { - self.expression().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_logical_expression(&self) -> Option> { - if self.expression_type() == Expression::LogicalExpression { - self.expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_member_expression(&self) -> Option> { - if self.expression_type() == Expression::MemberExpression { - self.expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_index_expression(&self) -> Option> { - if self.expression_type() == Expression::IndexExpression { - self.expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_object_expression(&self) -> Option> { - if self.expression_type() == Expression::ObjectExpression { - self.expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unary_expression(&self) -> Option> { - if self.expression_type() == Expression::UnaryExpression { - self.expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_boolean_literal(&self) -> Option> { - if self.expression_type() == Expression::BooleanLiteral { - self.expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_date_time_literal(&self) -> Option> { - if self.expression_type() == Expression::DateTimeLiteral { - self.expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_duration_literal(&self) -> Option> { - if self.expression_type() == Expression::DurationLiteral { - self.expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_float_literal(&self) -> Option> { - if self.expression_type() == Expression::FloatLiteral { - self.expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::IntegerLiteral { - self.expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_literal(&self) -> Option> { - if self.expression_type() == Expression::StringLiteral { - self.expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_regexp_literal(&self) -> Option> { - if self.expression_type() == Expression::RegexpLiteral { - self.expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unsigned_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::UnsignedIntegerLiteral { - self.expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ExpressionStatementArgs<'a> { - pub loc: Option>>, - pub expression_type: Expression, - pub expression: Option>, -} -impl<'a> Default for ExpressionStatementArgs<'a> { - #[inline] - fn default() -> Self { - ExpressionStatementArgs { - loc: None, - expression_type: Expression::NONE, - expression: None, - } - } -} -pub struct ExpressionStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ExpressionStatementBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ExpressionStatement::VT_LOC, loc); - } - #[inline] - pub fn add_expression_type(&mut self, expression_type: Expression) { - self.fbb_.push_slot::(ExpressionStatement::VT_EXPRESSION_TYPE, expression_type, Expression::NONE); - } - #[inline] - pub fn add_expression(&mut self, expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ExpressionStatement::VT_EXPRESSION, expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ExpressionStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - ExpressionStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ReturnStatementOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ReturnStatement<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ReturnStatement<'a> { - type Inner = ReturnStatement<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl Position { + pub fn new<'a>(_line: i32, _column: i32) -> Self { + Position { + line_: _line.to_little_endian(), + column_: _column.to_little_endian(), + } } - } -} - -impl<'a> ReturnStatement<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ReturnStatement { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ReturnStatementArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ReturnStatementBuilder::new(_fbb); - if let Some(x) = args.argument { builder.add_argument(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_argument_type(args.argument_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ARGUMENT: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(ReturnStatement::VT_LOC, None) - } - #[inline] - pub fn argument_type(&self) -> Expression { - self._tab.get::(ReturnStatement::VT_ARGUMENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn argument(&self) -> Option> { - self._tab.get::>>(ReturnStatement::VT_ARGUMENT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_expression(&self) -> Option> { - if self.argument_type() == Expression::StringExpression { - self.argument().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_array_expression(&self) -> Option> { - if self.argument_type() == Expression::ArrayExpression { - self.argument().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_function_expression(&self) -> Option> { - if self.argument_type() == Expression::FunctionExpression { - self.argument().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_binary_expression(&self) -> Option> { - if self.argument_type() == Expression::BinaryExpression { - self.argument().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_call_expression(&self) -> Option> { - if self.argument_type() == Expression::CallExpression { - self.argument().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_conditional_expression(&self) -> Option> { - if self.argument_type() == Expression::ConditionalExpression { - self.argument().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_identifier_expression(&self) -> Option> { - if self.argument_type() == Expression::IdentifierExpression { - self.argument().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_logical_expression(&self) -> Option> { - if self.argument_type() == Expression::LogicalExpression { - self.argument().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_member_expression(&self) -> Option> { - if self.argument_type() == Expression::MemberExpression { - self.argument().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_index_expression(&self) -> Option> { - if self.argument_type() == Expression::IndexExpression { - self.argument().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_object_expression(&self) -> Option> { - if self.argument_type() == Expression::ObjectExpression { - self.argument().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unary_expression(&self) -> Option> { - if self.argument_type() == Expression::UnaryExpression { - self.argument().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_boolean_literal(&self) -> Option> { - if self.argument_type() == Expression::BooleanLiteral { - self.argument().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_date_time_literal(&self) -> Option> { - if self.argument_type() == Expression::DateTimeLiteral { - self.argument().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_duration_literal(&self) -> Option> { - if self.argument_type() == Expression::DurationLiteral { - self.argument().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_float_literal(&self) -> Option> { - if self.argument_type() == Expression::FloatLiteral { - self.argument().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::IntegerLiteral { - self.argument().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_literal(&self) -> Option> { - if self.argument_type() == Expression::StringLiteral { - self.argument().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_regexp_literal(&self) -> Option> { - if self.argument_type() == Expression::RegexpLiteral { - self.argument().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unsigned_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::UnsignedIntegerLiteral { - self.argument().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ReturnStatementArgs<'a> { - pub loc: Option>>, - pub argument_type: Expression, - pub argument: Option>, -} -impl<'a> Default for ReturnStatementArgs<'a> { - #[inline] - fn default() -> Self { - ReturnStatementArgs { - loc: None, - argument_type: Expression::NONE, - argument: None, - } - } -} -pub struct ReturnStatementBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ReturnStatementBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ReturnStatement::VT_LOC, loc); - } - #[inline] - pub fn add_argument_type(&mut self, argument_type: Expression) { - self.fbb_.push_slot::(ReturnStatement::VT_ARGUMENT_TYPE, argument_type, Expression::NONE); - } - #[inline] - pub fn add_argument(&mut self, argument: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ReturnStatement::VT_ARGUMENT, argument); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ReturnStatementBuilder<'a, 'b> { - let start = _fbb.start_table(); - ReturnStatementBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum NativeVariableAssignmentOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct NativeVariableAssignment<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for NativeVariableAssignment<'a> { - type Inner = NativeVariableAssignment<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub fn line<'a>(&'a self) -> i32 { + self.line_.from_little_endian() } - } -} - -impl<'a> NativeVariableAssignment<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - NativeVariableAssignment { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args NativeVariableAssignmentArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = NativeVariableAssignmentBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.init_ { builder.add_init_(x); } - if let Some(x) = args.identifier { builder.add_identifier(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_init__type(args.init__type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_IDENTIFIER: flatbuffers::VOffsetT = 6; - pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; - pub const VT_INIT_: flatbuffers::VOffsetT = 10; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_TYP: flatbuffers::VOffsetT = 14; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(NativeVariableAssignment::VT_LOC, None) - } - #[inline] - pub fn identifier(&self) -> Option> { - self._tab.get::>>(NativeVariableAssignment::VT_IDENTIFIER, None) - } - #[inline] - pub fn init__type(&self) -> Expression { - self._tab.get::(NativeVariableAssignment::VT_INIT__TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn init_(&self) -> Option> { - self._tab.get::>>(NativeVariableAssignment::VT_INIT_, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(NativeVariableAssignment::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(NativeVariableAssignment::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_expression(&self) -> Option> { - if self.init__type() == Expression::StringExpression { - self.init_().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_array_expression(&self) -> Option> { - if self.init__type() == Expression::ArrayExpression { - self.init_().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_function_expression(&self) -> Option> { - if self.init__type() == Expression::FunctionExpression { - self.init_().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_binary_expression(&self) -> Option> { - if self.init__type() == Expression::BinaryExpression { - self.init_().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_call_expression(&self) -> Option> { - if self.init__type() == Expression::CallExpression { - self.init_().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_conditional_expression(&self) -> Option> { - if self.init__type() == Expression::ConditionalExpression { - self.init_().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_identifier_expression(&self) -> Option> { - if self.init__type() == Expression::IdentifierExpression { - self.init_().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_logical_expression(&self) -> Option> { - if self.init__type() == Expression::LogicalExpression { - self.init_().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_member_expression(&self) -> Option> { - if self.init__type() == Expression::MemberExpression { - self.init_().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_index_expression(&self) -> Option> { - if self.init__type() == Expression::IndexExpression { - self.init_().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_object_expression(&self) -> Option> { - if self.init__type() == Expression::ObjectExpression { - self.init_().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unary_expression(&self) -> Option> { - if self.init__type() == Expression::UnaryExpression { - self.init_().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_boolean_literal(&self) -> Option> { - if self.init__type() == Expression::BooleanLiteral { - self.init_().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_date_time_literal(&self) -> Option> { - if self.init__type() == Expression::DateTimeLiteral { - self.init_().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_duration_literal(&self) -> Option> { - if self.init__type() == Expression::DurationLiteral { - self.init_().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_float_literal(&self) -> Option> { - if self.init__type() == Expression::FloatLiteral { - self.init_().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_integer_literal(&self) -> Option> { - if self.init__type() == Expression::IntegerLiteral { - self.init_().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_literal(&self) -> Option> { - if self.init__type() == Expression::StringLiteral { - self.init_().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_regexp_literal(&self) -> Option> { - if self.init__type() == Expression::RegexpLiteral { - self.init_().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unsigned_integer_literal(&self) -> Option> { - if self.init__type() == Expression::UnsignedIntegerLiteral { - self.init_().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct NativeVariableAssignmentArgs<'a> { - pub loc: Option>>, - pub identifier: Option>>, - pub init__type: Expression, - pub init_: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for NativeVariableAssignmentArgs<'a> { - #[inline] - fn default() -> Self { - NativeVariableAssignmentArgs { - loc: None, - identifier: None, - init__type: Expression::NONE, - init_: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct NativeVariableAssignmentBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> NativeVariableAssignmentBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_LOC, loc); - } - #[inline] - pub fn add_identifier(&mut self, identifier: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_IDENTIFIER, identifier); - } - #[inline] - pub fn add_init__type(&mut self, init__type: Expression) { - self.fbb_.push_slot::(NativeVariableAssignment::VT_INIT__TYPE, init__type, Expression::NONE); - } - #[inline] - pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_INIT_, init_); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(NativeVariableAssignment::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(NativeVariableAssignment::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> NativeVariableAssignmentBuilder<'a, 'b> { - let start = _fbb.start_table(); - NativeVariableAssignmentBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum MemberAssignmentOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct MemberAssignment<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for MemberAssignment<'a> { - type Inner = MemberAssignment<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub fn column<'a>(&'a self) -> i32 { + self.column_.from_little_endian() } } -} -impl<'a> MemberAssignment<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - MemberAssignment { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args MemberAssignmentArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = MemberAssignmentBuilder::new(_fbb); - if let Some(x) = args.init_ { builder.add_init_(x); } - if let Some(x) = args.member { builder.add_member(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_init__type(args.init__type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_MEMBER: flatbuffers::VOffsetT = 6; - pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; - pub const VT_INIT_: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(MemberAssignment::VT_LOC, None) - } - #[inline] - pub fn member(&self) -> Option> { - self._tab.get::>>(MemberAssignment::VT_MEMBER, None) - } - #[inline] - pub fn init__type(&self) -> Expression { - self._tab.get::(MemberAssignment::VT_INIT__TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn init_(&self) -> Option> { - self._tab.get::>>(MemberAssignment::VT_INIT_, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_expression(&self) -> Option> { - if self.init__type() == Expression::StringExpression { - self.init_().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_array_expression(&self) -> Option> { - if self.init__type() == Expression::ArrayExpression { - self.init_().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_function_expression(&self) -> Option> { - if self.init__type() == Expression::FunctionExpression { - self.init_().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_binary_expression(&self) -> Option> { - if self.init__type() == Expression::BinaryExpression { - self.init_().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_call_expression(&self) -> Option> { - if self.init__type() == Expression::CallExpression { - self.init_().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_conditional_expression(&self) -> Option> { - if self.init__type() == Expression::ConditionalExpression { - self.init_().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_identifier_expression(&self) -> Option> { - if self.init__type() == Expression::IdentifierExpression { - self.init_().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_logical_expression(&self) -> Option> { - if self.init__type() == Expression::LogicalExpression { - self.init_().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_member_expression(&self) -> Option> { - if self.init__type() == Expression::MemberExpression { - self.init_().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_index_expression(&self) -> Option> { - if self.init__type() == Expression::IndexExpression { - self.init_().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_object_expression(&self) -> Option> { - if self.init__type() == Expression::ObjectExpression { - self.init_().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unary_expression(&self) -> Option> { - if self.init__type() == Expression::UnaryExpression { - self.init_().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_boolean_literal(&self) -> Option> { - if self.init__type() == Expression::BooleanLiteral { - self.init_().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_date_time_literal(&self) -> Option> { - if self.init__type() == Expression::DateTimeLiteral { - self.init_().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_duration_literal(&self) -> Option> { - if self.init__type() == Expression::DurationLiteral { - self.init_().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_float_literal(&self) -> Option> { - if self.init__type() == Expression::FloatLiteral { - self.init_().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_integer_literal(&self) -> Option> { - if self.init__type() == Expression::IntegerLiteral { - self.init_().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_string_literal(&self) -> Option> { - if self.init__type() == Expression::StringLiteral { - self.init_().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_regexp_literal(&self) -> Option> { - if self.init__type() == Expression::RegexpLiteral { - self.init_().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn init__as_unsigned_integer_literal(&self) -> Option> { - if self.init__type() == Expression::UnsignedIntegerLiteral { - self.init_().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct MemberAssignmentArgs<'a> { - pub loc: Option>>, - pub member: Option>>, - pub init__type: Expression, - pub init_: Option>, -} -impl<'a> Default for MemberAssignmentArgs<'a> { - #[inline] - fn default() -> Self { - MemberAssignmentArgs { - loc: None, - member: None, - init__type: Expression::NONE, - init_: None, - } - } -} -pub struct MemberAssignmentBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> MemberAssignmentBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(MemberAssignment::VT_LOC, loc); - } - #[inline] - pub fn add_member(&mut self, member: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(MemberAssignment::VT_MEMBER, member); - } - #[inline] - pub fn add_init__type(&mut self, init__type: Expression) { - self.fbb_.push_slot::(MemberAssignment::VT_INIT__TYPE, init__type, Expression::NONE); - } - #[inline] - pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(MemberAssignment::VT_INIT_, init_); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MemberAssignmentBuilder<'a, 'b> { - let start = _fbb.start_table(); - MemberAssignmentBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum WrappedExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct WrappedExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for WrappedExpression<'a> { - type Inner = WrappedExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + pub enum VarOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] -impl<'a> WrappedExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - WrappedExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args WrappedExpressionArgs) -> flatbuffers::WIPOffset> { - let mut builder = WrappedExpressionBuilder::new(_fbb); - if let Some(x) = args.expression { builder.add_expression(x); } - builder.add_expression_type(args.expression_type); - builder.finish() - } - - pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 4; - pub const VT_EXPRESSION: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn expression_type(&self) -> Expression { - self._tab.get::(WrappedExpression::VT_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn expression(&self) -> Option> { - self._tab.get::>>(WrappedExpression::VT_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_expression(&self) -> Option> { - if self.expression_type() == Expression::StringExpression { - self.expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_array_expression(&self) -> Option> { - if self.expression_type() == Expression::ArrayExpression { - self.expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_function_expression(&self) -> Option> { - if self.expression_type() == Expression::FunctionExpression { - self.expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_binary_expression(&self) -> Option> { - if self.expression_type() == Expression::BinaryExpression { - self.expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_call_expression(&self) -> Option> { - if self.expression_type() == Expression::CallExpression { - self.expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_conditional_expression(&self) -> Option> { - if self.expression_type() == Expression::ConditionalExpression { - self.expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_identifier_expression(&self) -> Option> { - if self.expression_type() == Expression::IdentifierExpression { - self.expression().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_logical_expression(&self) -> Option> { - if self.expression_type() == Expression::LogicalExpression { - self.expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_member_expression(&self) -> Option> { - if self.expression_type() == Expression::MemberExpression { - self.expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_index_expression(&self) -> Option> { - if self.expression_type() == Expression::IndexExpression { - self.expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_object_expression(&self) -> Option> { - if self.expression_type() == Expression::ObjectExpression { - self.expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unary_expression(&self) -> Option> { - if self.expression_type() == Expression::UnaryExpression { - self.expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_boolean_literal(&self) -> Option> { - if self.expression_type() == Expression::BooleanLiteral { - self.expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_date_time_literal(&self) -> Option> { - if self.expression_type() == Expression::DateTimeLiteral { - self.expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_duration_literal(&self) -> Option> { - if self.expression_type() == Expression::DurationLiteral { - self.expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_float_literal(&self) -> Option> { - if self.expression_type() == Expression::FloatLiteral { - self.expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::IntegerLiteral { - self.expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_string_literal(&self) -> Option> { - if self.expression_type() == Expression::StringLiteral { - self.expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_regexp_literal(&self) -> Option> { - if self.expression_type() == Expression::RegexpLiteral { - self.expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn expression_as_unsigned_integer_literal(&self) -> Option> { - if self.expression_type() == Expression::UnsignedIntegerLiteral { - self.expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct WrappedExpressionArgs { - pub expression_type: Expression, - pub expression: Option>, -} -impl<'a> Default for WrappedExpressionArgs { - #[inline] - fn default() -> Self { - WrappedExpressionArgs { - expression_type: Expression::NONE, - expression: None, - } - } -} -pub struct WrappedExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> WrappedExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_expression_type(&mut self, expression_type: Expression) { - self.fbb_.push_slot::(WrappedExpression::VT_EXPRESSION_TYPE, expression_type, Expression::NONE); - } - #[inline] - pub fn add_expression(&mut self, expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(WrappedExpression::VT_EXPRESSION, expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> WrappedExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - WrappedExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum StringExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct StringExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for StringExpression<'a> { - type Inner = StringExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct Var<'a> { + pub _tab: flatbuffers::Table<'a>, } -} -impl<'a> StringExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - StringExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args StringExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = StringExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.parts { builder.add_parts(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PARTS: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(StringExpression::VT_LOC, None) - } - #[inline] - pub fn parts(&self) -> Option>>> { - self._tab.get::>>>>(StringExpression::VT_PARTS, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(StringExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(StringExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct StringExpressionArgs<'a> { - pub loc: Option>>, - pub parts: Option>>>>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for StringExpressionArgs<'a> { - #[inline] - fn default() -> Self { - StringExpressionArgs { - loc: None, - parts: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct StringExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> StringExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(StringExpression::VT_LOC, loc); - } - #[inline] - pub fn add_parts(&mut self, parts: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(StringExpression::VT_PARTS, parts); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(StringExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(StringExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - StringExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum StringExpressionPartOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct StringExpressionPart<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for StringExpressionPart<'a> { - type Inner = StringExpressionPart<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for Var<'a> { + type Inner = Var<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> StringExpressionPart<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - StringExpressionPart { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args StringExpressionPartArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = StringExpressionPartBuilder::new(_fbb); - if let Some(x) = args.interpolated_expression { builder.add_interpolated_expression(x); } - if let Some(x) = args.text_value { builder.add_text_value(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_interpolated_expression_type(args.interpolated_expression_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_TEXT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_INTERPOLATED_EXPRESSION_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_INTERPOLATED_EXPRESSION: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(StringExpressionPart::VT_LOC, None) - } - #[inline] - pub fn text_value(&self) -> Option<&'a str> { - self._tab.get::>(StringExpressionPart::VT_TEXT_VALUE, None) - } - #[inline] - pub fn interpolated_expression_type(&self) -> Expression { - self._tab.get::(StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn interpolated_expression(&self) -> Option> { - self._tab.get::>>(StringExpressionPart::VT_INTERPOLATED_EXPRESSION, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_string_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::StringExpression { - self.interpolated_expression().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_array_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ArrayExpression { - self.interpolated_expression().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_function_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::FunctionExpression { - self.interpolated_expression().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_binary_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::BinaryExpression { - self.interpolated_expression().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_call_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::CallExpression { - self.interpolated_expression().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_conditional_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ConditionalExpression { - self.interpolated_expression().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_identifier_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::IdentifierExpression { - self.interpolated_expression().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_logical_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::LogicalExpression { - self.interpolated_expression().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_member_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::MemberExpression { - self.interpolated_expression().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_index_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::IndexExpression { - self.interpolated_expression().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_object_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::ObjectExpression { - self.interpolated_expression().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_unary_expression(&self) -> Option> { - if self.interpolated_expression_type() == Expression::UnaryExpression { - self.interpolated_expression().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_boolean_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::BooleanLiteral { - self.interpolated_expression().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_date_time_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::DateTimeLiteral { - self.interpolated_expression().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_duration_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::DurationLiteral { - self.interpolated_expression().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_float_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::FloatLiteral { - self.interpolated_expression().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_integer_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::IntegerLiteral { - self.interpolated_expression().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_string_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::StringLiteral { - self.interpolated_expression().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_regexp_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::RegexpLiteral { - self.interpolated_expression().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn interpolated_expression_as_unsigned_integer_literal(&self) -> Option> { - if self.interpolated_expression_type() == Expression::UnsignedIntegerLiteral { - self.interpolated_expression().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct StringExpressionPartArgs<'a> { - pub loc: Option>>, - pub text_value: Option>, - pub interpolated_expression_type: Expression, - pub interpolated_expression: Option>, -} -impl<'a> Default for StringExpressionPartArgs<'a> { - #[inline] - fn default() -> Self { - StringExpressionPartArgs { - loc: None, - text_value: None, - interpolated_expression_type: Expression::NONE, - interpolated_expression: None, - } - } -} -pub struct StringExpressionPartBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> StringExpressionPartBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(StringExpressionPart::VT_LOC, loc); - } - #[inline] - pub fn add_text_value(&mut self, text_value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(StringExpressionPart::VT_TEXT_VALUE, text_value); - } - #[inline] - pub fn add_interpolated_expression_type(&mut self, interpolated_expression_type: Expression) { - self.fbb_.push_slot::(StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, interpolated_expression_type, Expression::NONE); - } - #[inline] - pub fn add_interpolated_expression(&mut self, interpolated_expression: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(StringExpressionPart::VT_INTERPOLATED_EXPRESSION, interpolated_expression); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringExpressionPartBuilder<'a, 'b> { - let start = _fbb.start_table(); - StringExpressionPartBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ArrayExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ArrayExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ArrayExpression<'a> { - type Inner = ArrayExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> Var<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Var { _tab: table } } - } -} - -impl<'a> ArrayExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ArrayExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ArrayExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ArrayExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.elements { builder.add_elements(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ELEMENTS: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(ArrayExpression::VT_LOC, None) - } - #[inline] - pub fn elements(&self) -> Option>>> { - self._tab.get::>>>>(ArrayExpression::VT_ELEMENTS, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(ArrayExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(ArrayExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ArrayExpressionArgs<'a> { - pub loc: Option>>, - pub elements: Option>>>>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for ArrayExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ArrayExpressionArgs { - loc: None, - elements: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct ArrayExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ArrayExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ArrayExpression::VT_LOC, loc); - } - #[inline] - pub fn add_elements(&mut self, elements: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(ArrayExpression::VT_ELEMENTS, elements); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(ArrayExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ArrayExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArrayExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ArrayExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FunctionExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct FunctionExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for FunctionExpression<'a> { - type Inner = FunctionExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args VarArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = VarBuilder::new(_fbb); + builder.add_i(args.i); + builder.finish() } - } -} -impl<'a> FunctionExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FunctionExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunctionExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunctionExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.body { builder.add_body(x); } - if let Some(x) = args.params { builder.add_params(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_PARAMS: flatbuffers::VOffsetT = 6; - pub const VT_BODY: flatbuffers::VOffsetT = 8; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_TYP: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_LOC, None) - } - #[inline] - pub fn params(&self) -> Option>>> { - self._tab.get::>>>>(FunctionExpression::VT_PARAMS, None) - } - #[inline] - pub fn body(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_BODY, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(FunctionExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(FunctionExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct FunctionExpressionArgs<'a> { - pub loc: Option>>, - pub params: Option>>>>, - pub body: Option>>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for FunctionExpressionArgs<'a> { - #[inline] - fn default() -> Self { - FunctionExpressionArgs { - loc: None, - params: None, - body: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct FunctionExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_LOC, loc); - } - #[inline] - pub fn add_params(&mut self, params: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_PARAMS, params); - } - #[inline] - pub fn add_body(&mut self, body: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_BODY, body); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(FunctionExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(FunctionExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - FunctionExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FunctionParameterOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct FunctionParameter<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for FunctionParameter<'a> { - type Inner = FunctionParameter<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } - } -} + pub const VT_I: flatbuffers::VOffsetT = 4; -impl<'a> FunctionParameter<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FunctionParameter { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FunctionParameterArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FunctionParameterBuilder::new(_fbb); - if let Some(x) = args.default { builder.add_default(x); } - if let Some(x) = args.key { builder.add_key(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_default_type(args.default_type); - builder.add_is_pipe(args.is_pipe); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_IS_PIPE: flatbuffers::VOffsetT = 6; - pub const VT_KEY: flatbuffers::VOffsetT = 8; - pub const VT_DEFAULT_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_DEFAULT: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(FunctionParameter::VT_LOC, None) - } - #[inline] - pub fn is_pipe(&self) -> bool { - self._tab.get::(FunctionParameter::VT_IS_PIPE, Some(false)).unwrap() - } - #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(FunctionParameter::VT_KEY, None) - } - #[inline] - pub fn default_type(&self) -> Expression { - self._tab.get::(FunctionParameter::VT_DEFAULT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn default(&self) -> Option> { - self._tab.get::>>(FunctionParameter::VT_DEFAULT, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn default_as_string_expression(&self) -> Option> { - if self.default_type() == Expression::StringExpression { - self.default().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_array_expression(&self) -> Option> { - if self.default_type() == Expression::ArrayExpression { - self.default().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_function_expression(&self) -> Option> { - if self.default_type() == Expression::FunctionExpression { - self.default().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_binary_expression(&self) -> Option> { - if self.default_type() == Expression::BinaryExpression { - self.default().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_call_expression(&self) -> Option> { - if self.default_type() == Expression::CallExpression { - self.default().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_conditional_expression(&self) -> Option> { - if self.default_type() == Expression::ConditionalExpression { - self.default().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_identifier_expression(&self) -> Option> { - if self.default_type() == Expression::IdentifierExpression { - self.default().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_logical_expression(&self) -> Option> { - if self.default_type() == Expression::LogicalExpression { - self.default().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_member_expression(&self) -> Option> { - if self.default_type() == Expression::MemberExpression { - self.default().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_index_expression(&self) -> Option> { - if self.default_type() == Expression::IndexExpression { - self.default().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_object_expression(&self) -> Option> { - if self.default_type() == Expression::ObjectExpression { - self.default().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_unary_expression(&self) -> Option> { - if self.default_type() == Expression::UnaryExpression { - self.default().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_boolean_literal(&self) -> Option> { - if self.default_type() == Expression::BooleanLiteral { - self.default().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_date_time_literal(&self) -> Option> { - if self.default_type() == Expression::DateTimeLiteral { - self.default().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_duration_literal(&self) -> Option> { - if self.default_type() == Expression::DurationLiteral { - self.default().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_float_literal(&self) -> Option> { - if self.default_type() == Expression::FloatLiteral { - self.default().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_integer_literal(&self) -> Option> { - if self.default_type() == Expression::IntegerLiteral { - self.default().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_string_literal(&self) -> Option> { - if self.default_type() == Expression::StringLiteral { - self.default().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_regexp_literal(&self) -> Option> { - if self.default_type() == Expression::RegexpLiteral { - self.default().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn default_as_unsigned_integer_literal(&self) -> Option> { - if self.default_type() == Expression::UnsignedIntegerLiteral { - self.default().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct FunctionParameterArgs<'a> { - pub loc: Option>>, - pub is_pipe: bool, - pub key: Option>>, - pub default_type: Expression, - pub default: Option>, -} -impl<'a> Default for FunctionParameterArgs<'a> { - #[inline] - fn default() -> Self { - FunctionParameterArgs { - loc: None, - is_pipe: false, - key: None, - default_type: Expression::NONE, - default: None, - } - } -} -pub struct FunctionParameterBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FunctionParameterBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionParameter::VT_LOC, loc); - } - #[inline] - pub fn add_is_pipe(&mut self, is_pipe: bool) { - self.fbb_.push_slot::(FunctionParameter::VT_IS_PIPE, is_pipe, false); - } - #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FunctionParameter::VT_KEY, key); - } - #[inline] - pub fn add_default_type(&mut self, default_type: Expression) { - self.fbb_.push_slot::(FunctionParameter::VT_DEFAULT_TYPE, default_type, Expression::NONE); - } - #[inline] - pub fn add_default(&mut self, default: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(FunctionParameter::VT_DEFAULT, default); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunctionParameterBuilder<'a, 'b> { - let start = _fbb.start_table(); - FunctionParameterBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BinaryExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BinaryExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BinaryExpression<'a> { - type Inner = BinaryExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + pub fn i(&self) -> u64 { + self._tab.get::(Var::VT_I, Some(0)).unwrap() } } -} -impl<'a> BinaryExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BinaryExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BinaryExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BinaryExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.right { builder.add_right(x); } - if let Some(x) = args.left { builder.add_left(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_right_type(args.right_type); - builder.add_left_type(args.left_type); - builder.add_operator(args.operator); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; - pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_LEFT: flatbuffers::VOffsetT = 10; - pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_RIGHT: flatbuffers::VOffsetT = 14; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; - pub const VT_TYP: flatbuffers::VOffsetT = 18; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_LOC, None) - } - #[inline] - pub fn operator(&self) -> Operator { - self._tab.get::(BinaryExpression::VT_OPERATOR, Some(Operator::MultiplicationOperator)).unwrap() - } - #[inline] - pub fn left_type(&self) -> Expression { - self._tab.get::(BinaryExpression::VT_LEFT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn left(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_LEFT, None) - } - #[inline] - pub fn right_type(&self) -> Expression { - self._tab.get::(BinaryExpression::VT_RIGHT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn right(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_RIGHT, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(BinaryExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(BinaryExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_expression(&self) -> Option> { - if self.left_type() == Expression::StringExpression { - self.left().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_array_expression(&self) -> Option> { - if self.left_type() == Expression::ArrayExpression { - self.left().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_function_expression(&self) -> Option> { - if self.left_type() == Expression::FunctionExpression { - self.left().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_binary_expression(&self) -> Option> { - if self.left_type() == Expression::BinaryExpression { - self.left().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_call_expression(&self) -> Option> { - if self.left_type() == Expression::CallExpression { - self.left().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_conditional_expression(&self) -> Option> { - if self.left_type() == Expression::ConditionalExpression { - self.left().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_identifier_expression(&self) -> Option> { - if self.left_type() == Expression::IdentifierExpression { - self.left().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_logical_expression(&self) -> Option> { - if self.left_type() == Expression::LogicalExpression { - self.left().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_member_expression(&self) -> Option> { - if self.left_type() == Expression::MemberExpression { - self.left().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_index_expression(&self) -> Option> { - if self.left_type() == Expression::IndexExpression { - self.left().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_object_expression(&self) -> Option> { - if self.left_type() == Expression::ObjectExpression { - self.left().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unary_expression(&self) -> Option> { - if self.left_type() == Expression::UnaryExpression { - self.left().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_boolean_literal(&self) -> Option> { - if self.left_type() == Expression::BooleanLiteral { - self.left().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_date_time_literal(&self) -> Option> { - if self.left_type() == Expression::DateTimeLiteral { - self.left().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_duration_literal(&self) -> Option> { - if self.left_type() == Expression::DurationLiteral { - self.left().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_float_literal(&self) -> Option> { - if self.left_type() == Expression::FloatLiteral { - self.left().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_integer_literal(&self) -> Option> { - if self.left_type() == Expression::IntegerLiteral { - self.left().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_literal(&self) -> Option> { - if self.left_type() == Expression::StringLiteral { - self.left().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_regexp_literal(&self) -> Option> { - if self.left_type() == Expression::RegexpLiteral { - self.left().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unsigned_integer_literal(&self) -> Option> { - if self.left_type() == Expression::UnsignedIntegerLiteral { - self.left().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_expression(&self) -> Option> { - if self.right_type() == Expression::StringExpression { - self.right().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_array_expression(&self) -> Option> { - if self.right_type() == Expression::ArrayExpression { - self.right().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_function_expression(&self) -> Option> { - if self.right_type() == Expression::FunctionExpression { - self.right().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_binary_expression(&self) -> Option> { - if self.right_type() == Expression::BinaryExpression { - self.right().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_call_expression(&self) -> Option> { - if self.right_type() == Expression::CallExpression { - self.right().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_conditional_expression(&self) -> Option> { - if self.right_type() == Expression::ConditionalExpression { - self.right().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_identifier_expression(&self) -> Option> { - if self.right_type() == Expression::IdentifierExpression { - self.right().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_logical_expression(&self) -> Option> { - if self.right_type() == Expression::LogicalExpression { - self.right().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_member_expression(&self) -> Option> { - if self.right_type() == Expression::MemberExpression { - self.right().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_index_expression(&self) -> Option> { - if self.right_type() == Expression::IndexExpression { - self.right().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_object_expression(&self) -> Option> { - if self.right_type() == Expression::ObjectExpression { - self.right().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unary_expression(&self) -> Option> { - if self.right_type() == Expression::UnaryExpression { - self.right().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_boolean_literal(&self) -> Option> { - if self.right_type() == Expression::BooleanLiteral { - self.right().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_date_time_literal(&self) -> Option> { - if self.right_type() == Expression::DateTimeLiteral { - self.right().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_duration_literal(&self) -> Option> { - if self.right_type() == Expression::DurationLiteral { - self.right().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_float_literal(&self) -> Option> { - if self.right_type() == Expression::FloatLiteral { - self.right().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_integer_literal(&self) -> Option> { - if self.right_type() == Expression::IntegerLiteral { - self.right().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_literal(&self) -> Option> { - if self.right_type() == Expression::StringLiteral { - self.right().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_regexp_literal(&self) -> Option> { - if self.right_type() == Expression::RegexpLiteral { - self.right().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unsigned_integer_literal(&self) -> Option> { - if self.right_type() == Expression::UnsignedIntegerLiteral { - self.right().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct BinaryExpressionArgs<'a> { - pub loc: Option>>, - pub operator: Operator, - pub left_type: Expression, - pub left: Option>, - pub right_type: Expression, - pub right: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for BinaryExpressionArgs<'a> { - #[inline] - fn default() -> Self { - BinaryExpressionArgs { - loc: None, - operator: Operator::MultiplicationOperator, - left_type: Expression::NONE, - left: None, - right_type: Expression::NONE, - right: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct BinaryExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BinaryExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_LOC, loc); - } - #[inline] - pub fn add_operator(&mut self, operator: Operator) { - self.fbb_.push_slot::(BinaryExpression::VT_OPERATOR, operator, Operator::MultiplicationOperator); - } - #[inline] - pub fn add_left_type(&mut self, left_type: Expression) { - self.fbb_.push_slot::(BinaryExpression::VT_LEFT_TYPE, left_type, Expression::NONE); - } - #[inline] - pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_LEFT, left); - } - #[inline] - pub fn add_right_type(&mut self, right_type: Expression) { - self.fbb_.push_slot::(BinaryExpression::VT_RIGHT_TYPE, right_type, Expression::NONE); - } - #[inline] - pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_RIGHT, right); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(BinaryExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BinaryExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BinaryExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - BinaryExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum CallExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct CallExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for CallExpression<'a> { - type Inner = CallExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct VarArgs { + pub i: u64, } -} - -impl<'a> CallExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - CallExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args CallExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = CallExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.pipe { builder.add_pipe(x); } - if let Some(x) = args.arguments { builder.add_arguments(x); } - if let Some(x) = args.callee { builder.add_callee(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_pipe_type(args.pipe_type); - builder.add_callee_type(args.callee_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_CALLEE_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_CALLEE: flatbuffers::VOffsetT = 8; - pub const VT_ARGUMENTS: flatbuffers::VOffsetT = 10; - pub const VT_PIPE_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_PIPE: flatbuffers::VOffsetT = 14; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; - pub const VT_TYP: flatbuffers::VOffsetT = 18; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_LOC, None) - } - #[inline] - pub fn callee_type(&self) -> Expression { - self._tab.get::(CallExpression::VT_CALLEE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn callee(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_CALLEE, None) - } - #[inline] - pub fn arguments(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_ARGUMENTS, None) - } - #[inline] - pub fn pipe_type(&self) -> Expression { - self._tab.get::(CallExpression::VT_PIPE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn pipe(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_PIPE, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(CallExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(CallExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_string_expression(&self) -> Option> { - if self.callee_type() == Expression::StringExpression { - self.callee().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_array_expression(&self) -> Option> { - if self.callee_type() == Expression::ArrayExpression { - self.callee().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_function_expression(&self) -> Option> { - if self.callee_type() == Expression::FunctionExpression { - self.callee().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_binary_expression(&self) -> Option> { - if self.callee_type() == Expression::BinaryExpression { - self.callee().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_call_expression(&self) -> Option> { - if self.callee_type() == Expression::CallExpression { - self.callee().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_conditional_expression(&self) -> Option> { - if self.callee_type() == Expression::ConditionalExpression { - self.callee().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_identifier_expression(&self) -> Option> { - if self.callee_type() == Expression::IdentifierExpression { - self.callee().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_logical_expression(&self) -> Option> { - if self.callee_type() == Expression::LogicalExpression { - self.callee().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_member_expression(&self) -> Option> { - if self.callee_type() == Expression::MemberExpression { - self.callee().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_index_expression(&self) -> Option> { - if self.callee_type() == Expression::IndexExpression { - self.callee().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_object_expression(&self) -> Option> { - if self.callee_type() == Expression::ObjectExpression { - self.callee().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_unary_expression(&self) -> Option> { - if self.callee_type() == Expression::UnaryExpression { - self.callee().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_boolean_literal(&self) -> Option> { - if self.callee_type() == Expression::BooleanLiteral { - self.callee().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_date_time_literal(&self) -> Option> { - if self.callee_type() == Expression::DateTimeLiteral { - self.callee().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_duration_literal(&self) -> Option> { - if self.callee_type() == Expression::DurationLiteral { - self.callee().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_float_literal(&self) -> Option> { - if self.callee_type() == Expression::FloatLiteral { - self.callee().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_integer_literal(&self) -> Option> { - if self.callee_type() == Expression::IntegerLiteral { - self.callee().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_string_literal(&self) -> Option> { - if self.callee_type() == Expression::StringLiteral { - self.callee().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_regexp_literal(&self) -> Option> { - if self.callee_type() == Expression::RegexpLiteral { - self.callee().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn callee_as_unsigned_integer_literal(&self) -> Option> { - if self.callee_type() == Expression::UnsignedIntegerLiteral { - self.callee().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_string_expression(&self) -> Option> { - if self.pipe_type() == Expression::StringExpression { - self.pipe().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_array_expression(&self) -> Option> { - if self.pipe_type() == Expression::ArrayExpression { - self.pipe().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_function_expression(&self) -> Option> { - if self.pipe_type() == Expression::FunctionExpression { - self.pipe().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_binary_expression(&self) -> Option> { - if self.pipe_type() == Expression::BinaryExpression { - self.pipe().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_call_expression(&self) -> Option> { - if self.pipe_type() == Expression::CallExpression { - self.pipe().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_conditional_expression(&self) -> Option> { - if self.pipe_type() == Expression::ConditionalExpression { - self.pipe().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_identifier_expression(&self) -> Option> { - if self.pipe_type() == Expression::IdentifierExpression { - self.pipe().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_logical_expression(&self) -> Option> { - if self.pipe_type() == Expression::LogicalExpression { - self.pipe().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_member_expression(&self) -> Option> { - if self.pipe_type() == Expression::MemberExpression { - self.pipe().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_index_expression(&self) -> Option> { - if self.pipe_type() == Expression::IndexExpression { - self.pipe().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_object_expression(&self) -> Option> { - if self.pipe_type() == Expression::ObjectExpression { - self.pipe().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_unary_expression(&self) -> Option> { - if self.pipe_type() == Expression::UnaryExpression { - self.pipe().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_boolean_literal(&self) -> Option> { - if self.pipe_type() == Expression::BooleanLiteral { - self.pipe().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_date_time_literal(&self) -> Option> { - if self.pipe_type() == Expression::DateTimeLiteral { - self.pipe().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_duration_literal(&self) -> Option> { - if self.pipe_type() == Expression::DurationLiteral { - self.pipe().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_float_literal(&self) -> Option> { - if self.pipe_type() == Expression::FloatLiteral { - self.pipe().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_integer_literal(&self) -> Option> { - if self.pipe_type() == Expression::IntegerLiteral { - self.pipe().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_string_literal(&self) -> Option> { - if self.pipe_type() == Expression::StringLiteral { - self.pipe().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_regexp_literal(&self) -> Option> { - if self.pipe_type() == Expression::RegexpLiteral { - self.pipe().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn pipe_as_unsigned_integer_literal(&self) -> Option> { - if self.pipe_type() == Expression::UnsignedIntegerLiteral { - self.pipe().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct CallExpressionArgs<'a> { - pub loc: Option>>, - pub callee_type: Expression, - pub callee: Option>, - pub arguments: Option>>, - pub pipe_type: Expression, - pub pipe: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for CallExpressionArgs<'a> { - #[inline] - fn default() -> Self { - CallExpressionArgs { - loc: None, - callee_type: Expression::NONE, - callee: None, - arguments: None, - pipe_type: Expression::NONE, - pipe: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct CallExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> CallExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(CallExpression::VT_LOC, loc); - } - #[inline] - pub fn add_callee_type(&mut self, callee_type: Expression) { - self.fbb_.push_slot::(CallExpression::VT_CALLEE_TYPE, callee_type, Expression::NONE); - } - #[inline] - pub fn add_callee(&mut self, callee: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(CallExpression::VT_CALLEE, callee); - } - #[inline] - pub fn add_arguments(&mut self, arguments: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(CallExpression::VT_ARGUMENTS, arguments); - } - #[inline] - pub fn add_pipe_type(&mut self, pipe_type: Expression) { - self.fbb_.push_slot::(CallExpression::VT_PIPE_TYPE, pipe_type, Expression::NONE); - } - #[inline] - pub fn add_pipe(&mut self, pipe: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(CallExpression::VT_PIPE, pipe); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(CallExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(CallExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> CallExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - CallExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ConditionalExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ConditionalExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ConditionalExpression<'a> { - type Inner = ConditionalExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> Default for VarArgs { + #[inline] + fn default() -> Self { + VarArgs { i: 0 } } } -} - -impl<'a> ConditionalExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ConditionalExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ConditionalExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ConditionalExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.consequent { builder.add_consequent(x); } - if let Some(x) = args.alternate { builder.add_alternate(x); } - if let Some(x) = args.test { builder.add_test(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_consequent_type(args.consequent_type); - builder.add_alternate_type(args.alternate_type); - builder.add_test_type(args.test_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_TEST_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_TEST: flatbuffers::VOffsetT = 8; - pub const VT_ALTERNATE_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_ALTERNATE: flatbuffers::VOffsetT = 12; - pub const VT_CONSEQUENT_TYPE: flatbuffers::VOffsetT = 14; - pub const VT_CONSEQUENT: flatbuffers::VOffsetT = 16; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 18; - pub const VT_TYP: flatbuffers::VOffsetT = 20; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_LOC, None) - } - #[inline] - pub fn test_type(&self) -> Expression { - self._tab.get::(ConditionalExpression::VT_TEST_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn test(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_TEST, None) - } - #[inline] - pub fn alternate_type(&self) -> Expression { - self._tab.get::(ConditionalExpression::VT_ALTERNATE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn alternate(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_ALTERNATE, None) - } - #[inline] - pub fn consequent_type(&self) -> Expression { - self._tab.get::(ConditionalExpression::VT_CONSEQUENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn consequent(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_CONSEQUENT, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(ConditionalExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(ConditionalExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn test_as_string_expression(&self) -> Option> { - if self.test_type() == Expression::StringExpression { - self.test().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_array_expression(&self) -> Option> { - if self.test_type() == Expression::ArrayExpression { - self.test().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_function_expression(&self) -> Option> { - if self.test_type() == Expression::FunctionExpression { - self.test().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_binary_expression(&self) -> Option> { - if self.test_type() == Expression::BinaryExpression { - self.test().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_call_expression(&self) -> Option> { - if self.test_type() == Expression::CallExpression { - self.test().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_conditional_expression(&self) -> Option> { - if self.test_type() == Expression::ConditionalExpression { - self.test().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_identifier_expression(&self) -> Option> { - if self.test_type() == Expression::IdentifierExpression { - self.test().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_logical_expression(&self) -> Option> { - if self.test_type() == Expression::LogicalExpression { - self.test().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_member_expression(&self) -> Option> { - if self.test_type() == Expression::MemberExpression { - self.test().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_index_expression(&self) -> Option> { - if self.test_type() == Expression::IndexExpression { - self.test().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_object_expression(&self) -> Option> { - if self.test_type() == Expression::ObjectExpression { - self.test().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_unary_expression(&self) -> Option> { - if self.test_type() == Expression::UnaryExpression { - self.test().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_boolean_literal(&self) -> Option> { - if self.test_type() == Expression::BooleanLiteral { - self.test().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_date_time_literal(&self) -> Option> { - if self.test_type() == Expression::DateTimeLiteral { - self.test().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_duration_literal(&self) -> Option> { - if self.test_type() == Expression::DurationLiteral { - self.test().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_float_literal(&self) -> Option> { - if self.test_type() == Expression::FloatLiteral { - self.test().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_integer_literal(&self) -> Option> { - if self.test_type() == Expression::IntegerLiteral { - self.test().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_string_literal(&self) -> Option> { - if self.test_type() == Expression::StringLiteral { - self.test().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_regexp_literal(&self) -> Option> { - if self.test_type() == Expression::RegexpLiteral { - self.test().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn test_as_unsigned_integer_literal(&self) -> Option> { - if self.test_type() == Expression::UnsignedIntegerLiteral { - self.test().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_string_expression(&self) -> Option> { - if self.alternate_type() == Expression::StringExpression { - self.alternate().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_array_expression(&self) -> Option> { - if self.alternate_type() == Expression::ArrayExpression { - self.alternate().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_function_expression(&self) -> Option> { - if self.alternate_type() == Expression::FunctionExpression { - self.alternate().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_binary_expression(&self) -> Option> { - if self.alternate_type() == Expression::BinaryExpression { - self.alternate().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_call_expression(&self) -> Option> { - if self.alternate_type() == Expression::CallExpression { - self.alternate().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_conditional_expression(&self) -> Option> { - if self.alternate_type() == Expression::ConditionalExpression { - self.alternate().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_identifier_expression(&self) -> Option> { - if self.alternate_type() == Expression::IdentifierExpression { - self.alternate().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_logical_expression(&self) -> Option> { - if self.alternate_type() == Expression::LogicalExpression { - self.alternate().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_member_expression(&self) -> Option> { - if self.alternate_type() == Expression::MemberExpression { - self.alternate().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_index_expression(&self) -> Option> { - if self.alternate_type() == Expression::IndexExpression { - self.alternate().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_object_expression(&self) -> Option> { - if self.alternate_type() == Expression::ObjectExpression { - self.alternate().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_unary_expression(&self) -> Option> { - if self.alternate_type() == Expression::UnaryExpression { - self.alternate().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_boolean_literal(&self) -> Option> { - if self.alternate_type() == Expression::BooleanLiteral { - self.alternate().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_date_time_literal(&self) -> Option> { - if self.alternate_type() == Expression::DateTimeLiteral { - self.alternate().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_duration_literal(&self) -> Option> { - if self.alternate_type() == Expression::DurationLiteral { - self.alternate().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_float_literal(&self) -> Option> { - if self.alternate_type() == Expression::FloatLiteral { - self.alternate().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_integer_literal(&self) -> Option> { - if self.alternate_type() == Expression::IntegerLiteral { - self.alternate().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_string_literal(&self) -> Option> { - if self.alternate_type() == Expression::StringLiteral { - self.alternate().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_regexp_literal(&self) -> Option> { - if self.alternate_type() == Expression::RegexpLiteral { - self.alternate().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn alternate_as_unsigned_integer_literal(&self) -> Option> { - if self.alternate_type() == Expression::UnsignedIntegerLiteral { - self.alternate().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_string_expression(&self) -> Option> { - if self.consequent_type() == Expression::StringExpression { - self.consequent().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_array_expression(&self) -> Option> { - if self.consequent_type() == Expression::ArrayExpression { - self.consequent().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_function_expression(&self) -> Option> { - if self.consequent_type() == Expression::FunctionExpression { - self.consequent().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_binary_expression(&self) -> Option> { - if self.consequent_type() == Expression::BinaryExpression { - self.consequent().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_call_expression(&self) -> Option> { - if self.consequent_type() == Expression::CallExpression { - self.consequent().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_conditional_expression(&self) -> Option> { - if self.consequent_type() == Expression::ConditionalExpression { - self.consequent().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_identifier_expression(&self) -> Option> { - if self.consequent_type() == Expression::IdentifierExpression { - self.consequent().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_logical_expression(&self) -> Option> { - if self.consequent_type() == Expression::LogicalExpression { - self.consequent().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_member_expression(&self) -> Option> { - if self.consequent_type() == Expression::MemberExpression { - self.consequent().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_index_expression(&self) -> Option> { - if self.consequent_type() == Expression::IndexExpression { - self.consequent().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_object_expression(&self) -> Option> { - if self.consequent_type() == Expression::ObjectExpression { - self.consequent().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_unary_expression(&self) -> Option> { - if self.consequent_type() == Expression::UnaryExpression { - self.consequent().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_boolean_literal(&self) -> Option> { - if self.consequent_type() == Expression::BooleanLiteral { - self.consequent().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_date_time_literal(&self) -> Option> { - if self.consequent_type() == Expression::DateTimeLiteral { - self.consequent().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_duration_literal(&self) -> Option> { - if self.consequent_type() == Expression::DurationLiteral { - self.consequent().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_float_literal(&self) -> Option> { - if self.consequent_type() == Expression::FloatLiteral { - self.consequent().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_integer_literal(&self) -> Option> { - if self.consequent_type() == Expression::IntegerLiteral { - self.consequent().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_string_literal(&self) -> Option> { - if self.consequent_type() == Expression::StringLiteral { - self.consequent().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_regexp_literal(&self) -> Option> { - if self.consequent_type() == Expression::RegexpLiteral { - self.consequent().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn consequent_as_unsigned_integer_literal(&self) -> Option> { - if self.consequent_type() == Expression::UnsignedIntegerLiteral { - self.consequent().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ConditionalExpressionArgs<'a> { - pub loc: Option>>, - pub test_type: Expression, - pub test: Option>, - pub alternate_type: Expression, - pub alternate: Option>, - pub consequent_type: Expression, - pub consequent: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for ConditionalExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ConditionalExpressionArgs { - loc: None, - test_type: Expression::NONE, - test: None, - alternate_type: Expression::NONE, - alternate: None, - consequent_type: Expression::NONE, - consequent: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct ConditionalExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ConditionalExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_LOC, loc); - } - #[inline] - pub fn add_test_type(&mut self, test_type: Expression) { - self.fbb_.push_slot::(ConditionalExpression::VT_TEST_TYPE, test_type, Expression::NONE); - } - #[inline] - pub fn add_test(&mut self, test: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_TEST, test); - } - #[inline] - pub fn add_alternate_type(&mut self, alternate_type: Expression) { - self.fbb_.push_slot::(ConditionalExpression::VT_ALTERNATE_TYPE, alternate_type, Expression::NONE); - } - #[inline] - pub fn add_alternate(&mut self, alternate: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_ALTERNATE, alternate); - } - #[inline] - pub fn add_consequent_type(&mut self, consequent_type: Expression) { - self.fbb_.push_slot::(ConditionalExpression::VT_CONSEQUENT_TYPE, consequent_type, Expression::NONE); - } - #[inline] - pub fn add_consequent(&mut self, consequent: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_CONSEQUENT, consequent); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(ConditionalExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ConditionalExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ConditionalExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ConditionalExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum LogicalExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct LogicalExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for LogicalExpression<'a> { - type Inner = LogicalExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub struct VarBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, } -} - -impl<'a> LogicalExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - LogicalExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args LogicalExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = LogicalExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.right { builder.add_right(x); } - if let Some(x) = args.left { builder.add_left(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_right_type(args.right_type); - builder.add_left_type(args.left_type); - builder.add_operator(args.operator); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; - pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_LEFT: flatbuffers::VOffsetT = 10; - pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_RIGHT: flatbuffers::VOffsetT = 14; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; - pub const VT_TYP: flatbuffers::VOffsetT = 18; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_LOC, None) - } - #[inline] - pub fn operator(&self) -> LogicalOperator { - self._tab.get::(LogicalExpression::VT_OPERATOR, Some(LogicalOperator::AndOperator)).unwrap() - } - #[inline] - pub fn left_type(&self) -> Expression { - self._tab.get::(LogicalExpression::VT_LEFT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn left(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_LEFT, None) - } - #[inline] - pub fn right_type(&self) -> Expression { - self._tab.get::(LogicalExpression::VT_RIGHT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn right(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_RIGHT, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(LogicalExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(LogicalExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_expression(&self) -> Option> { - if self.left_type() == Expression::StringExpression { - self.left().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_array_expression(&self) -> Option> { - if self.left_type() == Expression::ArrayExpression { - self.left().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_function_expression(&self) -> Option> { - if self.left_type() == Expression::FunctionExpression { - self.left().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_binary_expression(&self) -> Option> { - if self.left_type() == Expression::BinaryExpression { - self.left().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_call_expression(&self) -> Option> { - if self.left_type() == Expression::CallExpression { - self.left().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_conditional_expression(&self) -> Option> { - if self.left_type() == Expression::ConditionalExpression { - self.left().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_identifier_expression(&self) -> Option> { - if self.left_type() == Expression::IdentifierExpression { - self.left().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_logical_expression(&self) -> Option> { - if self.left_type() == Expression::LogicalExpression { - self.left().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_member_expression(&self) -> Option> { - if self.left_type() == Expression::MemberExpression { - self.left().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_index_expression(&self) -> Option> { - if self.left_type() == Expression::IndexExpression { - self.left().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_object_expression(&self) -> Option> { - if self.left_type() == Expression::ObjectExpression { - self.left().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unary_expression(&self) -> Option> { - if self.left_type() == Expression::UnaryExpression { - self.left().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_boolean_literal(&self) -> Option> { - if self.left_type() == Expression::BooleanLiteral { - self.left().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_date_time_literal(&self) -> Option> { - if self.left_type() == Expression::DateTimeLiteral { - self.left().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_duration_literal(&self) -> Option> { - if self.left_type() == Expression::DurationLiteral { - self.left().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_float_literal(&self) -> Option> { - if self.left_type() == Expression::FloatLiteral { - self.left().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_integer_literal(&self) -> Option> { - if self.left_type() == Expression::IntegerLiteral { - self.left().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_string_literal(&self) -> Option> { - if self.left_type() == Expression::StringLiteral { - self.left().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_regexp_literal(&self) -> Option> { - if self.left_type() == Expression::RegexpLiteral { - self.left().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn left_as_unsigned_integer_literal(&self) -> Option> { - if self.left_type() == Expression::UnsignedIntegerLiteral { - self.left().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_expression(&self) -> Option> { - if self.right_type() == Expression::StringExpression { - self.right().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_array_expression(&self) -> Option> { - if self.right_type() == Expression::ArrayExpression { - self.right().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_function_expression(&self) -> Option> { - if self.right_type() == Expression::FunctionExpression { - self.right().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_binary_expression(&self) -> Option> { - if self.right_type() == Expression::BinaryExpression { - self.right().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_call_expression(&self) -> Option> { - if self.right_type() == Expression::CallExpression { - self.right().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_conditional_expression(&self) -> Option> { - if self.right_type() == Expression::ConditionalExpression { - self.right().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_identifier_expression(&self) -> Option> { - if self.right_type() == Expression::IdentifierExpression { - self.right().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_logical_expression(&self) -> Option> { - if self.right_type() == Expression::LogicalExpression { - self.right().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_member_expression(&self) -> Option> { - if self.right_type() == Expression::MemberExpression { - self.right().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_index_expression(&self) -> Option> { - if self.right_type() == Expression::IndexExpression { - self.right().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_object_expression(&self) -> Option> { - if self.right_type() == Expression::ObjectExpression { - self.right().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unary_expression(&self) -> Option> { - if self.right_type() == Expression::UnaryExpression { - self.right().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_boolean_literal(&self) -> Option> { - if self.right_type() == Expression::BooleanLiteral { - self.right().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_date_time_literal(&self) -> Option> { - if self.right_type() == Expression::DateTimeLiteral { - self.right().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_duration_literal(&self) -> Option> { - if self.right_type() == Expression::DurationLiteral { - self.right().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_float_literal(&self) -> Option> { - if self.right_type() == Expression::FloatLiteral { - self.right().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_integer_literal(&self) -> Option> { - if self.right_type() == Expression::IntegerLiteral { - self.right().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_string_literal(&self) -> Option> { - if self.right_type() == Expression::StringLiteral { - self.right().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_regexp_literal(&self) -> Option> { - if self.right_type() == Expression::RegexpLiteral { - self.right().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn right_as_unsigned_integer_literal(&self) -> Option> { - if self.right_type() == Expression::UnsignedIntegerLiteral { - self.right().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct LogicalExpressionArgs<'a> { - pub loc: Option>>, - pub operator: LogicalOperator, - pub left_type: Expression, - pub left: Option>, - pub right_type: Expression, - pub right: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for LogicalExpressionArgs<'a> { - #[inline] - fn default() -> Self { - LogicalExpressionArgs { - loc: None, - operator: LogicalOperator::AndOperator, - left_type: Expression::NONE, - left: None, - right_type: Expression::NONE, - right: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct LogicalExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> LogicalExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_LOC, loc); - } - #[inline] - pub fn add_operator(&mut self, operator: LogicalOperator) { - self.fbb_.push_slot::(LogicalExpression::VT_OPERATOR, operator, LogicalOperator::AndOperator); - } - #[inline] - pub fn add_left_type(&mut self, left_type: Expression) { - self.fbb_.push_slot::(LogicalExpression::VT_LEFT_TYPE, left_type, Expression::NONE); - } - #[inline] - pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_LEFT, left); - } - #[inline] - pub fn add_right_type(&mut self, right_type: Expression) { - self.fbb_.push_slot::(LogicalExpression::VT_RIGHT_TYPE, right_type, Expression::NONE); - } - #[inline] - pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_RIGHT, right); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(LogicalExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(LogicalExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> LogicalExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - LogicalExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum MemberExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct MemberExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for MemberExpression<'a> { - type Inner = MemberExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a: 'b, 'b> VarBuilder<'a, 'b> { + #[inline] + pub fn add_i(&mut self, i: u64) { + self.fbb_.push_slot::(Var::VT_I, i, 0); } - } -} - -impl<'a> MemberExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - MemberExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args MemberExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = MemberExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.property { builder.add_property(x); } - if let Some(x) = args.object { builder.add_object(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_object_type(args.object_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_OBJECT_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_OBJECT: flatbuffers::VOffsetT = 8; - pub const VT_PROPERTY: flatbuffers::VOffsetT = 10; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_TYP: flatbuffers::VOffsetT = 14; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(MemberExpression::VT_LOC, None) - } - #[inline] - pub fn object_type(&self) -> Expression { - self._tab.get::(MemberExpression::VT_OBJECT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn object(&self) -> Option> { - self._tab.get::>>(MemberExpression::VT_OBJECT, None) - } - #[inline] - pub fn property(&self) -> Option<&'a str> { - self._tab.get::>(MemberExpression::VT_PROPERTY, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(MemberExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(MemberExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn object_as_string_expression(&self) -> Option> { - if self.object_type() == Expression::StringExpression { - self.object().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_array_expression(&self) -> Option> { - if self.object_type() == Expression::ArrayExpression { - self.object().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_function_expression(&self) -> Option> { - if self.object_type() == Expression::FunctionExpression { - self.object().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_binary_expression(&self) -> Option> { - if self.object_type() == Expression::BinaryExpression { - self.object().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_call_expression(&self) -> Option> { - if self.object_type() == Expression::CallExpression { - self.object().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_conditional_expression(&self) -> Option> { - if self.object_type() == Expression::ConditionalExpression { - self.object().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_identifier_expression(&self) -> Option> { - if self.object_type() == Expression::IdentifierExpression { - self.object().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_logical_expression(&self) -> Option> { - if self.object_type() == Expression::LogicalExpression { - self.object().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_member_expression(&self) -> Option> { - if self.object_type() == Expression::MemberExpression { - self.object().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_index_expression(&self) -> Option> { - if self.object_type() == Expression::IndexExpression { - self.object().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_object_expression(&self) -> Option> { - if self.object_type() == Expression::ObjectExpression { - self.object().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_unary_expression(&self) -> Option> { - if self.object_type() == Expression::UnaryExpression { - self.object().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_boolean_literal(&self) -> Option> { - if self.object_type() == Expression::BooleanLiteral { - self.object().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_date_time_literal(&self) -> Option> { - if self.object_type() == Expression::DateTimeLiteral { - self.object().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_duration_literal(&self) -> Option> { - if self.object_type() == Expression::DurationLiteral { - self.object().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_float_literal(&self) -> Option> { - if self.object_type() == Expression::FloatLiteral { - self.object().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_integer_literal(&self) -> Option> { - if self.object_type() == Expression::IntegerLiteral { - self.object().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_string_literal(&self) -> Option> { - if self.object_type() == Expression::StringLiteral { - self.object().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_regexp_literal(&self) -> Option> { - if self.object_type() == Expression::RegexpLiteral { - self.object().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn object_as_unsigned_integer_literal(&self) -> Option> { - if self.object_type() == Expression::UnsignedIntegerLiteral { - self.object().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct MemberExpressionArgs<'a> { - pub loc: Option>>, - pub object_type: Expression, - pub object: Option>, - pub property: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for MemberExpressionArgs<'a> { - #[inline] - fn default() -> Self { - MemberExpressionArgs { - loc: None, - object_type: Expression::NONE, - object: None, - property: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct MemberExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> MemberExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(MemberExpression::VT_LOC, loc); - } - #[inline] - pub fn add_object_type(&mut self, object_type: Expression) { - self.fbb_.push_slot::(MemberExpression::VT_OBJECT_TYPE, object_type, Expression::NONE); - } - #[inline] - pub fn add_object(&mut self, object: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(MemberExpression::VT_OBJECT, object); - } - #[inline] - pub fn add_property(&mut self, property: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(MemberExpression::VT_PROPERTY, property); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(MemberExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(MemberExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MemberExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - MemberExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IndexExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct IndexExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for IndexExpression<'a> { - type Inner = IndexExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> VarBuilder<'a, 'b> { + let start = _fbb.start_table(); + VarBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) } } -} -impl<'a> IndexExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - IndexExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IndexExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IndexExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.index { builder.add_index(x); } - if let Some(x) = args.array { builder.add_array(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_index_type(args.index_type); - builder.add_array_type(args.array_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_ARRAY_TYPE: flatbuffers::VOffsetT = 6; - pub const VT_ARRAY: flatbuffers::VOffsetT = 8; - pub const VT_INDEX_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_INDEX: flatbuffers::VOffsetT = 12; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 14; - pub const VT_TYP: flatbuffers::VOffsetT = 16; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_LOC, None) - } - #[inline] - pub fn array_type(&self) -> Expression { - self._tab.get::(IndexExpression::VT_ARRAY_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn array(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_ARRAY, None) - } - #[inline] - pub fn index_type(&self) -> Expression { - self._tab.get::(IndexExpression::VT_INDEX_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn index(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_INDEX, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(IndexExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(IndexExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn array_as_string_expression(&self) -> Option> { - if self.array_type() == Expression::StringExpression { - self.array().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_array_expression(&self) -> Option> { - if self.array_type() == Expression::ArrayExpression { - self.array().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_function_expression(&self) -> Option> { - if self.array_type() == Expression::FunctionExpression { - self.array().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_binary_expression(&self) -> Option> { - if self.array_type() == Expression::BinaryExpression { - self.array().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_call_expression(&self) -> Option> { - if self.array_type() == Expression::CallExpression { - self.array().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_conditional_expression(&self) -> Option> { - if self.array_type() == Expression::ConditionalExpression { - self.array().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_identifier_expression(&self) -> Option> { - if self.array_type() == Expression::IdentifierExpression { - self.array().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_logical_expression(&self) -> Option> { - if self.array_type() == Expression::LogicalExpression { - self.array().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_member_expression(&self) -> Option> { - if self.array_type() == Expression::MemberExpression { - self.array().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_index_expression(&self) -> Option> { - if self.array_type() == Expression::IndexExpression { - self.array().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_object_expression(&self) -> Option> { - if self.array_type() == Expression::ObjectExpression { - self.array().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_unary_expression(&self) -> Option> { - if self.array_type() == Expression::UnaryExpression { - self.array().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_boolean_literal(&self) -> Option> { - if self.array_type() == Expression::BooleanLiteral { - self.array().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_date_time_literal(&self) -> Option> { - if self.array_type() == Expression::DateTimeLiteral { - self.array().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_duration_literal(&self) -> Option> { - if self.array_type() == Expression::DurationLiteral { - self.array().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_float_literal(&self) -> Option> { - if self.array_type() == Expression::FloatLiteral { - self.array().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_integer_literal(&self) -> Option> { - if self.array_type() == Expression::IntegerLiteral { - self.array().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_string_literal(&self) -> Option> { - if self.array_type() == Expression::StringLiteral { - self.array().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_regexp_literal(&self) -> Option> { - if self.array_type() == Expression::RegexpLiteral { - self.array().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn array_as_unsigned_integer_literal(&self) -> Option> { - if self.array_type() == Expression::UnsignedIntegerLiteral { - self.array().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_string_expression(&self) -> Option> { - if self.index_type() == Expression::StringExpression { - self.index().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_array_expression(&self) -> Option> { - if self.index_type() == Expression::ArrayExpression { - self.index().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_function_expression(&self) -> Option> { - if self.index_type() == Expression::FunctionExpression { - self.index().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_binary_expression(&self) -> Option> { - if self.index_type() == Expression::BinaryExpression { - self.index().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_call_expression(&self) -> Option> { - if self.index_type() == Expression::CallExpression { - self.index().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_conditional_expression(&self) -> Option> { - if self.index_type() == Expression::ConditionalExpression { - self.index().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_identifier_expression(&self) -> Option> { - if self.index_type() == Expression::IdentifierExpression { - self.index().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_logical_expression(&self) -> Option> { - if self.index_type() == Expression::LogicalExpression { - self.index().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_member_expression(&self) -> Option> { - if self.index_type() == Expression::MemberExpression { - self.index().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_index_expression(&self) -> Option> { - if self.index_type() == Expression::IndexExpression { - self.index().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_object_expression(&self) -> Option> { - if self.index_type() == Expression::ObjectExpression { - self.index().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_unary_expression(&self) -> Option> { - if self.index_type() == Expression::UnaryExpression { - self.index().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_boolean_literal(&self) -> Option> { - if self.index_type() == Expression::BooleanLiteral { - self.index().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_date_time_literal(&self) -> Option> { - if self.index_type() == Expression::DateTimeLiteral { - self.index().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_duration_literal(&self) -> Option> { - if self.index_type() == Expression::DurationLiteral { - self.index().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_float_literal(&self) -> Option> { - if self.index_type() == Expression::FloatLiteral { - self.index().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_integer_literal(&self) -> Option> { - if self.index_type() == Expression::IntegerLiteral { - self.index().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_string_literal(&self) -> Option> { - if self.index_type() == Expression::StringLiteral { - self.index().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_regexp_literal(&self) -> Option> { - if self.index_type() == Expression::RegexpLiteral { - self.index().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn index_as_unsigned_integer_literal(&self) -> Option> { - if self.index_type() == Expression::UnsignedIntegerLiteral { - self.index().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct IndexExpressionArgs<'a> { - pub loc: Option>>, - pub array_type: Expression, - pub array: Option>, - pub index_type: Expression, - pub index: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for IndexExpressionArgs<'a> { - #[inline] - fn default() -> Self { - IndexExpressionArgs { - loc: None, - array_type: Expression::NONE, - array: None, - index_type: Expression::NONE, - index: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct IndexExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IndexExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(IndexExpression::VT_LOC, loc); - } - #[inline] - pub fn add_array_type(&mut self, array_type: Expression) { - self.fbb_.push_slot::(IndexExpression::VT_ARRAY_TYPE, array_type, Expression::NONE); - } - #[inline] - pub fn add_array(&mut self, array: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IndexExpression::VT_ARRAY, array); - } - #[inline] - pub fn add_index_type(&mut self, index_type: Expression) { - self.fbb_.push_slot::(IndexExpression::VT_INDEX_TYPE, index_type, Expression::NONE); - } - #[inline] - pub fn add_index(&mut self, index: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IndexExpression::VT_INDEX, index); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(IndexExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IndexExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IndexExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - IndexExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum ObjectExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct ObjectExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for ObjectExpression<'a> { - type Inner = ObjectExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub enum BasicOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Basic<'a> { + pub _tab: flatbuffers::Table<'a>, } -} -impl<'a> ObjectExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - ObjectExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args ObjectExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = ObjectExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.properties { builder.add_properties(x); } - if let Some(x) = args.with { builder.add_with(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_WITH: flatbuffers::VOffsetT = 6; - pub const VT_PROPERTIES: flatbuffers::VOffsetT = 8; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 10; - pub const VT_TYP: flatbuffers::VOffsetT = 12; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(ObjectExpression::VT_LOC, None) - } - #[inline] - pub fn with(&self) -> Option> { - self._tab.get::>>(ObjectExpression::VT_WITH, None) - } - #[inline] - pub fn properties(&self) -> Option>>> { - self._tab.get::>>>>(ObjectExpression::VT_PROPERTIES, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(ObjectExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(ObjectExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct ObjectExpressionArgs<'a> { - pub loc: Option>>, - pub with: Option>>, - pub properties: Option>>>>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for ObjectExpressionArgs<'a> { - #[inline] - fn default() -> Self { - ObjectExpressionArgs { - loc: None, - with: None, - properties: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct ObjectExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> ObjectExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_LOC, loc); - } - #[inline] - pub fn add_with(&mut self, with: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_WITH, with); - } - #[inline] - pub fn add_properties(&mut self, properties: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_PROPERTIES, properties); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(ObjectExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(ObjectExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ObjectExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - ObjectExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum UnaryExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct UnaryExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for UnaryExpression<'a> { - type Inner = UnaryExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for Basic<'a> { + type Inner = Basic<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> UnaryExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - UnaryExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args UnaryExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = UnaryExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.argument { builder.add_argument(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_argument_type(args.argument_type); - builder.add_operator(args.operator); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; - pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_ARGUMENT: flatbuffers::VOffsetT = 10; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; - pub const VT_TYP: flatbuffers::VOffsetT = 14; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(UnaryExpression::VT_LOC, None) - } - #[inline] - pub fn operator(&self) -> Operator { - self._tab.get::(UnaryExpression::VT_OPERATOR, Some(Operator::MultiplicationOperator)).unwrap() - } - #[inline] - pub fn argument_type(&self) -> Expression { - self._tab.get::(UnaryExpression::VT_ARGUMENT_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn argument(&self) -> Option> { - self._tab.get::>>(UnaryExpression::VT_ARGUMENT, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(UnaryExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(UnaryExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_expression(&self) -> Option> { - if self.argument_type() == Expression::StringExpression { - self.argument().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_array_expression(&self) -> Option> { - if self.argument_type() == Expression::ArrayExpression { - self.argument().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_function_expression(&self) -> Option> { - if self.argument_type() == Expression::FunctionExpression { - self.argument().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_binary_expression(&self) -> Option> { - if self.argument_type() == Expression::BinaryExpression { - self.argument().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_call_expression(&self) -> Option> { - if self.argument_type() == Expression::CallExpression { - self.argument().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_conditional_expression(&self) -> Option> { - if self.argument_type() == Expression::ConditionalExpression { - self.argument().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_identifier_expression(&self) -> Option> { - if self.argument_type() == Expression::IdentifierExpression { - self.argument().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_logical_expression(&self) -> Option> { - if self.argument_type() == Expression::LogicalExpression { - self.argument().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_member_expression(&self) -> Option> { - if self.argument_type() == Expression::MemberExpression { - self.argument().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_index_expression(&self) -> Option> { - if self.argument_type() == Expression::IndexExpression { - self.argument().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_object_expression(&self) -> Option> { - if self.argument_type() == Expression::ObjectExpression { - self.argument().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unary_expression(&self) -> Option> { - if self.argument_type() == Expression::UnaryExpression { - self.argument().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_boolean_literal(&self) -> Option> { - if self.argument_type() == Expression::BooleanLiteral { - self.argument().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_date_time_literal(&self) -> Option> { - if self.argument_type() == Expression::DateTimeLiteral { - self.argument().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_duration_literal(&self) -> Option> { - if self.argument_type() == Expression::DurationLiteral { - self.argument().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_float_literal(&self) -> Option> { - if self.argument_type() == Expression::FloatLiteral { - self.argument().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::IntegerLiteral { - self.argument().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_string_literal(&self) -> Option> { - if self.argument_type() == Expression::StringLiteral { - self.argument().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_regexp_literal(&self) -> Option> { - if self.argument_type() == Expression::RegexpLiteral { - self.argument().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn argument_as_unsigned_integer_literal(&self) -> Option> { - if self.argument_type() == Expression::UnsignedIntegerLiteral { - self.argument().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct UnaryExpressionArgs<'a> { - pub loc: Option>>, - pub operator: Operator, - pub argument_type: Expression, - pub argument: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for UnaryExpressionArgs<'a> { - #[inline] - fn default() -> Self { - UnaryExpressionArgs { - loc: None, - operator: Operator::MultiplicationOperator, - argument_type: Expression::NONE, - argument: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct UnaryExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> UnaryExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(UnaryExpression::VT_LOC, loc); - } - #[inline] - pub fn add_operator(&mut self, operator: Operator) { - self.fbb_.push_slot::(UnaryExpression::VT_OPERATOR, operator, Operator::MultiplicationOperator); - } - #[inline] - pub fn add_argument_type(&mut self, argument_type: Expression) { - self.fbb_.push_slot::(UnaryExpression::VT_ARGUMENT_TYPE, argument_type, Expression::NONE); - } - #[inline] - pub fn add_argument(&mut self, argument: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(UnaryExpression::VT_ARGUMENT, argument); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(UnaryExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(UnaryExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UnaryExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - UnaryExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum PropertyOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Property<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Property<'a> { - type Inner = Property<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> Basic<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Basic { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BasicArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = BasicBuilder::new(_fbb); + builder.add_t(args.t); + builder.finish() } - } -} -impl<'a> Property<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Property { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args PropertyArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = PropertyBuilder::new(_fbb); - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.key { builder.add_key(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_value_type(args.value_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_KEY: flatbuffers::VOffsetT = 6; - pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_VALUE: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(Property::VT_LOC, None) - } - #[inline] - pub fn key(&self) -> Option> { - self._tab.get::>>(Property::VT_KEY, None) - } - #[inline] - pub fn value_type(&self) -> Expression { - self._tab.get::(Property::VT_VALUE_TYPE, Some(Expression::NONE)).unwrap() - } - #[inline] - pub fn value(&self) -> Option> { - self._tab.get::>>(Property::VT_VALUE, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn value_as_string_expression(&self) -> Option> { - if self.value_type() == Expression::StringExpression { - self.value().map(|u| StringExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_array_expression(&self) -> Option> { - if self.value_type() == Expression::ArrayExpression { - self.value().map(|u| ArrayExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_function_expression(&self) -> Option> { - if self.value_type() == Expression::FunctionExpression { - self.value().map(|u| FunctionExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_binary_expression(&self) -> Option> { - if self.value_type() == Expression::BinaryExpression { - self.value().map(|u| BinaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_call_expression(&self) -> Option> { - if self.value_type() == Expression::CallExpression { - self.value().map(|u| CallExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_conditional_expression(&self) -> Option> { - if self.value_type() == Expression::ConditionalExpression { - self.value().map(|u| ConditionalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_identifier_expression(&self) -> Option> { - if self.value_type() == Expression::IdentifierExpression { - self.value().map(|u| IdentifierExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_logical_expression(&self) -> Option> { - if self.value_type() == Expression::LogicalExpression { - self.value().map(|u| LogicalExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_member_expression(&self) -> Option> { - if self.value_type() == Expression::MemberExpression { - self.value().map(|u| MemberExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_index_expression(&self) -> Option> { - if self.value_type() == Expression::IndexExpression { - self.value().map(|u| IndexExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_object_expression(&self) -> Option> { - if self.value_type() == Expression::ObjectExpression { - self.value().map(|u| ObjectExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_unary_expression(&self) -> Option> { - if self.value_type() == Expression::UnaryExpression { - self.value().map(|u| UnaryExpression::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_boolean_literal(&self) -> Option> { - if self.value_type() == Expression::BooleanLiteral { - self.value().map(|u| BooleanLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_date_time_literal(&self) -> Option> { - if self.value_type() == Expression::DateTimeLiteral { - self.value().map(|u| DateTimeLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_duration_literal(&self) -> Option> { - if self.value_type() == Expression::DurationLiteral { - self.value().map(|u| DurationLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_float_literal(&self) -> Option> { - if self.value_type() == Expression::FloatLiteral { - self.value().map(|u| FloatLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_integer_literal(&self) -> Option> { - if self.value_type() == Expression::IntegerLiteral { - self.value().map(|u| IntegerLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_string_literal(&self) -> Option> { - if self.value_type() == Expression::StringLiteral { - self.value().map(|u| StringLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_regexp_literal(&self) -> Option> { - if self.value_type() == Expression::RegexpLiteral { - self.value().map(|u| RegexpLiteral::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn value_as_unsigned_integer_literal(&self) -> Option> { - if self.value_type() == Expression::UnsignedIntegerLiteral { - self.value().map(|u| UnsignedIntegerLiteral::init_from_table(u)) - } else { - None - } - } - -} - -pub struct PropertyArgs<'a> { - pub loc: Option>>, - pub key: Option>>, - pub value_type: Expression, - pub value: Option>, -} -impl<'a> Default for PropertyArgs<'a> { - #[inline] - fn default() -> Self { - PropertyArgs { - loc: None, - key: None, - value_type: Expression::NONE, - value: None, - } - } -} -pub struct PropertyBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> PropertyBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Property::VT_LOC, loc); - } - #[inline] - pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Property::VT_KEY, key); - } - #[inline] - pub fn add_value_type(&mut self, value_type: Expression) { - self.fbb_.push_slot::(Property::VT_VALUE_TYPE, value_type, Expression::NONE); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(Property::VT_VALUE, value); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropertyBuilder<'a, 'b> { - let start = _fbb.start_table(); - PropertyBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IdentifierExpressionOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct IdentifierExpression<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for IdentifierExpression<'a> { - type Inner = IdentifierExpression<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub const VT_T: flatbuffers::VOffsetT = 4; + + #[inline] + pub fn t(&self) -> Type { + self._tab + .get::(Basic::VT_T, Some(Type::Bool)) + .unwrap() } } -} -impl<'a> IdentifierExpression<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - IdentifierExpression { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IdentifierExpressionArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IdentifierExpressionBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(IdentifierExpression::VT_LOC, None) - } - #[inline] - pub fn name(&self) -> Option<&'a str> { - self._tab.get::>(IdentifierExpression::VT_NAME, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(IdentifierExpression::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(IdentifierExpression::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct IdentifierExpressionArgs<'a> { - pub loc: Option>>, - pub name: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for IdentifierExpressionArgs<'a> { - #[inline] - fn default() -> Self { - IdentifierExpressionArgs { - loc: None, - name: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct IdentifierExpressionBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IdentifierExpressionBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(IdentifierExpression::VT_LOC, loc); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(IdentifierExpression::VT_NAME, name); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(IdentifierExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IdentifierExpression::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierExpressionBuilder<'a, 'b> { - let start = _fbb.start_table(); - IdentifierExpressionBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IdentifierOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Identifier<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Identifier<'a> { - type Inner = Identifier<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub struct BasicArgs { + pub t: Type, + } + impl<'a> Default for BasicArgs { + #[inline] + fn default() -> Self { + BasicArgs { t: Type::Bool } } } -} - -impl<'a> Identifier<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Identifier { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IdentifierArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IdentifierBuilder::new(_fbb); - if let Some(x) = args.name { builder.add_name(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_NAME: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(Identifier::VT_LOC, None) - } - #[inline] - pub fn name(&self) -> Option<&'a str> { - self._tab.get::>(Identifier::VT_NAME, None) - } -} - -pub struct IdentifierArgs<'a> { - pub loc: Option>>, - pub name: Option>, -} -impl<'a> Default for IdentifierArgs<'a> { - #[inline] - fn default() -> Self { - IdentifierArgs { - loc: None, - name: None, - } - } -} -pub struct IdentifierBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IdentifierBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(Identifier::VT_LOC, loc); - } - #[inline] - pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(Identifier::VT_NAME, name); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierBuilder<'a, 'b> { - let start = _fbb.start_table(); - IdentifierBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum BooleanLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct BooleanLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for BooleanLiteral<'a> { - type Inner = BooleanLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + pub struct BasicBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BasicBuilder<'a, 'b> { + #[inline] + pub fn add_t(&mut self, t: Type) { + self.fbb_.push_slot::(Basic::VT_T, t, Type::Bool); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BasicBuilder<'a, 'b> { + let start = _fbb.start_table(); + BasicBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) } } -} -impl<'a> BooleanLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - BooleanLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args BooleanLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = BooleanLiteralBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.add_value(args.value); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(BooleanLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> bool { - self._tab.get::(BooleanLiteral::VT_VALUE, Some(false)).unwrap() - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(BooleanLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(BooleanLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct BooleanLiteralArgs<'a> { - pub loc: Option>>, - pub value: bool, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for BooleanLiteralArgs<'a> { - #[inline] - fn default() -> Self { - BooleanLiteralArgs { - loc: None, - value: false, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct BooleanLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> BooleanLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(BooleanLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: bool) { - self.fbb_.push_slot::(BooleanLiteral::VT_VALUE, value, false); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(BooleanLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(BooleanLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BooleanLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - BooleanLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum DateTimeLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct DateTimeLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for DateTimeLiteral<'a> { - type Inner = DateTimeLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub enum ArrOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Arr<'a> { + pub _tab: flatbuffers::Table<'a>, } -} -impl<'a> DateTimeLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - DateTimeLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DateTimeLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = DateTimeLiteralBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(DateTimeLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> Option> { - self._tab.get::>>(DateTimeLiteral::VT_VALUE, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(DateTimeLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(DateTimeLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct DateTimeLiteralArgs<'a> { - pub loc: Option>>, - pub value: Option>>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for DateTimeLiteralArgs<'a> { - #[inline] - fn default() -> Self { - DateTimeLiteralArgs { - loc: None, - value: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct DateTimeLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> DateTimeLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(DateTimeLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(DateTimeLiteral::VT_VALUE, value); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(DateTimeLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(DateTimeLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DateTimeLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - DateTimeLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum TimeOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Time<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Time<'a> { - type Inner = Time<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> flatbuffers::Follow<'a> for Arr<'a> { + type Inner = Arr<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> Time<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Time { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args TimeArgs) -> flatbuffers::WIPOffset> { - let mut builder = TimeBuilder::new(_fbb); - builder.add_secs(args.secs); - builder.add_offset(args.offset); - builder.add_nsecs(args.nsecs); - builder.finish() - } - - pub const VT_SECS: flatbuffers::VOffsetT = 4; - pub const VT_NSECS: flatbuffers::VOffsetT = 6; - pub const VT_OFFSET: flatbuffers::VOffsetT = 8; - - #[inline] - pub fn secs(&self) -> i64 { - self._tab.get::(Time::VT_SECS, Some(0)).unwrap() - } - #[inline] - pub fn nsecs(&self) -> u32 { - self._tab.get::(Time::VT_NSECS, Some(0)).unwrap() - } - #[inline] - pub fn offset(&self) -> i32 { - self._tab.get::(Time::VT_OFFSET, Some(0)).unwrap() - } -} - -pub struct TimeArgs { - pub secs: i64, - pub nsecs: u32, - pub offset: i32, -} -impl<'a> Default for TimeArgs { - #[inline] - fn default() -> Self { - TimeArgs { - secs: 0, - nsecs: 0, - offset: 0, - } - } -} -pub struct TimeBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> TimeBuilder<'a, 'b> { - #[inline] - pub fn add_secs(&mut self, secs: i64) { - self.fbb_.push_slot::(Time::VT_SECS, secs, 0); - } - #[inline] - pub fn add_nsecs(&mut self, nsecs: u32) { - self.fbb_.push_slot::(Time::VT_NSECS, nsecs, 0); - } - #[inline] - pub fn add_offset(&mut self, offset: i32) { - self.fbb_.push_slot::(Time::VT_OFFSET, offset, 0); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TimeBuilder<'a, 'b> { - let start = _fbb.start_table(); - TimeBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum DurationLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct DurationLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for DurationLiteral<'a> { - type Inner = DurationLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> Arr<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Arr { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ArrArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = ArrBuilder::new(_fbb); + if let Some(x) = args.t { + builder.add_t(x); + } + builder.add_t_type(args.t_type); + builder.finish() + } + + pub const VT_T_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_T: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn t_type(&self) -> MonoType { + self._tab + .get::(Arr::VT_T_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn t(&self) -> Option> { + self._tab + .get::>>(Arr::VT_T, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn t_as_basic(&self) -> Option> { + if self.t_type() == MonoType::Basic { + self.t().map(|u| Basic::init_from_table(u)) + } else { + None + } } - } -} -impl<'a> DurationLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - DurationLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DurationLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = DurationLiteralBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(DurationLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> Option>>> { - self._tab.get::>>>>(DurationLiteral::VT_VALUE, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(DurationLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(DurationLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct DurationLiteralArgs<'a> { - pub loc: Option>>, - pub value: Option>>>>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for DurationLiteralArgs<'a> { - #[inline] - fn default() -> Self { - DurationLiteralArgs { - loc: None, - value: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct DurationLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> DurationLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(DurationLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset>>>) { - self.fbb_.push_slot_always::>(DurationLiteral::VT_VALUE, value); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(DurationLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(DurationLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - DurationLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum DurationOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct Duration<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for Duration<'a> { - type Inner = Duration<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + #[inline] + #[allow(non_snake_case)] + pub fn t_as_var(&self) -> Option> { + if self.t_type() == MonoType::Var { + self.t().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_arr(&self) -> Option> { + if self.t_type() == MonoType::Arr { + self.t().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_row(&self) -> Option> { + if self.t_type() == MonoType::Row { + self.t().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_fun(&self) -> Option> { + if self.t_type() == MonoType::Fun { + self.t().map(|u| Fun::init_from_table(u)) + } else { + None + } } } -} - -impl<'a> Duration<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - Duration { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args DurationArgs) -> flatbuffers::WIPOffset> { - let mut builder = DurationBuilder::new(_fbb); - builder.add_magnitude(args.magnitude); - builder.add_unit(args.unit); - builder.finish() - } - - pub const VT_MAGNITUDE: flatbuffers::VOffsetT = 4; - pub const VT_UNIT: flatbuffers::VOffsetT = 6; - - #[inline] - pub fn magnitude(&self) -> i64 { - self._tab.get::(Duration::VT_MAGNITUDE, Some(0)).unwrap() - } - #[inline] - pub fn unit(&self) -> TimeUnit { - self._tab.get::(Duration::VT_UNIT, Some(TimeUnit::y)).unwrap() - } -} - -pub struct DurationArgs { - pub magnitude: i64, - pub unit: TimeUnit, -} -impl<'a> Default for DurationArgs { - #[inline] - fn default() -> Self { - DurationArgs { - magnitude: 0, - unit: TimeUnit::y, - } - } -} -pub struct DurationBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> DurationBuilder<'a, 'b> { - #[inline] - pub fn add_magnitude(&mut self, magnitude: i64) { - self.fbb_.push_slot::(Duration::VT_MAGNITUDE, magnitude, 0); - } - #[inline] - pub fn add_unit(&mut self, unit: TimeUnit) { - self.fbb_.push_slot::(Duration::VT_UNIT, unit, TimeUnit::y); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationBuilder<'a, 'b> { - let start = _fbb.start_table(); - DurationBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum IntegerLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct IntegerLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for IntegerLiteral<'a> { - type Inner = IntegerLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + + pub struct ArrArgs { + pub t_type: MonoType, + pub t: Option>, + } + impl<'a> Default for ArrArgs { + #[inline] + fn default() -> Self { + ArrArgs { + t_type: MonoType::NONE, + t: None, + } + } + } + pub struct ArrBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ArrBuilder<'a, 'b> { + #[inline] + pub fn add_t_type(&mut self, t_type: MonoType) { + self.fbb_ + .push_slot::(Arr::VT_T_TYPE, t_type, MonoType::NONE); + } + #[inline] + pub fn add_t(&mut self, t: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Arr::VT_T, t); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArrBuilder<'a, 'b> { + let start = _fbb.start_table(); + ArrBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum RowOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Row<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Row<'a> { + type Inner = Row<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Row<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Row { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args RowArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = RowBuilder::new(_fbb); + if let Some(x) = args.extends { + builder.add_extends(x); + } + if let Some(x) = args.props { + builder.add_props(x); + } + builder.finish() + } + + pub const VT_PROPS: flatbuffers::VOffsetT = 4; + pub const VT_EXTENDS: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn props( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(Row::VT_PROPS, None) + } + #[inline] + pub fn extends(&self) -> Option> { + self._tab + .get::>>(Row::VT_EXTENDS, None) + } + } + + pub struct RowArgs<'a> { + pub props: Option< + flatbuffers::WIPOffset>>>, + >, + pub extends: Option>>, + } + impl<'a> Default for RowArgs<'a> { + #[inline] + fn default() -> Self { + RowArgs { + props: None, + extends: None, + } + } + } + pub struct RowBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> RowBuilder<'a, 'b> { + #[inline] + pub fn add_props( + &mut self, + props: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(Row::VT_PROPS, props); + } + #[inline] + pub fn add_extends(&mut self, extends: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(Row::VT_EXTENDS, extends); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RowBuilder<'a, 'b> { + let start = _fbb.start_table(); + RowBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FunOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Fun<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Fun<'a> { + type Inner = Fun<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Fun<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Fun { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FunArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FunBuilder::new(_fbb); + if let Some(x) = args.retn { + builder.add_retn(x); + } + if let Some(x) = args.args { + builder.add_args(x); + } + builder.add_retn_type(args.retn_type); + builder.finish() + } + + pub const VT_ARGS: flatbuffers::VOffsetT = 4; + pub const VT_RETN_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_RETN: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn args( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(Fun::VT_ARGS, None) + } + #[inline] + pub fn retn_type(&self) -> MonoType { + self._tab + .get::(Fun::VT_RETN_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn retn(&self) -> Option> { + self._tab + .get::>>(Fun::VT_RETN, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_basic(&self) -> Option> { + if self.retn_type() == MonoType::Basic { + self.retn().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_var(&self) -> Option> { + if self.retn_type() == MonoType::Var { + self.retn().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_arr(&self) -> Option> { + if self.retn_type() == MonoType::Arr { + self.retn().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_row(&self) -> Option> { + if self.retn_type() == MonoType::Row { + self.retn().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn retn_as_fun(&self) -> Option> { + if self.retn_type() == MonoType::Fun { + self.retn().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct FunArgs<'a> { + pub args: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub retn_type: MonoType, + pub retn: Option>, + } + impl<'a> Default for FunArgs<'a> { + #[inline] + fn default() -> Self { + FunArgs { + args: None, + retn_type: MonoType::NONE, + retn: None, + } + } + } + pub struct FunBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FunBuilder<'a, 'b> { + #[inline] + pub fn add_args( + &mut self, + args: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(Fun::VT_ARGS, args); + } + #[inline] + pub fn add_retn_type(&mut self, retn_type: MonoType) { + self.fbb_ + .push_slot::(Fun::VT_RETN_TYPE, retn_type, MonoType::NONE); + } + #[inline] + pub fn add_retn(&mut self, retn: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Fun::VT_RETN, retn); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FunBuilder<'a, 'b> { + let start = _fbb.start_table(); + FunBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ArgumentOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Argument<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Argument<'a> { + type Inner = Argument<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Argument<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Argument { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ArgumentArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ArgumentBuilder::new(_fbb); + if let Some(x) = args.t { + builder.add_t(x); + } + if let Some(x) = args.name { + builder.add_name(x); + } + builder.add_optional(args.optional); + builder.add_pipe(args.pipe); + builder.add_t_type(args.t_type); + builder.finish() + } + + pub const VT_NAME: flatbuffers::VOffsetT = 4; + pub const VT_T_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_T: flatbuffers::VOffsetT = 8; + pub const VT_PIPE: flatbuffers::VOffsetT = 10; + pub const VT_OPTIONAL: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab + .get::>(Argument::VT_NAME, None) + } + #[inline] + pub fn t_type(&self) -> MonoType { + self._tab + .get::(Argument::VT_T_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn t(&self) -> Option> { + self._tab + .get::>>(Argument::VT_T, None) + } + #[inline] + pub fn pipe(&self) -> bool { + self._tab + .get::(Argument::VT_PIPE, Some(false)) + .unwrap() + } + #[inline] + pub fn optional(&self) -> bool { + self._tab + .get::(Argument::VT_OPTIONAL, Some(false)) + .unwrap() + } + #[inline] + #[allow(non_snake_case)] + pub fn t_as_basic(&self) -> Option> { + if self.t_type() == MonoType::Basic { + self.t().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_var(&self) -> Option> { + if self.t_type() == MonoType::Var { + self.t().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_arr(&self) -> Option> { + if self.t_type() == MonoType::Arr { + self.t().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_row(&self) -> Option> { + if self.t_type() == MonoType::Row { + self.t().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn t_as_fun(&self) -> Option> { + if self.t_type() == MonoType::Fun { + self.t().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct ArgumentArgs<'a> { + pub name: Option>, + pub t_type: MonoType, + pub t: Option>, + pub pipe: bool, + pub optional: bool, + } + impl<'a> Default for ArgumentArgs<'a> { + #[inline] + fn default() -> Self { + ArgumentArgs { + name: None, + t_type: MonoType::NONE, + t: None, + pipe: false, + optional: false, + } + } + } + pub struct ArgumentBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ArgumentBuilder<'a, 'b> { + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Argument::VT_NAME, name); + } + #[inline] + pub fn add_t_type(&mut self, t_type: MonoType) { + self.fbb_ + .push_slot::(Argument::VT_T_TYPE, t_type, MonoType::NONE); + } + #[inline] + pub fn add_t(&mut self, t: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Argument::VT_T, t); + } + #[inline] + pub fn add_pipe(&mut self, pipe: bool) { + self.fbb_.push_slot::(Argument::VT_PIPE, pipe, false); + } + #[inline] + pub fn add_optional(&mut self, optional: bool) { + self.fbb_ + .push_slot::(Argument::VT_OPTIONAL, optional, false); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ArgumentBuilder<'a, 'b> { + let start = _fbb.start_table(); + ArgumentBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PropOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Prop<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Prop<'a> { + type Inner = Prop<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Prop<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Prop { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PropArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PropBuilder::new(_fbb); + if let Some(x) = args.v { + builder.add_v(x); + } + if let Some(x) = args.k { + builder.add_k(x); + } + builder.add_v_type(args.v_type); + builder.finish() + } + + pub const VT_K: flatbuffers::VOffsetT = 4; + pub const VT_V_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_V: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn k(&self) -> Option<&'a str> { + self._tab + .get::>(Prop::VT_K, None) + } + #[inline] + pub fn v_type(&self) -> MonoType { + self._tab + .get::(Prop::VT_V_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn v(&self) -> Option> { + self._tab + .get::>>(Prop::VT_V, None) + } + #[inline] + #[allow(non_snake_case)] + pub fn v_as_basic(&self) -> Option> { + if self.v_type() == MonoType::Basic { + self.v().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_var(&self) -> Option> { + if self.v_type() == MonoType::Var { + self.v().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_arr(&self) -> Option> { + if self.v_type() == MonoType::Arr { + self.v().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_row(&self) -> Option> { + if self.v_type() == MonoType::Row { + self.v().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn v_as_fun(&self) -> Option> { + if self.v_type() == MonoType::Fun { + self.v().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct PropArgs<'a> { + pub k: Option>, + pub v_type: MonoType, + pub v: Option>, + } + impl<'a> Default for PropArgs<'a> { + #[inline] + fn default() -> Self { + PropArgs { + k: None, + v_type: MonoType::NONE, + v: None, + } + } + } + pub struct PropBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PropBuilder<'a, 'b> { + #[inline] + pub fn add_k(&mut self, k: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Prop::VT_K, k); + } + #[inline] + pub fn add_v_type(&mut self, v_type: MonoType) { + self.fbb_ + .push_slot::(Prop::VT_V_TYPE, v_type, MonoType::NONE); + } + #[inline] + pub fn add_v(&mut self, v: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Prop::VT_V, v); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropBuilder<'a, 'b> { + let start = _fbb.start_table(); + PropBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PolyTypeOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct PolyType<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for PolyType<'a> { + type Inner = PolyType<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> PolyType<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PolyType { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PolyTypeArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PolyTypeBuilder::new(_fbb); + if let Some(x) = args.expr { + builder.add_expr(x); + } + if let Some(x) = args.cons { + builder.add_cons(x); + } + if let Some(x) = args.vars { + builder.add_vars(x); + } + builder.add_expr_type(args.expr_type); + builder.finish() + } + + pub const VT_VARS: flatbuffers::VOffsetT = 4; + pub const VT_CONS: flatbuffers::VOffsetT = 6; + pub const VT_EXPR_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_EXPR: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn vars( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(PolyType::VT_VARS, None) + } + #[inline] + pub fn cons( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(PolyType::VT_CONS, None) + } + #[inline] + pub fn expr_type(&self) -> MonoType { + self._tab + .get::(PolyType::VT_EXPR_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn expr(&self) -> Option> { + self._tab + .get::>>( + PolyType::VT_EXPR, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_basic(&self) -> Option> { + if self.expr_type() == MonoType::Basic { + self.expr().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_var(&self) -> Option> { + if self.expr_type() == MonoType::Var { + self.expr().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_arr(&self) -> Option> { + if self.expr_type() == MonoType::Arr { + self.expr().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_row(&self) -> Option> { + if self.expr_type() == MonoType::Row { + self.expr().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expr_as_fun(&self) -> Option> { + if self.expr_type() == MonoType::Fun { + self.expr().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct PolyTypeArgs<'a> { + pub vars: Option< + flatbuffers::WIPOffset>>>, + >, + pub cons: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub expr_type: MonoType, + pub expr: Option>, + } + impl<'a> Default for PolyTypeArgs<'a> { + #[inline] + fn default() -> Self { + PolyTypeArgs { + vars: None, + cons: None, + expr_type: MonoType::NONE, + expr: None, + } + } + } + pub struct PolyTypeBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PolyTypeBuilder<'a, 'b> { + #[inline] + pub fn add_vars( + &mut self, + vars: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(PolyType::VT_VARS, vars); + } + #[inline] + pub fn add_cons( + &mut self, + cons: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(PolyType::VT_CONS, cons); + } + #[inline] + pub fn add_expr_type(&mut self, expr_type: MonoType) { + self.fbb_ + .push_slot::(PolyType::VT_EXPR_TYPE, expr_type, MonoType::NONE); + } + #[inline] + pub fn add_expr(&mut self, expr: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(PolyType::VT_EXPR, expr); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PolyTypeBuilder<'a, 'b> { + let start = _fbb.start_table(); + PolyTypeBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ConstraintOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Constraint<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Constraint<'a> { + type Inner = Constraint<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Constraint<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Constraint { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ConstraintArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ConstraintBuilder::new(_fbb); + if let Some(x) = args.tvar { + builder.add_tvar(x); + } + builder.add_kind(args.kind); + builder.finish() + } + + pub const VT_TVAR: flatbuffers::VOffsetT = 4; + pub const VT_KIND: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn tvar(&self) -> Option> { + self._tab + .get::>>(Constraint::VT_TVAR, None) + } + #[inline] + pub fn kind(&self) -> Kind { + self._tab + .get::(Constraint::VT_KIND, Some(Kind::Addable)) + .unwrap() + } + } + + pub struct ConstraintArgs<'a> { + pub tvar: Option>>, + pub kind: Kind, + } + impl<'a> Default for ConstraintArgs<'a> { + #[inline] + fn default() -> Self { + ConstraintArgs { + tvar: None, + kind: Kind::Addable, + } + } + } + pub struct ConstraintBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ConstraintBuilder<'a, 'b> { + #[inline] + pub fn add_tvar(&mut self, tvar: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(Constraint::VT_TVAR, tvar); + } + #[inline] + pub fn add_kind(&mut self, kind: Kind) { + self.fbb_ + .push_slot::(Constraint::VT_KIND, kind, Kind::Addable); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ConstraintBuilder<'a, 'b> { + let start = _fbb.start_table(); + ConstraintBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PackageOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Package<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Package<'a> { + type Inner = Package<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Package<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Package { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PackageArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PackageBuilder::new(_fbb); + if let Some(x) = args.files { + builder.add_files(x); + } + if let Some(x) = args.package { + builder.add_package(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; + pub const VT_FILES: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(Package::VT_LOC, None) + } + #[inline] + pub fn package(&self) -> Option<&'a str> { + self._tab + .get::>(Package::VT_PACKAGE, None) + } + #[inline] + pub fn files( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(Package::VT_FILES, None) + } + } + + pub struct PackageArgs<'a> { + pub loc: Option>>, + pub package: Option>, + pub files: Option< + flatbuffers::WIPOffset>>>, + >, + } + impl<'a> Default for PackageArgs<'a> { + #[inline] + fn default() -> Self { + PackageArgs { + loc: None, + package: None, + files: None, + } + } + } + pub struct PackageBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PackageBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(Package::VT_LOC, loc); + } + #[inline] + pub fn add_package(&mut self, package: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Package::VT_PACKAGE, package); + } + #[inline] + pub fn add_files( + &mut self, + files: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(Package::VT_FILES, files); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PackageBuilder<'a, 'b> { + let start = _fbb.start_table(); + PackageBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FileOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct File<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for File<'a> { + type Inner = File<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> File<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + File { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FileArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FileBuilder::new(_fbb); + if let Some(x) = args.body { + builder.add_body(x); + } + if let Some(x) = args.imports { + builder.add_imports(x); + } + if let Some(x) = args.package { + builder.add_package(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_PACKAGE: flatbuffers::VOffsetT = 6; + pub const VT_IMPORTS: flatbuffers::VOffsetT = 8; + pub const VT_BODY: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(File::VT_LOC, None) + } + #[inline] + pub fn package(&self) -> Option> { + self._tab + .get::>>(File::VT_PACKAGE, None) + } + #[inline] + pub fn imports( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(File::VT_IMPORTS, None) + } + #[inline] + pub fn body( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(File::VT_BODY, None) + } + } + + pub struct FileArgs<'a> { + pub loc: Option>>, + pub package: Option>>, + pub imports: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub body: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for FileArgs<'a> { + #[inline] + fn default() -> Self { + FileArgs { + loc: None, + package: None, + imports: None, + body: None, + } + } + } + pub struct FileBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FileBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(File::VT_LOC, loc); + } + #[inline] + pub fn add_package(&mut self, package: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + File::VT_PACKAGE, + package, + ); + } + #[inline] + pub fn add_imports( + &mut self, + imports: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(File::VT_IMPORTS, imports); + } + #[inline] + pub fn add_body( + &mut self, + body: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(File::VT_BODY, body); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FileBuilder<'a, 'b> { + let start = _fbb.start_table(); + FileBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PackageClauseOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct PackageClause<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for PackageClause<'a> { + type Inner = PackageClause<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> PackageClause<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PackageClause { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PackageClauseArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PackageClauseBuilder::new(_fbb); + if let Some(x) = args.name { + builder.add_name(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + PackageClause::VT_LOC, + None, + ) + } + #[inline] + pub fn name(&self) -> Option> { + self._tab + .get::>>(PackageClause::VT_NAME, None) + } + } + + pub struct PackageClauseArgs<'a> { + pub loc: Option>>, + pub name: Option>>, + } + impl<'a> Default for PackageClauseArgs<'a> { + #[inline] + fn default() -> Self { + PackageClauseArgs { + loc: None, + name: None, + } + } + } + pub struct PackageClauseBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PackageClauseBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PackageClause::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + PackageClause::VT_NAME, + name, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> PackageClauseBuilder<'a, 'b> { + let start = _fbb.start_table(); + PackageClauseBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ImportDeclarationOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ImportDeclaration<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ImportDeclaration<'a> { + type Inner = ImportDeclaration<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ImportDeclaration<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ImportDeclaration { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ImportDeclarationArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ImportDeclarationBuilder::new(_fbb); + if let Some(x) = args.path { + builder.add_path(x); + } + if let Some(x) = args.alias { + builder.add_alias(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ALIAS: flatbuffers::VOffsetT = 6; + pub const VT_PATH: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + ImportDeclaration::VT_LOC, + None, + ) + } + #[inline] + pub fn alias(&self) -> Option> { + self._tab + .get::>>( + ImportDeclaration::VT_ALIAS, + None, + ) + } + #[inline] + pub fn path(&self) -> Option> { + self._tab + .get::>>( + ImportDeclaration::VT_PATH, + None, + ) + } + } + + pub struct ImportDeclarationArgs<'a> { + pub loc: Option>>, + pub alias: Option>>, + pub path: Option>>, + } + impl<'a> Default for ImportDeclarationArgs<'a> { + #[inline] + fn default() -> Self { + ImportDeclarationArgs { + loc: None, + alias: None, + path: None, + } + } + } + pub struct ImportDeclarationBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ImportDeclarationBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ImportDeclaration::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_alias(&mut self, alias: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ImportDeclaration::VT_ALIAS, + alias, + ); + } + #[inline] + pub fn add_path(&mut self, path: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ImportDeclaration::VT_PATH, + path, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ImportDeclarationBuilder<'a, 'b> { + let start = _fbb.start_table(); + ImportDeclarationBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BlockOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Block<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Block<'a> { + type Inner = Block<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Block<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Block { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BlockArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BlockBuilder::new(_fbb); + if let Some(x) = args.body { + builder.add_body(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_BODY: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(Block::VT_LOC, None) + } + #[inline] + pub fn body( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(Block::VT_BODY, None) + } + } + + pub struct BlockArgs<'a> { + pub loc: Option>>, + pub body: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + } + impl<'a> Default for BlockArgs<'a> { + #[inline] + fn default() -> Self { + BlockArgs { + loc: None, + body: None, + } + } + } + pub struct BlockBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BlockBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(Block::VT_LOC, loc); + } + #[inline] + pub fn add_body( + &mut self, + body: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(Block::VT_BODY, body); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> BlockBuilder<'a, 'b> { + let start = _fbb.start_table(); + BlockBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum SourceLocationOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct SourceLocation<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for SourceLocation<'a> { + type Inner = SourceLocation<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> SourceLocation<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + SourceLocation { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args SourceLocationArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = SourceLocationBuilder::new(_fbb); + if let Some(x) = args.source { + builder.add_source(x); + } + if let Some(x) = args.end { + builder.add_end(x); + } + if let Some(x) = args.start { + builder.add_start(x); + } + if let Some(x) = args.file { + builder.add_file(x); + } + builder.finish() + } + + pub const VT_FILE: flatbuffers::VOffsetT = 4; + pub const VT_START: flatbuffers::VOffsetT = 6; + pub const VT_END: flatbuffers::VOffsetT = 8; + pub const VT_SOURCE: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn file(&self) -> Option<&'a str> { + self._tab + .get::>(SourceLocation::VT_FILE, None) + } + #[inline] + pub fn start(&self) -> Option<&'a Position> { + self._tab.get::(SourceLocation::VT_START, None) + } + #[inline] + pub fn end(&self) -> Option<&'a Position> { + self._tab.get::(SourceLocation::VT_END, None) + } + #[inline] + pub fn source(&self) -> Option<&'a str> { + self._tab + .get::>(SourceLocation::VT_SOURCE, None) + } + } + + pub struct SourceLocationArgs<'a> { + pub file: Option>, + pub start: Option<&'a Position>, + pub end: Option<&'a Position>, + pub source: Option>, + } + impl<'a> Default for SourceLocationArgs<'a> { + #[inline] + fn default() -> Self { + SourceLocationArgs { + file: None, + start: None, + end: None, + source: None, + } + } + } + pub struct SourceLocationBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> SourceLocationBuilder<'a, 'b> { + #[inline] + pub fn add_file(&mut self, file: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(SourceLocation::VT_FILE, file); + } + #[inline] + pub fn add_start(&mut self, start: &'b Position) { + self.fbb_ + .push_slot_always::<&Position>(SourceLocation::VT_START, start); + } + #[inline] + pub fn add_end(&mut self, end: &'b Position) { + self.fbb_ + .push_slot_always::<&Position>(SourceLocation::VT_END, end); + } + #[inline] + pub fn add_source(&mut self, source: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(SourceLocation::VT_SOURCE, source); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> SourceLocationBuilder<'a, 'b> { + let start = _fbb.start_table(); + SourceLocationBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum WrappedStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct WrappedStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for WrappedStatement<'a> { + type Inner = WrappedStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> WrappedStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + WrappedStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args WrappedStatementArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = WrappedStatementBuilder::new(_fbb); + if let Some(x) = args.statement { + builder.add_statement(x); + } + builder.add_statement_type(args.statement_type); + builder.finish() + } + + pub const VT_STATEMENT_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_STATEMENT: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn statement_type(&self) -> Statement { + self._tab + .get::(WrappedStatement::VT_STATEMENT_TYPE, Some(Statement::NONE)) + .unwrap() + } + #[inline] + pub fn statement(&self) -> Option> { + self._tab + .get::>>( + WrappedStatement::VT_STATEMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_option_statement(&self) -> Option> { + if self.statement_type() == Statement::OptionStatement { + self.statement() + .map(|u| OptionStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_builtin_statement(&self) -> Option> { + if self.statement_type() == Statement::BuiltinStatement { + self.statement() + .map(|u| BuiltinStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_test_statement(&self) -> Option> { + if self.statement_type() == Statement::TestStatement { + self.statement().map(|u| TestStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_expression_statement(&self) -> Option> { + if self.statement_type() == Statement::ExpressionStatement { + self.statement() + .map(|u| ExpressionStatement::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn statement_as_return_statement(&self) -> Option> { + if self.statement_type() == Statement::ReturnStatement { + self.statement() + .map(|u| ReturnStatement::init_from_table(u)) + } else { + None + } + } + } + + pub struct WrappedStatementArgs { + pub statement_type: Statement, + pub statement: Option>, + } + impl<'a> Default for WrappedStatementArgs { + #[inline] + fn default() -> Self { + WrappedStatementArgs { + statement_type: Statement::NONE, + statement: None, + } + } + } + pub struct WrappedStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> WrappedStatementBuilder<'a, 'b> { + #[inline] + pub fn add_statement_type(&mut self, statement_type: Statement) { + self.fbb_.push_slot::( + WrappedStatement::VT_STATEMENT_TYPE, + statement_type, + Statement::NONE, + ); + } + #[inline] + pub fn add_statement( + &mut self, + statement: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + WrappedStatement::VT_STATEMENT, + statement, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> WrappedStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + WrappedStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum OptionStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct OptionStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for OptionStatement<'a> { + type Inner = OptionStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> OptionStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + OptionStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args OptionStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = OptionStatementBuilder::new(_fbb); + if let Some(x) = args.assignment { + builder.add_assignment(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_assignment_type(args.assignment_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ASSIGNMENT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + OptionStatement::VT_LOC, + None, + ) + } + #[inline] + pub fn assignment_type(&self) -> Assignment { + self._tab + .get::(OptionStatement::VT_ASSIGNMENT_TYPE, Some(Assignment::NONE)) + .unwrap() + } + #[inline] + pub fn assignment(&self) -> Option> { + self._tab + .get::>>( + OptionStatement::VT_ASSIGNMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn assignment_as_member_assignment(&self) -> Option> { + if self.assignment_type() == Assignment::MemberAssignment { + self.assignment() + .map(|u| MemberAssignment::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn assignment_as_native_variable_assignment( + &self, + ) -> Option> { + if self.assignment_type() == Assignment::NativeVariableAssignment { + self.assignment() + .map(|u| NativeVariableAssignment::init_from_table(u)) + } else { + None + } + } + } + + pub struct OptionStatementArgs<'a> { + pub loc: Option>>, + pub assignment_type: Assignment, + pub assignment: Option>, + } + impl<'a> Default for OptionStatementArgs<'a> { + #[inline] + fn default() -> Self { + OptionStatementArgs { + loc: None, + assignment_type: Assignment::NONE, + assignment: None, + } + } + } + pub struct OptionStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> OptionStatementBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + OptionStatement::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_assignment_type(&mut self, assignment_type: Assignment) { + self.fbb_.push_slot::( + OptionStatement::VT_ASSIGNMENT_TYPE, + assignment_type, + Assignment::NONE, + ); + } + #[inline] + pub fn add_assignment( + &mut self, + assignment: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + OptionStatement::VT_ASSIGNMENT, + assignment, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> OptionStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + OptionStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BuiltinStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BuiltinStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BuiltinStatement<'a> { + type Inner = BuiltinStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BuiltinStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BuiltinStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BuiltinStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BuiltinStatementBuilder::new(_fbb); + if let Some(x) = args.id { + builder.add_id(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ID: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + BuiltinStatement::VT_LOC, + None, + ) + } + #[inline] + pub fn id(&self) -> Option> { + self._tab + .get::>>(BuiltinStatement::VT_ID, None) + } + } + + pub struct BuiltinStatementArgs<'a> { + pub loc: Option>>, + pub id: Option>>, + } + impl<'a> Default for BuiltinStatementArgs<'a> { + #[inline] + fn default() -> Self { + BuiltinStatementArgs { + loc: None, + id: None, + } + } + } + pub struct BuiltinStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BuiltinStatementBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BuiltinStatement::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_id(&mut self, id: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BuiltinStatement::VT_ID, + id, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BuiltinStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + BuiltinStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum TestStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct TestStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for TestStatement<'a> { + type Inner = TestStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> TestStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + TestStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args TestStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = TestStatementBuilder::new(_fbb); + if let Some(x) = args.assignment { + builder.add_assignment(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ASSIGNMENT: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + TestStatement::VT_LOC, + None, + ) + } + #[inline] + pub fn assignment(&self) -> Option> { + self._tab + .get::>>( + TestStatement::VT_ASSIGNMENT, + None, + ) + } + } + + pub struct TestStatementArgs<'a> { + pub loc: Option>>, + pub assignment: Option>>, + } + impl<'a> Default for TestStatementArgs<'a> { + #[inline] + fn default() -> Self { + TestStatementArgs { + loc: None, + assignment: None, + } + } + } + pub struct TestStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> TestStatementBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + TestStatement::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_assignment( + &mut self, + assignment: flatbuffers::WIPOffset>, + ) { + self.fbb_ + .push_slot_always::>( + TestStatement::VT_ASSIGNMENT, + assignment, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> TestStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + TestStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ExpressionStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ExpressionStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ExpressionStatement<'a> { + type Inner = ExpressionStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ExpressionStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ExpressionStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ExpressionStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ExpressionStatementBuilder::new(_fbb); + if let Some(x) = args.expression { + builder.add_expression(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_expression_type(args.expression_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_EXPRESSION: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + ExpressionStatement::VT_LOC, + None, + ) + } + #[inline] + pub fn expression_type(&self) -> Expression { + self._tab + .get::( + ExpressionStatement::VT_EXPRESSION_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn expression(&self) -> Option> { + self._tab + .get::>>( + ExpressionStatement::VT_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_expression(&self) -> Option> { + if self.expression_type() == Expression::StringExpression { + self.expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_array_expression(&self) -> Option> { + if self.expression_type() == Expression::ArrayExpression { + self.expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_function_expression(&self) -> Option> { + if self.expression_type() == Expression::FunctionExpression { + self.expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_binary_expression(&self) -> Option> { + if self.expression_type() == Expression::BinaryExpression { + self.expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_call_expression(&self) -> Option> { + if self.expression_type() == Expression::CallExpression { + self.expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_conditional_expression(&self) -> Option> { + if self.expression_type() == Expression::ConditionalExpression { + self.expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_identifier_expression(&self) -> Option> { + if self.expression_type() == Expression::IdentifierExpression { + self.expression() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_logical_expression(&self) -> Option> { + if self.expression_type() == Expression::LogicalExpression { + self.expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_member_expression(&self) -> Option> { + if self.expression_type() == Expression::MemberExpression { + self.expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_index_expression(&self) -> Option> { + if self.expression_type() == Expression::IndexExpression { + self.expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_object_expression(&self) -> Option> { + if self.expression_type() == Expression::ObjectExpression { + self.expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unary_expression(&self) -> Option> { + if self.expression_type() == Expression::UnaryExpression { + self.expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_boolean_literal(&self) -> Option> { + if self.expression_type() == Expression::BooleanLiteral { + self.expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_date_time_literal(&self) -> Option> { + if self.expression_type() == Expression::DateTimeLiteral { + self.expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_duration_literal(&self) -> Option> { + if self.expression_type() == Expression::DurationLiteral { + self.expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_float_literal(&self) -> Option> { + if self.expression_type() == Expression::FloatLiteral { + self.expression().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::IntegerLiteral { + self.expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_literal(&self) -> Option> { + if self.expression_type() == Expression::StringLiteral { + self.expression().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_regexp_literal(&self) -> Option> { + if self.expression_type() == Expression::RegexpLiteral { + self.expression().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unsigned_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::UnsignedIntegerLiteral { + self.expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct ExpressionStatementArgs<'a> { + pub loc: Option>>, + pub expression_type: Expression, + pub expression: Option>, + } + impl<'a> Default for ExpressionStatementArgs<'a> { + #[inline] + fn default() -> Self { + ExpressionStatementArgs { + loc: None, + expression_type: Expression::NONE, + expression: None, + } + } + } + pub struct ExpressionStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ExpressionStatementBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ExpressionStatement::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_expression_type(&mut self, expression_type: Expression) { + self.fbb_.push_slot::( + ExpressionStatement::VT_EXPRESSION_TYPE, + expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_expression( + &mut self, + expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ExpressionStatement::VT_EXPRESSION, + expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ExpressionStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + ExpressionStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ReturnStatementOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ReturnStatement<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ReturnStatement<'a> { + type Inner = ReturnStatement<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ReturnStatement<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ReturnStatement { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ReturnStatementArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ReturnStatementBuilder::new(_fbb); + if let Some(x) = args.argument { + builder.add_argument(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_argument_type(args.argument_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ARGUMENT: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + ReturnStatement::VT_LOC, + None, + ) + } + #[inline] + pub fn argument_type(&self) -> Expression { + self._tab + .get::(ReturnStatement::VT_ARGUMENT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn argument(&self) -> Option> { + self._tab + .get::>>( + ReturnStatement::VT_ARGUMENT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_expression(&self) -> Option> { + if self.argument_type() == Expression::StringExpression { + self.argument() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_array_expression(&self) -> Option> { + if self.argument_type() == Expression::ArrayExpression { + self.argument().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_function_expression(&self) -> Option> { + if self.argument_type() == Expression::FunctionExpression { + self.argument() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_binary_expression(&self) -> Option> { + if self.argument_type() == Expression::BinaryExpression { + self.argument() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_call_expression(&self) -> Option> { + if self.argument_type() == Expression::CallExpression { + self.argument().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_conditional_expression(&self) -> Option> { + if self.argument_type() == Expression::ConditionalExpression { + self.argument() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_identifier_expression(&self) -> Option> { + if self.argument_type() == Expression::IdentifierExpression { + self.argument() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_logical_expression(&self) -> Option> { + if self.argument_type() == Expression::LogicalExpression { + self.argument() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_member_expression(&self) -> Option> { + if self.argument_type() == Expression::MemberExpression { + self.argument() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_index_expression(&self) -> Option> { + if self.argument_type() == Expression::IndexExpression { + self.argument().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_object_expression(&self) -> Option> { + if self.argument_type() == Expression::ObjectExpression { + self.argument() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unary_expression(&self) -> Option> { + if self.argument_type() == Expression::UnaryExpression { + self.argument().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_boolean_literal(&self) -> Option> { + if self.argument_type() == Expression::BooleanLiteral { + self.argument().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_date_time_literal(&self) -> Option> { + if self.argument_type() == Expression::DateTimeLiteral { + self.argument().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_duration_literal(&self) -> Option> { + if self.argument_type() == Expression::DurationLiteral { + self.argument().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_float_literal(&self) -> Option> { + if self.argument_type() == Expression::FloatLiteral { + self.argument().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::IntegerLiteral { + self.argument().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_literal(&self) -> Option> { + if self.argument_type() == Expression::StringLiteral { + self.argument().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_regexp_literal(&self) -> Option> { + if self.argument_type() == Expression::RegexpLiteral { + self.argument().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unsigned_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::UnsignedIntegerLiteral { + self.argument() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct ReturnStatementArgs<'a> { + pub loc: Option>>, + pub argument_type: Expression, + pub argument: Option>, + } + impl<'a> Default for ReturnStatementArgs<'a> { + #[inline] + fn default() -> Self { + ReturnStatementArgs { + loc: None, + argument_type: Expression::NONE, + argument: None, + } + } + } + pub struct ReturnStatementBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ReturnStatementBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ReturnStatement::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_argument_type(&mut self, argument_type: Expression) { + self.fbb_.push_slot::( + ReturnStatement::VT_ARGUMENT_TYPE, + argument_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_argument( + &mut self, + argument: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ReturnStatement::VT_ARGUMENT, + argument, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ReturnStatementBuilder<'a, 'b> { + let start = _fbb.start_table(); + ReturnStatementBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum NativeVariableAssignmentOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct NativeVariableAssignment<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for NativeVariableAssignment<'a> { + type Inner = NativeVariableAssignment<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> NativeVariableAssignment<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + NativeVariableAssignment { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args NativeVariableAssignmentArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = NativeVariableAssignmentBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.init_ { + builder.add_init_(x); + } + if let Some(x) = args.identifier { + builder.add_identifier(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_init__type(args.init__type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_IDENTIFIER: flatbuffers::VOffsetT = 6; + pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; + pub const VT_INIT_: flatbuffers::VOffsetT = 10; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_TYP: flatbuffers::VOffsetT = 14; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + NativeVariableAssignment::VT_LOC, + None, + ) + } + #[inline] + pub fn identifier(&self) -> Option> { + self._tab + .get::>>( + NativeVariableAssignment::VT_IDENTIFIER, + None, + ) + } + #[inline] + pub fn init__type(&self) -> Expression { + self._tab + .get::( + NativeVariableAssignment::VT_INIT__TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn init_(&self) -> Option> { + self._tab + .get::>>( + NativeVariableAssignment::VT_INIT_, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(NativeVariableAssignment::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + NativeVariableAssignment::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_expression(&self) -> Option> { + if self.init__type() == Expression::StringExpression { + self.init_().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_array_expression(&self) -> Option> { + if self.init__type() == Expression::ArrayExpression { + self.init_().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_function_expression(&self) -> Option> { + if self.init__type() == Expression::FunctionExpression { + self.init_().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_binary_expression(&self) -> Option> { + if self.init__type() == Expression::BinaryExpression { + self.init_().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_call_expression(&self) -> Option> { + if self.init__type() == Expression::CallExpression { + self.init_().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_conditional_expression(&self) -> Option> { + if self.init__type() == Expression::ConditionalExpression { + self.init_() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_identifier_expression(&self) -> Option> { + if self.init__type() == Expression::IdentifierExpression { + self.init_() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_logical_expression(&self) -> Option> { + if self.init__type() == Expression::LogicalExpression { + self.init_().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_member_expression(&self) -> Option> { + if self.init__type() == Expression::MemberExpression { + self.init_().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_index_expression(&self) -> Option> { + if self.init__type() == Expression::IndexExpression { + self.init_().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_object_expression(&self) -> Option> { + if self.init__type() == Expression::ObjectExpression { + self.init_().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unary_expression(&self) -> Option> { + if self.init__type() == Expression::UnaryExpression { + self.init_().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_boolean_literal(&self) -> Option> { + if self.init__type() == Expression::BooleanLiteral { + self.init_().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_date_time_literal(&self) -> Option> { + if self.init__type() == Expression::DateTimeLiteral { + self.init_().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_duration_literal(&self) -> Option> { + if self.init__type() == Expression::DurationLiteral { + self.init_().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_float_literal(&self) -> Option> { + if self.init__type() == Expression::FloatLiteral { + self.init_().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_integer_literal(&self) -> Option> { + if self.init__type() == Expression::IntegerLiteral { + self.init_().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_literal(&self) -> Option> { + if self.init__type() == Expression::StringLiteral { + self.init_().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_regexp_literal(&self) -> Option> { + if self.init__type() == Expression::RegexpLiteral { + self.init_().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unsigned_integer_literal(&self) -> Option> { + if self.init__type() == Expression::UnsignedIntegerLiteral { + self.init_() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct NativeVariableAssignmentArgs<'a> { + pub loc: Option>>, + pub identifier: Option>>, + pub init__type: Expression, + pub init_: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for NativeVariableAssignmentArgs<'a> { + #[inline] + fn default() -> Self { + NativeVariableAssignmentArgs { + loc: None, + identifier: None, + init__type: Expression::NONE, + init_: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct NativeVariableAssignmentBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> NativeVariableAssignmentBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + NativeVariableAssignment::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_identifier(&mut self, identifier: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + NativeVariableAssignment::VT_IDENTIFIER, + identifier, + ); + } + #[inline] + pub fn add_init__type(&mut self, init__type: Expression) { + self.fbb_.push_slot::( + NativeVariableAssignment::VT_INIT__TYPE, + init__type, + Expression::NONE, + ); + } + #[inline] + pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>( + NativeVariableAssignment::VT_INIT_, + init_, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + NativeVariableAssignment::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>( + NativeVariableAssignment::VT_TYP, + typ, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> NativeVariableAssignmentBuilder<'a, 'b> { + let start = _fbb.start_table(); + NativeVariableAssignmentBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum MemberAssignmentOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct MemberAssignment<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for MemberAssignment<'a> { + type Inner = MemberAssignment<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> MemberAssignment<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + MemberAssignment { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args MemberAssignmentArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = MemberAssignmentBuilder::new(_fbb); + if let Some(x) = args.init_ { + builder.add_init_(x); + } + if let Some(x) = args.member { + builder.add_member(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_init__type(args.init__type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_MEMBER: flatbuffers::VOffsetT = 6; + pub const VT_INIT__TYPE: flatbuffers::VOffsetT = 8; + pub const VT_INIT_: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + MemberAssignment::VT_LOC, + None, + ) + } + #[inline] + pub fn member(&self) -> Option> { + self._tab + .get::>>( + MemberAssignment::VT_MEMBER, + None, + ) + } + #[inline] + pub fn init__type(&self) -> Expression { + self._tab + .get::(MemberAssignment::VT_INIT__TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn init_(&self) -> Option> { + self._tab + .get::>>( + MemberAssignment::VT_INIT_, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_expression(&self) -> Option> { + if self.init__type() == Expression::StringExpression { + self.init_().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_array_expression(&self) -> Option> { + if self.init__type() == Expression::ArrayExpression { + self.init_().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_function_expression(&self) -> Option> { + if self.init__type() == Expression::FunctionExpression { + self.init_().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_binary_expression(&self) -> Option> { + if self.init__type() == Expression::BinaryExpression { + self.init_().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_call_expression(&self) -> Option> { + if self.init__type() == Expression::CallExpression { + self.init_().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_conditional_expression(&self) -> Option> { + if self.init__type() == Expression::ConditionalExpression { + self.init_() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_identifier_expression(&self) -> Option> { + if self.init__type() == Expression::IdentifierExpression { + self.init_() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_logical_expression(&self) -> Option> { + if self.init__type() == Expression::LogicalExpression { + self.init_().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_member_expression(&self) -> Option> { + if self.init__type() == Expression::MemberExpression { + self.init_().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_index_expression(&self) -> Option> { + if self.init__type() == Expression::IndexExpression { + self.init_().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_object_expression(&self) -> Option> { + if self.init__type() == Expression::ObjectExpression { + self.init_().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unary_expression(&self) -> Option> { + if self.init__type() == Expression::UnaryExpression { + self.init_().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_boolean_literal(&self) -> Option> { + if self.init__type() == Expression::BooleanLiteral { + self.init_().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_date_time_literal(&self) -> Option> { + if self.init__type() == Expression::DateTimeLiteral { + self.init_().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_duration_literal(&self) -> Option> { + if self.init__type() == Expression::DurationLiteral { + self.init_().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_float_literal(&self) -> Option> { + if self.init__type() == Expression::FloatLiteral { + self.init_().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_integer_literal(&self) -> Option> { + if self.init__type() == Expression::IntegerLiteral { + self.init_().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_string_literal(&self) -> Option> { + if self.init__type() == Expression::StringLiteral { + self.init_().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_regexp_literal(&self) -> Option> { + if self.init__type() == Expression::RegexpLiteral { + self.init_().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn init__as_unsigned_integer_literal(&self) -> Option> { + if self.init__type() == Expression::UnsignedIntegerLiteral { + self.init_() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct MemberAssignmentArgs<'a> { + pub loc: Option>>, + pub member: Option>>, + pub init__type: Expression, + pub init_: Option>, + } + impl<'a> Default for MemberAssignmentArgs<'a> { + #[inline] + fn default() -> Self { + MemberAssignmentArgs { + loc: None, + member: None, + init__type: Expression::NONE, + init_: None, + } + } + } + pub struct MemberAssignmentBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> MemberAssignmentBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + MemberAssignment::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_member(&mut self, member: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + MemberAssignment::VT_MEMBER, + member, + ); + } + #[inline] + pub fn add_init__type(&mut self, init__type: Expression) { + self.fbb_.push_slot::( + MemberAssignment::VT_INIT__TYPE, + init__type, + Expression::NONE, + ); + } + #[inline] + pub fn add_init_(&mut self, init_: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(MemberAssignment::VT_INIT_, init_); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> MemberAssignmentBuilder<'a, 'b> { + let start = _fbb.start_table(); + MemberAssignmentBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum WrappedExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct WrappedExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for WrappedExpression<'a> { + type Inner = WrappedExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> WrappedExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + WrappedExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args WrappedExpressionArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = WrappedExpressionBuilder::new(_fbb); + if let Some(x) = args.expression { + builder.add_expression(x); + } + builder.add_expression_type(args.expression_type); + builder.finish() + } + + pub const VT_EXPRESSION_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_EXPRESSION: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn expression_type(&self) -> Expression { + self._tab + .get::( + WrappedExpression::VT_EXPRESSION_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn expression(&self) -> Option> { + self._tab + .get::>>( + WrappedExpression::VT_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_expression(&self) -> Option> { + if self.expression_type() == Expression::StringExpression { + self.expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_array_expression(&self) -> Option> { + if self.expression_type() == Expression::ArrayExpression { + self.expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_function_expression(&self) -> Option> { + if self.expression_type() == Expression::FunctionExpression { + self.expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_binary_expression(&self) -> Option> { + if self.expression_type() == Expression::BinaryExpression { + self.expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_call_expression(&self) -> Option> { + if self.expression_type() == Expression::CallExpression { + self.expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_conditional_expression(&self) -> Option> { + if self.expression_type() == Expression::ConditionalExpression { + self.expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_identifier_expression(&self) -> Option> { + if self.expression_type() == Expression::IdentifierExpression { + self.expression() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_logical_expression(&self) -> Option> { + if self.expression_type() == Expression::LogicalExpression { + self.expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_member_expression(&self) -> Option> { + if self.expression_type() == Expression::MemberExpression { + self.expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_index_expression(&self) -> Option> { + if self.expression_type() == Expression::IndexExpression { + self.expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_object_expression(&self) -> Option> { + if self.expression_type() == Expression::ObjectExpression { + self.expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unary_expression(&self) -> Option> { + if self.expression_type() == Expression::UnaryExpression { + self.expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_boolean_literal(&self) -> Option> { + if self.expression_type() == Expression::BooleanLiteral { + self.expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_date_time_literal(&self) -> Option> { + if self.expression_type() == Expression::DateTimeLiteral { + self.expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_duration_literal(&self) -> Option> { + if self.expression_type() == Expression::DurationLiteral { + self.expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_float_literal(&self) -> Option> { + if self.expression_type() == Expression::FloatLiteral { + self.expression().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::IntegerLiteral { + self.expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_string_literal(&self) -> Option> { + if self.expression_type() == Expression::StringLiteral { + self.expression().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_regexp_literal(&self) -> Option> { + if self.expression_type() == Expression::RegexpLiteral { + self.expression().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn expression_as_unsigned_integer_literal(&self) -> Option> { + if self.expression_type() == Expression::UnsignedIntegerLiteral { + self.expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct WrappedExpressionArgs { + pub expression_type: Expression, + pub expression: Option>, + } + impl<'a> Default for WrappedExpressionArgs { + #[inline] + fn default() -> Self { + WrappedExpressionArgs { + expression_type: Expression::NONE, + expression: None, + } + } + } + pub struct WrappedExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> WrappedExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_expression_type(&mut self, expression_type: Expression) { + self.fbb_.push_slot::( + WrappedExpression::VT_EXPRESSION_TYPE, + expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_expression( + &mut self, + expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + WrappedExpression::VT_EXPRESSION, + expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> WrappedExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + WrappedExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum StringExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct StringExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for StringExpression<'a> { + type Inner = StringExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> StringExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + StringExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args StringExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = StringExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.parts { + builder.add_parts(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_PARTS: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + StringExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn parts( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(StringExpression::VT_PARTS, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(StringExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + StringExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct StringExpressionArgs<'a> { + pub loc: Option>>, + pub parts: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for StringExpressionArgs<'a> { + #[inline] + fn default() -> Self { + StringExpressionArgs { + loc: None, + parts: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct StringExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> StringExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + StringExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_parts( + &mut self, + parts: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(StringExpression::VT_PARTS, parts); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + StringExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(StringExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> StringExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + StringExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum StringExpressionPartOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct StringExpressionPart<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for StringExpressionPart<'a> { + type Inner = StringExpressionPart<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> StringExpressionPart<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + StringExpressionPart { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args StringExpressionPartArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = StringExpressionPartBuilder::new(_fbb); + if let Some(x) = args.interpolated_expression { + builder.add_interpolated_expression(x); + } + if let Some(x) = args.text_value { + builder.add_text_value(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_interpolated_expression_type(args.interpolated_expression_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_TEXT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_INTERPOLATED_EXPRESSION_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_INTERPOLATED_EXPRESSION: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + StringExpressionPart::VT_LOC, + None, + ) + } + #[inline] + pub fn text_value(&self) -> Option<&'a str> { + self._tab.get::>( + StringExpressionPart::VT_TEXT_VALUE, + None, + ) + } + #[inline] + pub fn interpolated_expression_type(&self) -> Expression { + self._tab + .get::( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn interpolated_expression(&self) -> Option> { + self._tab + .get::>>( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_string_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::StringExpression { + self.interpolated_expression() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_array_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::ArrayExpression { + self.interpolated_expression() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_function_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::FunctionExpression { + self.interpolated_expression() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_binary_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::BinaryExpression { + self.interpolated_expression() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_call_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::CallExpression { + self.interpolated_expression() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_conditional_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::ConditionalExpression { + self.interpolated_expression() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_identifier_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::IdentifierExpression { + self.interpolated_expression() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_logical_expression( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::LogicalExpression { + self.interpolated_expression() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_member_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::MemberExpression { + self.interpolated_expression() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_index_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::IndexExpression { + self.interpolated_expression() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_object_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::ObjectExpression { + self.interpolated_expression() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_unary_expression(&self) -> Option> { + if self.interpolated_expression_type() == Expression::UnaryExpression { + self.interpolated_expression() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_boolean_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::BooleanLiteral { + self.interpolated_expression() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_date_time_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::DateTimeLiteral { + self.interpolated_expression() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_duration_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::DurationLiteral { + self.interpolated_expression() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_float_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::FloatLiteral { + self.interpolated_expression() + .map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_integer_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::IntegerLiteral { + self.interpolated_expression() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_string_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::StringLiteral { + self.interpolated_expression() + .map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_regexp_literal(&self) -> Option> { + if self.interpolated_expression_type() == Expression::RegexpLiteral { + self.interpolated_expression() + .map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn interpolated_expression_as_unsigned_integer_literal( + &self, + ) -> Option> { + if self.interpolated_expression_type() == Expression::UnsignedIntegerLiteral { + self.interpolated_expression() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct StringExpressionPartArgs<'a> { + pub loc: Option>>, + pub text_value: Option>, + pub interpolated_expression_type: Expression, + pub interpolated_expression: Option>, + } + impl<'a> Default for StringExpressionPartArgs<'a> { + #[inline] + fn default() -> Self { + StringExpressionPartArgs { + loc: None, + text_value: None, + interpolated_expression_type: Expression::NONE, + interpolated_expression: None, + } + } + } + pub struct StringExpressionPartBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> StringExpressionPartBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + StringExpressionPart::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_text_value(&mut self, text_value: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>( + StringExpressionPart::VT_TEXT_VALUE, + text_value, + ); + } + #[inline] + pub fn add_interpolated_expression_type( + &mut self, + interpolated_expression_type: Expression, + ) { + self.fbb_.push_slot::( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION_TYPE, + interpolated_expression_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_interpolated_expression( + &mut self, + interpolated_expression: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + StringExpressionPart::VT_INTERPOLATED_EXPRESSION, + interpolated_expression, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> StringExpressionPartBuilder<'a, 'b> { + let start = _fbb.start_table(); + StringExpressionPartBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ArrayExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ArrayExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ArrayExpression<'a> { + type Inner = ArrayExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ArrayExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ArrayExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ArrayExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ArrayExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.elements { + builder.add_elements(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ELEMENTS: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + ArrayExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn elements( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(ArrayExpression::VT_ELEMENTS, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(ArrayExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + ArrayExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct ArrayExpressionArgs<'a> { + pub loc: Option>>, + pub elements: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for ArrayExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ArrayExpressionArgs { + loc: None, + elements: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct ArrayExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ArrayExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ArrayExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_elements( + &mut self, + elements: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_.push_slot_always::>( + ArrayExpression::VT_ELEMENTS, + elements, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(ArrayExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(ArrayExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ArrayExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ArrayExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FunctionExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct FunctionExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for FunctionExpression<'a> { + type Inner = FunctionExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> FunctionExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + FunctionExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FunctionExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FunctionExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.body { + builder.add_body(x); + } + if let Some(x) = args.params { + builder.add_params(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_PARAMS: flatbuffers::VOffsetT = 6; + pub const VT_BODY: flatbuffers::VOffsetT = 8; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_TYP: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + FunctionExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn params( + &self, + ) -> Option>>> + { + self._tab.get::>>, + >>(FunctionExpression::VT_PARAMS, None) + } + #[inline] + pub fn body(&self) -> Option> { + self._tab + .get::>>(FunctionExpression::VT_BODY, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(FunctionExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + FunctionExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct FunctionExpressionArgs<'a> { + pub loc: Option>>, + pub params: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub body: Option>>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for FunctionExpressionArgs<'a> { + #[inline] + fn default() -> Self { + FunctionExpressionArgs { + loc: None, + params: None, + body: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct FunctionExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FunctionExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + FunctionExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_params( + &mut self, + params: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_.push_slot_always::>( + FunctionExpression::VT_PARAMS, + params, + ); + } + #[inline] + pub fn add_body(&mut self, body: flatbuffers::WIPOffset>) { + self.fbb_.push_slot_always::>( + FunctionExpression::VT_BODY, + body, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + FunctionExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(FunctionExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> FunctionExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + FunctionExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FunctionParameterOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct FunctionParameter<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for FunctionParameter<'a> { + type Inner = FunctionParameter<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> FunctionParameter<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + FunctionParameter { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FunctionParameterArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FunctionParameterBuilder::new(_fbb); + if let Some(x) = args.default { + builder.add_default(x); + } + if let Some(x) = args.key { + builder.add_key(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_default_type(args.default_type); + builder.add_is_pipe(args.is_pipe); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_IS_PIPE: flatbuffers::VOffsetT = 6; + pub const VT_KEY: flatbuffers::VOffsetT = 8; + pub const VT_DEFAULT_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_DEFAULT: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + FunctionParameter::VT_LOC, + None, + ) + } + #[inline] + pub fn is_pipe(&self) -> bool { + self._tab + .get::(FunctionParameter::VT_IS_PIPE, Some(false)) + .unwrap() + } + #[inline] + pub fn key(&self) -> Option> { + self._tab + .get::>>( + FunctionParameter::VT_KEY, + None, + ) + } + #[inline] + pub fn default_type(&self) -> Expression { + self._tab + .get::(FunctionParameter::VT_DEFAULT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn default(&self) -> Option> { + self._tab + .get::>>( + FunctionParameter::VT_DEFAULT, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn default_as_string_expression(&self) -> Option> { + if self.default_type() == Expression::StringExpression { + self.default().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_array_expression(&self) -> Option> { + if self.default_type() == Expression::ArrayExpression { + self.default().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_function_expression(&self) -> Option> { + if self.default_type() == Expression::FunctionExpression { + self.default() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_binary_expression(&self) -> Option> { + if self.default_type() == Expression::BinaryExpression { + self.default().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_call_expression(&self) -> Option> { + if self.default_type() == Expression::CallExpression { + self.default().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_conditional_expression(&self) -> Option> { + if self.default_type() == Expression::ConditionalExpression { + self.default() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_identifier_expression(&self) -> Option> { + if self.default_type() == Expression::IdentifierExpression { + self.default() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_logical_expression(&self) -> Option> { + if self.default_type() == Expression::LogicalExpression { + self.default() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_member_expression(&self) -> Option> { + if self.default_type() == Expression::MemberExpression { + self.default().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_index_expression(&self) -> Option> { + if self.default_type() == Expression::IndexExpression { + self.default().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_object_expression(&self) -> Option> { + if self.default_type() == Expression::ObjectExpression { + self.default().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_unary_expression(&self) -> Option> { + if self.default_type() == Expression::UnaryExpression { + self.default().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_boolean_literal(&self) -> Option> { + if self.default_type() == Expression::BooleanLiteral { + self.default().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_date_time_literal(&self) -> Option> { + if self.default_type() == Expression::DateTimeLiteral { + self.default().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_duration_literal(&self) -> Option> { + if self.default_type() == Expression::DurationLiteral { + self.default().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_float_literal(&self) -> Option> { + if self.default_type() == Expression::FloatLiteral { + self.default().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_integer_literal(&self) -> Option> { + if self.default_type() == Expression::IntegerLiteral { + self.default().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_string_literal(&self) -> Option> { + if self.default_type() == Expression::StringLiteral { + self.default().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_regexp_literal(&self) -> Option> { + if self.default_type() == Expression::RegexpLiteral { + self.default().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn default_as_unsigned_integer_literal(&self) -> Option> { + if self.default_type() == Expression::UnsignedIntegerLiteral { + self.default() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct FunctionParameterArgs<'a> { + pub loc: Option>>, + pub is_pipe: bool, + pub key: Option>>, + pub default_type: Expression, + pub default: Option>, + } + impl<'a> Default for FunctionParameterArgs<'a> { + #[inline] + fn default() -> Self { + FunctionParameterArgs { + loc: None, + is_pipe: false, + key: None, + default_type: Expression::NONE, + default: None, + } + } + } + pub struct FunctionParameterBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FunctionParameterBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + FunctionParameter::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_is_pipe(&mut self, is_pipe: bool) { + self.fbb_ + .push_slot::(FunctionParameter::VT_IS_PIPE, is_pipe, false); + } + #[inline] + pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + FunctionParameter::VT_KEY, + key, + ); + } + #[inline] + pub fn add_default_type(&mut self, default_type: Expression) { + self.fbb_.push_slot::( + FunctionParameter::VT_DEFAULT_TYPE, + default_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_default( + &mut self, + default: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + FunctionParameter::VT_DEFAULT, + default, + ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> FunctionParameterBuilder<'a, 'b> { + let start = _fbb.start_table(); + FunctionParameterBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BinaryExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BinaryExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BinaryExpression<'a> { + type Inner = BinaryExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BinaryExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BinaryExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BinaryExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BinaryExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.right { + builder.add_right(x); + } + if let Some(x) = args.left { + builder.add_left(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_right_type(args.right_type); + builder.add_left_type(args.left_type); + builder.add_operator(args.operator); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; + pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_LEFT: flatbuffers::VOffsetT = 10; + pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_RIGHT: flatbuffers::VOffsetT = 14; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; + pub const VT_TYP: flatbuffers::VOffsetT = 18; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + BinaryExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn operator(&self) -> Operator { + self._tab + .get::( + BinaryExpression::VT_OPERATOR, + Some(Operator::MultiplicationOperator), + ) + .unwrap() + } + #[inline] + pub fn left_type(&self) -> Expression { + self._tab + .get::(BinaryExpression::VT_LEFT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn left(&self) -> Option> { + self._tab + .get::>>( + BinaryExpression::VT_LEFT, + None, + ) + } + #[inline] + pub fn right_type(&self) -> Expression { + self._tab + .get::(BinaryExpression::VT_RIGHT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn right(&self) -> Option> { + self._tab + .get::>>( + BinaryExpression::VT_RIGHT, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(BinaryExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + BinaryExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_expression(&self) -> Option> { + if self.left_type() == Expression::StringExpression { + self.left().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_array_expression(&self) -> Option> { + if self.left_type() == Expression::ArrayExpression { + self.left().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_function_expression(&self) -> Option> { + if self.left_type() == Expression::FunctionExpression { + self.left().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_binary_expression(&self) -> Option> { + if self.left_type() == Expression::BinaryExpression { + self.left().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_call_expression(&self) -> Option> { + if self.left_type() == Expression::CallExpression { + self.left().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_conditional_expression(&self) -> Option> { + if self.left_type() == Expression::ConditionalExpression { + self.left() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_identifier_expression(&self) -> Option> { + if self.left_type() == Expression::IdentifierExpression { + self.left() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_logical_expression(&self) -> Option> { + if self.left_type() == Expression::LogicalExpression { + self.left().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_member_expression(&self) -> Option> { + if self.left_type() == Expression::MemberExpression { + self.left().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_index_expression(&self) -> Option> { + if self.left_type() == Expression::IndexExpression { + self.left().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_object_expression(&self) -> Option> { + if self.left_type() == Expression::ObjectExpression { + self.left().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unary_expression(&self) -> Option> { + if self.left_type() == Expression::UnaryExpression { + self.left().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_boolean_literal(&self) -> Option> { + if self.left_type() == Expression::BooleanLiteral { + self.left().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_date_time_literal(&self) -> Option> { + if self.left_type() == Expression::DateTimeLiteral { + self.left().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_duration_literal(&self) -> Option> { + if self.left_type() == Expression::DurationLiteral { + self.left().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_float_literal(&self) -> Option> { + if self.left_type() == Expression::FloatLiteral { + self.left().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_integer_literal(&self) -> Option> { + if self.left_type() == Expression::IntegerLiteral { + self.left().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_literal(&self) -> Option> { + if self.left_type() == Expression::StringLiteral { + self.left().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_regexp_literal(&self) -> Option> { + if self.left_type() == Expression::RegexpLiteral { + self.left().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unsigned_integer_literal(&self) -> Option> { + if self.left_type() == Expression::UnsignedIntegerLiteral { + self.left() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_expression(&self) -> Option> { + if self.right_type() == Expression::StringExpression { + self.right().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_array_expression(&self) -> Option> { + if self.right_type() == Expression::ArrayExpression { + self.right().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_function_expression(&self) -> Option> { + if self.right_type() == Expression::FunctionExpression { + self.right().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_binary_expression(&self) -> Option> { + if self.right_type() == Expression::BinaryExpression { + self.right().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_call_expression(&self) -> Option> { + if self.right_type() == Expression::CallExpression { + self.right().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_conditional_expression(&self) -> Option> { + if self.right_type() == Expression::ConditionalExpression { + self.right() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_identifier_expression(&self) -> Option> { + if self.right_type() == Expression::IdentifierExpression { + self.right() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_logical_expression(&self) -> Option> { + if self.right_type() == Expression::LogicalExpression { + self.right().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_member_expression(&self) -> Option> { + if self.right_type() == Expression::MemberExpression { + self.right().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_index_expression(&self) -> Option> { + if self.right_type() == Expression::IndexExpression { + self.right().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_object_expression(&self) -> Option> { + if self.right_type() == Expression::ObjectExpression { + self.right().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unary_expression(&self) -> Option> { + if self.right_type() == Expression::UnaryExpression { + self.right().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_boolean_literal(&self) -> Option> { + if self.right_type() == Expression::BooleanLiteral { + self.right().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_date_time_literal(&self) -> Option> { + if self.right_type() == Expression::DateTimeLiteral { + self.right().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_duration_literal(&self) -> Option> { + if self.right_type() == Expression::DurationLiteral { + self.right().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_float_literal(&self) -> Option> { + if self.right_type() == Expression::FloatLiteral { + self.right().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_integer_literal(&self) -> Option> { + if self.right_type() == Expression::IntegerLiteral { + self.right().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_literal(&self) -> Option> { + if self.right_type() == Expression::StringLiteral { + self.right().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_regexp_literal(&self) -> Option> { + if self.right_type() == Expression::RegexpLiteral { + self.right().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unsigned_integer_literal(&self) -> Option> { + if self.right_type() == Expression::UnsignedIntegerLiteral { + self.right() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct BinaryExpressionArgs<'a> { + pub loc: Option>>, + pub operator: Operator, + pub left_type: Expression, + pub left: Option>, + pub right_type: Expression, + pub right: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for BinaryExpressionArgs<'a> { + #[inline] + fn default() -> Self { + BinaryExpressionArgs { + loc: None, + operator: Operator::MultiplicationOperator, + left_type: Expression::NONE, + left: None, + right_type: Expression::NONE, + right: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct BinaryExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BinaryExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BinaryExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_operator(&mut self, operator: Operator) { + self.fbb_.push_slot::( + BinaryExpression::VT_OPERATOR, + operator, + Operator::MultiplicationOperator, + ); + } + #[inline] + pub fn add_left_type(&mut self, left_type: Expression) { + self.fbb_.push_slot::( + BinaryExpression::VT_LEFT_TYPE, + left_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(BinaryExpression::VT_LEFT, left); + } + #[inline] + pub fn add_right_type(&mut self, right_type: Expression) { + self.fbb_.push_slot::( + BinaryExpression::VT_RIGHT_TYPE, + right_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(BinaryExpression::VT_RIGHT, right); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + BinaryExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(BinaryExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BinaryExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + BinaryExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum CallExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct CallExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for CallExpression<'a> { + type Inner = CallExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> CallExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + CallExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args CallExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = CallExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.pipe { + builder.add_pipe(x); + } + if let Some(x) = args.arguments { + builder.add_arguments(x); + } + if let Some(x) = args.callee { + builder.add_callee(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_pipe_type(args.pipe_type); + builder.add_callee_type(args.callee_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_CALLEE_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_CALLEE: flatbuffers::VOffsetT = 8; + pub const VT_ARGUMENTS: flatbuffers::VOffsetT = 10; + pub const VT_PIPE_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_PIPE: flatbuffers::VOffsetT = 14; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; + pub const VT_TYP: flatbuffers::VOffsetT = 18; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn callee_type(&self) -> Expression { + self._tab + .get::(CallExpression::VT_CALLEE_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn callee(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_CALLEE, + None, + ) + } + #[inline] + pub fn arguments(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_ARGUMENTS, + None, + ) + } + #[inline] + pub fn pipe_type(&self) -> Expression { + self._tab + .get::(CallExpression::VT_PIPE_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn pipe(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_PIPE, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(CallExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + CallExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_string_expression(&self) -> Option> { + if self.callee_type() == Expression::StringExpression { + self.callee().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_array_expression(&self) -> Option> { + if self.callee_type() == Expression::ArrayExpression { + self.callee().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_function_expression(&self) -> Option> { + if self.callee_type() == Expression::FunctionExpression { + self.callee() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_binary_expression(&self) -> Option> { + if self.callee_type() == Expression::BinaryExpression { + self.callee().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_call_expression(&self) -> Option> { + if self.callee_type() == Expression::CallExpression { + self.callee().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_conditional_expression(&self) -> Option> { + if self.callee_type() == Expression::ConditionalExpression { + self.callee() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_identifier_expression(&self) -> Option> { + if self.callee_type() == Expression::IdentifierExpression { + self.callee() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_logical_expression(&self) -> Option> { + if self.callee_type() == Expression::LogicalExpression { + self.callee().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_member_expression(&self) -> Option> { + if self.callee_type() == Expression::MemberExpression { + self.callee().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_index_expression(&self) -> Option> { + if self.callee_type() == Expression::IndexExpression { + self.callee().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_object_expression(&self) -> Option> { + if self.callee_type() == Expression::ObjectExpression { + self.callee().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_unary_expression(&self) -> Option> { + if self.callee_type() == Expression::UnaryExpression { + self.callee().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_boolean_literal(&self) -> Option> { + if self.callee_type() == Expression::BooleanLiteral { + self.callee().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_date_time_literal(&self) -> Option> { + if self.callee_type() == Expression::DateTimeLiteral { + self.callee().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_duration_literal(&self) -> Option> { + if self.callee_type() == Expression::DurationLiteral { + self.callee().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_float_literal(&self) -> Option> { + if self.callee_type() == Expression::FloatLiteral { + self.callee().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_integer_literal(&self) -> Option> { + if self.callee_type() == Expression::IntegerLiteral { + self.callee().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_string_literal(&self) -> Option> { + if self.callee_type() == Expression::StringLiteral { + self.callee().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_regexp_literal(&self) -> Option> { + if self.callee_type() == Expression::RegexpLiteral { + self.callee().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn callee_as_unsigned_integer_literal(&self) -> Option> { + if self.callee_type() == Expression::UnsignedIntegerLiteral { + self.callee() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_string_expression(&self) -> Option> { + if self.pipe_type() == Expression::StringExpression { + self.pipe().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_array_expression(&self) -> Option> { + if self.pipe_type() == Expression::ArrayExpression { + self.pipe().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_function_expression(&self) -> Option> { + if self.pipe_type() == Expression::FunctionExpression { + self.pipe().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_binary_expression(&self) -> Option> { + if self.pipe_type() == Expression::BinaryExpression { + self.pipe().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_call_expression(&self) -> Option> { + if self.pipe_type() == Expression::CallExpression { + self.pipe().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_conditional_expression(&self) -> Option> { + if self.pipe_type() == Expression::ConditionalExpression { + self.pipe() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_identifier_expression(&self) -> Option> { + if self.pipe_type() == Expression::IdentifierExpression { + self.pipe() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_logical_expression(&self) -> Option> { + if self.pipe_type() == Expression::LogicalExpression { + self.pipe().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_member_expression(&self) -> Option> { + if self.pipe_type() == Expression::MemberExpression { + self.pipe().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_index_expression(&self) -> Option> { + if self.pipe_type() == Expression::IndexExpression { + self.pipe().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_object_expression(&self) -> Option> { + if self.pipe_type() == Expression::ObjectExpression { + self.pipe().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_unary_expression(&self) -> Option> { + if self.pipe_type() == Expression::UnaryExpression { + self.pipe().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_boolean_literal(&self) -> Option> { + if self.pipe_type() == Expression::BooleanLiteral { + self.pipe().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_date_time_literal(&self) -> Option> { + if self.pipe_type() == Expression::DateTimeLiteral { + self.pipe().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_duration_literal(&self) -> Option> { + if self.pipe_type() == Expression::DurationLiteral { + self.pipe().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_float_literal(&self) -> Option> { + if self.pipe_type() == Expression::FloatLiteral { + self.pipe().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_integer_literal(&self) -> Option> { + if self.pipe_type() == Expression::IntegerLiteral { + self.pipe().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_string_literal(&self) -> Option> { + if self.pipe_type() == Expression::StringLiteral { + self.pipe().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_regexp_literal(&self) -> Option> { + if self.pipe_type() == Expression::RegexpLiteral { + self.pipe().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn pipe_as_unsigned_integer_literal(&self) -> Option> { + if self.pipe_type() == Expression::UnsignedIntegerLiteral { + self.pipe() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct CallExpressionArgs<'a> { + pub loc: Option>>, + pub callee_type: Expression, + pub callee: Option>, + pub arguments: Option>>, + pub pipe_type: Expression, + pub pipe: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for CallExpressionArgs<'a> { + #[inline] + fn default() -> Self { + CallExpressionArgs { + loc: None, + callee_type: Expression::NONE, + callee: None, + arguments: None, + pipe_type: Expression::NONE, + pipe: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct CallExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> CallExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + CallExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_callee_type(&mut self, callee_type: Expression) { + self.fbb_.push_slot::( + CallExpression::VT_CALLEE_TYPE, + callee_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_callee(&mut self, callee: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(CallExpression::VT_CALLEE, callee); + } + #[inline] + pub fn add_arguments(&mut self, arguments: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + CallExpression::VT_ARGUMENTS, + arguments, + ); + } + #[inline] + pub fn add_pipe_type(&mut self, pipe_type: Expression) { + self.fbb_.push_slot::( + CallExpression::VT_PIPE_TYPE, + pipe_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_pipe(&mut self, pipe: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(CallExpression::VT_PIPE, pipe); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(CallExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(CallExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> CallExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + CallExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ConditionalExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ConditionalExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ConditionalExpression<'a> { + type Inner = ConditionalExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ConditionalExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ConditionalExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ConditionalExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ConditionalExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.consequent { + builder.add_consequent(x); + } + if let Some(x) = args.alternate { + builder.add_alternate(x); + } + if let Some(x) = args.test { + builder.add_test(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_consequent_type(args.consequent_type); + builder.add_alternate_type(args.alternate_type); + builder.add_test_type(args.test_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_TEST_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_TEST: flatbuffers::VOffsetT = 8; + pub const VT_ALTERNATE_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_ALTERNATE: flatbuffers::VOffsetT = 12; + pub const VT_CONSEQUENT_TYPE: flatbuffers::VOffsetT = 14; + pub const VT_CONSEQUENT: flatbuffers::VOffsetT = 16; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 18; + pub const VT_TYP: flatbuffers::VOffsetT = 20; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn test_type(&self) -> Expression { + self._tab + .get::(ConditionalExpression::VT_TEST_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn test(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_TEST, + None, + ) + } + #[inline] + pub fn alternate_type(&self) -> Expression { + self._tab + .get::( + ConditionalExpression::VT_ALTERNATE_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn alternate(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_ALTERNATE, + None, + ) + } + #[inline] + pub fn consequent_type(&self) -> Expression { + self._tab + .get::( + ConditionalExpression::VT_CONSEQUENT_TYPE, + Some(Expression::NONE), + ) + .unwrap() + } + #[inline] + pub fn consequent(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_CONSEQUENT, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(ConditionalExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + ConditionalExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn test_as_string_expression(&self) -> Option> { + if self.test_type() == Expression::StringExpression { + self.test().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_array_expression(&self) -> Option> { + if self.test_type() == Expression::ArrayExpression { + self.test().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_function_expression(&self) -> Option> { + if self.test_type() == Expression::FunctionExpression { + self.test().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_binary_expression(&self) -> Option> { + if self.test_type() == Expression::BinaryExpression { + self.test().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_call_expression(&self) -> Option> { + if self.test_type() == Expression::CallExpression { + self.test().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_conditional_expression(&self) -> Option> { + if self.test_type() == Expression::ConditionalExpression { + self.test() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_identifier_expression(&self) -> Option> { + if self.test_type() == Expression::IdentifierExpression { + self.test() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_logical_expression(&self) -> Option> { + if self.test_type() == Expression::LogicalExpression { + self.test().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_member_expression(&self) -> Option> { + if self.test_type() == Expression::MemberExpression { + self.test().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_index_expression(&self) -> Option> { + if self.test_type() == Expression::IndexExpression { + self.test().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_object_expression(&self) -> Option> { + if self.test_type() == Expression::ObjectExpression { + self.test().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_unary_expression(&self) -> Option> { + if self.test_type() == Expression::UnaryExpression { + self.test().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_boolean_literal(&self) -> Option> { + if self.test_type() == Expression::BooleanLiteral { + self.test().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_date_time_literal(&self) -> Option> { + if self.test_type() == Expression::DateTimeLiteral { + self.test().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_duration_literal(&self) -> Option> { + if self.test_type() == Expression::DurationLiteral { + self.test().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_float_literal(&self) -> Option> { + if self.test_type() == Expression::FloatLiteral { + self.test().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_integer_literal(&self) -> Option> { + if self.test_type() == Expression::IntegerLiteral { + self.test().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_string_literal(&self) -> Option> { + if self.test_type() == Expression::StringLiteral { + self.test().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_regexp_literal(&self) -> Option> { + if self.test_type() == Expression::RegexpLiteral { + self.test().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn test_as_unsigned_integer_literal(&self) -> Option> { + if self.test_type() == Expression::UnsignedIntegerLiteral { + self.test() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_string_expression(&self) -> Option> { + if self.alternate_type() == Expression::StringExpression { + self.alternate() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_array_expression(&self) -> Option> { + if self.alternate_type() == Expression::ArrayExpression { + self.alternate() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_function_expression(&self) -> Option> { + if self.alternate_type() == Expression::FunctionExpression { + self.alternate() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_binary_expression(&self) -> Option> { + if self.alternate_type() == Expression::BinaryExpression { + self.alternate() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_call_expression(&self) -> Option> { + if self.alternate_type() == Expression::CallExpression { + self.alternate().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_conditional_expression(&self) -> Option> { + if self.alternate_type() == Expression::ConditionalExpression { + self.alternate() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_identifier_expression(&self) -> Option> { + if self.alternate_type() == Expression::IdentifierExpression { + self.alternate() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_logical_expression(&self) -> Option> { + if self.alternate_type() == Expression::LogicalExpression { + self.alternate() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_member_expression(&self) -> Option> { + if self.alternate_type() == Expression::MemberExpression { + self.alternate() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_index_expression(&self) -> Option> { + if self.alternate_type() == Expression::IndexExpression { + self.alternate() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_object_expression(&self) -> Option> { + if self.alternate_type() == Expression::ObjectExpression { + self.alternate() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_unary_expression(&self) -> Option> { + if self.alternate_type() == Expression::UnaryExpression { + self.alternate() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_boolean_literal(&self) -> Option> { + if self.alternate_type() == Expression::BooleanLiteral { + self.alternate().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_date_time_literal(&self) -> Option> { + if self.alternate_type() == Expression::DateTimeLiteral { + self.alternate() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_duration_literal(&self) -> Option> { + if self.alternate_type() == Expression::DurationLiteral { + self.alternate() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_float_literal(&self) -> Option> { + if self.alternate_type() == Expression::FloatLiteral { + self.alternate().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_integer_literal(&self) -> Option> { + if self.alternate_type() == Expression::IntegerLiteral { + self.alternate().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_string_literal(&self) -> Option> { + if self.alternate_type() == Expression::StringLiteral { + self.alternate().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_regexp_literal(&self) -> Option> { + if self.alternate_type() == Expression::RegexpLiteral { + self.alternate().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn alternate_as_unsigned_integer_literal(&self) -> Option> { + if self.alternate_type() == Expression::UnsignedIntegerLiteral { + self.alternate() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_string_expression(&self) -> Option> { + if self.consequent_type() == Expression::StringExpression { + self.consequent() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_array_expression(&self) -> Option> { + if self.consequent_type() == Expression::ArrayExpression { + self.consequent() + .map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_function_expression(&self) -> Option> { + if self.consequent_type() == Expression::FunctionExpression { + self.consequent() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_binary_expression(&self) -> Option> { + if self.consequent_type() == Expression::BinaryExpression { + self.consequent() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_call_expression(&self) -> Option> { + if self.consequent_type() == Expression::CallExpression { + self.consequent() + .map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_conditional_expression(&self) -> Option> { + if self.consequent_type() == Expression::ConditionalExpression { + self.consequent() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_identifier_expression(&self) -> Option> { + if self.consequent_type() == Expression::IdentifierExpression { + self.consequent() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_logical_expression(&self) -> Option> { + if self.consequent_type() == Expression::LogicalExpression { + self.consequent() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_member_expression(&self) -> Option> { + if self.consequent_type() == Expression::MemberExpression { + self.consequent() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_index_expression(&self) -> Option> { + if self.consequent_type() == Expression::IndexExpression { + self.consequent() + .map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_object_expression(&self) -> Option> { + if self.consequent_type() == Expression::ObjectExpression { + self.consequent() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_unary_expression(&self) -> Option> { + if self.consequent_type() == Expression::UnaryExpression { + self.consequent() + .map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_boolean_literal(&self) -> Option> { + if self.consequent_type() == Expression::BooleanLiteral { + self.consequent() + .map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_date_time_literal(&self) -> Option> { + if self.consequent_type() == Expression::DateTimeLiteral { + self.consequent() + .map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_duration_literal(&self) -> Option> { + if self.consequent_type() == Expression::DurationLiteral { + self.consequent() + .map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_float_literal(&self) -> Option> { + if self.consequent_type() == Expression::FloatLiteral { + self.consequent().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_integer_literal(&self) -> Option> { + if self.consequent_type() == Expression::IntegerLiteral { + self.consequent() + .map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_string_literal(&self) -> Option> { + if self.consequent_type() == Expression::StringLiteral { + self.consequent().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_regexp_literal(&self) -> Option> { + if self.consequent_type() == Expression::RegexpLiteral { + self.consequent().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn consequent_as_unsigned_integer_literal(&self) -> Option> { + if self.consequent_type() == Expression::UnsignedIntegerLiteral { + self.consequent() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct ConditionalExpressionArgs<'a> { + pub loc: Option>>, + pub test_type: Expression, + pub test: Option>, + pub alternate_type: Expression, + pub alternate: Option>, + pub consequent_type: Expression, + pub consequent: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for ConditionalExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ConditionalExpressionArgs { + loc: None, + test_type: Expression::NONE, + test: None, + alternate_type: Expression::NONE, + alternate: None, + consequent_type: Expression::NONE, + consequent: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct ConditionalExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ConditionalExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ConditionalExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_test_type(&mut self, test_type: Expression) { + self.fbb_.push_slot::( + ConditionalExpression::VT_TEST_TYPE, + test_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_test(&mut self, test: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>( + ConditionalExpression::VT_TEST, + test, + ); + } + #[inline] + pub fn add_alternate_type(&mut self, alternate_type: Expression) { + self.fbb_.push_slot::( + ConditionalExpression::VT_ALTERNATE_TYPE, + alternate_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_alternate( + &mut self, + alternate: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ConditionalExpression::VT_ALTERNATE, + alternate, + ); + } + #[inline] + pub fn add_consequent_type(&mut self, consequent_type: Expression) { + self.fbb_.push_slot::( + ConditionalExpression::VT_CONSEQUENT_TYPE, + consequent_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_consequent( + &mut self, + consequent: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + ConditionalExpression::VT_CONSEQUENT, + consequent, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + ConditionalExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(ConditionalExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ConditionalExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ConditionalExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum LogicalExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct LogicalExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for LogicalExpression<'a> { + type Inner = LogicalExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> LogicalExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + LogicalExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args LogicalExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = LogicalExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.right { + builder.add_right(x); + } + if let Some(x) = args.left { + builder.add_left(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_right_type(args.right_type); + builder.add_left_type(args.left_type); + builder.add_operator(args.operator); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; + pub const VT_LEFT_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_LEFT: flatbuffers::VOffsetT = 10; + pub const VT_RIGHT_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_RIGHT: flatbuffers::VOffsetT = 14; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 16; + pub const VT_TYP: flatbuffers::VOffsetT = 18; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + LogicalExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn operator(&self) -> LogicalOperator { + self._tab + .get::( + LogicalExpression::VT_OPERATOR, + Some(LogicalOperator::AndOperator), + ) + .unwrap() + } + #[inline] + pub fn left_type(&self) -> Expression { + self._tab + .get::(LogicalExpression::VT_LEFT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn left(&self) -> Option> { + self._tab + .get::>>( + LogicalExpression::VT_LEFT, + None, + ) + } + #[inline] + pub fn right_type(&self) -> Expression { + self._tab + .get::(LogicalExpression::VT_RIGHT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn right(&self) -> Option> { + self._tab + .get::>>( + LogicalExpression::VT_RIGHT, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(LogicalExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + LogicalExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_expression(&self) -> Option> { + if self.left_type() == Expression::StringExpression { + self.left().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_array_expression(&self) -> Option> { + if self.left_type() == Expression::ArrayExpression { + self.left().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_function_expression(&self) -> Option> { + if self.left_type() == Expression::FunctionExpression { + self.left().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_binary_expression(&self) -> Option> { + if self.left_type() == Expression::BinaryExpression { + self.left().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_call_expression(&self) -> Option> { + if self.left_type() == Expression::CallExpression { + self.left().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_conditional_expression(&self) -> Option> { + if self.left_type() == Expression::ConditionalExpression { + self.left() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_identifier_expression(&self) -> Option> { + if self.left_type() == Expression::IdentifierExpression { + self.left() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_logical_expression(&self) -> Option> { + if self.left_type() == Expression::LogicalExpression { + self.left().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_member_expression(&self) -> Option> { + if self.left_type() == Expression::MemberExpression { + self.left().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_index_expression(&self) -> Option> { + if self.left_type() == Expression::IndexExpression { + self.left().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_object_expression(&self) -> Option> { + if self.left_type() == Expression::ObjectExpression { + self.left().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unary_expression(&self) -> Option> { + if self.left_type() == Expression::UnaryExpression { + self.left().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_boolean_literal(&self) -> Option> { + if self.left_type() == Expression::BooleanLiteral { + self.left().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_date_time_literal(&self) -> Option> { + if self.left_type() == Expression::DateTimeLiteral { + self.left().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_duration_literal(&self) -> Option> { + if self.left_type() == Expression::DurationLiteral { + self.left().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_float_literal(&self) -> Option> { + if self.left_type() == Expression::FloatLiteral { + self.left().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_integer_literal(&self) -> Option> { + if self.left_type() == Expression::IntegerLiteral { + self.left().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_string_literal(&self) -> Option> { + if self.left_type() == Expression::StringLiteral { + self.left().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_regexp_literal(&self) -> Option> { + if self.left_type() == Expression::RegexpLiteral { + self.left().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn left_as_unsigned_integer_literal(&self) -> Option> { + if self.left_type() == Expression::UnsignedIntegerLiteral { + self.left() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_expression(&self) -> Option> { + if self.right_type() == Expression::StringExpression { + self.right().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_array_expression(&self) -> Option> { + if self.right_type() == Expression::ArrayExpression { + self.right().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_function_expression(&self) -> Option> { + if self.right_type() == Expression::FunctionExpression { + self.right().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_binary_expression(&self) -> Option> { + if self.right_type() == Expression::BinaryExpression { + self.right().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_call_expression(&self) -> Option> { + if self.right_type() == Expression::CallExpression { + self.right().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_conditional_expression(&self) -> Option> { + if self.right_type() == Expression::ConditionalExpression { + self.right() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_identifier_expression(&self) -> Option> { + if self.right_type() == Expression::IdentifierExpression { + self.right() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_logical_expression(&self) -> Option> { + if self.right_type() == Expression::LogicalExpression { + self.right().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_member_expression(&self) -> Option> { + if self.right_type() == Expression::MemberExpression { + self.right().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_index_expression(&self) -> Option> { + if self.right_type() == Expression::IndexExpression { + self.right().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_object_expression(&self) -> Option> { + if self.right_type() == Expression::ObjectExpression { + self.right().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unary_expression(&self) -> Option> { + if self.right_type() == Expression::UnaryExpression { + self.right().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_boolean_literal(&self) -> Option> { + if self.right_type() == Expression::BooleanLiteral { + self.right().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_date_time_literal(&self) -> Option> { + if self.right_type() == Expression::DateTimeLiteral { + self.right().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_duration_literal(&self) -> Option> { + if self.right_type() == Expression::DurationLiteral { + self.right().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_float_literal(&self) -> Option> { + if self.right_type() == Expression::FloatLiteral { + self.right().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_integer_literal(&self) -> Option> { + if self.right_type() == Expression::IntegerLiteral { + self.right().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_string_literal(&self) -> Option> { + if self.right_type() == Expression::StringLiteral { + self.right().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_regexp_literal(&self) -> Option> { + if self.right_type() == Expression::RegexpLiteral { + self.right().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn right_as_unsigned_integer_literal(&self) -> Option> { + if self.right_type() == Expression::UnsignedIntegerLiteral { + self.right() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct LogicalExpressionArgs<'a> { + pub loc: Option>>, + pub operator: LogicalOperator, + pub left_type: Expression, + pub left: Option>, + pub right_type: Expression, + pub right: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for LogicalExpressionArgs<'a> { + #[inline] + fn default() -> Self { + LogicalExpressionArgs { + loc: None, + operator: LogicalOperator::AndOperator, + left_type: Expression::NONE, + left: None, + right_type: Expression::NONE, + right: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct LogicalExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> LogicalExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + LogicalExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_operator(&mut self, operator: LogicalOperator) { + self.fbb_.push_slot::( + LogicalExpression::VT_OPERATOR, + operator, + LogicalOperator::AndOperator, + ); + } + #[inline] + pub fn add_left_type(&mut self, left_type: Expression) { + self.fbb_.push_slot::( + LogicalExpression::VT_LEFT_TYPE, + left_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_left(&mut self, left: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(LogicalExpression::VT_LEFT, left); + } + #[inline] + pub fn add_right_type(&mut self, right_type: Expression) { + self.fbb_.push_slot::( + LogicalExpression::VT_RIGHT_TYPE, + right_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_right(&mut self, right: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(LogicalExpression::VT_RIGHT, right); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + LogicalExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(LogicalExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> LogicalExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + LogicalExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum MemberExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct MemberExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for MemberExpression<'a> { + type Inner = MemberExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> MemberExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + MemberExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args MemberExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = MemberExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.property { + builder.add_property(x); + } + if let Some(x) = args.object { + builder.add_object(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_object_type(args.object_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_OBJECT_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_OBJECT: flatbuffers::VOffsetT = 8; + pub const VT_PROPERTY: flatbuffers::VOffsetT = 10; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_TYP: flatbuffers::VOffsetT = 14; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + MemberExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn object_type(&self) -> Expression { + self._tab + .get::(MemberExpression::VT_OBJECT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn object(&self) -> Option> { + self._tab + .get::>>( + MemberExpression::VT_OBJECT, + None, + ) + } + #[inline] + pub fn property(&self) -> Option<&'a str> { + self._tab + .get::>(MemberExpression::VT_PROPERTY, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(MemberExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + MemberExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn object_as_string_expression(&self) -> Option> { + if self.object_type() == Expression::StringExpression { + self.object().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_array_expression(&self) -> Option> { + if self.object_type() == Expression::ArrayExpression { + self.object().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_function_expression(&self) -> Option> { + if self.object_type() == Expression::FunctionExpression { + self.object() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_binary_expression(&self) -> Option> { + if self.object_type() == Expression::BinaryExpression { + self.object().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_call_expression(&self) -> Option> { + if self.object_type() == Expression::CallExpression { + self.object().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_conditional_expression(&self) -> Option> { + if self.object_type() == Expression::ConditionalExpression { + self.object() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_identifier_expression(&self) -> Option> { + if self.object_type() == Expression::IdentifierExpression { + self.object() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_logical_expression(&self) -> Option> { + if self.object_type() == Expression::LogicalExpression { + self.object().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_member_expression(&self) -> Option> { + if self.object_type() == Expression::MemberExpression { + self.object().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_index_expression(&self) -> Option> { + if self.object_type() == Expression::IndexExpression { + self.object().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_object_expression(&self) -> Option> { + if self.object_type() == Expression::ObjectExpression { + self.object().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_unary_expression(&self) -> Option> { + if self.object_type() == Expression::UnaryExpression { + self.object().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_boolean_literal(&self) -> Option> { + if self.object_type() == Expression::BooleanLiteral { + self.object().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_date_time_literal(&self) -> Option> { + if self.object_type() == Expression::DateTimeLiteral { + self.object().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_duration_literal(&self) -> Option> { + if self.object_type() == Expression::DurationLiteral { + self.object().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_float_literal(&self) -> Option> { + if self.object_type() == Expression::FloatLiteral { + self.object().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_integer_literal(&self) -> Option> { + if self.object_type() == Expression::IntegerLiteral { + self.object().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_string_literal(&self) -> Option> { + if self.object_type() == Expression::StringLiteral { + self.object().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_regexp_literal(&self) -> Option> { + if self.object_type() == Expression::RegexpLiteral { + self.object().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn object_as_unsigned_integer_literal(&self) -> Option> { + if self.object_type() == Expression::UnsignedIntegerLiteral { + self.object() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct MemberExpressionArgs<'a> { + pub loc: Option>>, + pub object_type: Expression, + pub object: Option>, + pub property: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for MemberExpressionArgs<'a> { + #[inline] + fn default() -> Self { + MemberExpressionArgs { + loc: None, + object_type: Expression::NONE, + object: None, + property: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct MemberExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> MemberExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + MemberExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_object_type(&mut self, object_type: Expression) { + self.fbb_.push_slot::( + MemberExpression::VT_OBJECT_TYPE, + object_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_object(&mut self, object: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(MemberExpression::VT_OBJECT, object); + } + #[inline] + pub fn add_property(&mut self, property: flatbuffers::WIPOffset<&'b str>) { + self.fbb_.push_slot_always::>( + MemberExpression::VT_PROPERTY, + property, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + MemberExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(MemberExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> MemberExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + MemberExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IndexExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct IndexExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for IndexExpression<'a> { + type Inner = IndexExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> IndexExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + IndexExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IndexExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IndexExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.index { + builder.add_index(x); + } + if let Some(x) = args.array { + builder.add_array(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_index_type(args.index_type); + builder.add_array_type(args.array_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_ARRAY_TYPE: flatbuffers::VOffsetT = 6; + pub const VT_ARRAY: flatbuffers::VOffsetT = 8; + pub const VT_INDEX_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_INDEX: flatbuffers::VOffsetT = 12; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 14; + pub const VT_TYP: flatbuffers::VOffsetT = 16; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + IndexExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn array_type(&self) -> Expression { + self._tab + .get::(IndexExpression::VT_ARRAY_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn array(&self) -> Option> { + self._tab + .get::>>( + IndexExpression::VT_ARRAY, + None, + ) + } + #[inline] + pub fn index_type(&self) -> Expression { + self._tab + .get::(IndexExpression::VT_INDEX_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn index(&self) -> Option> { + self._tab + .get::>>( + IndexExpression::VT_INDEX, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(IndexExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + IndexExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn array_as_string_expression(&self) -> Option> { + if self.array_type() == Expression::StringExpression { + self.array().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_array_expression(&self) -> Option> { + if self.array_type() == Expression::ArrayExpression { + self.array().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_function_expression(&self) -> Option> { + if self.array_type() == Expression::FunctionExpression { + self.array().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_binary_expression(&self) -> Option> { + if self.array_type() == Expression::BinaryExpression { + self.array().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_call_expression(&self) -> Option> { + if self.array_type() == Expression::CallExpression { + self.array().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_conditional_expression(&self) -> Option> { + if self.array_type() == Expression::ConditionalExpression { + self.array() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_identifier_expression(&self) -> Option> { + if self.array_type() == Expression::IdentifierExpression { + self.array() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_logical_expression(&self) -> Option> { + if self.array_type() == Expression::LogicalExpression { + self.array().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_member_expression(&self) -> Option> { + if self.array_type() == Expression::MemberExpression { + self.array().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_index_expression(&self) -> Option> { + if self.array_type() == Expression::IndexExpression { + self.array().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_object_expression(&self) -> Option> { + if self.array_type() == Expression::ObjectExpression { + self.array().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_unary_expression(&self) -> Option> { + if self.array_type() == Expression::UnaryExpression { + self.array().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_boolean_literal(&self) -> Option> { + if self.array_type() == Expression::BooleanLiteral { + self.array().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_date_time_literal(&self) -> Option> { + if self.array_type() == Expression::DateTimeLiteral { + self.array().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_duration_literal(&self) -> Option> { + if self.array_type() == Expression::DurationLiteral { + self.array().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_float_literal(&self) -> Option> { + if self.array_type() == Expression::FloatLiteral { + self.array().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_integer_literal(&self) -> Option> { + if self.array_type() == Expression::IntegerLiteral { + self.array().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_string_literal(&self) -> Option> { + if self.array_type() == Expression::StringLiteral { + self.array().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_regexp_literal(&self) -> Option> { + if self.array_type() == Expression::RegexpLiteral { + self.array().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn array_as_unsigned_integer_literal(&self) -> Option> { + if self.array_type() == Expression::UnsignedIntegerLiteral { + self.array() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_string_expression(&self) -> Option> { + if self.index_type() == Expression::StringExpression { + self.index().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_array_expression(&self) -> Option> { + if self.index_type() == Expression::ArrayExpression { + self.index().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_function_expression(&self) -> Option> { + if self.index_type() == Expression::FunctionExpression { + self.index().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_binary_expression(&self) -> Option> { + if self.index_type() == Expression::BinaryExpression { + self.index().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_call_expression(&self) -> Option> { + if self.index_type() == Expression::CallExpression { + self.index().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_conditional_expression(&self) -> Option> { + if self.index_type() == Expression::ConditionalExpression { + self.index() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_identifier_expression(&self) -> Option> { + if self.index_type() == Expression::IdentifierExpression { + self.index() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_logical_expression(&self) -> Option> { + if self.index_type() == Expression::LogicalExpression { + self.index().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_member_expression(&self) -> Option> { + if self.index_type() == Expression::MemberExpression { + self.index().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_index_expression(&self) -> Option> { + if self.index_type() == Expression::IndexExpression { + self.index().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_object_expression(&self) -> Option> { + if self.index_type() == Expression::ObjectExpression { + self.index().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_unary_expression(&self) -> Option> { + if self.index_type() == Expression::UnaryExpression { + self.index().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_boolean_literal(&self) -> Option> { + if self.index_type() == Expression::BooleanLiteral { + self.index().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_date_time_literal(&self) -> Option> { + if self.index_type() == Expression::DateTimeLiteral { + self.index().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_duration_literal(&self) -> Option> { + if self.index_type() == Expression::DurationLiteral { + self.index().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_float_literal(&self) -> Option> { + if self.index_type() == Expression::FloatLiteral { + self.index().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_integer_literal(&self) -> Option> { + if self.index_type() == Expression::IntegerLiteral { + self.index().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_string_literal(&self) -> Option> { + if self.index_type() == Expression::StringLiteral { + self.index().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_regexp_literal(&self) -> Option> { + if self.index_type() == Expression::RegexpLiteral { + self.index().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn index_as_unsigned_integer_literal(&self) -> Option> { + if self.index_type() == Expression::UnsignedIntegerLiteral { + self.index() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct IndexExpressionArgs<'a> { + pub loc: Option>>, + pub array_type: Expression, + pub array: Option>, + pub index_type: Expression, + pub index: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for IndexExpressionArgs<'a> { + #[inline] + fn default() -> Self { + IndexExpressionArgs { + loc: None, + array_type: Expression::NONE, + array: None, + index_type: Expression::NONE, + index: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct IndexExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IndexExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + IndexExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_array_type(&mut self, array_type: Expression) { + self.fbb_.push_slot::( + IndexExpression::VT_ARRAY_TYPE, + array_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_array(&mut self, array: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IndexExpression::VT_ARRAY, array); + } + #[inline] + pub fn add_index_type(&mut self, index_type: Expression) { + self.fbb_.push_slot::( + IndexExpression::VT_INDEX_TYPE, + index_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_index(&mut self, index: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IndexExpression::VT_INDEX, index); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(IndexExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IndexExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> IndexExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + IndexExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum ObjectExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct ObjectExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for ObjectExpression<'a> { + type Inner = ObjectExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> ObjectExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + ObjectExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args ObjectExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = ObjectExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.properties { + builder.add_properties(x); + } + if let Some(x) = args.with { + builder.add_with(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_WITH: flatbuffers::VOffsetT = 6; + pub const VT_PROPERTIES: flatbuffers::VOffsetT = 8; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 10; + pub const VT_TYP: flatbuffers::VOffsetT = 12; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + ObjectExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn with(&self) -> Option> { + self._tab + .get::>>( + ObjectExpression::VT_WITH, + None, + ) + } + #[inline] + pub fn properties( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(ObjectExpression::VT_PROPERTIES, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(ObjectExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + ObjectExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct ObjectExpressionArgs<'a> { + pub loc: Option>>, + pub with: Option>>, + pub properties: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for ObjectExpressionArgs<'a> { + #[inline] + fn default() -> Self { + ObjectExpressionArgs { + loc: None, + with: None, + properties: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct ObjectExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> ObjectExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ObjectExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_with(&mut self, with: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + ObjectExpression::VT_WITH, + with, + ); + } + #[inline] + pub fn add_properties( + &mut self, + properties: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_.push_slot_always::>( + ObjectExpression::VT_PROPERTIES, + properties, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + ObjectExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(ObjectExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> ObjectExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + ObjectExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum UnaryExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct UnaryExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for UnaryExpression<'a> { + type Inner = UnaryExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> UnaryExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + UnaryExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args UnaryExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = UnaryExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.argument { + builder.add_argument(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_argument_type(args.argument_type); + builder.add_operator(args.operator); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_OPERATOR: flatbuffers::VOffsetT = 6; + pub const VT_ARGUMENT_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_ARGUMENT: flatbuffers::VOffsetT = 10; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 12; + pub const VT_TYP: flatbuffers::VOffsetT = 14; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + UnaryExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn operator(&self) -> Operator { + self._tab + .get::( + UnaryExpression::VT_OPERATOR, + Some(Operator::MultiplicationOperator), + ) + .unwrap() + } + #[inline] + pub fn argument_type(&self) -> Expression { + self._tab + .get::(UnaryExpression::VT_ARGUMENT_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn argument(&self) -> Option> { + self._tab + .get::>>( + UnaryExpression::VT_ARGUMENT, + None, + ) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(UnaryExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + UnaryExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_expression(&self) -> Option> { + if self.argument_type() == Expression::StringExpression { + self.argument() + .map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_array_expression(&self) -> Option> { + if self.argument_type() == Expression::ArrayExpression { + self.argument().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_function_expression(&self) -> Option> { + if self.argument_type() == Expression::FunctionExpression { + self.argument() + .map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_binary_expression(&self) -> Option> { + if self.argument_type() == Expression::BinaryExpression { + self.argument() + .map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_call_expression(&self) -> Option> { + if self.argument_type() == Expression::CallExpression { + self.argument().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_conditional_expression(&self) -> Option> { + if self.argument_type() == Expression::ConditionalExpression { + self.argument() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_identifier_expression(&self) -> Option> { + if self.argument_type() == Expression::IdentifierExpression { + self.argument() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_logical_expression(&self) -> Option> { + if self.argument_type() == Expression::LogicalExpression { + self.argument() + .map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_member_expression(&self) -> Option> { + if self.argument_type() == Expression::MemberExpression { + self.argument() + .map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_index_expression(&self) -> Option> { + if self.argument_type() == Expression::IndexExpression { + self.argument().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_object_expression(&self) -> Option> { + if self.argument_type() == Expression::ObjectExpression { + self.argument() + .map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unary_expression(&self) -> Option> { + if self.argument_type() == Expression::UnaryExpression { + self.argument().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_boolean_literal(&self) -> Option> { + if self.argument_type() == Expression::BooleanLiteral { + self.argument().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_date_time_literal(&self) -> Option> { + if self.argument_type() == Expression::DateTimeLiteral { + self.argument().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_duration_literal(&self) -> Option> { + if self.argument_type() == Expression::DurationLiteral { + self.argument().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_float_literal(&self) -> Option> { + if self.argument_type() == Expression::FloatLiteral { + self.argument().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::IntegerLiteral { + self.argument().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_string_literal(&self) -> Option> { + if self.argument_type() == Expression::StringLiteral { + self.argument().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_regexp_literal(&self) -> Option> { + if self.argument_type() == Expression::RegexpLiteral { + self.argument().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn argument_as_unsigned_integer_literal(&self) -> Option> { + if self.argument_type() == Expression::UnsignedIntegerLiteral { + self.argument() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct UnaryExpressionArgs<'a> { + pub loc: Option>>, + pub operator: Operator, + pub argument_type: Expression, + pub argument: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for UnaryExpressionArgs<'a> { + #[inline] + fn default() -> Self { + UnaryExpressionArgs { + loc: None, + operator: Operator::MultiplicationOperator, + argument_type: Expression::NONE, + argument: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct UnaryExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> UnaryExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + UnaryExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_operator(&mut self, operator: Operator) { + self.fbb_.push_slot::( + UnaryExpression::VT_OPERATOR, + operator, + Operator::MultiplicationOperator, + ); + } + #[inline] + pub fn add_argument_type(&mut self, argument_type: Expression) { + self.fbb_.push_slot::( + UnaryExpression::VT_ARGUMENT_TYPE, + argument_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_argument( + &mut self, + argument: flatbuffers::WIPOffset, + ) { + self.fbb_.push_slot_always::>( + UnaryExpression::VT_ARGUMENT, + argument, + ); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(UnaryExpression::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(UnaryExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> UnaryExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + UnaryExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum PropertyOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Property<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Property<'a> { + type Inner = Property<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Property<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Property { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args PropertyArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = PropertyBuilder::new(_fbb); + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.key { + builder.add_key(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_value_type(args.value_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_KEY: flatbuffers::VOffsetT = 6; + pub const VT_VALUE_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_VALUE: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(Property::VT_LOC, None) + } + #[inline] + pub fn key(&self) -> Option> { + self._tab + .get::>>(Property::VT_KEY, None) + } + #[inline] + pub fn value_type(&self) -> Expression { + self._tab + .get::(Property::VT_VALUE_TYPE, Some(Expression::NONE)) + .unwrap() + } + #[inline] + pub fn value(&self) -> Option> { + self._tab + .get::>>( + Property::VT_VALUE, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn value_as_string_expression(&self) -> Option> { + if self.value_type() == Expression::StringExpression { + self.value().map(|u| StringExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_array_expression(&self) -> Option> { + if self.value_type() == Expression::ArrayExpression { + self.value().map(|u| ArrayExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_function_expression(&self) -> Option> { + if self.value_type() == Expression::FunctionExpression { + self.value().map(|u| FunctionExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_binary_expression(&self) -> Option> { + if self.value_type() == Expression::BinaryExpression { + self.value().map(|u| BinaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_call_expression(&self) -> Option> { + if self.value_type() == Expression::CallExpression { + self.value().map(|u| CallExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_conditional_expression(&self) -> Option> { + if self.value_type() == Expression::ConditionalExpression { + self.value() + .map(|u| ConditionalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_identifier_expression(&self) -> Option> { + if self.value_type() == Expression::IdentifierExpression { + self.value() + .map(|u| IdentifierExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_logical_expression(&self) -> Option> { + if self.value_type() == Expression::LogicalExpression { + self.value().map(|u| LogicalExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_member_expression(&self) -> Option> { + if self.value_type() == Expression::MemberExpression { + self.value().map(|u| MemberExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_index_expression(&self) -> Option> { + if self.value_type() == Expression::IndexExpression { + self.value().map(|u| IndexExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_object_expression(&self) -> Option> { + if self.value_type() == Expression::ObjectExpression { + self.value().map(|u| ObjectExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_unary_expression(&self) -> Option> { + if self.value_type() == Expression::UnaryExpression { + self.value().map(|u| UnaryExpression::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_boolean_literal(&self) -> Option> { + if self.value_type() == Expression::BooleanLiteral { + self.value().map(|u| BooleanLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_date_time_literal(&self) -> Option> { + if self.value_type() == Expression::DateTimeLiteral { + self.value().map(|u| DateTimeLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_duration_literal(&self) -> Option> { + if self.value_type() == Expression::DurationLiteral { + self.value().map(|u| DurationLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_float_literal(&self) -> Option> { + if self.value_type() == Expression::FloatLiteral { + self.value().map(|u| FloatLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_integer_literal(&self) -> Option> { + if self.value_type() == Expression::IntegerLiteral { + self.value().map(|u| IntegerLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_string_literal(&self) -> Option> { + if self.value_type() == Expression::StringLiteral { + self.value().map(|u| StringLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_regexp_literal(&self) -> Option> { + if self.value_type() == Expression::RegexpLiteral { + self.value().map(|u| RegexpLiteral::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn value_as_unsigned_integer_literal(&self) -> Option> { + if self.value_type() == Expression::UnsignedIntegerLiteral { + self.value() + .map(|u| UnsignedIntegerLiteral::init_from_table(u)) + } else { + None + } + } + } + + pub struct PropertyArgs<'a> { + pub loc: Option>>, + pub key: Option>>, + pub value_type: Expression, + pub value: Option>, + } + impl<'a> Default for PropertyArgs<'a> { + #[inline] + fn default() -> Self { + PropertyArgs { + loc: None, + key: None, + value_type: Expression::NONE, + value: None, + } + } + } + pub struct PropertyBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> PropertyBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(Property::VT_LOC, loc); + } + #[inline] + pub fn add_key(&mut self, key: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(Property::VT_KEY, key); + } + #[inline] + pub fn add_value_type(&mut self, value_type: Expression) { + self.fbb_.push_slot::( + Property::VT_VALUE_TYPE, + value_type, + Expression::NONE, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(Property::VT_VALUE, value); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PropertyBuilder<'a, 'b> { + let start = _fbb.start_table(); + PropertyBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IdentifierExpressionOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct IdentifierExpression<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for IdentifierExpression<'a> { + type Inner = IdentifierExpression<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> IdentifierExpression<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + IdentifierExpression { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IdentifierExpressionArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IdentifierExpressionBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.name { + builder.add_name(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + IdentifierExpression::VT_LOC, + None, + ) + } + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab + .get::>(IdentifierExpression::VT_NAME, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(IdentifierExpression::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + IdentifierExpression::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct IdentifierExpressionArgs<'a> { + pub loc: Option>>, + pub name: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for IdentifierExpressionArgs<'a> { + #[inline] + fn default() -> Self { + IdentifierExpressionArgs { + loc: None, + name: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct IdentifierExpressionBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IdentifierExpressionBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + IdentifierExpression::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(IdentifierExpression::VT_NAME, name); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + IdentifierExpression::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IdentifierExpression::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> IdentifierExpressionBuilder<'a, 'b> { + let start = _fbb.start_table(); + IdentifierExpressionBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IdentifierOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Identifier<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Identifier<'a> { + type Inner = Identifier<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Identifier<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Identifier { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IdentifierArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IdentifierBuilder::new(_fbb); + if let Some(x) = args.name { + builder.add_name(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_NAME: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(Identifier::VT_LOC, None) + } + #[inline] + pub fn name(&self) -> Option<&'a str> { + self._tab + .get::>(Identifier::VT_NAME, None) + } + } + + pub struct IdentifierArgs<'a> { + pub loc: Option>>, + pub name: Option>, + } + impl<'a> Default for IdentifierArgs<'a> { + #[inline] + fn default() -> Self { + IdentifierArgs { + loc: None, + name: None, + } + } + } + pub struct IdentifierBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IdentifierBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + Identifier::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(Identifier::VT_NAME, name); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IdentifierBuilder<'a, 'b> { + let start = _fbb.start_table(); + IdentifierBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum BooleanLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct BooleanLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for BooleanLiteral<'a> { + type Inner = BooleanLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> BooleanLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + BooleanLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args BooleanLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = BooleanLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.add_value(args.value); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + BooleanLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value(&self) -> bool { + self._tab + .get::(BooleanLiteral::VT_VALUE, Some(false)) + .unwrap() + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(BooleanLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + BooleanLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct BooleanLiteralArgs<'a> { + pub loc: Option>>, + pub value: bool, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for BooleanLiteralArgs<'a> { + #[inline] + fn default() -> Self { + BooleanLiteralArgs { + loc: None, + value: false, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct BooleanLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> BooleanLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + BooleanLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: bool) { + self.fbb_ + .push_slot::(BooleanLiteral::VT_VALUE, value, false); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(BooleanLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(BooleanLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> BooleanLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + BooleanLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum DateTimeLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct DateTimeLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for DateTimeLiteral<'a> { + type Inner = DateTimeLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> DateTimeLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + DateTimeLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DateTimeLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = DateTimeLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + DateTimeLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value(&self) -> Option> { + self._tab + .get::>>(DateTimeLiteral::VT_VALUE, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(DateTimeLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + DateTimeLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct DateTimeLiteralArgs<'a> { + pub loc: Option>>, + pub value: Option>>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for DateTimeLiteralArgs<'a> { + #[inline] + fn default() -> Self { + DateTimeLiteralArgs { + loc: None, + value: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct DateTimeLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> DateTimeLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + DateTimeLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>(DateTimeLiteral::VT_VALUE, value); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(DateTimeLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(DateTimeLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> DateTimeLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + DateTimeLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum TimeOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Time<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Time<'a> { + type Inner = Time<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } } } -} -impl<'a> IntegerLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - IntegerLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args IntegerLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = IntegerLiteralBuilder::new(_fbb); - builder.add_value(args.value); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(IntegerLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> i64 { - self._tab.get::(IntegerLiteral::VT_VALUE, Some(0)).unwrap() - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(IntegerLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(IntegerLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct IntegerLiteralArgs<'a> { - pub loc: Option>>, - pub value: i64, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for IntegerLiteralArgs<'a> { - #[inline] - fn default() -> Self { - IntegerLiteralArgs { - loc: None, - value: 0, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct IntegerLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> IntegerLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(IntegerLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: i64) { - self.fbb_.push_slot::(IntegerLiteral::VT_VALUE, value, 0); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(IntegerLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(IntegerLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> IntegerLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - IntegerLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum FloatLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct FloatLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for FloatLiteral<'a> { - type Inner = FloatLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, + impl<'a> Time<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Time { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args TimeArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = TimeBuilder::new(_fbb); + builder.add_secs(args.secs); + builder.add_offset(args.offset); + builder.add_nsecs(args.nsecs); + builder.finish() + } + + pub const VT_SECS: flatbuffers::VOffsetT = 4; + pub const VT_NSECS: flatbuffers::VOffsetT = 6; + pub const VT_OFFSET: flatbuffers::VOffsetT = 8; + + #[inline] + pub fn secs(&self) -> i64 { + self._tab.get::(Time::VT_SECS, Some(0)).unwrap() + } + #[inline] + pub fn nsecs(&self) -> u32 { + self._tab.get::(Time::VT_NSECS, Some(0)).unwrap() + } + #[inline] + pub fn offset(&self) -> i32 { + self._tab.get::(Time::VT_OFFSET, Some(0)).unwrap() + } + } + + pub struct TimeArgs { + pub secs: i64, + pub nsecs: u32, + pub offset: i32, + } + impl<'a> Default for TimeArgs { + #[inline] + fn default() -> Self { + TimeArgs { + secs: 0, + nsecs: 0, + offset: 0, + } + } + } + pub struct TimeBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> TimeBuilder<'a, 'b> { + #[inline] + pub fn add_secs(&mut self, secs: i64) { + self.fbb_.push_slot::(Time::VT_SECS, secs, 0); + } + #[inline] + pub fn add_nsecs(&mut self, nsecs: u32) { + self.fbb_.push_slot::(Time::VT_NSECS, nsecs, 0); + } + #[inline] + pub fn add_offset(&mut self, offset: i32) { + self.fbb_.push_slot::(Time::VT_OFFSET, offset, 0); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TimeBuilder<'a, 'b> { + let start = _fbb.start_table(); + TimeBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum DurationLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct DurationLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for DurationLiteral<'a> { + type Inner = DurationLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> DurationLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + DurationLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DurationLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = DurationLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + DurationLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value( + &self, + ) -> Option>>> { + self._tab.get::>>, + >>(DurationLiteral::VT_VALUE, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(DurationLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + DurationLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct DurationLiteralArgs<'a> { + pub loc: Option>>, + pub value: Option< + flatbuffers::WIPOffset< + flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset>>, + >, + >, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for DurationLiteralArgs<'a> { + #[inline] + fn default() -> Self { + DurationLiteralArgs { + loc: None, + value: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct DurationLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> DurationLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + DurationLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value( + &mut self, + value: flatbuffers::WIPOffset< + flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset>>, + >, + ) { + self.fbb_ + .push_slot_always::>(DurationLiteral::VT_VALUE, value); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(DurationLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(DurationLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> DurationLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + DurationLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum DurationOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct Duration<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for Duration<'a> { + type Inner = Duration<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> Duration<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Duration { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args DurationArgs, + ) -> flatbuffers::WIPOffset> { + let mut builder = DurationBuilder::new(_fbb); + builder.add_magnitude(args.magnitude); + builder.add_unit(args.unit); + builder.finish() + } + + pub const VT_MAGNITUDE: flatbuffers::VOffsetT = 4; + pub const VT_UNIT: flatbuffers::VOffsetT = 6; + + #[inline] + pub fn magnitude(&self) -> i64 { + self._tab + .get::(Duration::VT_MAGNITUDE, Some(0)) + .unwrap() + } + #[inline] + pub fn unit(&self) -> TimeUnit { + self._tab + .get::(Duration::VT_UNIT, Some(TimeUnit::y)) + .unwrap() + } + } + + pub struct DurationArgs { + pub magnitude: i64, + pub unit: TimeUnit, + } + impl<'a> Default for DurationArgs { + #[inline] + fn default() -> Self { + DurationArgs { + magnitude: 0, + unit: TimeUnit::y, + } + } + } + pub struct DurationBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> DurationBuilder<'a, 'b> { + #[inline] + pub fn add_magnitude(&mut self, magnitude: i64) { + self.fbb_ + .push_slot::(Duration::VT_MAGNITUDE, magnitude, 0); + } + #[inline] + pub fn add_unit(&mut self, unit: TimeUnit) { + self.fbb_ + .push_slot::(Duration::VT_UNIT, unit, TimeUnit::y); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> DurationBuilder<'a, 'b> { + let start = _fbb.start_table(); + DurationBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum IntegerLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct IntegerLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for IntegerLiteral<'a> { + type Inner = IntegerLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> IntegerLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + IntegerLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args IntegerLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = IntegerLiteralBuilder::new(_fbb); + builder.add_value(args.value); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + IntegerLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value(&self) -> i64 { + self._tab + .get::(IntegerLiteral::VT_VALUE, Some(0)) + .unwrap() + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(IntegerLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + IntegerLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct IntegerLiteralArgs<'a> { + pub loc: Option>>, + pub value: i64, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for IntegerLiteralArgs<'a> { + #[inline] + fn default() -> Self { + IntegerLiteralArgs { + loc: None, + value: 0, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct IntegerLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> IntegerLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + IntegerLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: i64) { + self.fbb_ + .push_slot::(IntegerLiteral::VT_VALUE, value, 0); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(IntegerLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(IntegerLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> IntegerLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + IntegerLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum FloatLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct FloatLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for FloatLiteral<'a> { + type Inner = FloatLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> FloatLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + FloatLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args FloatLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = FloatLiteralBuilder::new(_fbb); + builder.add_value(args.value); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>(FloatLiteral::VT_LOC, None) + } + #[inline] + pub fn value(&self) -> f64 { + self._tab + .get::(FloatLiteral::VT_VALUE, Some(0.0)) + .unwrap() + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(FloatLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + FloatLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct FloatLiteralArgs<'a> { + pub loc: Option>>, + pub value: f64, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for FloatLiteralArgs<'a> { + #[inline] + fn default() -> Self { + FloatLiteralArgs { + loc: None, + value: 0.0, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct FloatLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> FloatLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + FloatLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: f64) { + self.fbb_ + .push_slot::(FloatLiteral::VT_VALUE, value, 0.0); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(FloatLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(FloatLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> FloatLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + FloatLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum RegexpLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct RegexpLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for RegexpLiteral<'a> { + type Inner = RegexpLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> RegexpLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + RegexpLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args RegexpLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = RegexpLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + RegexpLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value(&self) -> Option<&'a str> { + self._tab + .get::>(RegexpLiteral::VT_VALUE, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(RegexpLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + RegexpLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct RegexpLiteralArgs<'a> { + pub loc: Option>>, + pub value: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for RegexpLiteralArgs<'a> { + #[inline] + fn default() -> Self { + RegexpLiteralArgs { + loc: None, + value: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct RegexpLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> RegexpLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + RegexpLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(RegexpLiteral::VT_VALUE, value); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(RegexpLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(RegexpLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> RegexpLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + RegexpLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum StringLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct StringLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for StringLiteral<'a> { + type Inner = StringLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> StringLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + StringLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args StringLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = StringLiteralBuilder::new(_fbb); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.value { + builder.add_value(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + StringLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value(&self) -> Option<&'a str> { + self._tab + .get::>(StringLiteral::VT_VALUE, None) + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(StringLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + StringLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct StringLiteralArgs<'a> { + pub loc: Option>>, + pub value: Option>, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for StringLiteralArgs<'a> { + #[inline] + fn default() -> Self { + StringLiteralArgs { + loc: None, + value: None, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct StringLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> StringLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + StringLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { + self.fbb_ + .push_slot_always::>(StringLiteral::VT_VALUE, value); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_ + .push_slot::(StringLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(StringLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> StringLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + StringLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } + } + + pub enum UnsignedIntegerLiteralOffset {} + #[derive(Copy, Clone, Debug, PartialEq)] + + pub struct UnsignedIntegerLiteral<'a> { + pub _tab: flatbuffers::Table<'a>, + } + + impl<'a> flatbuffers::Follow<'a> for UnsignedIntegerLiteral<'a> { + type Inner = UnsignedIntegerLiteral<'a>; + #[inline] + fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { + _tab: flatbuffers::Table { buf: buf, loc: loc }, + } + } + } + + impl<'a> UnsignedIntegerLiteral<'a> { + #[inline] + pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + UnsignedIntegerLiteral { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args UnsignedIntegerLiteralArgs<'args>, + ) -> flatbuffers::WIPOffset> { + let mut builder = UnsignedIntegerLiteralBuilder::new(_fbb); + builder.add_value(args.value); + if let Some(x) = args.typ { + builder.add_typ(x); + } + if let Some(x) = args.loc { + builder.add_loc(x); + } + builder.add_typ_type(args.typ_type); + builder.finish() + } + + pub const VT_LOC: flatbuffers::VOffsetT = 4; + pub const VT_VALUE: flatbuffers::VOffsetT = 6; + pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; + pub const VT_TYP: flatbuffers::VOffsetT = 10; + + #[inline] + pub fn loc(&self) -> Option> { + self._tab + .get::>>( + UnsignedIntegerLiteral::VT_LOC, + None, + ) + } + #[inline] + pub fn value(&self) -> u64 { + self._tab + .get::(UnsignedIntegerLiteral::VT_VALUE, Some(0)) + .unwrap() + } + #[inline] + pub fn typ_type(&self) -> MonoType { + self._tab + .get::(UnsignedIntegerLiteral::VT_TYP_TYPE, Some(MonoType::NONE)) + .unwrap() + } + #[inline] + pub fn typ(&self) -> Option> { + self._tab + .get::>>( + UnsignedIntegerLiteral::VT_TYP, + None, + ) + } + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_basic(&self) -> Option> { + if self.typ_type() == MonoType::Basic { + self.typ().map(|u| Basic::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_var(&self) -> Option> { + if self.typ_type() == MonoType::Var { + self.typ().map(|u| Var::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_arr(&self) -> Option> { + if self.typ_type() == MonoType::Arr { + self.typ().map(|u| Arr::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_row(&self) -> Option> { + if self.typ_type() == MonoType::Row { + self.typ().map(|u| Row::init_from_table(u)) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn typ_as_fun(&self) -> Option> { + if self.typ_type() == MonoType::Fun { + self.typ().map(|u| Fun::init_from_table(u)) + } else { + None + } + } + } + + pub struct UnsignedIntegerLiteralArgs<'a> { + pub loc: Option>>, + pub value: u64, + pub typ_type: MonoType, + pub typ: Option>, + } + impl<'a> Default for UnsignedIntegerLiteralArgs<'a> { + #[inline] + fn default() -> Self { + UnsignedIntegerLiteralArgs { + loc: None, + value: 0, + typ_type: MonoType::NONE, + typ: None, + } + } + } + pub struct UnsignedIntegerLiteralBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, + } + impl<'a: 'b, 'b> UnsignedIntegerLiteralBuilder<'a, 'b> { + #[inline] + pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { + self.fbb_ + .push_slot_always::>( + UnsignedIntegerLiteral::VT_LOC, + loc, + ); + } + #[inline] + pub fn add_value(&mut self, value: u64) { + self.fbb_ + .push_slot::(UnsignedIntegerLiteral::VT_VALUE, value, 0); + } + #[inline] + pub fn add_typ_type(&mut self, typ_type: MonoType) { + self.fbb_.push_slot::( + UnsignedIntegerLiteral::VT_TYP_TYPE, + typ_type, + MonoType::NONE, + ); + } + #[inline] + pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { + self.fbb_ + .push_slot_always::>(UnsignedIntegerLiteral::VT_TYP, typ); + } + #[inline] + pub fn new( + _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + ) -> UnsignedIntegerLiteralBuilder<'a, 'b> { + let start = _fbb.start_table(); + UnsignedIntegerLiteralBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) } } -} -impl<'a> FloatLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - FloatLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args FloatLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = FloatLiteralBuilder::new(_fbb); - builder.add_value(args.value); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(FloatLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> f64 { - self._tab.get::(FloatLiteral::VT_VALUE, Some(0.0)).unwrap() - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(FloatLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(FloatLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct FloatLiteralArgs<'a> { - pub loc: Option>>, - pub value: f64, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for FloatLiteralArgs<'a> { - #[inline] - fn default() -> Self { - FloatLiteralArgs { - loc: None, - value: 0.0, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct FloatLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> FloatLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(FloatLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: f64) { - self.fbb_.push_slot::(FloatLiteral::VT_VALUE, value, 0.0); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(FloatLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(FloatLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FloatLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - FloatLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum RegexpLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct RegexpLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for RegexpLiteral<'a> { - type Inner = RegexpLiteral<'a>; #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn get_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { + flatbuffers::get_root::>(buf) } -} -impl<'a> RegexpLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - RegexpLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args RegexpLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = RegexpLiteralBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(RegexpLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> Option<&'a str> { - self._tab.get::>(RegexpLiteral::VT_VALUE, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(RegexpLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(RegexpLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct RegexpLiteralArgs<'a> { - pub loc: Option>>, - pub value: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for RegexpLiteralArgs<'a> { - #[inline] - fn default() -> Self { - RegexpLiteralArgs { - loc: None, - value: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct RegexpLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> RegexpLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(RegexpLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(RegexpLiteral::VT_VALUE, value); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(RegexpLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(RegexpLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RegexpLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - RegexpLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum StringLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct StringLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for StringLiteral<'a> { - type Inner = StringLiteral<'a>; #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn get_size_prefixed_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { + flatbuffers::get_size_prefixed_root::>(buf) } -} -impl<'a> StringLiteral<'a> { - #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - StringLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args StringLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = StringLiteralBuilder::new(_fbb); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.value { builder.add_value(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(StringLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> Option<&'a str> { - self._tab.get::>(StringLiteral::VT_VALUE, None) - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(StringLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(StringLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct StringLiteralArgs<'a> { - pub loc: Option>>, - pub value: Option>, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for StringLiteralArgs<'a> { #[inline] - fn default() -> Self { - StringLiteralArgs { - loc: None, - value: None, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct StringLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> StringLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(StringLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) { - self.fbb_.push_slot_always::>(StringLiteral::VT_VALUE, value); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(StringLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(StringLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StringLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - StringLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -pub enum UnsignedIntegerLiteralOffset {} -#[derive(Copy, Clone, Debug, PartialEq)] - -pub struct UnsignedIntegerLiteral<'a> { - pub _tab: flatbuffers::Table<'a>, -} - -impl<'a> flatbuffers::Follow<'a> for UnsignedIntegerLiteral<'a> { - type Inner = UnsignedIntegerLiteral<'a>; - #[inline] - fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { - Self { - _tab: flatbuffers::Table { buf: buf, loc: loc }, - } + pub fn finish_package_buffer<'a, 'b>( + fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + root: flatbuffers::WIPOffset>, + ) { + fbb.finish(root, None); } -} -impl<'a> UnsignedIntegerLiteral<'a> { #[inline] - pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { - UnsignedIntegerLiteral { - _tab: table, - } - } - #[allow(unused_mut)] - pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( - _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, - args: &'args UnsignedIntegerLiteralArgs<'args>) -> flatbuffers::WIPOffset> { - let mut builder = UnsignedIntegerLiteralBuilder::new(_fbb); - builder.add_value(args.value); - if let Some(x) = args.typ { builder.add_typ(x); } - if let Some(x) = args.loc { builder.add_loc(x); } - builder.add_typ_type(args.typ_type); - builder.finish() - } - - pub const VT_LOC: flatbuffers::VOffsetT = 4; - pub const VT_VALUE: flatbuffers::VOffsetT = 6; - pub const VT_TYP_TYPE: flatbuffers::VOffsetT = 8; - pub const VT_TYP: flatbuffers::VOffsetT = 10; - - #[inline] - pub fn loc(&self) -> Option> { - self._tab.get::>>(UnsignedIntegerLiteral::VT_LOC, None) - } - #[inline] - pub fn value(&self) -> u64 { - self._tab.get::(UnsignedIntegerLiteral::VT_VALUE, Some(0)).unwrap() - } - #[inline] - pub fn typ_type(&self) -> MonoType { - self._tab.get::(UnsignedIntegerLiteral::VT_TYP_TYPE, Some(MonoType::NONE)).unwrap() - } - #[inline] - pub fn typ(&self) -> Option> { - self._tab.get::>>(UnsignedIntegerLiteral::VT_TYP, None) - } - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_basic(&self) -> Option> { - if self.typ_type() == MonoType::Basic { - self.typ().map(|u| Basic::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_var(&self) -> Option> { - if self.typ_type() == MonoType::Var { - self.typ().map(|u| Var::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_arr(&self) -> Option> { - if self.typ_type() == MonoType::Arr { - self.typ().map(|u| Arr::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_row(&self) -> Option> { - if self.typ_type() == MonoType::Row { - self.typ().map(|u| Row::init_from_table(u)) - } else { - None - } - } - - #[inline] - #[allow(non_snake_case)] - pub fn typ_as_fun(&self) -> Option> { - if self.typ_type() == MonoType::Fun { - self.typ().map(|u| Fun::init_from_table(u)) - } else { - None - } - } - -} - -pub struct UnsignedIntegerLiteralArgs<'a> { - pub loc: Option>>, - pub value: u64, - pub typ_type: MonoType, - pub typ: Option>, -} -impl<'a> Default for UnsignedIntegerLiteralArgs<'a> { - #[inline] - fn default() -> Self { - UnsignedIntegerLiteralArgs { - loc: None, - value: 0, - typ_type: MonoType::NONE, - typ: None, - } - } -} -pub struct UnsignedIntegerLiteralBuilder<'a: 'b, 'b> { - fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, - start_: flatbuffers::WIPOffset, -} -impl<'a: 'b, 'b> UnsignedIntegerLiteralBuilder<'a, 'b> { - #[inline] - pub fn add_loc(&mut self, loc: flatbuffers::WIPOffset>) { - self.fbb_.push_slot_always::>(UnsignedIntegerLiteral::VT_LOC, loc); - } - #[inline] - pub fn add_value(&mut self, value: u64) { - self.fbb_.push_slot::(UnsignedIntegerLiteral::VT_VALUE, value, 0); - } - #[inline] - pub fn add_typ_type(&mut self, typ_type: MonoType) { - self.fbb_.push_slot::(UnsignedIntegerLiteral::VT_TYP_TYPE, typ_type, MonoType::NONE); - } - #[inline] - pub fn add_typ(&mut self, typ: flatbuffers::WIPOffset) { - self.fbb_.push_slot_always::>(UnsignedIntegerLiteral::VT_TYP, typ); - } - #[inline] - pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UnsignedIntegerLiteralBuilder<'a, 'b> { - let start = _fbb.start_table(); - UnsignedIntegerLiteralBuilder { - fbb_: _fbb, - start_: start, - } - } - #[inline] - pub fn finish(self) -> flatbuffers::WIPOffset> { - let o = self.fbb_.end_table(self.start_); - flatbuffers::WIPOffset::new(o.value()) - } -} - -#[inline] -pub fn get_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { - flatbuffers::get_root::>(buf) -} - -#[inline] -pub fn get_size_prefixed_root_as_package<'a>(buf: &'a [u8]) -> Package<'a> { - flatbuffers::get_size_prefixed_root::>(buf) -} - -#[inline] -pub fn finish_package_buffer<'a, 'b>( - fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, - root: flatbuffers::WIPOffset>) { - fbb.finish(root, None); -} - -#[inline] -pub fn finish_size_prefixed_package_buffer<'a, 'b>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset>) { - fbb.finish_size_prefixed(root, None); -} -} // pub mod fbsemantic - + pub fn finish_size_prefixed_package_buffer<'a, 'b>( + fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + root: flatbuffers::WIPOffset>, + ) { + fbb.finish_size_prefixed(root, None); + } +} // pub mod fbsemantic diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000000..e69de29bb2