mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-02-14 16:21:18 -05:00
Bumps [github.com/open-policy-agent/opa](https://github.com/open-policy-agent/opa) from 1.4.2 to 1.5.0. - [Release notes](https://github.com/open-policy-agent/opa/releases) - [Changelog](https://github.com/open-policy-agent/opa/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-policy-agent/opa/compare/v1.4.2...v1.5.0) --- updated-dependencies: - dependency-name: github.com/open-policy-agent/opa dependency-version: 1.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
90 lines
2.4 KiB
Go
90 lines
2.4 KiB
Go
package ast
|
|
|
|
type QueryDocument struct {
|
|
Operations OperationList
|
|
Fragments FragmentDefinitionList
|
|
Position *Position `dump:"-" json:"-"`
|
|
Comment *CommentGroup
|
|
}
|
|
|
|
type SchemaDocument struct {
|
|
Schema SchemaDefinitionList
|
|
SchemaExtension SchemaDefinitionList
|
|
Directives DirectiveDefinitionList
|
|
Definitions DefinitionList
|
|
Extensions DefinitionList
|
|
Position *Position `dump:"-" json:"-"`
|
|
Comment *CommentGroup
|
|
}
|
|
|
|
func (d *SchemaDocument) Merge(other *SchemaDocument) {
|
|
d.Schema = append(d.Schema, other.Schema...)
|
|
d.SchemaExtension = append(d.SchemaExtension, other.SchemaExtension...)
|
|
d.Directives = append(d.Directives, other.Directives...)
|
|
d.Definitions = append(d.Definitions, other.Definitions...)
|
|
d.Extensions = append(d.Extensions, other.Extensions...)
|
|
}
|
|
|
|
type Schema struct {
|
|
Query *Definition
|
|
Mutation *Definition
|
|
Subscription *Definition
|
|
SchemaDirectives DirectiveList
|
|
|
|
Types map[string]*Definition
|
|
Directives map[string]*DirectiveDefinition
|
|
|
|
PossibleTypes map[string][]*Definition
|
|
Implements map[string][]*Definition
|
|
|
|
Description string
|
|
|
|
Comment *CommentGroup
|
|
}
|
|
|
|
// AddTypes is the helper to add types definition to the schema
|
|
func (s *Schema) AddTypes(defs ...*Definition) {
|
|
if s.Types == nil {
|
|
s.Types = make(map[string]*Definition)
|
|
}
|
|
for _, def := range defs {
|
|
s.Types[def.Name] = def
|
|
}
|
|
}
|
|
|
|
func (s *Schema) AddPossibleType(name string, def *Definition) {
|
|
s.PossibleTypes[name] = append(s.PossibleTypes[name], def)
|
|
}
|
|
|
|
// GetPossibleTypes will enumerate all the definitions for a given interface or union
|
|
func (s *Schema) GetPossibleTypes(def *Definition) []*Definition {
|
|
return s.PossibleTypes[def.Name]
|
|
}
|
|
|
|
func (s *Schema) AddImplements(name string, iface *Definition) {
|
|
s.Implements[name] = append(s.Implements[name], iface)
|
|
}
|
|
|
|
// GetImplements returns all the interface and union definitions that the given definition satisfies
|
|
func (s *Schema) GetImplements(def *Definition) []*Definition {
|
|
return s.Implements[def.Name]
|
|
}
|
|
|
|
type SchemaDefinition struct {
|
|
Description string
|
|
Directives DirectiveList
|
|
OperationTypes OperationTypeDefinitionList
|
|
Position *Position `dump:"-" json:"-"`
|
|
|
|
BeforeDescriptionComment *CommentGroup
|
|
AfterDescriptionComment *CommentGroup
|
|
EndOfDefinitionComment *CommentGroup
|
|
}
|
|
|
|
type OperationTypeDefinition struct {
|
|
Operation Operation
|
|
Type string
|
|
Position *Position `dump:"-" json:"-"`
|
|
Comment *CommentGroup
|
|
}
|