package policy import "github.com/open-policy-agent/opa/v1/ast" func builtins() []*ast.Builtin { b := []*ast.Builtin{ ast.Equality, // Assignment (":=") ast.Assign, // Membership, infix "in": `x in xs` ast.Member, ast.MemberWithKey, // Comparisons ast.GreaterThan, ast.GreaterThanEq, ast.LessThan, ast.LessThanEq, ast.NotEqual, ast.Equal, // Arithmetic ast.Plus, ast.Minus, ast.Multiply, ast.Divide, ast.Ceil, ast.Floor, ast.Round, ast.Abs, ast.Rem, // Bitwise Arithmetic ast.BitsOr, ast.BitsAnd, ast.BitsNegate, ast.BitsXOr, ast.BitsShiftLeft, ast.BitsShiftRight, // Binary ast.And, ast.Or, // Aggregates ast.Count, ast.Sum, ast.Product, ast.Max, ast.Min, ast.Any, ast.All, // Arrays ast.ArrayConcat, ast.ArrayFlatten, ast.ArraySlice, ast.ArrayReverse, // Conversions ast.ToNumber, // Casts (DEPRECATED) ast.CastObject, ast.CastNull, ast.CastBoolean, ast.CastString, ast.CastSet, ast.CastArray, // Regular Expressions ast.RegexIsValid, ast.RegexMatch, ast.RegexMatchDeprecated, ast.RegexSplit, ast.GlobsMatch, ast.RegexTemplateMatch, ast.RegexFind, ast.RegexFindAllStringSubmatch, ast.RegexReplace, // Sets ast.SetDiff, ast.Intersection, ast.Union, // Strings ast.AnyPrefixMatch, ast.AnySuffixMatch, ast.Concat, ast.FormatInt, ast.IndexOf, ast.IndexOfN, ast.Substring, ast.Lower, ast.Upper, ast.Contains, ast.StringCount, ast.StartsWith, ast.EndsWith, ast.Split, ast.Replace, ast.ReplaceN, ast.Trim, ast.TrimLeft, ast.TrimPrefix, ast.TrimRight, ast.TrimSuffix, ast.TrimSpace, ast.Sprintf, ast.StringReverse, ast.RenderTemplate, // Numbers ast.NumbersRange, ast.NumbersRangeStep, ast.RandIntn, // Encoding ast.JSONMarshal, ast.JSONMarshalWithOptions, ast.JSONUnmarshal, ast.JSONIsValid, ast.Base64Encode, ast.Base64Decode, ast.Base64IsValid, ast.Base64UrlEncode, ast.Base64UrlEncodeNoPad, ast.Base64UrlDecode, ast.URLQueryDecode, ast.URLQueryEncode, ast.URLQueryEncodeObject, ast.URLQueryDecodeObject, ast.YAMLMarshal, ast.YAMLUnmarshal, ast.YAMLIsValid, ast.HexEncode, ast.HexDecode, // Object Manipulation ast.ObjectUnion, ast.ObjectUnionN, ast.ObjectRemove, ast.ObjectFilter, ast.ObjectGet, ast.ObjectKeys, ast.ObjectSubset, // JSON Object Manipulation ast.JSONFilter, ast.JSONRemove, ast.JSONPatch, // Time ast.NowNanos, ast.ParseNanos, ast.ParseRFC3339Nanos, ast.ParseDurationNanos, ast.Format, ast.Date, ast.Clock, ast.Weekday, ast.AddDate, ast.Diff, // Sort ast.Sort, // Types ast.IsNumber, ast.IsString, ast.IsBoolean, ast.IsArray, ast.IsSet, ast.IsObject, ast.IsNull, ast.TypeNameBuiltin, // Glob ast.GlobMatch, ast.GlobQuoteMeta, // Units ast.UnitsParse, ast.UnitsParseBytes, // UUIDs ast.UUIDRFC4122, ast.UUIDParse, // SemVers ast.SemVerIsValid, ast.SemVerCompare, // Printing ast.Print, ast.InternalPrint, // Internal implementation for template strings. ast.InternalTemplateString, } return b }