Upgrade dependent version: github.com/open-policy-agent/opa (#5315)

Upgrade dependent version: github.com/open-policy-agent/opa v0.18.0 -> v0.45.0

Signed-off-by: hongzhouzi <hongzhouzi@kubesphere.io>

Signed-off-by: hongzhouzi <hongzhouzi@kubesphere.io>
This commit is contained in:
hongzhouzi
2022-10-31 10:58:55 +08:00
committed by GitHub
parent 668fca1773
commit ef03b1e3df
363 changed files with 277341 additions and 13544 deletions

View File

@@ -0,0 +1,151 @@
// Copyright 2015 xeipuuv ( https://github.com/xeipuuv )
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// author xeipuuv
// author-github https://github.com/xeipuuv
// author-mail xeipuuv@gmail.com
//
// repository-name gojsonschema
// repository-desc An implementation of JSON Schema, based on IETF's draft v4 - Go language.
//
// description Defines the structure of a sub-SubSchema.
// A sub-SubSchema can contain other sub-schemas.
//
// created 27-02-2013
package gojsonschema
import (
"math/big"
"regexp"
"github.com/xeipuuv/gojsonreference"
)
// Constants
const (
KeySchema = "$schema"
KeyID = "id"
KeyIDNew = "$id"
KeyRef = "$ref"
KeyTitle = "title"
KeyDescription = "description"
KeyType = "type"
KeyItems = "items"
KeyAdditionalItems = "additionalItems"
KeyProperties = "properties"
KeyPatternProperties = "patternProperties"
KeyAdditionalProperties = "additionalProperties"
KeyPropertyNames = "propertyNames"
KeyDefinitions = "definitions"
KeyMultipleOf = "multipleOf"
KeyMinimum = "minimum"
KeyMaximum = "maximum"
KeyExclusiveMinimum = "exclusiveMinimum"
KeyExclusiveMaximum = "exclusiveMaximum"
KeyMinLength = "minLength"
KeyMaxLength = "maxLength"
KeyPattern = "pattern"
KeyFormat = "format"
KeyMinProperties = "minProperties"
KeyMaxProperties = "maxProperties"
KeyDependencies = "dependencies"
KeyRequired = "required"
KeyMinItems = "minItems"
KeyMaxItems = "maxItems"
KeyUniqueItems = "uniqueItems"
KeyContains = "contains"
KeyConst = "const"
KeyEnum = "enum"
KeyOneOf = "oneOf"
KeyAnyOf = "anyOf"
KeyAllOf = "allOf"
KeyNot = "not"
KeyIf = "if"
KeyThen = "then"
KeyElse = "else"
)
// SubSchema holds a sub schema
type SubSchema struct {
Draft *Draft
// basic SubSchema meta properties
ID *gojsonreference.JsonReference
title *string
description *string
Property string
// Quick pass/fail for boolean schemas
pass *bool
// Types associated with the SubSchema
Types jsonSchemaType
// Reference url
Ref *gojsonreference.JsonReference
// Schema referenced
RefSchema *SubSchema
// hierarchy
Parent *SubSchema
ItemsChildren []*SubSchema
ItemsChildrenIsSingleSchema bool
PropertiesChildren []*SubSchema
// validation : number / integer
multipleOf *big.Rat
maximum *big.Rat
exclusiveMaximum *big.Rat
minimum *big.Rat
exclusiveMinimum *big.Rat
// validation : string
minLength *int
maxLength *int
pattern *regexp.Regexp
format string
// validation : object
minProperties *int
maxProperties *int
required []string
dependencies map[string]interface{}
additionalProperties interface{}
patternProperties map[string]*SubSchema
propertyNames *SubSchema
// validation : array
minItems *int
maxItems *int
uniqueItems bool
contains *SubSchema
additionalItems interface{}
// validation : all
_const *string //const is a golang keyword
enum []string
// validation : SubSchema
oneOf []*SubSchema
AnyOf []*SubSchema
AllOf []*SubSchema
not *SubSchema
_if *SubSchema // if/else are golang keywords
_then *SubSchema
_else *SubSchema
}