diff --git a/main.ncl b/main.ncl index 825a841..8080a85 100644 --- a/main.ncl +++ b/main.ncl @@ -17,19 +17,6 @@ "Airplane task" = import "out/Airplane task.ncl", "angular.json" = import "out/angular.json.ncl", ".angular-cli.json" = import "out/.angular-cli.json.ncl", -"Ansible Execution Environment" = import "out/Ansible Execution Environment.ncl", -"Ansible Meta" = import "out/Ansible Meta.ncl", -"Ansible Meta Runtime" = import "out/Ansible Meta Runtime.ncl", -"Ansible Argument Specs" = import "out/Ansible Argument Specs.ncl", -"Ansible Requirements" = import "out/Ansible Requirements.ncl", -"Ansible Vars File" = import "out/Ansible Vars File.ncl", -"Ansible Tasks File" = import "out/Ansible Tasks File.ncl", -"Ansible Playbook" = import "out/Ansible Playbook.ncl", -"Ansible Rulebook" = import "out/Ansible Rulebook.ncl", -"Ansible Inventory" = import "out/Ansible Inventory.ncl", -"Ansible Collection Galaxy" = import "out/Ansible Collection Galaxy.ncl", -"Ansible-lint Configuration" = import "out/Ansible-lint Configuration.ncl", -"Ansible Navigator Configuration" = import "out/Ansible Navigator Configuration.ncl", "apple-app-site-association" = import "out/apple-app-site-association.ncl", "App config Spotify Backstage" = import "out/App config Spotify Backstage.ncl", "app-definition.yaml" = import "out/app-definition.yaml.ncl", @@ -94,6 +81,7 @@ ".bootstraprc" = import "out/.bootstraprc.ncl", "bower.json" = import "out/bower.json.ncl", ".bowerrc" = import "out/.bowerrc.ncl", +"Boyka Framework" = import "out/Boyka Framework.ncl", "behat.yml" = import "out/behat.yml.ncl", "partial-black.json" = import "out/partial-black.json.ncl", "bozr.suite.json" = import "out/bozr.suite.json.ncl", @@ -314,6 +302,19 @@ "GitHub automatically generated release notes configuration" = import "out/GitHub automatically generated release notes configuration.ncl", "gitlab-ci" = import "out/gitlab-ci.ncl", "Gitpod Configuration" = import "out/Gitpod Configuration.ncl", +"Ansible Execution Environment" = import "out/Ansible Execution Environment.ncl", +"Ansible Meta" = import "out/Ansible Meta.ncl", +"Ansible Meta Runtime" = import "out/Ansible Meta Runtime.ncl", +"Ansible Argument Specs" = import "out/Ansible Argument Specs.ncl", +"Ansible Requirements" = import "out/Ansible Requirements.ncl", +"Ansible Vars File" = import "out/Ansible Vars File.ncl", +"Ansible Tasks File" = import "out/Ansible Tasks File.ncl", +"Ansible Playbook" = import "out/Ansible Playbook.ncl", +"Ansible Rulebook" = import "out/Ansible Rulebook.ncl", +"Ansible Inventory" = import "out/Ansible Inventory.ncl", +"Ansible Collection Galaxy" = import "out/Ansible Collection Galaxy.ncl", +"Ansible-lint Configuration" = import "out/Ansible-lint Configuration.ncl", +"Ansible Navigator Configuration" = import "out/Ansible Navigator Configuration.ncl", "global.json" = import "out/global.json.ncl", "Golangci-lint Configuration" = import "out/Golangci-lint Configuration.ncl", "Golangci-lint Custom Plugins Configuration" = import "out/Golangci-lint Custom Plugins Configuration.ncl", @@ -412,6 +413,7 @@ "MegaLinter descriptor" = import "out/MegaLinter descriptor.ncl", "Meltano project definition" = import "out/Meltano project definition.ncl", "Meltano plugin discovery definition" = import "out/Meltano plugin discovery definition.ncl", +"Metadata for a Bazel module" = import "out/Metadata for a Bazel module.ncl", "MetricsHub Configuration" = import "out/MetricsHub Configuration.ncl", "MetricsHub Connector Configuration" = import "out/MetricsHub Connector Configuration.ncl", "Microsoft Band Web Tile" = import "out/Microsoft Band Web Tile.ncl", @@ -901,4 +903,5 @@ "Microsoft RulesEngine workflow rules list" = import "out/Microsoft RulesEngine workflow rules list.ncl", "spicepod.yaml" = import "out/spicepod.yaml.ncl", "Concord" = import "out/Concord.ncl", +"DipDup" = import "out/DipDup.ncl", } diff --git a/out/Boyka Framework.ncl b/out/Boyka Framework.ncl new file mode 100644 index 0000000..cbfd4a9 --- /dev/null +++ b/out/Boyka Framework.ncl @@ -0,0 +1,1657 @@ +# DO NOT EDIT +# This file was automatically generated using json-schema-to-nickel +let _js2n__-prdslib + = { + allOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `allOf preds` succeeds if all of the predicates in `preds` succeed + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.1] + "% + = fun + preds + x + => + std.array.fold_right + (fun pred acc => (match { 'Ok => acc, 'Err s => 'Err s, }) (pred x)) + 'Ok preds, + always : Dyn -> [| 'Ok, 'Err String |] = std.function.const 'Ok, + anyOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `anyOf preds` succeeds if at least one of the predicates in `preds` succeeds + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.2] + "% + = fun + preds + x + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + 'Err + m%" + anyOf: none of the options matched + %{std.string.join + m%" + + + "% msgs} + "%, + }) + (std.array.fold_right + (fun + pred + acc + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + (match { + 'Ok => + 'Ok, + 'Err + msg => + 'Errs ([ " - %{msg}" ] @ msgs), + }) (pred x), + }) acc) ('Errs [ ]) preds), + arrays = + { + additionalItems + : (Dyn -> [| 'Ok, 'Err String |]) + -> Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.2]" + = fun + pred + start + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + let value_length + = std.array.length x + in + if start >= value_length then + 'Ok + else + arrayOf pred + ((std.array.slice start value_length x) + | Dyn), + arrayOf + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + Apply a predicate to all elements of an array, succeeding if all + applications succeed. + "% + = fun + pred + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + std.array.fold_right + (fun + x + acc + => + (match { 'Ok => acc, 'Err msg => 'Err msg, }) (pred x)) + 'Ok x, + contains + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.6]" + = fun + pred + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + 'Err + m%" + contains: no elements matched + %{std.string.join + m%" + + + "% msgs} + "%, + }) + (std.array.fold_right + (fun + x + acc + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + (match { + 'Ok => + 'Ok, + 'Err + msg => + 'Errs ([ " - %{msg}" ] @ msgs), + }) (pred x), + }) acc) ('Errs [ ]) x), + items + : Array (Dyn -> [| 'Ok, 'Err String |]) + -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.1]" + = fun + preds + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + let length_to_check + = std.number.min (std.array.length preds) + (std.array.length x) + in + std.array.fold_right + (fun + i + acc + => + (match { 'Err msg => 'Err msg, 'Ok => acc, }) + (std.array.at i preds (std.array.at i x))) 'Ok + (std.array.range 0 length_to_check), + maxItems + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `maxItems n x` fails if `x` is an array of length strictly greater than `n` and succeeds otherwise. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.3] + "% + = fun + n + x + => + if !(std.is_array x) then + 'Ok + else + if (std.array.length (x | Array Dyn)) > n then + 'Err + "array is longer than %{std.string.from_number n} items" + else + 'Ok, + minItems + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `minItems n x` fails if `x` is an array of length strictly smaller than `n` and succeeds otherwise. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.4] + "% + = fun + n + x + => + if !(std.is_array x) then + 'Ok + else + if (std.array.length (x | Array Dyn)) < n then + 'Err + "array is shorter than %{std.string.from_number n} items" + else + 'Ok, + uniqueItems + : Dyn -> [| 'Ok, 'Err String |] + | doc m%" + Succeeds for any array if its elements are pairwise distinct. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.5] + "% + = let find_duplicate + : Array Dyn + -> { + has_duplicate : Bool, + duplicate : Dyn, + seen : { _ : Bool } + } + = std.array.fold_right + (fun + elt + acc + => + if acc.has_duplicate then + acc + else + let index + = std.serialize 'Json elt + in + if std.record.has_field index acc.seen then + { + duplicate = elt, + has_duplicate = true, + seen = acc.seen, + } + else + { + duplicate = null, + has_duplicate = false, + seen = std.record.insert index true acc.seen, + }) + { duplicate = null, has_duplicate = false, seen = {}, } + in + fun + x + => + if !(std.is_array x) then + 'Ok + else + let { has_duplicate, duplicate, .. } + = find_duplicate (x | Array Dyn) + in + if has_duplicate then + 'Err "duplicate found: %{std.serialize 'Json duplicate}" + else + 'Ok, + }, + const + : Dyn -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `const value x` succeeds if and only if `x` is equal to `value` + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.1.3] + "% + = fun + value + x + => + if x == value then + 'Ok + else + 'Err "expected %{std.serialize 'Json value}", + contract_from_predicate + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> Dyn -> Dyn + = fun + predicate + label + value + => + (match { + 'Ok => + value, + 'Err + msg => + (std.contract.blame_with_message msg label) + | Dyn, + }) (predicate value), + enum + : Array Dyn -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `enum values x` succeeds if and only if `x` is equal to one of the elements of `values`. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.1.2] + "% + = let checkEqual + = fun + input + variant + => + (input == variant) + || ((std.is_enum input) + && (((std.string.from_enum input) == variant) + | Bool)) + in + fun + values + x + => + std.array.fold_right + (fun value acc => if checkEqual x value then 'Ok else acc) + ('Err "expected one of %{std.serialize 'Json (values | Dyn)}") + values, + from_simple_predicate + : String -> (Dyn -> Bool) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Convert a simple boolean predicate into a predicate supporting error messages" + = fun error' pred x => if pred x then 'Ok else 'Err error', + ifThenElse + : (Dyn -> [| 'Ok, 'Err String |]) + -> (Dyn -> [| 'Ok, 'Err String |]) + -> (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `ifThenElse i t e` first checks if the predicate `i` succeeds. If it does, it's equivalent to `t`, otherwise it's equivalent to `e`. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.6] + "% + = fun i t e x => (match { 'Ok => t x, 'Err msg => e x, }) (i x), + isType + : [| '"Array", '"Bool", 'Integer, 'Null, '"Number", 'Record, '"String" |] + -> Dyn -> [| 'Ok, 'Err String |] + = fun + t + => + (match { + 'Null => + from_simple_predicate "expected `null`" (fun x => x == null), + 'Integer => + from_simple_predicate "expected an integer" + (fun + x + => + (std.is_number x) && (std.number.is_integer (x | Number))), + _ => + from_simple_predicate + "value is not of type %{std.string.from_enum t}" + (fun x => (std.typeof x) == t), + }) t, + never : Dyn -> [| 'Ok, 'Err String |] = std.function.const ('Err "never"), + not + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `not pred` succeeds if and only if `pred` fails + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.4] + "% + = fun + pred + x + => + (match { + 'Ok => + 'Err "Inverted predicate succeeded unexpectedly", + 'Err + msg => + 'Ok, + }) (pred x), + numbers = + { + exclusiveMaximum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.3]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) < limit then + 'Ok + else + 'Err + "expected an exclusive maximum of %{std.string.from_number + limit}", + exclusiveMinimum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.5]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) > limit then + 'Ok + else + 'Err + "expected an exclusive minimum of %{std.string.from_number + limit}", + maximum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.2]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) <= limit then + 'Ok + else + 'Err + "expected a maximum of %{std.string.from_number limit}", + minimum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.4]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) >= limit then + 'Ok + else + 'Err + "expected a minimum of %{std.string.from_number limit}", + multipleOf + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.1]" + = fun + mult + x + => + if !(std.is_number x) then + 'Ok + else + if std.number.is_integer ((x | Number) / mult) then + 'Ok + else + 'Err + "expected a multiple of %{std.string.from_number mult}", + }, + oneOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `oneOf preds` succeeds if precisely one of the predicates in `preds` succeeds + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.3] + "% + = fun + preds + x + => + let count_ok + : Array [| 'Ok, 'Err String |] -> Number + = fun + results + => + std.array.fold_left (fun n b => if b == 'Ok then n + 1 else n) 0 + results + in + let results + = std.array.map (fun pred => pred x) preds + in + let count + = count_ok results + in + if count == 0 then + let errors + = std.array.flat_map + (fun + result + => + (match { 'Ok => [ ], 'Err s => [ " - %{s}" ], }) + result) results + in + 'Err + m%" + oneOf: none of the options matched + %{std.string.join + m%" + + + "% errors} + "% + else + if count > 1 then + 'Err "oneOf: more than one of the options matched" + else + 'Ok, + records = + { + dependencies + : { _ : Dyn } -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.7]" + = let mustHaveFields + : Array String -> { _ : Dyn } -> [| 'Ok, 'Err String |] + = fun + fields + x + => + std.array.fold_right + (fun + field + acc + => + if !(std.record.has_field field x) then + 'Err "expected field `%{field}`" + else + acc) 'Ok fields + in + fun + deps + x + => + if !(std.is_record x) then + 'Ok + else + let x + | { _ : Dyn } + = x + in + std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + if !(std.record.has_field field x) then + acc + else + let result + = if std.is_array value then + mustHaveFields (value | Array String) x + else + let pred + | Dyn -> [| 'Ok, 'Err String |] + = value + in + pred (x | Dyn) + in + (match { + 'Err + msg => + 'Err + "dependency of `%{field}` failed: %{msg}", + 'Ok => + acc, + }) result) 'Ok (std.record.to_array deps), + maxProperties + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `maxProperties n x` fails if `x` is a record containing stricly more than `n` fields. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.1] + "% + = fun + n + x + => + if !(std.is_record x) then + 'Ok + else + if (std.record.length (x | { _ : Dyn })) > n then + 'Err + "record contains more than %{std.string.from_number + n} fields" + else + 'Ok, + minProperties + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `minProperties n x` fails if `x` is a record containing stricly less than `n` fields. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.1] + "% + = fun + n + x + => + if !(std.is_record x) then + 'Ok + else + if (std.record.length (x | { _ : Dyn })) < n then + 'Err + "record contains fewer than %{std.string.from_number + n} fields" + else + 'Ok, + propertyNames + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.8]" + = fun + pred + x + => + if !(std.is_record x) then + 'Ok + else + std.array.fold_right + (fun + field + acc + => + (match { + 'Err + msg => + 'Err + "field `%{field}` did not validate against `propertyNames` schema", + 'Ok => + acc, + }) (pred (field | Dyn))) 'Ok + (std.record.fields (x | { _ : Dyn })), + record + : { _ : Dyn -> [| 'Ok, 'Err String |] } + -> { _ : Dyn -> [| 'Ok, 'Err String |] } + -> Bool + -> (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `record properties patternProperties additionalAllowed + additionalProperties x` is a combination of the `properties`, + `patternProperties` and `additionalProperties` validation keywords in + JSON schema. + + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5] + "% + = fun + properties + patternProperties + additionalAllowed + additionalProperties + x + => + if !(std.is_record x) then + 'Ok + else + let x + | { _ : Dyn } + = x + in + let check_properties + : { + result : [| 'Ok, 'Err String |], + checked : { _ : Bool } + } + = std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + if !(std.record.has_field field x) then + acc + else + (match { + 'Err + msg => + { + checked : { _ : Bool } = {}, + result = + 'Err + "field `%{field}` didn't validate: %{msg}", + }, + 'Ok => + { + checked = + std.record.insert field true acc.checked, + result = acc.result, + }, + }) (value x."%{field}")) + { checked = {}, result = 'Ok, } + (std.record.to_array properties) + in + let matching_fields + : String -> { _ : Dyn } + = fun + pattern + => + let matcher + = std.string.is_match pattern + in + std.array.fold_left + (fun + acc + => + fun + { field, value, } + => + if matcher field then + std.record.insert field value acc + else + acc) {} (std.record.to_array x) + in + let check_pattern_properties + : { + result : [| 'Ok, 'Err String |], + checked : { _ : Bool } + } + = std.array.fold_right + (fun + { field = pattern, value = pred, } + => + fun + acc + => + (match { + r @ { result = 'Err msg, .. } => + r, + { result = 'Ok, checked = ch, } => + { + checked = + std.array.fold_left + (fun + r + field + => + if !(std.record.has_field field + r) then + std.record.insert field true r + else + r) acc.checked + (std.record.fields ch), + result = acc.result, + }, + }) + (std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + (match { + 'Err + msg => + { + checked : { _ : Bool } = {}, + result = + 'Err + "field `%{field}` didn't validate: %{msg}", + }, + 'Ok => + { + checked = + std.record.insert field true + acc.checked, + result = acc.result, + }, + }) (pred value)) + { + checked : { _ : Bool } = {}, + result = 'Ok, + } + (std.record.to_array + (matching_fields pattern)))) + { checked : { _ : Bool } = {}, result = 'Ok, } + (std.record.to_array patternProperties) + in + let remaining_fields + = std.array.fold_left + (fun + acc + field + => + if !(std.record.has_field field acc) then + acc + else + std.record.remove field acc) x + ((std.record.fields check_properties.checked) + @ (std.record.fields + check_pattern_properties.checked)) + in + let check_additional_properties + : [| 'Ok, 'Err String |] + = if (!additionalAllowed) + && (!(std.record.is_empty remaining_fields)) then + 'Err + "extra fields %{std.serialize 'Json + ((std.record.fields remaining_fields) + | Dyn)}" + else + std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + (match { + 'Err + msg => + 'Err + "field `%{field}` didn't validate: %{msg}", + 'Ok => + acc, + }) (additionalProperties value)) 'Ok + (std.record.to_array remaining_fields) + in + (match { + 'Err + msg => + check_properties.result, + 'Ok => + (match { + 'Err + msg => + check_pattern_properties.result, + 'Ok => + check_additional_properties, + }) check_pattern_properties.result, + }) check_properties.result, + required + : Array String -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.3]" + = fun + fields + x + => + if !(std.is_record x) then + 'Ok + else + std.array.fold_right + (fun + field + acc + => + if !(std.record.has_field field (x | { _ : Dyn })) then + 'Err "missing required field %{field}" + else + acc) 'Ok fields, + }, + strings = + { + maxLength + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.1]" + = fun + limit + x + => + if !(std.is_string x) then + 'Ok + else + if (std.string.length (x | String)) <= limit then + 'Ok + else + 'Err + "expected a string of length no larger than %{std.string.from_number + limit}", + minLength + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.2]" + = fun + limit + x + => + if !(std.is_string x) then + 'Ok + else + if (std.string.length (x | String)) >= limit then + 'Ok + else + 'Err + "expected a string of length no smaller than %{std.string.from_number + limit}", + pattern + : String -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.3]" + = fun + pattern + x + => + if !(std.is_string x) then + 'Ok + else + if std.string.is_match pattern (x | String) then + 'Ok + else + 'Err "expected a string matching the pattern `%{pattern}`", + }, + } + in +let rec _js2n__-refsenv + = { + "_js2n__-:definitions/ApplicationType!predicate" + | doc "Type of Mobile Application" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "HYBRID", "NATIVE", "WEB" ] + ], + "_js2n__-:definitions/AutomationType!predicate" + | doc "Target Appium Driver" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "UI_AUTOMATOR", "XCUI" ] + ], + "_js2n__-:definitions/Browser!predicate" + | doc "Target Web Browser" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum + [ "CHROME", "EDGE", "FIREFOX", "NONE", "REMOTE", "SAFARI" ] + ], + "_js2n__-:definitions/DeviceType!predicate" + | doc "Type of Target Device" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "CLOUD", "VIRTUAL" ] + ], + "_js2n__-:definitions/LogLevel!predicate" + | doc "Log level used to capture the Appium server logging" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum + [ + "DEBUG", + "DEBUG_DEBUG", + "DEBUG_ERROR", + "DEBUG_INFO", + "DEBUG_WARN", + "ERROR", + "ERROR_DEBUG", + "ERROR_ERROR", + "ERROR_INFO", + "ERROR_WARN", + "INFO", + "INFO_DEBUG", + "INFO_ERROR", + "INFO_INFO", + "INFO_WARN", + "WARN", + "WARN_DEBUG", + "WARN_ERROR", + "WARN_INFO", + "WARN_WARN" + ] + ], + "_js2n__-:definitions/OS!predicate" + | doc "Target Mobile OS" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "ANDROID", "IOS" ] + ], + "_js2n__-:definitions/PageLoadStrategy!predicate" + | doc "Page Load strategy for Web application" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "NONE", "EAGER", "NORMAL" ] + ], + "_js2n__-:definitions/Protocol!predicate" + | doc "Protocol for Target server" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "HTTP", "HTTPS" ] + ], + "_js2n__-:definitions/Speed!predicate" + | doc "Swiping speed for Mobile devices" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "FAST", "NORMAL", "SLOW" ] + ], + "_js2n__-:definitions/TargetProviders!predicate" + | doc "Target Cloud providers" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum + [ + "BROWSER_STACK", + "LAMBDA_TEST_MOBILE", + "LAMBDA_TEST_WEB", + "LOCAL" + ] + ], + "_js2n__-:definitions/VideoQuality!predicate" + | doc "Video recording quality" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "LOW", "MEDIUM", "HIGH", "PHOTO" ] + ], + "_js2n__-:definitions/WindowResizeType!predicate" + | doc "Window resize type for Web Browser" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum + [ "CUSTOM", "FULL_SCREEN", "MAXIMIZED", "MINIMIZED", "NORMAL" ] + ], + "_js2n__-:definitions/args!predicate" + | doc "Arguments object where you can add any arguments" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.isType '"Bool" + ]) + ], + "_js2n__-:definitions/caps!predicate" + | doc "Capabilities object where you can add any capability based on the Cloud platform supported or Grid supported capabilities" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.isType '"Bool" + ]) + ], + } + in + { + api + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "base_uri" ], + _js2n__-prdslib.records.record + { + base_path = _js2n__-prdslib.isType '"String", + base_uri = _js2n__-prdslib.isType '"String", + connection_timeout = _js2n__-prdslib.isType '"Number", + logging = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + enable = _js2n__-prdslib.isType '"Bool", + request = _js2n__-prdslib.isType '"Bool", + response = _js2n__-prdslib.isType '"Bool", + } {} true _js2n__-prdslib.always + ], + port = _js2n__-prdslib.isType '"Number", + read_timeout = _js2n__-prdslib.isType '"Number", + schema_path = _js2n__-prdslib.isType '"String", + validate_ssl = _js2n__-prdslib.isType '"Bool", + verify_host_name = _js2n__-prdslib.isType '"Bool", + write_timeout = _js2n__-prdslib.isType '"Number", + } {} true _js2n__-prdslib.always + ]) + ]) + | doc "Collection of API configurations" + | optional, + listeners_package + | String + | doc "Package name where all the Boyka listener implementations are placed" + | optional, + ui + | { + delay + | { + before_click + | Number + | doc "Delay before clicking on an element (in ms)" + | optional, + before_mouse_move + | Number + | doc "Delay before moving of mouse (in ms)" + | optional, + before_swipe + | Number + | doc "Delay before swiping on the device screen or inside an element (in ms)" + | optional, + before_tap + | Number + | doc "Delay before tapping on an element (in ms)" + | optional, + before_typing + | Number + | doc "Delay before typing any text in an element (in ms)" + | optional, + .. + } + | doc "UI interaction delay settings" + | optional, + logging + | { + enable + | Bool + | doc "If true, any log files generated by Selenium or Appium would be saved" + | optional, + exclude_logs + | Array (String) + | doc "List of type of logs which you want to exclude from" + | optional, + path + | String + | doc "Path where the logs should be saved" + | optional, + .. + } + | doc "UI logging related settings" + | optional, + mobile + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + device = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + accept_alerts = + _js2n__-prdslib.isType '"Bool", + adb_timeout = + _js2n__-prdslib.isType '"Number", + application = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + base_url = + _js2n__-prdslib.isType + '"String", + browser = + _js2n__-refsenv."_js2n__-:definitions/Browser!predicate", + bundle_id = + _js2n__-prdslib.isType + '"String", + chrome_driver_port = + _js2n__-prdslib.isType + '"Number", + external = + _js2n__-prdslib.isType + '"Bool", + install_timeout = + _js2n__-prdslib.isType + '"Number", + path = + _js2n__-prdslib.isType + '"String", + type = + _js2n__-refsenv."_js2n__-:definitions/ApplicationType!predicate", + wait_activity = + _js2n__-prdslib.isType + '"String", + wait_timeout = + _js2n__-prdslib.isType + '"Number", + } {} true + _js2n__-prdslib.always + ], + capabilities = + _js2n__-refsenv."_js2n__-:definitions/caps!predicate", + clear_files = + _js2n__-prdslib.isType '"Bool", + clear_logs = + _js2n__-prdslib.isType '"Bool", + full_reset = + _js2n__-prdslib.isType '"Bool", + ignore_unimportant_views = + _js2n__-prdslib.isType '"Bool", + name = _js2n__-prdslib.isType '"String", + no_reset = + _js2n__-prdslib.isType '"Bool", + os = + _js2n__-refsenv."_js2n__-:definitions/OS!predicate", + server_install_timeout = + _js2n__-prdslib.isType '"Number", + server_launch_timeout = + _js2n__-prdslib.isType '"Number", + swipe = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + distance = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 100, + _js2n__-prdslib.numbers.minimum + 1 + ], + max_swipe_until_found = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 100, + _js2n__-prdslib.numbers.minimum + 1 + ], + speed = + _js2n__-refsenv."_js2n__-:definitions/Speed!predicate", + } {} true + _js2n__-prdslib.always + ], + system_port = + _js2n__-prdslib.isType '"Number", + type = + _js2n__-refsenv."_js2n__-:definitions/DeviceType!predicate", + typing_speed = + _js2n__-prdslib.isType '"Number", + unique_id = + _js2n__-prdslib.isType '"String", + version = + _js2n__-prdslib.isType '"String", + video = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + android = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + 'Record, + _js2n__-prdslib.records.record + { + bit_rate = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 25, + _js2n__-prdslib.numbers.minimum + 1 + ], + } {} true + _js2n__-prdslib.always + ], + enabled = + _js2n__-prdslib.isType + '"Bool", + ios = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + 'Record, + _js2n__-prdslib.records.record + { + codec = + _js2n__-prdslib.isType + '"String", + fps = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 60, + _js2n__-prdslib.numbers.minimum + 1 + ], + quality = + _js2n__-refsenv."_js2n__-:definitions/VideoQuality!predicate", + } {} true + _js2n__-prdslib.always + ], + path = + _js2n__-prdslib.isType + '"String", + prefix = + _js2n__-prdslib.isType + '"String", + size = + _js2n__-prdslib.isType + '"String", + time_limit = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 1800, + _js2n__-prdslib.numbers.minimum + 10 + ], + } {} true + _js2n__-prdslib.always + ], + virtual_device = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + connect_keyboard = + _js2n__-prdslib.isType + '"Bool", + headless = + _js2n__-prdslib.isType + '"Bool", + launch_timeout = + _js2n__-prdslib.isType + '"Number", + name = + _js2n__-prdslib.isType + '"String", + ready_timeout = + _js2n__-prdslib.isType + '"Number", + } {} true + _js2n__-prdslib.always + ], + wda = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + connection_timeout = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 900, + _js2n__-prdslib.numbers.minimum + 1 + ], + launch_timeout = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 900, + _js2n__-prdslib.numbers.minimum + 1 + ], + local_port = + _js2n__-prdslib.isType + '"Number", + signing_id = + _js2n__-prdslib.isType + '"String", + startup_retries = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 10, + _js2n__-prdslib.numbers.minimum + 1 + ], + startup_retry_interval = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 300, + _js2n__-prdslib.numbers.minimum + 1 + ], + team_id = + _js2n__-prdslib.isType + '"String", + update_bundle_id = + _js2n__-prdslib.isType + '"String", + use_new = + _js2n__-prdslib.isType + '"Bool", + use_prebuilt = + _js2n__-prdslib.isType + '"Bool", + } {} true + _js2n__-prdslib.always + ], + } {} true _js2n__-prdslib.always + ], + server = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + allow_cors = + _js2n__-prdslib.isType '"Bool", + allow_insecure = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], + appium_path = + _js2n__-prdslib.isType '"String", + base_path = + _js2n__-prdslib.isType '"String", + callback_address = + _js2n__-prdslib.isType '"String", + callback_port = + _js2n__-prdslib.isType '"Number", + config_path = + _js2n__-prdslib.isType '"String", + deny_insecure = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], + driver = + _js2n__-refsenv."_js2n__-:definitions/AutomationType!predicate", + external = + _js2n__-prdslib.isType '"Bool", + external_config = + _js2n__-prdslib.isType '"Bool", + host = _js2n__-prdslib.isType '"String", + keep_alive_timeout = + _js2n__-prdslib.isType '"Number", + logging = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + debug_spacing = + _js2n__-prdslib.isType + '"Bool", + level = + _js2n__-refsenv."_js2n__-:definitions/LogLevel!predicate", + local_timezone = + _js2n__-prdslib.isType + '"Bool", + timestamp = + _js2n__-prdslib.isType + '"Bool", + } {} true + _js2n__-prdslib.always + ], + node_path = + _js2n__-prdslib.isType '"String", + other_args = + _js2n__-refsenv."_js2n__-:definitions/args!predicate", + password = + _js2n__-prdslib.isType '"String", + plugins = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], + port = _js2n__-prdslib.isType '"Number", + protocol = + _js2n__-refsenv."_js2n__-:definitions/Protocol!predicate", + relaxed_security = + _js2n__-prdslib.isType '"Bool", + session_override = + _js2n__-prdslib.isType '"Bool", + strict_capabilities = + _js2n__-prdslib.isType '"Bool", + target = + _js2n__-refsenv."_js2n__-:definitions/TargetProviders!predicate", + timeout = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Number", + _js2n__-prdslib.numbers.maximum + 900, + _js2n__-prdslib.numbers.minimum + 1 + ], + user_name = + _js2n__-prdslib.isType '"String", + webhook = + _js2n__-prdslib.isType '"String", + } {} true _js2n__-prdslib.always + ], + } {} true _js2n__-prdslib.always + ]) + ]) + | doc "Mobile related settings" + | optional, + screenshot + | { + enabled + | Bool + | doc "Set to true to enable screenshots" + | optional, + extension | String | doc "Screenshot file extension" | optional, + path + | String + | doc "Path where the screenshots will be saved" + | optional, + prefix + | String + | doc "Prefix of the screenshot file name" + | optional, + .. + } + | doc "UI screenshot related settings" + | optional, + timeout + | { + explicit_wait + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.maximum 900 + ]) + | doc "Explicit wait for the element to wait for a particular condition to succeed (in seconds)" + | optional, + highlight_delay + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.maximum 90000 + ]) + | doc "Delay while Highlighting the element (in ms)" + | optional, + implicit_wait + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.maximum 300 + ]) + | doc "Implicit wait for Appium to find the element (in seconds)" + | optional, + page_load_timeout + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.maximum 300 + ]) + | doc "Page load timeout (in seconds)" + | optional, + script_timeout + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.maximum 300 + ]) + | doc "Script load timeout (in seconds)" + | optional, + .. + } + | doc "UI timeout related settings" + | optional, + web + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + base_url = _js2n__-prdslib.isType '"String", + browser = + _js2n__-refsenv."_js2n__-:definitions/Browser!predicate", + browser_options = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + capabilities = + _js2n__-refsenv."_js2n__-:definitions/caps!predicate", + custom_size = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + height = + _js2n__-prdslib.isType '"Number", + width = + _js2n__-prdslib.isType '"Number", + } {} true _js2n__-prdslib.always + ], + headless = _js2n__-prdslib.isType '"Bool", + highlight = _js2n__-prdslib.isType '"Bool", + host = _js2n__-prdslib.isType '"String", + page_load_strategy = + _js2n__-refsenv."_js2n__-:definitions/PageLoadStrategy!predicate", + password = _js2n__-prdslib.isType '"String", + platform = _js2n__-prdslib.isType '"String", + port = _js2n__-prdslib.isType '"Number", + protocol = + _js2n__-refsenv."_js2n__-:definitions/Protocol!predicate", + resize = + _js2n__-refsenv."_js2n__-:definitions/WindowResizeType!predicate", + target = + _js2n__-refsenv."_js2n__-:definitions/TargetProviders!predicate", + user_name = _js2n__-prdslib.isType '"String", + version = _js2n__-prdslib.isType '"String", + } {} true _js2n__-prdslib.always + ]) + ]) + | doc "Web related settings" + | optional, + .. + } + | doc "UI Configurations for Web and Mobile" + | optional, + .. + } \ No newline at end of file diff --git a/out/CodeRabbit.ncl b/out/CodeRabbit.ncl index 6b0394e..d904baf 100644 --- a/out/CodeRabbit.ncl +++ b/out/CodeRabbit.ncl @@ -951,6 +951,10 @@ let rec _js2n__-refsenv | optional, } | optional, + opt_out + | Bool + | doc "Opt out | Opt out of all knowledge base features." + | optional, } | optional, language @@ -1174,6 +1178,28 @@ let rec _js2n__-refsenv } | doc "Checkov is a static code analysis tool for infrastructure-as-code files." | optional, + detekt + | { + config_file + | String + | doc "Optional path to the Detekt configuration file relative to the repository." + | optional, + enabled + | Bool + | doc "Enable Detekt | Detekt is a static code analysis tool for Kotlin files." + | optional, + } + | doc "Detekt is a static code analysis tool for Kotlin files." + | optional, + eslint + | { + enabled + | Bool + | doc "Enable ESLint | ESLint is a static code analysis tool for JavaScript files." + | optional, + } + | doc "ESLint is a static code analysis tool for JavaScript files." + | optional, github-checks | { enabled diff --git a/out/Codux.ncl b/out/Codux.ncl index a4981a2..399f386 100644 --- a/out/Codux.ncl +++ b/out/Codux.ncl @@ -1007,11 +1007,25 @@ let rec _js2n__-refsenv defaultImagesDir | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.isType '"String") + | doc m%" + Configures the default directory where the Codux Media Manager stores new assets. + Refer to https://help.codux.com/kb/en/article/kb96140 for more information. + "% + | optional, + defaultJSONSchemas + | Array (Dyn) + | doc m%" + Configuration for adding additional json schemas to your project. + This can be used to centralise json schemas addition instead of using $schema and get autocompletion for json files when using Codux. + "% | optional, disableProjectSharing | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.isType '"Bool") - | doc "Disables ability to share current project." + | doc m%" + Disables sharing the project in the Codux Online Playground. + Refer to https://help.codux.com/kb/en/article/kb02353 for more information. + "% | optional, fileNamingConvention | _js2n__-prdslib.contract_from_predicate @@ -1051,13 +1065,6 @@ let rec _js2n__-refsenv Refer to https://help.codux.com/kb/en/article/kb14730 for more information. "% | optional, - "json-simple-ast.defaultJSONSchemas" - | _js2n__-prdslib.contract_from_predicate _js2n__-prdslib.always - | doc m%" - Configuration for adding additional json schemas to your project. - This can be used to centralise json schemas addition instead of using $schema and get autocompletion for json files when using Codux. - "% - | optional, maxThumbnailSnapshotDelayConfig | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.isType '"Number") @@ -1244,6 +1251,10 @@ let rec _js2n__-refsenv { commonStyleFilePattern = _js2n__-prdslib.isType '"String", } {} true _js2n__-prdslib.always ]) + | doc m%" + Formats code styling in the Codux code drawer. + Refer to https://help.codux.com/kb/en/article/kb18018 for more information. + "% | optional, styling | _js2n__-prdslib.contract_from_predicate @@ -1288,6 +1299,10 @@ let rec _js2n__-refsenv tailwindcssConfig | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.isType '"String") + | doc m%" + Lets you pass a custom tailwindcss config file path. + Refer to https://help.codux.com/kb/en/article/kb18518 for more information. + "% | optional, .. } \ No newline at end of file diff --git a/out/Concord.ncl b/out/Concord.ncl index 2006318..e6ccd36 100644 --- a/out/Concord.ncl +++ b/out/Concord.ncl @@ -897,28 +897,816 @@ let _js2n__-prdslib in let rec _js2n__-refsenv = { - "_js2n__-:properties/configuration!predicate" = + "_js2n__-:definitions/BlockStep!predicate" = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.arrays.uniqueItems, + _js2n__-prdslib.records.required [ "block" ], _js2n__-prdslib.records.record { - arguments = + block = _js2n__-prdslib.allOf [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) + ], + error = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) + ], + loop = _js2n__-refsenv."_js2n__-:definitions/Loop!predicate", + meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", + out = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/CheckpointStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "checkpoint" ], + _js2n__-prdslib.records.record + { + checkpoint = _js2n__-prdslib.isType '"String", + meta = _js2n__-prdslib.isType 'Record, + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/CronTrigger!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + cron = + _js2n__-refsenv."_js2n__-:definitions/CronTriggerParams!predicate", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/CronTriggerParams!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "entryPoint", "spec" ], + _js2n__-prdslib.records.record + { + activeProfiles = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + arguments = _js2n__-prdslib.isType 'Record, + entryPoint = _js2n__-prdslib.isType '"String", + exclusive = + _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!predicate", + runAs = + _js2n__-refsenv."_js2n__-:definitions/RunAs!predicate", + spec = _js2n__-prdslib.isType '"String", + timezone = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/DirImport!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + dir = + _js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/ImmutableDirectoryDefinition!predicate" + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/EventConfiguration!contract" = + { + inVarsBlacklist | Array (String) | optional, + metaBlacklist | Array (String) | optional, + outVarsBlacklist | Array (String) | optional, + recordEvents | Bool | optional, + recordTaskInVars | Bool | optional, + recordTaskMeta | Bool | optional, + recordTaskOutVars | Bool | optional, + truncateInVars | Bool | optional, + truncateMaxArrayLength | std.number.Integer | optional, + truncateMaxDepth | std.number.Integer | optional, + truncateMaxStringLength | std.number.Integer | optional, + truncateMeta | Bool | optional, + truncateOutVars | Bool | optional, + }, + "_js2n__-:definitions/EventConfiguration!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + inVarsBlacklist = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + metaBlacklist = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + outVarsBlacklist = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + recordEvents = _js2n__-prdslib.isType '"Bool", + recordTaskInVars = _js2n__-prdslib.isType '"Bool", + recordTaskMeta = _js2n__-prdslib.isType '"Bool", + recordTaskOutVars = _js2n__-prdslib.isType '"Bool", + truncateInVars = _js2n__-prdslib.isType '"Bool", + truncateMaxArrayLength = _js2n__-prdslib.isType 'Integer, + truncateMaxDepth = _js2n__-prdslib.isType 'Integer, + truncateMaxStringLength = _js2n__-prdslib.isType 'Integer, + truncateMeta = _js2n__-prdslib.isType '"Bool", + truncateOutVars = _js2n__-prdslib.isType '"Bool", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ExclusiveMode!contract" = + { + group | String, + mode + | std.enum.TagOrString + | [| 'wait, 'cancelOld, 'cancel |] + | optional, + }, + "_js2n__-:definitions/ExclusiveMode!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "group" ], + _js2n__-prdslib.records.record + { + group = _js2n__-prdslib.isType '"String", + mode = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "cancel", "cancelOld", "wait" ] + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ExitStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "exit" ] + ], + "_js2n__-:definitions/ExpressionFullStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "expr" ], + _js2n__-prdslib.records.record + { + error = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate" + ]) + ], + expr = _js2n__-prdslib.isType '"String", + meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", + out = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Record + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ExpressionShortStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern "^\\$\\{.*}" + ], + "_js2n__-:definitions/FlowCallStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "call" ], + _js2n__-prdslib.records.record + { + call = _js2n__-prdslib.isType '"String", + error = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate" + ]) + ], + "in" = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Record + ], + loop = _js2n__-refsenv."_js2n__-:definitions/Loop!predicate", + meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", + out = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record {} {} true - (_js2n__-prdslib.anyOf + _js2n__-prdslib.isType '"String" + ], + retry = + _js2n__-refsenv."_js2n__-:definitions/Retry!predicate", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/FormCallStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "form" ], + _js2n__-prdslib.records.record + { + fields = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType 'Record) + ], + form = _js2n__-prdslib.isType '"String", + runAs = _js2n__-prdslib.isType 'Record, + saveSubmittedBy = _js2n__-prdslib.isType '"Bool", + values = _js2n__-prdslib.isType 'Record, + yield = _js2n__-prdslib.isType '"Bool", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/GenericTrigger!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} + { + "^(?!(manual|cron|github)$).*$" = + _js2n__-refsenv."_js2n__-:definitions/GenericTriggerParams!predicate", + } false _js2n__-prdslib.never + ], + "_js2n__-:definitions/GenericTriggerParams!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "entryPoint", "version" ], + _js2n__-prdslib.records.record + { + activeProfiles = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + arguments = _js2n__-prdslib.isType 'Record, + conditions = _js2n__-prdslib.isType 'Record, + entryPoint = _js2n__-prdslib.isType '"String", + exclusive = + _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!predicate", + version = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.enum [ 2 ] + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/GitImport!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + git = + _js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/ImmutableGitDefinition!predicate" + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/GithubTrigger!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + github = + _js2n__-refsenv."_js2n__-:definitions/GithubTriggerParams!predicate", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/GithubTriggerConditions!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "type" ], + _js2n__-prdslib.records.record + { + branch = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + githubHost = _js2n__-prdslib.isType '"String", + githubOrg = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + githubRepo = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + payload = _js2n__-prdslib.isType 'Record, + queryParams = _js2n__-prdslib.isType 'Record, + repositoryInfo = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType 'Record) + ], + sender = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + status = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + type = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/GithubTriggerParams!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "entryPoint", "version" ], + _js2n__-prdslib.records.record + { + activeProfiles = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + arguments = _js2n__-prdslib.isType 'Record, + conditions = + _js2n__-refsenv."_js2n__-:definitions/GithubTriggerConditions!predicate", + entryPoint = _js2n__-prdslib.isType '"String", + exclusive = + _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!predicate", + ignoreEmptyPush = _js2n__-prdslib.isType '"Bool", + useEventCommitId = _js2n__-prdslib.isType '"Bool", + useInitiator = _js2n__-prdslib.isType '"Bool", + version = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.enum [ 2 ] + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/IfStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "if", "then" ], + _js2n__-prdslib.records.record + { + "else" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.isType '"Bool", - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.isType '"Number", - _js2n__-prdslib.isType '"String" + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) + ], + "if" = _js2n__-prdslib.isType '"String", + meta = _js2n__-prdslib.isType 'Record, + "then" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ImmutableDirectoryDefinition!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "src" ], + _js2n__-prdslib.records.record + { + dest = _js2n__-prdslib.isType '"String", + src = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ImmutableGitDefinition!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + dest = _js2n__-prdslib.isType '"String", + exclude = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + name = _js2n__-prdslib.isType '"String", + path = _js2n__-prdslib.isType '"String", + secret = + _js2n__-refsenv."_js2n__-:definitions/SecretDefinition!predicate", + url = _js2n__-prdslib.isType '"String", + version = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ImmutableMvnDefinition!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "url" ], + _js2n__-prdslib.records.record + { + dest = _js2n__-prdslib.isType '"String", + url = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/LogStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "log" ], + _js2n__-prdslib.records.record + { + log = _js2n__-prdslib.isType '"String", + meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/LogYamlStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "logYaml" ], + _js2n__-prdslib.records.record + { + logYaml = _js2n__-prdslib.isType '"String", + meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/Loop!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + items = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.isType '"Array" + ], + mode = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "SERIAL", "PARALLEL" ] + ], + parallelism = _js2n__-prdslib.isType 'Integer, + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ManualTrigger!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + exclusive = + _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!predicate", + manual = + _js2n__-refsenv."_js2n__-:definitions/ManualTriggerParams!predicate", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ManualTriggerParams!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "entryPoint" ], + _js2n__-prdslib.records.record + { + activeProfiles = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + arguments = _js2n__-prdslib.isType 'Record, + entryPoint = _js2n__-prdslib.isType '"String", + exclusive = + _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!predicate", + name = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/MvnImport!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + mvn = + _js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/ImmutableMvnDefinition!predicate" + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/OneOpsTrigger!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { oneops = _js2n__-prdslib.isType 'Record, } {} false + _js2n__-prdslib.never + ], + "_js2n__-:definitions/ParallelStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "parallel" ], + _js2n__-prdslib.records.record + { + meta = _js2n__-prdslib.isType 'Record, + out = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType 'Record + ], + parallel = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" ]) ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ProcessDefinitionConfiguration!contract" = + { + arguments | { .. } | optional, + debug | Bool | optional, + dependencies | Array (String) | optional, + entryPoint | String | optional, + events + | _js2n__-refsenv."_js2n__-:definitions/EventConfiguration!contract" + | optional, + exclusive + | _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!contract" + | optional, + meta | { .. } | optional, + out | Array (String) | optional, + parallelLoopParallelism | std.number.Integer | optional, + processTimeout | String | optional, + requirements | { .. } | optional, + runtime | std.enum.TagOrString | [| 'concord-v2 |] | optional, + suspendTimeout | String | optional, + template | String | optional, + }, + "_js2n__-:definitions/ProcessDefinitionConfiguration!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + arguments = _js2n__-prdslib.isType 'Record, debug = _js2n__-prdslib.isType '"Bool", dependencies = _js2n__-prdslib.allOf @@ -929,1083 +1717,479 @@ let rec _js2n__-refsenv ], entryPoint = _js2n__-prdslib.isType '"String", events = + _js2n__-refsenv."_js2n__-:definitions/EventConfiguration!predicate", + exclusive = + _js2n__-refsenv."_js2n__-:definitions/ExclusiveMode!predicate", + meta = _js2n__-prdslib.isType 'Record, + out = _js2n__-prdslib.allOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - inVarsBlacklist = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - metaBlacklist = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - outVarsBlacklist = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - recordEvents = _js2n__-prdslib.isType '"Bool", - recordTaskInVars = _js2n__-prdslib.isType '"Bool", - recordTaskMeta = _js2n__-prdslib.isType '"Bool", - recordTaskOutVars = - _js2n__-prdslib.isType '"Bool", - truncateInVars = _js2n__-prdslib.isType '"Bool", - truncateMaxArrayLength = - _js2n__-prdslib.isType 'Integer, - truncateMaxDepth = - _js2n__-prdslib.isType 'Integer, - truncateMaxStringLength = - _js2n__-prdslib.isType 'Integer, - truncateMeta = _js2n__-prdslib.isType '"Bool", - truncateOutVars = _js2n__-prdslib.isType '"Bool", - } {} false _js2n__-prdslib.never + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") ], - exclusive = + parallelLoopParallelism = _js2n__-prdslib.isType 'Integer, + processTimeout = _js2n__-prdslib.isType '"String", + requirements = _js2n__-prdslib.isType 'Record, + runtime = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "concord-v2" ] + ], + suspendTimeout = _js2n__-prdslib.isType '"String", + template = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/Profile!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + configuration = + _js2n__-refsenv."_js2n__-:definitions/ProcessDefinitionConfiguration!predicate", + flows = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.required [ "group" ], - _js2n__-prdslib.records.record - { - group = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.minLength 1 - ], - mode = - _js2n__-prdslib.allOf + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ "cancel", "cancelOld", "wait" ] - ], - } {} false _js2n__-prdslib.never + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate" + ]) + ]) ], - meta = _js2n__-prdslib.isType 'Record, - out = + forms = _js2n__-prdslib.isType 'Record, + publicFlows = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"Array", _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String"), - _js2n__-prdslib.arrays.minItems 1 + (_js2n__-prdslib.isType '"String") ], - parallelLoopParallelism = _js2n__-prdslib.isType 'Integer, - processTimeout = + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/Resources!contract" = + { concord | Array (String) | optional, }, + "_js2n__-:definitions/Retry!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + delay = _js2n__-prdslib.isType '"String", + "in" = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + _js2n__-refsenv."_js2n__-:definitions/Serializable!predicate" + ], + times = + _js2n__-prdslib.oneOf [ _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^P(?!$)((\\d+Y)|(\\d+\\.\\d+Y$))?((\\d+M)|(\\d+\\.\\d+M$))?((\\d+W)|(\\d+\\.\\d+W$))?((\\d+D)|(\\d+\\.\\d+D$))?(T(?=\\d)((\\d+H)|(\\d+\\.\\d+H$))?((\\d+M)|(\\d+\\.\\d+M$))?(\\d+(\\.\\d+)?S)?)??$" + _js2n__-prdslib.isType 'Integer ], - requirements = + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/ReturnStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "return" ] + ], + "_js2n__-:definitions/RunAs!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "withSecret" ], + _js2n__-prdslib.records.record + { withSecret = _js2n__-prdslib.isType '"String", } {} false + _js2n__-prdslib.never + ], + "_js2n__-:definitions/ScriptCall!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "script" ], + _js2n__-prdslib.records.record + { + body = _js2n__-prdslib.isType '"String", + error = _js2n__-prdslib.allOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { agent = _js2n__-prdslib.isType 'Record, } {} true - _js2n__-prdslib.always + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) ], - runtime = - _js2n__-prdslib.allOf + "in" = + _js2n__-prdslib.oneOf [ _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum [ "concord-v2" ] + _js2n__-prdslib.isType 'Record ], - suspendTimeout = - _js2n__-prdslib.allOf + loop = _js2n__-refsenv."_js2n__-:definitions/Loop!predicate", + meta = _js2n__-prdslib.isType 'Record, + out = + _js2n__-prdslib.oneOf [ _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^P(?!$)((\\d+Y)|(\\d+\\.\\d+Y$))?((\\d+M)|(\\d+\\.\\d+M$))?((\\d+W)|(\\d+\\.\\d+W$))?((\\d+D)|(\\d+\\.\\d+D$))?(T(?=\\d)((\\d+H)|(\\d+\\.\\d+H$))?((\\d+M)|(\\d+\\.\\d+M$))?(\\d+(\\.\\d+)?S)?)??$" + _js2n__-prdslib.isType 'Record ], - template = _js2n__-prdslib.isType '"String", + retry = + _js2n__-refsenv."_js2n__-:definitions/Retry!predicate", + script = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/SecretDefinition!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "name" ], + _js2n__-prdslib.records.record + { + name = _js2n__-prdslib.isType '"String", + org = _js2n__-prdslib.isType '"String", + password = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/Serializable!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/SetStep!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "set" ], + _js2n__-prdslib.records.record + { + meta = _js2n__-prdslib.isType 'Record, + set = _js2n__-prdslib.isType 'Record, } {} false _js2n__-prdslib.never ], - "_js2n__-:properties/flows!predicate" = + "_js2n__-:definitions/SuspendStep!predicate" = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "suspend" ], _js2n__-prdslib.records.record - { "default" = _js2n__-prdslib.always, } {} true - _js2n__-prdslib.always + { + meta = _js2n__-prdslib.isType 'Record, + suspend = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never ], - "_js2n__-:properties/forms!predicate" = + "_js2n__-:definitions/SwitchStep!predicate" = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "switch" ], _js2n__-prdslib.records.record { - myForm = + "default" = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"Array", _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.allOf + (_js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - myField = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType 'Record - ], - _js2n__-prdslib.records.required - [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType - 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - label = - _js2n__-prdslib.isType - '"String", - pattern = - _js2n__-prdslib.isType - '"String", - placeholder = - _js2n__-prdslib.isType - '"String", - readonly = - _js2n__-prdslib.isType - '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType - 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - } {} false _js2n__-prdslib.never - ], - } {} true - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"String" - ], - _js2n__-prdslib.records.required - [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - label = - _js2n__-prdslib.isType '"String", - pattern = - _js2n__-prdslib.isType '"String", - placeholder = - _js2n__-prdslib.isType '"String", - readonly = - _js2n__-prdslib.isType '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - } {} false _js2n__-prdslib.never - ]) + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" ]) ], + meta = _js2n__-prdslib.isType 'Record, + switch = _js2n__-prdslib.isType '"String", } {} true (_js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"Array", _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.allOf + (_js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - myField = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"String" - ], - _js2n__-prdslib.records.required - [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - label = - _js2n__-prdslib.isType '"String", - pattern = - _js2n__-prdslib.isType '"String", - placeholder = - _js2n__-prdslib.isType '"String", - readonly = - _js2n__-prdslib.isType '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - } {} false _js2n__-prdslib.never - ], - } {} true - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"String" - ], - _js2n__-prdslib.records.required [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Bool", - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType '"Number", - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"Array" - ], - label = _js2n__-prdslib.isType '"String", - pattern = _js2n__-prdslib.isType '"String", - placeholder = - _js2n__-prdslib.isType '"String", - readonly = _js2n__-prdslib.isType '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Bool", - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType '"Number", - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"Array" - ], - } {} false _js2n__-prdslib.never - ]) + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" ]) ]) ], - } - in - { - configuration - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf + "_js2n__-:definitions/TaskCall!predicate" = + _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.arrays.uniqueItems, + _js2n__-prdslib.records.required [ "task" ], _js2n__-prdslib.records.record { - arguments = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record {} {} true - (_js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.isType '"Bool", - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.isType '"Number", - _js2n__-prdslib.isType '"String" - ]) - ], - debug = _js2n__-prdslib.isType '"Bool", - dependencies = + error = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"Array", _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - entryPoint = _js2n__-prdslib.isType '"String", - events = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - inVarsBlacklist = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - metaBlacklist = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - outVarsBlacklist = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - recordEvents = _js2n__-prdslib.isType '"Bool", - recordTaskInVars = _js2n__-prdslib.isType '"Bool", - recordTaskMeta = _js2n__-prdslib.isType '"Bool", - recordTaskOutVars = - _js2n__-prdslib.isType '"Bool", - truncateInVars = _js2n__-prdslib.isType '"Bool", - truncateMaxArrayLength = - _js2n__-prdslib.isType 'Integer, - truncateMaxDepth = - _js2n__-prdslib.isType 'Integer, - truncateMaxStringLength = - _js2n__-prdslib.isType 'Integer, - truncateMeta = _js2n__-prdslib.isType '"Bool", - truncateOutVars = _js2n__-prdslib.isType '"Bool", - } {} false _js2n__-prdslib.never + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) ], - exclusive = - _js2n__-prdslib.allOf + ignoreErrors = _js2n__-prdslib.isType '"Bool", + "in" = + _js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.required [ "group" ], - _js2n__-prdslib.records.record - { - group = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.minLength 1 - ], - mode = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ "cancel", "cancelOld", "wait" ] - ], - } {} false _js2n__-prdslib.never + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Record ], + loop = _js2n__-refsenv."_js2n__-:definitions/Loop!predicate", meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", out = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String"), - _js2n__-prdslib.arrays.minItems 1 - ], - parallelLoopParallelism = _js2n__-prdslib.isType 'Integer, - processTimeout = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^P(?!$)((\\d+Y)|(\\d+\\.\\d+Y$))?((\\d+M)|(\\d+\\.\\d+M$))?((\\d+W)|(\\d+\\.\\d+W$))?((\\d+D)|(\\d+\\.\\d+D$))?(T(?=\\d)((\\d+H)|(\\d+\\.\\d+H$))?((\\d+M)|(\\d+\\.\\d+M$))?(\\d+(\\.\\d+)?S)?)??$" - ], - requirements = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { agent = _js2n__-prdslib.isType 'Record, } {} true - _js2n__-prdslib.always - ], - runtime = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum [ "concord-v2" ] - ], - suspendTimeout = - _js2n__-prdslib.allOf + _js2n__-prdslib.oneOf [ _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^P(?!$)((\\d+Y)|(\\d+\\.\\d+Y$))?((\\d+M)|(\\d+\\.\\d+M$))?((\\d+W)|(\\d+\\.\\d+W$))?((\\d+D)|(\\d+\\.\\d+D$))?(T(?=\\d)((\\d+H)|(\\d+\\.\\d+H$))?((\\d+M)|(\\d+\\.\\d+M$))?(\\d+(\\.\\d+)?S)?)??$" + _js2n__-prdslib.isType 'Record ], - template = _js2n__-prdslib.isType '"String", + retry = + _js2n__-refsenv."_js2n__-:definitions/Retry!predicate", + task = _js2n__-prdslib.isType '"String", } {} false _js2n__-prdslib.never - ]) - | optional, - flows - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf + ], + "_js2n__-:definitions/ThrowStep!predicate" = + _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "throw" ], _js2n__-prdslib.records.record - { "default" = _js2n__-prdslib.always, } {} true - _js2n__-prdslib.always - ]) - | optional, - forms - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf + { + name = _js2n__-prdslib.isType '"String", + throw = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/TryStep!predicate" = + _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "try" ], _js2n__-prdslib.records.record { - myForm = + error = _js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"Array", _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.allOf + (_js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - myField = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType 'Record - ], - _js2n__-prdslib.records.required - [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType - 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - label = - _js2n__-prdslib.isType - '"String", - pattern = - _js2n__-prdslib.isType - '"String", - placeholder = - _js2n__-prdslib.isType - '"String", - readonly = - _js2n__-prdslib.isType - '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType - 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - } {} false _js2n__-prdslib.never - ], - } {} true - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"String" - ], - _js2n__-prdslib.records.required - [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - label = - _js2n__-prdslib.isType '"String", - pattern = - _js2n__-prdslib.isType '"String", - placeholder = - _js2n__-prdslib.isType '"String", - readonly = - _js2n__-prdslib.isType '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - } {} false _js2n__-prdslib.never - ]) + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" ]) ], - } {} true + loop = _js2n__-refsenv."_js2n__-:definitions/Loop!predicate", + meta = _js2n__-prdslib.isType 'Record, + name = _js2n__-prdslib.isType '"String", + out = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + _js2n__-prdslib.isType '"String" + ], + try = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate" + ]) + ], + } {} false _js2n__-prdslib.never + ], + } + in + { + configuration + | _js2n__-refsenv."_js2n__-:definitions/ProcessDefinitionConfiguration!contract" + | optional, + flows + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true (_js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"Array", _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.allOf + (_js2n__-prdslib.oneOf [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - myField = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"String" - ], - _js2n__-prdslib.records.required - [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - label = - _js2n__-prdslib.isType '"String", - pattern = - _js2n__-prdslib.isType '"String", - placeholder = - _js2n__-prdslib.isType '"String", - readonly = - _js2n__-prdslib.isType '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.isType - '"Bool", - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType - '"Number", - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - '"Array" - ], - } {} false _js2n__-prdslib.never - ], - } {} true - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"String" - ], - _js2n__-prdslib.records.required [ "type" ], - _js2n__-prdslib.records.record - { - allow = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Bool", - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType '"Number", - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"Array" - ], - label = _js2n__-prdslib.isType '"String", - pattern = _js2n__-prdslib.isType '"String", - placeholder = - _js2n__-prdslib.isType '"String", - readonly = _js2n__-prdslib.isType '"Bool", - type = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ - "boolean", - "date", - "dateTime", - "decimal", - "file", - "int", - "string", - "boolean*", - "date*", - "dateTime*", - "decimal*", - "file*", - "int*", - "string*", - "boolean+", - "date+", - "dateTime+", - "decimal+", - "file+", - "int+", - "string+", - "boolean?", - "date?", - "dateTime?", - "decimal?", - "file?", - "int?", - "string?" - ] - ], - value = - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Bool", - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.isType 'Null, - _js2n__-prdslib.isType '"Number", - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.isType '"Array" - ], - } {} false _js2n__-prdslib.never - ]) + _js2n__-refsenv."_js2n__-:definitions/TaskCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/ThrowStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ScriptCall!predicate", + _js2n__-refsenv."_js2n__-:definitions/SetStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ReturnStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SuspendStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ParallelStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/CheckpointStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionFullStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExitStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FormCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/SwitchStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/IfStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/LogYamlStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/FlowCallStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/BlockStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/ExpressionShortStep!predicate", + _js2n__-refsenv."_js2n__-:definitions/TryStep!predicate" ]) ]) ]) | optional, + forms | { .. } | optional, imports - | Array - { - dir | { dest | String | optional, src | String, } | optional, - git - | { - dest | String | optional, - exclude | Array (String) | optional, - name | String | optional, - path | String | optional, - secret - | { - name | String, - org | String | optional, - password | String | optional, - } - | optional, - url | String | optional, - version | String | optional, - .. - } - | optional, - mvn | { dest | String | optional, url | String, } | optional, - } + | Array ( + _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/MvnImport!predicate", + _js2n__-refsenv."_js2n__-:definitions/DirImport!predicate", + _js2n__-refsenv."_js2n__-:definitions/GitImport!predicate" + ]) + ) | optional, profiles | _js2n__-prdslib.contract_from_predicate @@ -2013,206 +2197,24 @@ let rec _js2n__-refsenv [ _js2n__-prdslib.isType 'Record, _js2n__-prdslib.records.record {} {} true - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record - { - configuration = - _js2n__-refsenv."_js2n__-:properties/configuration!predicate", - flows = - _js2n__-refsenv."_js2n__-:properties/flows!predicate", - forms = - _js2n__-refsenv."_js2n__-:properties/forms!predicate", - } {} false _js2n__-prdslib.never - ]) + _js2n__-refsenv."_js2n__-:definitions/Profile!predicate" ]) | optional, publicFlows | Array (String) | optional, - resources | { concord | Array (String) | optional, } | optional, + resources + | _js2n__-refsenv."_js2n__-:definitions/Resources!contract" + | optional, triggers - | Array - { - cron - | { - activeProfiles | Array (String) | optional, - arguments | { .. } | optional, - entryPoint | String, - exclusive - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.arrays.uniqueItems, - _js2n__-prdslib.records.record - { - group = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.minLength 1 - ], - groupBy = _js2n__-prdslib.isType '"String", - mode = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ "cancel", "cancelOld", "wait" ] - ], - } {} false _js2n__-prdslib.never - ]) - | optional, - runAs | { withSecret | String | optional, } | optional, - spec | String, - timezone | String | optional, - } - | optional, - github - | { - activeProfiles | Array (String) | optional, - arguments | { .. } | optional, - conditions - | { - branch | String | optional, - files - | { - added - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Array" - ], - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ]) - | optional, - any - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Array" - ], - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ]) - | optional, - modified - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Array" - ], - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ]) - | optional, - removed - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.isType '"Array" - ], - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ]) - | optional, - } - | optional, - githubHost | String | optional, - githubOrg | String | optional, - githubRepo | String | optional, - payload | { .. } | optional, - repositoryInfo - | Array ( - _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.arrays.uniqueItems, - _js2n__-prdslib.records.record - { - branch = _js2n__-prdslib.isType '"String", - enabled = _js2n__-prdslib.isType '"Bool", - projectId = _js2n__-prdslib.isType '"String", - repository = _js2n__-prdslib.isType '"String", - repositoryId = - _js2n__-prdslib.isType '"String", - } {} false _js2n__-prdslib.never - ]) - ) - | optional, - sender | String | optional, - status | String | optional, - type | String, - }, - entryPoint | String, - exclusive - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.arrays.uniqueItems, - _js2n__-prdslib.records.record - { - group = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.minLength 1 - ], - groupBy = _js2n__-prdslib.isType '"String", - mode = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ "cancel", "cancelOld", "wait" ] - ], - } {} false _js2n__-prdslib.never - ]) - | optional, - ignoreEmptyPush | Bool | optional, - useEventCommitId | Bool | optional, - useInitiator | Bool | optional, - version | std.number.Integer, - } - | optional, - manual - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.arrays.uniqueItems, - _js2n__-prdslib.records.required [ "entryPoint" ], - _js2n__-prdslib.records.record - { - activeProfiles = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], - arguments = _js2n__-prdslib.isType 'Record, - entryPoint = _js2n__-prdslib.isType '"String", - name = _js2n__-prdslib.isType '"String", - } {} false _js2n__-prdslib.never - ]) - | optional, - } + | Array ( + _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.oneOf + [ + _js2n__-refsenv."_js2n__-:definitions/GenericTrigger!predicate", + _js2n__-refsenv."_js2n__-:definitions/CronTrigger!predicate", + _js2n__-refsenv."_js2n__-:definitions/ManualTrigger!predicate", + _js2n__-refsenv."_js2n__-:definitions/GithubTrigger!predicate", + _js2n__-refsenv."_js2n__-:definitions/OneOpsTrigger!predicate" + ]) + ) | optional, - .. } \ No newline at end of file diff --git a/out/Cycle Stack File.ncl b/out/Cycle Stack File.ncl index 3088cfb..687faed 100644 --- a/out/Cycle Stack File.ncl +++ b/out/Cycle Stack File.ncl @@ -2172,20 +2172,6 @@ let rec _js2n__-refsenv true _js2n__-prdslib.always ], - destination = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.records.record - { - container_id = - _js2n__-prdslib.isType - '"String", - } {} - true - _js2n__-prdslib.always - ], "match" = _js2n__-prdslib.allOf [ @@ -2198,6 +2184,50 @@ let rec _js2n__-refsenv ], _js2n__-prdslib.records.record { + containers = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + 'Record, + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.records.record + { + exclude = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/match/properties/containers/properties/include/items!predicate" + ], + include = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], + } + {} + true + _js2n__-prdslib.always + ], domains = _js2n__-prdslib.allOf [ @@ -3204,19 +3234,6 @@ let rec _js2n__-refsenv } {} true _js2n__-prdslib.always ], - destination = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.records.record - { - container_id = - _js2n__-prdslib.isType - '"String", - } {} true - _js2n__-prdslib.always - ], "match" = _js2n__-prdslib.allOf [ @@ -3229,6 +3246,48 @@ let rec _js2n__-refsenv ], _js2n__-prdslib.records.record { + containers = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + 'Record, + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.records.record + { + exclude = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/match/properties/containers/properties/include/items!predicate" + ], + include = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], + } {} true + _js2n__-prdslib.always + ], domains = _js2n__-prdslib.allOf [ @@ -3292,7 +3351,7 @@ let rec _js2n__-refsenv ], } {} true _js2n__-prdslib.always ], - "_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/destination/properties/container_id!predicate" + "_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/match/properties/containers/properties/include/items!predicate" | doc "Either a resource ID (objectid - i.e. 651586fca6078e98982dbd90) or a resource Identifier (human-readable)" = _js2n__-prdslib.isType '"String", "_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/waf/anyOf/0!predicate" @@ -3660,33 +3719,6 @@ let rec _js2n__-refsenv max_attempts = _js2n__-prdslib.isType 'Integer, - notify = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.anyOf - [ - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.isType - 'Null - ], - _js2n__-prdslib.records.record - { - emails = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType - '"String") - ], - web_hook = - _js2n__-prdslib.isType - '"String", - } {} true - _js2n__-prdslib.always - ], } {} true _js2n__-prdslib.always ], @@ -3848,7 +3880,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Null ], - web_hook = + webhook = _js2n__-prdslib.anyOf [ _js2n__-prdslib.isType @@ -3946,7 +3978,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.always ], integration_id = - _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/destination/properties/container_id!predicate", + _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/match/properties/containers/properties/include/items!predicate", restore = _js2n__-prdslib.allOf [ @@ -4080,6 +4112,34 @@ let rec _js2n__-refsenv } {} true _js2n__-prdslib.always ], + logs = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + 'Record, + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.records.record + { + groups = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:properties/scoped_variables/items/properties/identifier!predicate" + ], + } {} true + _js2n__-prdslib.always + ], shared_file_systems = _js2n__-prdslib.allOf [ @@ -4979,7 +5039,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.records.record { integration_id = - _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/destination/properties/container_id!predicate", + _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/match/properties/containers/properties/include/items!predicate", } {} true _js2n__-prdslib.always ], name = @@ -5747,7 +5807,7 @@ let rec _js2n__-refsenv } {} true _js2n__-prdslib.always ], - web_hook = + webhook = _js2n__-prdslib.isType '"String", } {} true @@ -7354,21 +7414,6 @@ let rec _js2n__-refsenv true _js2n__-prdslib.always ], - destination = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - 'Record, - _js2n__-prdslib.records.record - { - container_id = - _js2n__-prdslib.isType - '"String", - } - {} - true - _js2n__-prdslib.always - ], "match" = _js2n__-prdslib.allOf [ @@ -7381,6 +7426,50 @@ let rec _js2n__-refsenv ], _js2n__-prdslib.records.record { + containers = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + 'Record, + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.records.record + { + exclude = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:properties/services/properties/loadbalancer/anyOf/1/properties/config/anyOf/0/oneOf/1/properties/details/properties/controllers/items/properties/transport/properties/routers/items/properties/match/properties/containers/properties/include/items!predicate" + ], + include = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.isType + 'Null + ], + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], + } + {} + true + _js2n__-prdslib.always + ], domains = _js2n__-prdslib.allOf [ diff --git a/out/Data Contract Specification.ncl b/out/Data Contract Specification.ncl index 78b7bf5..c1445d0 100644 --- a/out/Data Contract Specification.ncl +++ b/out/Data Contract Specification.ncl @@ -915,11 +915,11 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", avroType = _js2n__-prdslib.isType '"String", bigqueryType = _js2n__-prdslib.isType '"String", + databricksType = _js2n__-prdslib.isType '"String", glueType = _js2n__-prdslib.isType '"String", redshiftType = _js2n__-prdslib.isType '"String", snowflakeType = _js2n__-prdslib.isType '"String", sqlserverType = _js2n__-prdslib.isType '"String", - unityType = _js2n__-prdslib.isType '"String", } {} true (_js2n__-prdslib.anyOf [ @@ -953,6 +953,8 @@ let rec _js2n__-refsenv format = _js2n__-prdslib.isType '"String", items = _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", + keys = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", links = _js2n__-prdslib.allOf [ @@ -985,6 +987,8 @@ let rec _js2n__-refsenv title = _js2n__-prdslib.isType '"String", type = _js2n__-prdslib.always, unique = _js2n__-prdslib.isType '"Bool", + values = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", } {} true _js2n__-prdslib.always ], } @@ -1014,7 +1018,18 @@ let rec _js2n__-refsenv example = _js2n__-prdslib.isType '"String", exclusiveMaximum = _js2n__-prdslib.isType '"Number", exclusiveMinimum = _js2n__-prdslib.isType '"Number", + fields = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate" + ], format = _js2n__-prdslib.isType '"String", + items = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", + keys = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", links = _js2n__-prdslib.allOf [ @@ -1044,6 +1059,8 @@ let rec _js2n__-refsenv ], title = _js2n__-prdslib.isType '"String", type = _js2n__-prdslib.always, + values = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", } {} true _js2n__-prdslib.always ]) ]) @@ -1193,6 +1210,9 @@ let rec _js2n__-refsenv bigqueryType = _js2n__-prdslib.isType '"String", + databricksType = + _js2n__-prdslib.isType + '"String", glueType = _js2n__-prdslib.isType '"String", @@ -1205,9 +1225,6 @@ let rec _js2n__-refsenv sqlserverType = _js2n__-prdslib.isType '"String", - unityType = - _js2n__-prdslib.isType - '"String", } {} true (_js2n__-prdslib.anyOf [ @@ -1256,6 +1273,8 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", items = _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", + keys = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", links = _js2n__-prdslib.allOf [ @@ -1306,6 +1325,8 @@ let rec _js2n__-refsenv type = _js2n__-prdslib.always, unique = _js2n__-prdslib.isType '"Bool", + values = + _js2n__-refsenv."_js2n__-:properties/models/additionalProperties/properties/fields/additionalProperties!predicate", } {} true _js2n__-prdslib.always ]) ], diff --git a/out/Datahub Ingestion Recipe.ncl b/out/Datahub Ingestion Recipe.ncl index 64803a4..32ad752 100644 --- a/out/Datahub Ingestion Recipe.ncl +++ b/out/Datahub Ingestion Recipe.ncl @@ -978,6 +978,29 @@ let rec _js2n__-refsenv read_timeout = _js2n__-prdslib.isType '"Number", } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/AzureConnectionConfig!predicate" + | doc m%" + Common Azure credentials config. + + https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-directory-file-acl-python + "% + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required + [ "account_name", "container_name" ], + _js2n__-prdslib.records.record + { + account_key = _js2n__-prdslib.isType '"String", + account_name = _js2n__-prdslib.isType '"String", + base_path = _js2n__-prdslib.isType '"String", + client_id = _js2n__-prdslib.isType '"String", + client_secret = _js2n__-prdslib.isType '"String", + container_name = _js2n__-prdslib.isType '"String", + sas_token = _js2n__-prdslib.isType '"String", + tenant_id = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], "_js2n__-:definitions/BaseUsageConfig!predicate" = _js2n__-prdslib.allOf [ @@ -1923,6 +1946,66 @@ let rec _js2n__-refsenv warehouse_id = _js2n__-prdslib.isType '"String", } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/abs!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "config", "type" ], + _js2n__-prdslib.records.record + { + config = + _js2n__-refsenv."_js2n__-:definitions/abs_config!predicate", + type = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "abs" ] + ], + } {} true _js2n__-prdslib.always + ], + "_js2n__-:definitions/abs_config!predicate" + | doc "Base configuration class for stateful ingestion for source configs to inherit from." + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "path_specs" ], + _js2n__-prdslib.records.record + { + add_partition_columns_to_schema = + _js2n__-prdslib.isType '"Bool", + azure_config = + _js2n__-refsenv."_js2n__-:definitions/AzureConnectionConfig!predicate", + env = _js2n__-prdslib.isType '"String", + max_rows = _js2n__-prdslib.isType 'Integer, + number_of_files_to_sample = _js2n__-prdslib.isType 'Integer, + path_specs = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/PathSpec!predicate" + ], + platform = _js2n__-prdslib.isType '"String", + platform_instance = _js2n__-prdslib.isType '"String", + profile_patterns = + _js2n__-refsenv."_js2n__-:definitions/AllowDenyPattern!predicate", + profiling = + _js2n__-refsenv."_js2n__-:definitions/DataLakeProfilerConfig!predicate", + spark_config = _js2n__-prdslib.isType 'Record, + spark_driver_memory = _js2n__-prdslib.isType '"String", + stateful_ingestion = + _js2n__-refsenv."_js2n__-:definitions/StatefulStaleMetadataRemovalConfig!predicate", + use_abs_blob_properties = _js2n__-prdslib.isType '"Bool", + use_abs_blob_tags = _js2n__-prdslib.isType '"Bool", + use_abs_container_properties = _js2n__-prdslib.isType '"Bool", + verify_ssl = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType '"String" + ], + } {} false _js2n__-prdslib.never + ], "_js2n__-:definitions/athena!predicate" = _js2n__-prdslib.allOf [ @@ -2168,6 +2251,8 @@ let rec _js2n__-refsenv ], match_fully_qualified_names = _js2n__-prdslib.isType '"Bool", max_query_duration = _js2n__-prdslib.isType '"Number", + max_threads_dataset_parallelism = + _js2n__-prdslib.isType 'Integer, number_of_datasets_process_in_batch_if_profiling_enabled = _js2n__-prdslib.isType 'Integer, options = _js2n__-prdslib.isType 'Record, @@ -3418,6 +3503,7 @@ let rec _js2n__-refsenv ignore_resource_links = _js2n__-prdslib.isType '"Bool", ignore_unsupported_connectors = _js2n__-prdslib.isType '"Bool", + include_column_lineage = _js2n__-prdslib.isType '"Bool", platform = _js2n__-prdslib.isType '"String", platform_instance = _js2n__-prdslib.isType '"String", profiling = @@ -3431,6 +3517,38 @@ let rec _js2n__-refsenv use_s3_object_tags = _js2n__-prdslib.isType '"Bool", } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/grafana!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "config", "type" ], + _js2n__-prdslib.records.record + { + config = + _js2n__-refsenv."_js2n__-:definitions/grafana_config!predicate", + type = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "grafana" ] + ], + } {} true _js2n__-prdslib.always + ], + "_js2n__-:definitions/grafana_config!predicate" + | doc "Base configuration class for stateful ingestion for source configs to inherit from." + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "service_account_token" ], + _js2n__-prdslib.records.record + { + platform_instance = _js2n__-prdslib.isType '"String", + service_account_token = _js2n__-prdslib.isType '"String", + stateful_ingestion = + _js2n__-refsenv."_js2n__-:definitions/StatefulIngestionConfig!predicate", + url = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], "_js2n__-:definitions/hana!predicate" = _js2n__-prdslib.allOf [ @@ -4029,6 +4147,7 @@ let rec _js2n__-refsenv extract_column_level_lineage = _js2n__-prdslib.isType '"Bool", git_info = _js2n__-refsenv."_js2n__-:definitions/GitInfo!predicate", + liquid_variable = _js2n__-prdslib.isType 'Record, max_file_snippet_length = _js2n__-prdslib.isType 'Integer, model_pattern = _js2n__-refsenv."_js2n__-:definitions/AllowDenyPattern!predicate", @@ -5676,6 +5795,7 @@ let rec _js2n__-refsenv include_top_n_queries = _js2n__-prdslib.isType '"Bool", include_usage_stats = _js2n__-prdslib.isType '"Bool", include_view_column_lineage = _js2n__-prdslib.isType '"Bool", + include_view_definitions = _js2n__-prdslib.isType '"Bool", include_view_lineage = _js2n__-prdslib.isType '"Bool", include_views = _js2n__-prdslib.isType '"Bool", incremental_lineage = _js2n__-prdslib.isType '"Bool", @@ -5726,6 +5846,7 @@ let rec _js2n__-refsenv ], upstream_lineage_in_report = _js2n__-prdslib.isType '"Bool", use_file_backed_cache = _js2n__-prdslib.isType '"Bool", + use_queries_v2 = _js2n__-prdslib.isType '"Bool", user_email_pattern = _js2n__-refsenv."_js2n__-:definitions/AllowDenyPattern!predicate", username = _js2n__-prdslib.isType '"String", @@ -6012,6 +6133,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.records.required [ "connect_uri" ], _js2n__-prdslib.records.record { + add_site_container = _js2n__-prdslib.isType '"Bool", connect_uri = _js2n__-prdslib.isType '"String", database_hostname_to_platform_instance_map = _js2n__-prdslib.allOf @@ -6040,6 +6162,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"Bool", ingest_external_links_for_dashboards = _js2n__-prdslib.isType '"Bool", + ingest_multiple_sites = _js2n__-prdslib.isType '"Bool", ingest_owner = _js2n__-prdslib.isType '"Bool", ingest_tables_external = _js2n__-prdslib.isType '"Bool", ingest_tags = _js2n__-prdslib.isType '"Bool", @@ -6067,6 +6190,8 @@ let rec _js2n__-refsenv (_js2n__-prdslib.isType '"String") ], site = _js2n__-prdslib.isType '"String", + site_name_pattern = + _js2n__-refsenv."_js2n__-:definitions/AllowDenyPattern!predicate", sql_parsing_disable_schema_awareness = _js2n__-prdslib.isType '"Bool", ssl_verify = @@ -6443,74 +6568,76 @@ let rec _js2n__-refsenv source = _js2n__-prdslib.anyOf [ - _js2n__-refsenv."_js2n__-:definitions/mlflow!predicate", + _js2n__-refsenv."_js2n__-:definitions/mode!predicate", + _js2n__-refsenv."_js2n__-:definitions/unity-catalog!predicate", + _js2n__-refsenv."_js2n__-:definitions/sigma!predicate", + _js2n__-refsenv."_js2n__-:definitions/superset!predicate", + _js2n__-refsenv."_js2n__-:definitions/sagemaker!predicate", + _js2n__-refsenv."_js2n__-:definitions/hive-metastore!predicate", + _js2n__-refsenv."_js2n__-:definitions/dbt!predicate", + _js2n__-refsenv."_js2n__-:definitions/azure-ad!predicate", + _js2n__-refsenv."_js2n__-:definitions/cockroachdb!predicate", + _js2n__-refsenv."_js2n__-:definitions/datahub-business-glossary!predicate", + _js2n__-refsenv."_js2n__-:definitions/druid!predicate", _js2n__-refsenv."_js2n__-:definitions/gcs!predicate", - _js2n__-refsenv."_js2n__-:definitions/elasticsearch!predicate", - _js2n__-refsenv."_js2n__-:definitions/looker!predicate", - _js2n__-refsenv."_js2n__-:definitions/csv-enricher!predicate", _js2n__-refsenv."_js2n__-:definitions/slack!predicate", + _js2n__-refsenv."_js2n__-:definitions/postgres!predicate", + _js2n__-refsenv."_js2n__-:definitions/redshift!predicate", + _js2n__-refsenv."_js2n__-:definitions/vertica!predicate", + _js2n__-refsenv."_js2n__-:definitions/looker!predicate", + _js2n__-refsenv."_js2n__-:definitions/kafka-connect!predicate", + _js2n__-refsenv."_js2n__-:definitions/datahub!predicate", + _js2n__-refsenv."_js2n__-:definitions/feast!predicate", _js2n__-refsenv."_js2n__-:definitions/sqlalchemy!predicate", - _js2n__-refsenv."_js2n__-:definitions/unity-catalog!predicate", - _js2n__-refsenv."_js2n__-:definitions/lookml!predicate", - _js2n__-refsenv."_js2n__-:definitions/hive-metastore!predicate", - _js2n__-refsenv."_js2n__-:definitions/fivetran!predicate", + _js2n__-refsenv."_js2n__-:definitions/csv-enricher!predicate", _js2n__-refsenv."_js2n__-:definitions/dynamodb!predicate", - _js2n__-refsenv."_js2n__-:definitions/bigquery!predicate", + _js2n__-refsenv."_js2n__-:definitions/demo-data!predicate", _js2n__-refsenv."_js2n__-:definitions/okta!predicate", - _js2n__-refsenv."_js2n__-:definitions/mysql!predicate", - _js2n__-refsenv."_js2n__-:definitions/powerbi-report-server!predicate", - _js2n__-refsenv."_js2n__-:definitions/sagemaker!predicate", - _js2n__-refsenv."_js2n__-:definitions/salesforce!predicate", _js2n__-refsenv."_js2n__-:definitions/mongodb!predicate", - _js2n__-refsenv."_js2n__-:definitions/nifi!predicate", - _js2n__-refsenv."_js2n__-:definitions/oracle!predicate", - _js2n__-refsenv."_js2n__-:definitions/pulsar!predicate", + _js2n__-refsenv."_js2n__-:definitions/openapi!predicate", + _js2n__-refsenv."_js2n__-:definitions/tableau!predicate", _js2n__-refsenv."_js2n__-:definitions/hana!predicate", - _js2n__-refsenv."_js2n__-:definitions/demo-data!predicate", + _js2n__-refsenv."_js2n__-:definitions/s3!predicate", + _js2n__-refsenv."_js2n__-:definitions/salesforce!predicate", + _js2n__-refsenv."_js2n__-:definitions/lookml!predicate", + _js2n__-refsenv."_js2n__-:definitions/redash!predicate", _js2n__-refsenv."_js2n__-:definitions/trino!predicate", - _js2n__-refsenv."_js2n__-:definitions/mssql!predicate", - _js2n__-refsenv."_js2n__-:definitions/azure-ad!predicate", - _js2n__-refsenv."_js2n__-:definitions/snowflake!predicate", + _js2n__-refsenv."_js2n__-:definitions/clickhouse-usage!predicate", + _js2n__-refsenv."_js2n__-:definitions/athena!predicate", + _js2n__-refsenv."_js2n__-:definitions/dbt-cloud!predicate", _js2n__-refsenv."_js2n__-:definitions/presto!predicate", - _js2n__-refsenv."_js2n__-:definitions/tableau!predicate", + _js2n__-refsenv."_js2n__-:definitions/elasticsearch!predicate", + _js2n__-refsenv."_js2n__-:definitions/nifi!predicate", + _js2n__-refsenv."_js2n__-:definitions/glue!predicate", + _js2n__-refsenv."_js2n__-:definitions/bigquery!predicate", + _js2n__-refsenv."_js2n__-:definitions/mariadb!predicate", + _js2n__-refsenv."_js2n__-:definitions/powerbi-report-server!predicate", + _js2n__-refsenv."_js2n__-:definitions/grafana!predicate", + _js2n__-refsenv."_js2n__-:definitions/powerbi!predicate", + _js2n__-refsenv."_js2n__-:definitions/starburst-trino-usage!predicate", + _js2n__-refsenv."_js2n__-:definitions/datahub-gc!predicate", _js2n__-refsenv."_js2n__-:definitions/metabase!predicate", - _js2n__-refsenv."_js2n__-:definitions/redshift!predicate", - _js2n__-refsenv."_js2n__-:definitions/hive!predicate", - _js2n__-refsenv."_js2n__-:definitions/json-schema!predicate", - _js2n__-refsenv."_js2n__-:definitions/qlik-sense!predicate", + _js2n__-refsenv."_js2n__-:definitions/pulsar!predicate", _js2n__-refsenv."_js2n__-:definitions/presto-on-hive!predicate", - _js2n__-refsenv."_js2n__-:definitions/cockroachdb!predicate", - _js2n__-refsenv."_js2n__-:definitions/datahub!predicate", - _js2n__-refsenv."_js2n__-:definitions/glue!predicate", + _js2n__-refsenv."_js2n__-:definitions/iceberg!predicate", + _js2n__-refsenv."_js2n__-:definitions/mssql!predicate", + _js2n__-refsenv."_js2n__-:definitions/json-schema!predicate", + _js2n__-refsenv."_js2n__-:definitions/hive!predicate", + _js2n__-refsenv."_js2n__-:definitions/delta-lake!predicate", + _js2n__-refsenv."_js2n__-:definitions/abs!predicate", + _js2n__-refsenv."_js2n__-:definitions/file!predicate", _js2n__-refsenv."_js2n__-:definitions/teradata!predicate", - _js2n__-refsenv."_js2n__-:definitions/athena!predicate", - _js2n__-refsenv."_js2n__-:definitions/openapi!predicate", - _js2n__-refsenv."_js2n__-:definitions/s3!predicate", - _js2n__-refsenv."_js2n__-:definitions/superset!predicate", - _js2n__-refsenv."_js2n__-:definitions/sigma!predicate", + _js2n__-refsenv."_js2n__-:definitions/snowflake!predicate", + _js2n__-refsenv."_js2n__-:definitions/mlflow!predicate", _js2n__-refsenv."_js2n__-:definitions/clickhouse!predicate", - _js2n__-refsenv."_js2n__-:definitions/file!predicate", - _js2n__-refsenv."_js2n__-:definitions/dbt!predicate", - _js2n__-refsenv."_js2n__-:definitions/datahub-business-glossary!predicate", - _js2n__-refsenv."_js2n__-:definitions/vertica!predicate", - _js2n__-refsenv."_js2n__-:definitions/powerbi!predicate", - _js2n__-refsenv."_js2n__-:definitions/dbt-cloud!predicate", - _js2n__-refsenv."_js2n__-:definitions/sql-queries!predicate", - _js2n__-refsenv."_js2n__-:definitions/mode!predicate", - _js2n__-refsenv."_js2n__-:definitions/feast!predicate", - _js2n__-refsenv."_js2n__-:definitions/druid!predicate", - _js2n__-refsenv."_js2n__-:definitions/postgres!predicate", - _js2n__-refsenv."_js2n__-:definitions/starburst-trino-usage!predicate", - _js2n__-refsenv."_js2n__-:definitions/datahub-lineage-file!predicate", _js2n__-refsenv."_js2n__-:definitions/kafka!predicate", - _js2n__-refsenv."_js2n__-:definitions/kafka-connect!predicate", - _js2n__-refsenv."_js2n__-:definitions/clickhouse-usage!predicate", - _js2n__-refsenv."_js2n__-:definitions/iceberg!predicate", + _js2n__-refsenv."_js2n__-:definitions/mysql!predicate", _js2n__-refsenv."_js2n__-:definitions/ldap!predicate", - _js2n__-refsenv."_js2n__-:definitions/mariadb!predicate", - _js2n__-refsenv."_js2n__-:definitions/redash!predicate", - _js2n__-refsenv."_js2n__-:definitions/delta-lake!predicate", - _js2n__-refsenv."_js2n__-:definitions/datahub-gc!predicate" + _js2n__-refsenv."_js2n__-:definitions/datahub-lineage-file!predicate", + _js2n__-refsenv."_js2n__-:definitions/qlik-sense!predicate", + _js2n__-refsenv."_js2n__-:definitions/oracle!predicate", + _js2n__-refsenv."_js2n__-:definitions/sql-queries!predicate", + _js2n__-refsenv."_js2n__-:definitions/fivetran!predicate" ], transformers = _js2n__-prdslib.allOf diff --git a/out/DipDup.ncl b/out/DipDup.ncl new file mode 100644 index 0000000..7026c4a --- /dev/null +++ b/out/DipDup.ncl @@ -0,0 +1,1069 @@ +# DO NOT EDIT +# This file was automatically generated using json-schema-to-nickel +let _js2n__-prdslib + = { + allOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `allOf preds` succeeds if all of the predicates in `preds` succeed + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.1] + "% + = fun + preds + x + => + std.array.fold_right + (fun pred acc => (match { 'Ok => acc, 'Err s => 'Err s, }) (pred x)) + 'Ok preds, + always : Dyn -> [| 'Ok, 'Err String |] = std.function.const 'Ok, + anyOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `anyOf preds` succeeds if at least one of the predicates in `preds` succeeds + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.2] + "% + = fun + preds + x + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + 'Err + m%" + anyOf: none of the options matched + %{std.string.join + m%" + + + "% msgs} + "%, + }) + (std.array.fold_right + (fun + pred + acc + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + (match { + 'Ok => + 'Ok, + 'Err + msg => + 'Errs ([ " - %{msg}" ] @ msgs), + }) (pred x), + }) acc) ('Errs [ ]) preds), + arrays = + { + additionalItems + : (Dyn -> [| 'Ok, 'Err String |]) + -> Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.2]" + = fun + pred + start + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + let value_length + = std.array.length x + in + if start >= value_length then + 'Ok + else + arrayOf pred + ((std.array.slice start value_length x) + | Dyn), + arrayOf + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + Apply a predicate to all elements of an array, succeeding if all + applications succeed. + "% + = fun + pred + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + std.array.fold_right + (fun + x + acc + => + (match { 'Ok => acc, 'Err msg => 'Err msg, }) (pred x)) + 'Ok x, + contains + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.6]" + = fun + pred + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + 'Err + m%" + contains: no elements matched + %{std.string.join + m%" + + + "% msgs} + "%, + }) + (std.array.fold_right + (fun + x + acc + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + (match { + 'Ok => + 'Ok, + 'Err + msg => + 'Errs ([ " - %{msg}" ] @ msgs), + }) (pred x), + }) acc) ('Errs [ ]) x), + items + : Array (Dyn -> [| 'Ok, 'Err String |]) + -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.1]" + = fun + preds + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + let length_to_check + = std.number.min (std.array.length preds) + (std.array.length x) + in + std.array.fold_right + (fun + i + acc + => + (match { 'Err msg => 'Err msg, 'Ok => acc, }) + (std.array.at i preds (std.array.at i x))) 'Ok + (std.array.range 0 length_to_check), + maxItems + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `maxItems n x` fails if `x` is an array of length strictly greater than `n` and succeeds otherwise. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.3] + "% + = fun + n + x + => + if !(std.is_array x) then + 'Ok + else + if (std.array.length (x | Array Dyn)) > n then + 'Err + "array is longer than %{std.string.from_number n} items" + else + 'Ok, + minItems + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `minItems n x` fails if `x` is an array of length strictly smaller than `n` and succeeds otherwise. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.4] + "% + = fun + n + x + => + if !(std.is_array x) then + 'Ok + else + if (std.array.length (x | Array Dyn)) < n then + 'Err + "array is shorter than %{std.string.from_number n} items" + else + 'Ok, + uniqueItems + : Dyn -> [| 'Ok, 'Err String |] + | doc m%" + Succeeds for any array if its elements are pairwise distinct. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.5] + "% + = let find_duplicate + : Array Dyn + -> { + has_duplicate : Bool, + duplicate : Dyn, + seen : { _ : Bool } + } + = std.array.fold_right + (fun + elt + acc + => + if acc.has_duplicate then + acc + else + let index + = std.serialize 'Json elt + in + if std.record.has_field index acc.seen then + { + duplicate = elt, + has_duplicate = true, + seen = acc.seen, + } + else + { + duplicate = null, + has_duplicate = false, + seen = std.record.insert index true acc.seen, + }) + { duplicate = null, has_duplicate = false, seen = {}, } + in + fun + x + => + if !(std.is_array x) then + 'Ok + else + let { has_duplicate, duplicate, .. } + = find_duplicate (x | Array Dyn) + in + if has_duplicate then + 'Err "duplicate found: %{std.serialize 'Json duplicate}" + else + 'Ok, + }, + const + : Dyn -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `const value x` succeeds if and only if `x` is equal to `value` + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.1.3] + "% + = fun + value + x + => + if x == value then + 'Ok + else + 'Err "expected %{std.serialize 'Json value}", + contract_from_predicate + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> Dyn -> Dyn + = fun + predicate + label + value + => + (match { + 'Ok => + value, + 'Err + msg => + (std.contract.blame_with_message msg label) + | Dyn, + }) (predicate value), + enum + : Array Dyn -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `enum values x` succeeds if and only if `x` is equal to one of the elements of `values`. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.1.2] + "% + = let checkEqual + = fun + input + variant + => + (input == variant) + || ((std.is_enum input) + && (((std.string.from_enum input) == variant) + | Bool)) + in + fun + values + x + => + std.array.fold_right + (fun value acc => if checkEqual x value then 'Ok else acc) + ('Err "expected one of %{std.serialize 'Json (values | Dyn)}") + values, + from_simple_predicate + : String -> (Dyn -> Bool) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Convert a simple boolean predicate into a predicate supporting error messages" + = fun error' pred x => if pred x then 'Ok else 'Err error', + ifThenElse + : (Dyn -> [| 'Ok, 'Err String |]) + -> (Dyn -> [| 'Ok, 'Err String |]) + -> (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `ifThenElse i t e` first checks if the predicate `i` succeeds. If it does, it's equivalent to `t`, otherwise it's equivalent to `e`. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.6] + "% + = fun i t e x => (match { 'Ok => t x, 'Err msg => e x, }) (i x), + isType + : [| '"Array", '"Bool", 'Integer, 'Null, '"Number", 'Record, '"String" |] + -> Dyn -> [| 'Ok, 'Err String |] + = fun + t + => + (match { + 'Null => + from_simple_predicate "expected `null`" (fun x => x == null), + 'Integer => + from_simple_predicate "expected an integer" + (fun + x + => + (std.is_number x) && (std.number.is_integer (x | Number))), + _ => + from_simple_predicate + "value is not of type %{std.string.from_enum t}" + (fun x => (std.typeof x) == t), + }) t, + never : Dyn -> [| 'Ok, 'Err String |] = std.function.const ('Err "never"), + not + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `not pred` succeeds if and only if `pred` fails + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.4] + "% + = fun + pred + x + => + (match { + 'Ok => + 'Err "Inverted predicate succeeded unexpectedly", + 'Err + msg => + 'Ok, + }) (pred x), + numbers = + { + exclusiveMaximum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.3]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) < limit then + 'Ok + else + 'Err + "expected an exclusive maximum of %{std.string.from_number + limit}", + exclusiveMinimum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.5]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) > limit then + 'Ok + else + 'Err + "expected an exclusive minimum of %{std.string.from_number + limit}", + maximum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.2]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) <= limit then + 'Ok + else + 'Err + "expected a maximum of %{std.string.from_number limit}", + minimum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.4]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) >= limit then + 'Ok + else + 'Err + "expected a minimum of %{std.string.from_number limit}", + multipleOf + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.1]" + = fun + mult + x + => + if !(std.is_number x) then + 'Ok + else + if std.number.is_integer ((x | Number) / mult) then + 'Ok + else + 'Err + "expected a multiple of %{std.string.from_number mult}", + }, + oneOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `oneOf preds` succeeds if precisely one of the predicates in `preds` succeeds + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.3] + "% + = fun + preds + x + => + let count_ok + : Array [| 'Ok, 'Err String |] -> Number + = fun + results + => + std.array.fold_left (fun n b => if b == 'Ok then n + 1 else n) 0 + results + in + let results + = std.array.map (fun pred => pred x) preds + in + let count + = count_ok results + in + if count == 0 then + let errors + = std.array.flat_map + (fun + result + => + (match { 'Ok => [ ], 'Err s => [ " - %{s}" ], }) + result) results + in + 'Err + m%" + oneOf: none of the options matched + %{std.string.join + m%" + + + "% errors} + "% + else + if count > 1 then + 'Err "oneOf: more than one of the options matched" + else + 'Ok, + records = + { + dependencies + : { _ : Dyn } -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.7]" + = let mustHaveFields + : Array String -> { _ : Dyn } -> [| 'Ok, 'Err String |] + = fun + fields + x + => + std.array.fold_right + (fun + field + acc + => + if !(std.record.has_field field x) then + 'Err "expected field `%{field}`" + else + acc) 'Ok fields + in + fun + deps + x + => + if !(std.is_record x) then + 'Ok + else + let x + | { _ : Dyn } + = x + in + std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + if !(std.record.has_field field x) then + acc + else + let result + = if std.is_array value then + mustHaveFields (value | Array String) x + else + let pred + | Dyn -> [| 'Ok, 'Err String |] + = value + in + pred (x | Dyn) + in + (match { + 'Err + msg => + 'Err + "dependency of `%{field}` failed: %{msg}", + 'Ok => + acc, + }) result) 'Ok (std.record.to_array deps), + maxProperties + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `maxProperties n x` fails if `x` is a record containing stricly more than `n` fields. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.1] + "% + = fun + n + x + => + if !(std.is_record x) then + 'Ok + else + if (std.record.length (x | { _ : Dyn })) > n then + 'Err + "record contains more than %{std.string.from_number + n} fields" + else + 'Ok, + minProperties + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `minProperties n x` fails if `x` is a record containing stricly less than `n` fields. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.1] + "% + = fun + n + x + => + if !(std.is_record x) then + 'Ok + else + if (std.record.length (x | { _ : Dyn })) < n then + 'Err + "record contains fewer than %{std.string.from_number + n} fields" + else + 'Ok, + propertyNames + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.8]" + = fun + pred + x + => + if !(std.is_record x) then + 'Ok + else + std.array.fold_right + (fun + field + acc + => + (match { + 'Err + msg => + 'Err + "field `%{field}` did not validate against `propertyNames` schema", + 'Ok => + acc, + }) (pred (field | Dyn))) 'Ok + (std.record.fields (x | { _ : Dyn })), + record + : { _ : Dyn -> [| 'Ok, 'Err String |] } + -> { _ : Dyn -> [| 'Ok, 'Err String |] } + -> Bool + -> (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `record properties patternProperties additionalAllowed + additionalProperties x` is a combination of the `properties`, + `patternProperties` and `additionalProperties` validation keywords in + JSON schema. + + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5] + "% + = fun + properties + patternProperties + additionalAllowed + additionalProperties + x + => + if !(std.is_record x) then + 'Ok + else + let x + | { _ : Dyn } + = x + in + let check_properties + : { + result : [| 'Ok, 'Err String |], + checked : { _ : Bool } + } + = std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + if !(std.record.has_field field x) then + acc + else + (match { + 'Err + msg => + { + checked : { _ : Bool } = {}, + result = + 'Err + "field `%{field}` didn't validate: %{msg}", + }, + 'Ok => + { + checked = + std.record.insert field true acc.checked, + result = acc.result, + }, + }) (value x."%{field}")) + { checked = {}, result = 'Ok, } + (std.record.to_array properties) + in + let matching_fields + : String -> { _ : Dyn } + = fun + pattern + => + let matcher + = std.string.is_match pattern + in + std.array.fold_left + (fun + acc + => + fun + { field, value, } + => + if matcher field then + std.record.insert field value acc + else + acc) {} (std.record.to_array x) + in + let check_pattern_properties + : { + result : [| 'Ok, 'Err String |], + checked : { _ : Bool } + } + = std.array.fold_right + (fun + { field = pattern, value = pred, } + => + fun + acc + => + (match { + r @ { result = 'Err msg, .. } => + r, + { result = 'Ok, checked = ch, } => + { + checked = + std.array.fold_left + (fun + r + field + => + if !(std.record.has_field field + r) then + std.record.insert field true r + else + r) acc.checked + (std.record.fields ch), + result = acc.result, + }, + }) + (std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + (match { + 'Err + msg => + { + checked : { _ : Bool } = {}, + result = + 'Err + "field `%{field}` didn't validate: %{msg}", + }, + 'Ok => + { + checked = + std.record.insert field true + acc.checked, + result = acc.result, + }, + }) (pred value)) + { + checked : { _ : Bool } = {}, + result = 'Ok, + } + (std.record.to_array + (matching_fields pattern)))) + { checked : { _ : Bool } = {}, result = 'Ok, } + (std.record.to_array patternProperties) + in + let remaining_fields + = std.array.fold_left + (fun + acc + field + => + if !(std.record.has_field field acc) then + acc + else + std.record.remove field acc) x + ((std.record.fields check_properties.checked) + @ (std.record.fields + check_pattern_properties.checked)) + in + let check_additional_properties + : [| 'Ok, 'Err String |] + = if (!additionalAllowed) + && (!(std.record.is_empty remaining_fields)) then + 'Err + "extra fields %{std.serialize 'Json + ((std.record.fields remaining_fields) + | Dyn)}" + else + std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + (match { + 'Err + msg => + 'Err + "field `%{field}` didn't validate: %{msg}", + 'Ok => + acc, + }) (additionalProperties value)) 'Ok + (std.record.to_array remaining_fields) + in + (match { + 'Err + msg => + check_properties.result, + 'Ok => + (match { + 'Err + msg => + check_pattern_properties.result, + 'Ok => + check_additional_properties, + }) check_pattern_properties.result, + }) check_properties.result, + required + : Array String -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.3]" + = fun + fields + x + => + if !(std.is_record x) then + 'Ok + else + std.array.fold_right + (fun + field + acc + => + if !(std.record.has_field field (x | { _ : Dyn })) then + 'Err "missing required field %{field}" + else + acc) 'Ok fields, + }, + strings = + { + maxLength + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.1]" + = fun + limit + x + => + if !(std.is_string x) then + 'Ok + else + if (std.string.length (x | String)) <= limit then + 'Ok + else + 'Err + "expected a string of length no larger than %{std.string.from_number + limit}", + minLength + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.2]" + = fun + limit + x + => + if !(std.is_string x) then + 'Ok + else + if (std.string.length (x | String)) >= limit then + 'Ok + else + 'Err + "expected a string of length no smaller than %{std.string.from_number + limit}", + pattern + : String -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.3]" + = fun + pattern + x + => + if !(std.is_string x) then + 'Ok + else + if std.string.is_match pattern (x | String) then + 'Ok + else + 'Err "expected a string matching the pattern `%{pattern}`", + }, + } + in +let rec _js2n__-refsenv + = {} + in + { + advanced | Dyn | doc "Advanced config" | optional, + api + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.always, _js2n__-prdslib.isType 'Null ]) + | doc "Management API config" + | optional, + contracts + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always + ]) + ]) + | doc "Mapping of contract aliases and contract configs" + | optional, + custom + | { .. } + | doc "User-defined configuration to use in callbacks" + | optional, + database + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.always, _js2n__-prdslib.always ]) + | doc "Database config" + | optional, + datasources + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always + ]) + ]) + | doc "Mapping of datasource aliases and datasource configs" + | optional, + hasura + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.always, _js2n__-prdslib.isType 'Null ]) + | doc "Hasura integration config" + | optional, + hooks + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true _js2n__-prdslib.always + ]) + | doc "Mapping of hook aliases and hook configs" + | optional, + indexes + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always + ]) + ]) + | doc "Mapping of index aliases and index configs" + | optional, + jobs + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true _js2n__-prdslib.always + ]) + | doc "Mapping of job aliases and job configs" + | optional, + logging + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Integer + ]) + ], + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Integer + ]) + | doc "Modify logging verbosity" + | optional, + package + | String + | doc "Name of indexer's Python package, existing or not" + | optional, + prometheus + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.always, _js2n__-prdslib.isType 'Null ]) + | doc "Prometheus integration config" + | optional, + sentry + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.always, _js2n__-prdslib.isType 'Null ]) + | doc "Sentry integration config" + | optional, + spec_version + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType '"Number" + ]) + | doc "Version of config specification, currently always `3.0`" + | optional, + templates + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always, + _js2n__-prdslib.always + ]) + ]) + | doc "Mapping of template aliases and index templates" + | optional, + } \ No newline at end of file diff --git a/out/GitLab Agent for Kubernetes configuration.ncl b/out/GitLab Agent for Kubernetes configuration.ncl index 31135e2..13ed808 100644 --- a/out/GitLab Agent for Kubernetes configuration.ncl +++ b/out/GitLab Agent for Kubernetes configuration.ncl @@ -975,6 +975,28 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Record, _js2n__-prdslib.oneOf [ + _js2n__-prdslib.not + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "agent" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "impersonate" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "ci_job" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ] + ]), _js2n__-prdslib.allOf [ _js2n__-prdslib.records.required [ "agent" ], @@ -1219,15 +1241,6 @@ let rec _js2n__-refsenv _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.oneOf - [ - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required [ "enabled" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ] - ], _js2n__-prdslib.records.record { enabled = _js2n__-prdslib.isType '"Bool", @@ -1248,6 +1261,28 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Record, _js2n__-prdslib.oneOf [ + _js2n__-prdslib.not + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "tag" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "branch" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "commit" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ] + ]), _js2n__-prdslib.allOf [ _js2n__-prdslib.records.required [ "tag" ], @@ -1307,15 +1342,6 @@ let rec _js2n__-refsenv _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.oneOf - [ - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required [ "grpc_level" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ] - ], _js2n__-prdslib.records.record { grpc_level = @@ -1340,12 +1366,13 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Record, _js2n__-prdslib.oneOf [ - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required [ "id" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ], + _js2n__-prdslib.not + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "prune" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ]), _js2n__-prdslib.allOf [ _js2n__-prdslib.records.required [ "prune" ], @@ -1427,36 +1454,6 @@ let rec _js2n__-refsenv _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.oneOf - [ - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required [ "workspaces_quota" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ], - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required - [ "workspaces_per_user_quota" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ], - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required - [ "default_max_hours_before_termination" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ], - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required - [ "max_hours_before_termination_limit" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ] - ], _js2n__-prdslib.records.record { default_max_hours_before_termination = @@ -1541,6 +1538,22 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Record, _js2n__-prdslib.oneOf [ + _js2n__-prdslib.not + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "agent" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "user" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ] + ]), _js2n__-prdslib.allOf [ _js2n__-prdslib.records.required [ "agent" ], @@ -1655,15 +1668,6 @@ let rec _js2n__-refsenv _js2n__-prdslib.allOf [ _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.oneOf - [ - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.records.required [ "enabled" ], - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ] - ], _js2n__-prdslib.records.record { egress = diff --git a/out/Helm Unittest Test Suite.ncl b/out/Helm Unittest Test Suite.ncl index 1b17f2a..bc2313a 100644 --- a/out/Helm Unittest Test Suite.ncl +++ b/out/Helm Unittest Test Suite.ncl @@ -912,8 +912,8 @@ let rec _js2n__-refsenv _js2n__-prdslib.arrays.arrayOf (_js2n__-prdslib.isType '"String") ], - majorVersion = _js2n__-prdslib.isType '"String", - minorVersion = _js2n__-prdslib.isType '"String", + majorVersion = _js2n__-prdslib.isType 'Integer, + minorVersion = _js2n__-prdslib.isType 'Integer, } {} false _js2n__-prdslib.never ]), "_js2n__-:definitions/capabilities!predicate" @@ -930,8 +930,8 @@ let rec _js2n__-refsenv _js2n__-prdslib.arrays.arrayOf (_js2n__-prdslib.isType '"String") ], - majorVersion = _js2n__-prdslib.isType '"String", - minorVersion = _js2n__-prdslib.isType '"String", + majorVersion = _js2n__-prdslib.isType 'Integer, + minorVersion = _js2n__-prdslib.isType 'Integer, } {} false _js2n__-prdslib.never ], "_js2n__-:definitions/chart!contract" @@ -960,6 +960,38 @@ let rec _js2n__-refsenv "_js2n__-:definitions/documentIndex!predicate" | doc "The index of rendered documents (divided by ---) to be tested, default to -1, which results in asserting all documents (see Assertion). Generally you can ignored this field if the template file render only one document." = _js2n__-prdslib.isType 'Integer, + "_js2n__-:definitions/documentSelector!predicate" + | doc "The path of the key to be match and the match value to assert. Using this information, helm-unittest will automatically discover the documentIndex. Generally you can ignored this field if the template file render only one document." + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "path", "value" ], + _js2n__-prdslib.records.record + { + path = _js2n__-prdslib.isType '"String", + value = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/kubernetesProvider!contract" + | doc "Define Kubernetes resources to fake." + = _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "objects", "scheme" ], + _js2n__-prdslib.records.record + { + objects = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType 'Record), + _js2n__-prdslib.arrays.minItems 1 + ], + scheme = _js2n__-prdslib.isType 'Record, + } {} true _js2n__-prdslib.always + ]), "_js2n__-:definitions/release!contract" | doc "Define the {{ .Release }} object." = _js2n__-prdslib.contract_from_predicate @@ -970,7 +1002,7 @@ let rec _js2n__-refsenv { name = _js2n__-prdslib.isType '"String", namespace = _js2n__-prdslib.isType '"String", - revision = _js2n__-prdslib.isType '"String", + revision = _js2n__-prdslib.isType 'Integer, upgrade = _js2n__-prdslib.isType '"Bool", } {} false _js2n__-prdslib.never ]), @@ -983,10 +1015,25 @@ let rec _js2n__-refsenv { name = _js2n__-prdslib.isType '"String", namespace = _js2n__-prdslib.isType '"String", - revision = _js2n__-prdslib.isType '"String", + revision = _js2n__-prdslib.isType 'Integer, upgrade = _js2n__-prdslib.isType '"Bool", } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/set!contract" + | doc "Set the values directly in the suite file. The key is the value path with the format just like --set option of helm install, for example image.pullPolicy. The value is anything you want to set to the path specified by the key, which can be even an array or an object." + = _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true _js2n__-prdslib.always + ]), + "_js2n__-:definitions/set!predicate" + | doc "Set the values directly in the suite file. The key is the value path with the format just like --set option of helm install, for example image.pullPolicy. The value is anything you want to set to the path specified by the key, which can be even an array or an object." + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record {} {} true _js2n__-prdslib.always + ], "_js2n__-:definitions/templates!contract" | doc "The template files scope to test in this suite. The full chart will be rendered, however only the listed templates are filtered for validation. Template files that are put in a templates sub-folder can be addressed with a linux path separator. Also the templates/ can be omitted. Partial templates (which are prefixed with and _) are added automatically even if it is in a templates sub-folder, you don't need to add them again." = Array (String), @@ -1000,6 +1047,13 @@ let rec _js2n__-refsenv "_js2n__-:definitions/values!contract" | doc "The test values to apply for rendering of this chart." = Array (String), + "_js2n__-:definitions/values!predicate" + | doc "The test values to apply for rendering of this chart." + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf (_js2n__-prdslib.isType '"String") + ], } in { @@ -1007,9 +1061,18 @@ let rec _js2n__-refsenv | _js2n__-refsenv."_js2n__-:definitions/capabilities!contract" | optional, chart | _js2n__-refsenv."_js2n__-:definitions/chart!contract" | optional, + kubernetesProvider + | _js2n__-refsenv."_js2n__-:definitions/kubernetesProvider!contract" + | optional, release | _js2n__-refsenv."_js2n__-:definitions/release!contract" | optional, + set | _js2n__-refsenv."_js2n__-:definitions/set!contract" | optional, + snapshotId + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.isType '"String") + | doc "A suffix to your snapshot file for the tests. Ideal for helm tests." + | optional, suite | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.isType '"String") @@ -1338,6 +1401,9 @@ let rec _js2n__-refsenv ], _js2n__-prdslib.records.record { + any = + _js2n__-prdslib.isType + '"Bool", content = _js2n__-prdslib.always, path = @@ -1567,6 +1633,9 @@ let rec _js2n__-refsenv 'Record, _js2n__-prdslib.records.record { + any = + _js2n__-prdslib.isType + '"Bool", apiVersion = _js2n__-prdslib.isType '"String", @@ -1667,6 +1736,8 @@ let rec _js2n__-refsenv _js2n__-prdslib.always, documentIndex = _js2n__-refsenv."_js2n__-:definitions/documentIndex!predicate", + documentSelector = + _js2n__-refsenv."_js2n__-:definitions/documentSelector!predicate", equal = _js2n__-prdslib.always, equalRaw = _js2n__-prdslib.always, exists = _js2n__-prdslib.always, @@ -1713,26 +1784,18 @@ let rec _js2n__-refsenv _js2n__-refsenv."_js2n__-:definitions/chart!predicate", documentIndex = _js2n__-refsenv."_js2n__-:definitions/documentIndex!predicate", + documentSelector = + _js2n__-refsenv."_js2n__-:definitions/documentSelector!predicate", it = _js2n__-prdslib.isType '"String", release = _js2n__-refsenv."_js2n__-:definitions/release!predicate", set = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Record, - _js2n__-prdslib.records.record {} {} true - _js2n__-prdslib.always - ], + _js2n__-refsenv."_js2n__-:definitions/set!predicate", template = _js2n__-prdslib.isType '"String", templates = _js2n__-refsenv."_js2n__-:definitions/templates!predicate", values = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType '"String") - ], + _js2n__-refsenv."_js2n__-:definitions/values!predicate", } {} false _js2n__-prdslib.never ]), _js2n__-prdslib.records.required [ "asserts" ], diff --git a/out/Hyperfoil benchmark configuration.ncl b/out/Hyperfoil benchmark configuration.ncl index 574681f..5ab4772 100644 --- a/out/Hyperfoil benchmark configuration.ncl +++ b/out/Hyperfoil benchmark configuration.ncl @@ -4882,7 +4882,7 @@ let rec _js2n__-refsenv { "$schema" | String - | doc "This should point to either http://hyperfoil.io/schema or local file" + | doc "This should point to either http://hyperfoil.io/schema.json or local file" | optional, agents | _js2n__-prdslib.contract_from_predicate diff --git a/out/MS2Rescore Configuration.ncl b/out/MS2Rescore Configuration.ncl index d3ba0fb..0d3a922 100644 --- a/out/MS2Rescore Configuration.ncl +++ b/out/MS2Rescore Configuration.ncl @@ -928,6 +928,16 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Record, _js2n__-prdslib.records.record {} {} true _js2n__-prdslib.always ], + "_js2n__-:definitions/im2deep!predicate" + | doc "Ion mobility feature generator configuration using IM2Deep" + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { reference_dataset = _js2n__-prdslib.isType '"String", } {} + true _js2n__-prdslib.always, + _js2n__-refsenv."_js2n__-:definitions/feature_generator!predicate" + ], "_js2n__-:definitions/ionmob!predicate" | doc "Ion mobility feature generator configuration using Ionmob" = _js2n__-prdslib.allOf @@ -956,6 +966,13 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Record, _js2n__-prdslib.records.record { + train_fdr = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.maximum 1, + _js2n__-prdslib.numbers.minimum 0 + ], write_flashlfq = _js2n__-prdslib.isType '"Bool", write_txt = _js2n__-prdslib.isType '"Bool", write_weights = _js2n__-prdslib.isType '"Bool", @@ -1038,6 +1055,8 @@ let rec _js2n__-refsenv _js2n__-refsenv."_js2n__-:definitions/basic!predicate", deeplc = _js2n__-refsenv."_js2n__-:definitions/deeplc!predicate", + im2deep = + _js2n__-refsenv."_js2n__-:definitions/im2deep!predicate", ionmob = _js2n__-refsenv."_js2n__-:definitions/ionmob!predicate", maxquant = @@ -1070,6 +1089,24 @@ let rec _js2n__-refsenv | Bool | doc "Bool indicating if lower score is better" | optional, + max_psm_rank_input + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.minimum 1 + ]) + | doc "Maximum rank of PSMs to use as input for rescoring" + | optional, + max_psm_rank_output + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Number", + _js2n__-prdslib.numbers.minimum 1 + ]) + | doc "Maximum rank of PSMs to return after rescoring, before final FDR calculation" + | optional, modification_mapping | { .. } | doc "Mapping of modification labels to each replacement label." @@ -1093,6 +1130,10 @@ let rec _js2n__-refsenv ]) | doc "Number of parallel processes to use; -1 for all available" | optional, + profile + | Bool + | doc "Write a txt report using cProfile for profiling" + | optional, psm_file | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.oneOf @@ -1111,6 +1152,15 @@ let rec _js2n__-refsenv | String | doc "PSM file type. By default inferred from file extension." | optional, + psm_id_im_pattern + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.oneOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Null + ]) + | doc "Regex pattern to extract ion mobility from PSM identifier. Requires at least one capturing group." + | optional, psm_id_pattern | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.oneOf @@ -1120,6 +1170,15 @@ let rec _js2n__-refsenv ]) | doc "Regex pattern to extract index or scan number from PSM file. Requires at least one capturing group." | optional, + psm_id_rt_pattern + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.oneOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Null + ]) + | doc "Regex pattern to extract retention time from PSM identifier. Requires at least one capturing group." + | optional, psm_reader_kwargs | { .. } | doc "Keyword arguments passed to the PSM reader." diff --git a/out/MegaLinter configuration.ncl b/out/MegaLinter configuration.ncl index bdd3d70..3ecfaa9 100644 --- a/out/MegaLinter configuration.ncl +++ b/out/MegaLinter configuration.ncl @@ -1205,6 +1205,10 @@ let rec _js2n__-refsenv | doc "ANSIBLE_ANSIBLE_LINT: User custom arguments to add in linter CLI call" | optional, ANSIBLE_ANSIBLE_LINT_CLI_EXECUTABLE | Array (String) | optional, + ANSIBLE_ANSIBLE_LINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, ANSIBLE_ANSIBLE_LINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -1906,6 +1910,10 @@ let rec _js2n__-refsenv | doc "COPYPASTE_JSCPD: User custom arguments to add in linter CLI call" | optional, COPYPASTE_JSCPD_CLI_EXECUTABLE | Array (String) | optional, + COPYPASTE_JSCPD_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, COPYPASTE_JSCPD_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -3046,6 +3054,10 @@ let rec _js2n__-refsenv | doc "GO_GOLANGCI_LINT: User custom arguments to add in linter CLI call" | optional, GO_GOLANGCI_LINT_CLI_EXECUTABLE | Array (String) | optional, + GO_GOLANGCI_LINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, GO_GOLANGCI_LINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -3826,6 +3838,10 @@ let rec _js2n__-refsenv | doc "JSON_NPM_PACKAGE_JSON_LINT: User custom arguments to add in linter CLI call" | optional, JSON_NPM_PACKAGE_JSON_LINT_CLI_EXECUTABLE | Array (String) | optional, + JSON_NPM_PACKAGE_JSON_LINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, JSON_NPM_PACKAGE_JSON_LINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -4061,6 +4077,10 @@ let rec _js2n__-refsenv | doc "KOTLIN_DETEKT: User custom arguments to add in linter CLI call" | optional, KOTLIN_DETEKT_CLI_EXECUTABLE | Array (String) | optional, + KOTLIN_DETEKT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, KOTLIN_DETEKT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -4160,6 +4180,10 @@ let rec _js2n__-refsenv | doc "KUBERNETES_HELM: User custom arguments to add in linter CLI call" | optional, KUBERNETES_HELM_CLI_EXECUTABLE | Array (String) | optional, + KUBERNETES_HELM_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, KUBERNETES_HELM_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -4256,6 +4280,10 @@ let rec _js2n__-refsenv | doc "KUBERNETES_KUBESCAPE: User custom arguments to add in linter CLI call" | optional, KUBERNETES_KUBESCAPE_CLI_EXECUTABLE | Array (String) | optional, + KUBERNETES_KUBESCAPE_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, KUBERNETES_KUBESCAPE_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -4996,6 +5024,10 @@ let rec _js2n__-refsenv | doc "PHP_PHPCSFIXER: User custom arguments to add in linter CLI call" | optional, PHP_PHPCSFIXER_CLI_EXECUTABLE | Array (String) | optional, + PHP_PHPCSFIXER_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, PHP_PHPCSFIXER_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6123,6 +6155,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_CHECKOV: User custom arguments to add in linter CLI call" | optional, REPOSITORY_CHECKOV_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_CHECKOV_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_CHECKOV_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6170,6 +6206,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_DEVSKIM: User custom arguments to add in linter CLI call" | optional, REPOSITORY_DEVSKIM_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_DEVSKIM_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_DEVSKIM_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6217,6 +6257,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_DUSTILOCK: User custom arguments to add in linter CLI call" | optional, REPOSITORY_DUSTILOCK_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_DUSTILOCK_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_DUSTILOCK_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6258,6 +6302,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_GITLEAKS: User custom arguments to add in linter CLI call" | optional, REPOSITORY_GITLEAKS_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_GITLEAKS_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_GITLEAKS_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6308,6 +6356,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_GIT_DIFF: User custom arguments to add in linter CLI call" | optional, REPOSITORY_GIT_DIFF_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_GIT_DIFF_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_GIT_DIFF_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6377,6 +6429,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_GRYPE: User custom arguments to add in linter CLI call" | optional, REPOSITORY_GRYPE_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_GRYPE_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_GRYPE_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6424,6 +6480,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_KICS: User custom arguments to add in linter CLI call" | optional, REPOSITORY_KICS_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_KICS_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_KICS_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6471,6 +6531,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_LS_LINT: User custom arguments to add in linter CLI call" | optional, REPOSITORY_LS_LINT_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_LS_LINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_LS_LINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6524,6 +6588,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_SECRETLINT: User custom arguments to add in linter CLI call" | optional, REPOSITORY_SECRETLINT_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_SECRETLINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_SECRETLINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6571,6 +6639,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_SEMGREP: User custom arguments to add in linter CLI call" | optional, REPOSITORY_SEMGREP_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_SEMGREP_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_SEMGREP_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6623,6 +6695,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_SYFT: User custom arguments to add in linter CLI call" | optional, REPOSITORY_SYFT_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_SYFT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_SYFT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6670,6 +6746,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_TRIVY: User custom arguments to add in linter CLI call" | optional, REPOSITORY_TRIVY_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_TRIVY_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_TRIVY_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6713,6 +6793,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_TRIVY_SBOM: User custom arguments to add in linter CLI call" | optional, REPOSITORY_TRIVY_SBOM_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_TRIVY_SBOM_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_TRIVY_SBOM_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -6764,6 +6848,10 @@ let rec _js2n__-refsenv | doc "REPOSITORY_TRUFFLEHOG: User custom arguments to add in linter CLI call" | optional, REPOSITORY_TRUFFLEHOG_CLI_EXECUTABLE | Array (String) | optional, + REPOSITORY_TRUFFLEHOG_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, REPOSITORY_TRUFFLEHOG_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -7039,6 +7127,10 @@ let rec _js2n__-refsenv | doc "RUST_CLIPPY: User custom arguments to add in linter CLI call" | optional, RUST_CLIPPY_CLI_EXECUTABLE | Array (String) | optional, + RUST_CLIPPY_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, RUST_CLIPPY_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -7172,6 +7264,10 @@ let rec _js2n__-refsenv SALESFORCE_LIGHTNING_FLOW_SCANNER_CLI_EXECUTABLE | Array (String) | optional, + SALESFORCE_LIGHTNING_FLOW_SCANNER_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, SALESFORCE_LIGHTNING_FLOW_SCANNER_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -7231,6 +7327,10 @@ let rec _js2n__-refsenv | doc "SALESFORCE_SFDX_SCANNER_APEX: User custom arguments to add in linter CLI call" | optional, SALESFORCE_SFDX_SCANNER_APEX_CLI_EXECUTABLE | Array (String) | optional, + SALESFORCE_SFDX_SCANNER_APEX_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, SALESFORCE_SFDX_SCANNER_APEX_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -7297,6 +7397,10 @@ let rec _js2n__-refsenv | doc "SALESFORCE_SFDX_SCANNER_AURA: User custom arguments to add in linter CLI call" | optional, SALESFORCE_SFDX_SCANNER_AURA_CLI_EXECUTABLE | Array (String) | optional, + SALESFORCE_SFDX_SCANNER_AURA_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, SALESFORCE_SFDX_SCANNER_AURA_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -7357,6 +7461,10 @@ let rec _js2n__-refsenv | doc "SALESFORCE_SFDX_SCANNER_LWC: User custom arguments to add in linter CLI call" | optional, SALESFORCE_SFDX_SCANNER_LWC_CLI_EXECUTABLE | Array (String) | optional, + SALESFORCE_SFDX_SCANNER_LWC_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, SALESFORCE_SFDX_SCANNER_LWC_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -8073,6 +8181,10 @@ let rec _js2n__-refsenv | doc "SWIFT_SWIFTLINT: User custom arguments to add in linter CLI call" | optional, SWIFT_SWIFTLINT_CLI_EXECUTABLE | Array (String) | optional, + SWIFT_SWIFTLINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, SWIFT_SWIFTLINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -8371,6 +8483,10 @@ let rec _js2n__-refsenv | doc "TERRAFORM_TERRASCAN: User custom arguments to add in linter CLI call" | optional, TERRAFORM_TERRASCAN_CLI_EXECUTABLE | Array (String) | optional, + TERRAFORM_TERRASCAN_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, TERRAFORM_TERRASCAN_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -8420,6 +8536,10 @@ let rec _js2n__-refsenv | doc "TERRAFORM_TFLINT: User custom arguments to add in linter CLI call" | optional, TERRAFORM_TFLINT_CLI_EXECUTABLE | Array (String) | optional, + TERRAFORM_TFLINT_CLI_LINT_MODE + | std.enum.TagOrString + | [| 'project, 'list_of_files, 'file |] + | optional, TERRAFORM_TFLINT_COMMAND_REMOVE_ARGUMENTS | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf diff --git a/out/Metadata for a Bazel module.ncl b/out/Metadata for a Bazel module.ncl new file mode 100644 index 0000000..1262c9a --- /dev/null +++ b/out/Metadata for a Bazel module.ncl @@ -0,0 +1,926 @@ +# DO NOT EDIT +# This file was automatically generated using json-schema-to-nickel +let _js2n__-prdslib + = { + allOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `allOf preds` succeeds if all of the predicates in `preds` succeed + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.1] + "% + = fun + preds + x + => + std.array.fold_right + (fun pred acc => (match { 'Ok => acc, 'Err s => 'Err s, }) (pred x)) + 'Ok preds, + always : Dyn -> [| 'Ok, 'Err String |] = std.function.const 'Ok, + anyOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `anyOf preds` succeeds if at least one of the predicates in `preds` succeeds + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.2] + "% + = fun + preds + x + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + 'Err + m%" + anyOf: none of the options matched + %{std.string.join + m%" + + + "% msgs} + "%, + }) + (std.array.fold_right + (fun + pred + acc + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + (match { + 'Ok => + 'Ok, + 'Err + msg => + 'Errs ([ " - %{msg}" ] @ msgs), + }) (pred x), + }) acc) ('Errs [ ]) preds), + arrays = + { + additionalItems + : (Dyn -> [| 'Ok, 'Err String |]) + -> Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.2]" + = fun + pred + start + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + let value_length + = std.array.length x + in + if start >= value_length then + 'Ok + else + arrayOf pred + ((std.array.slice start value_length x) + | Dyn), + arrayOf + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + Apply a predicate to all elements of an array, succeeding if all + applications succeed. + "% + = fun + pred + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + std.array.fold_right + (fun + x + acc + => + (match { 'Ok => acc, 'Err msg => 'Err msg, }) (pred x)) + 'Ok x, + contains + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.6]" + = fun + pred + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + 'Err + m%" + contains: no elements matched + %{std.string.join + m%" + + + "% msgs} + "%, + }) + (std.array.fold_right + (fun + x + acc + => + (match { + 'Ok => + 'Ok, + 'Errs + msgs => + (match { + 'Ok => + 'Ok, + 'Err + msg => + 'Errs ([ " - %{msg}" ] @ msgs), + }) (pred x), + }) acc) ('Errs [ ]) x), + items + : Array (Dyn -> [| 'Ok, 'Err String |]) + -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.1]" + = fun + preds + x + => + if !(std.is_array x) then + 'Ok + else + let x + | Array Dyn + = x + in + let length_to_check + = std.number.min (std.array.length preds) + (std.array.length x) + in + std.array.fold_right + (fun + i + acc + => + (match { 'Err msg => 'Err msg, 'Ok => acc, }) + (std.array.at i preds (std.array.at i x))) 'Ok + (std.array.range 0 length_to_check), + maxItems + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `maxItems n x` fails if `x` is an array of length strictly greater than `n` and succeeds otherwise. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.3] + "% + = fun + n + x + => + if !(std.is_array x) then + 'Ok + else + if (std.array.length (x | Array Dyn)) > n then + 'Err + "array is longer than %{std.string.from_number n} items" + else + 'Ok, + minItems + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `minItems n x` fails if `x` is an array of length strictly smaller than `n` and succeeds otherwise. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.4] + "% + = fun + n + x + => + if !(std.is_array x) then + 'Ok + else + if (std.array.length (x | Array Dyn)) < n then + 'Err + "array is shorter than %{std.string.from_number n} items" + else + 'Ok, + uniqueItems + : Dyn -> [| 'Ok, 'Err String |] + | doc m%" + Succeeds for any array if its elements are pairwise distinct. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.4.5] + "% + = let find_duplicate + : Array Dyn + -> { + has_duplicate : Bool, + duplicate : Dyn, + seen : { _ : Bool } + } + = std.array.fold_right + (fun + elt + acc + => + if acc.has_duplicate then + acc + else + let index + = std.serialize 'Json elt + in + if std.record.has_field index acc.seen then + { + duplicate = elt, + has_duplicate = true, + seen = acc.seen, + } + else + { + duplicate = null, + has_duplicate = false, + seen = std.record.insert index true acc.seen, + }) + { duplicate = null, has_duplicate = false, seen = {}, } + in + fun + x + => + if !(std.is_array x) then + 'Ok + else + let { has_duplicate, duplicate, .. } + = find_duplicate (x | Array Dyn) + in + if has_duplicate then + 'Err "duplicate found: %{std.serialize 'Json duplicate}" + else + 'Ok, + }, + const + : Dyn -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `const value x` succeeds if and only if `x` is equal to `value` + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.1.3] + "% + = fun + value + x + => + if x == value then + 'Ok + else + 'Err "expected %{std.serialize 'Json value}", + contract_from_predicate + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> Dyn -> Dyn + = fun + predicate + label + value + => + (match { + 'Ok => + value, + 'Err + msg => + (std.contract.blame_with_message msg label) + | Dyn, + }) (predicate value), + enum + : Array Dyn -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `enum values x` succeeds if and only if `x` is equal to one of the elements of `values`. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.1.2] + "% + = let checkEqual + = fun + input + variant + => + (input == variant) + || ((std.is_enum input) + && (((std.string.from_enum input) == variant) + | Bool)) + in + fun + values + x + => + std.array.fold_right + (fun value acc => if checkEqual x value then 'Ok else acc) + ('Err "expected one of %{std.serialize 'Json (values | Dyn)}") + values, + from_simple_predicate + : String -> (Dyn -> Bool) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Convert a simple boolean predicate into a predicate supporting error messages" + = fun error' pred x => if pred x then 'Ok else 'Err error', + ifThenElse + : (Dyn -> [| 'Ok, 'Err String |]) + -> (Dyn -> [| 'Ok, 'Err String |]) + -> (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `ifThenElse i t e` first checks if the predicate `i` succeeds. If it does, it's equivalent to `t`, otherwise it's equivalent to `e`. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.6] + "% + = fun i t e x => (match { 'Ok => t x, 'Err msg => e x, }) (i x), + isType + : [| '"Array", '"Bool", 'Integer, 'Null, '"Number", 'Record, '"String" |] + -> Dyn -> [| 'Ok, 'Err String |] + = fun + t + => + (match { + 'Null => + from_simple_predicate "expected `null`" (fun x => x == null), + 'Integer => + from_simple_predicate "expected an integer" + (fun + x + => + (std.is_number x) && (std.number.is_integer (x | Number))), + _ => + from_simple_predicate + "value is not of type %{std.string.from_enum t}" + (fun x => (std.typeof x) == t), + }) t, + never : Dyn -> [| 'Ok, 'Err String |] = std.function.const ('Err "never"), + not + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `not pred` succeeds if and only if `pred` fails + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.4] + "% + = fun + pred + x + => + (match { + 'Ok => + 'Err "Inverted predicate succeeded unexpectedly", + 'Err + msg => + 'Ok, + }) (pred x), + numbers = + { + exclusiveMaximum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.3]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) < limit then + 'Ok + else + 'Err + "expected an exclusive maximum of %{std.string.from_number + limit}", + exclusiveMinimum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.5]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) > limit then + 'Ok + else + 'Err + "expected an exclusive minimum of %{std.string.from_number + limit}", + maximum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.2]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) <= limit then + 'Ok + else + 'Err + "expected a maximum of %{std.string.from_number limit}", + minimum + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.4]" + = fun + limit + x + => + if !(std.is_number x) then + 'Ok + else + if (x | Number) >= limit then + 'Ok + else + 'Err + "expected a minimum of %{std.string.from_number limit}", + multipleOf + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.2.1]" + = fun + mult + x + => + if !(std.is_number x) then + 'Ok + else + if std.number.is_integer ((x | Number) / mult) then + 'Ok + else + 'Err + "expected a multiple of %{std.string.from_number mult}", + }, + oneOf + : Array (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `oneOf preds` succeeds if precisely one of the predicates in `preds` succeeds + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.7.3] + "% + = fun + preds + x + => + let count_ok + : Array [| 'Ok, 'Err String |] -> Number + = fun + results + => + std.array.fold_left (fun n b => if b == 'Ok then n + 1 else n) 0 + results + in + let results + = std.array.map (fun pred => pred x) preds + in + let count + = count_ok results + in + if count == 0 then + let errors + = std.array.flat_map + (fun + result + => + (match { 'Ok => [ ], 'Err s => [ " - %{s}" ], }) + result) results + in + 'Err + m%" + oneOf: none of the options matched + %{std.string.join + m%" + + + "% errors} + "% + else + if count > 1 then + 'Err "oneOf: more than one of the options matched" + else + 'Ok, + records = + { + dependencies + : { _ : Dyn } -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.7]" + = let mustHaveFields + : Array String -> { _ : Dyn } -> [| 'Ok, 'Err String |] + = fun + fields + x + => + std.array.fold_right + (fun + field + acc + => + if !(std.record.has_field field x) then + 'Err "expected field `%{field}`" + else + acc) 'Ok fields + in + fun + deps + x + => + if !(std.is_record x) then + 'Ok + else + let x + | { _ : Dyn } + = x + in + std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + if !(std.record.has_field field x) then + acc + else + let result + = if std.is_array value then + mustHaveFields (value | Array String) x + else + let pred + | Dyn -> [| 'Ok, 'Err String |] + = value + in + pred (x | Dyn) + in + (match { + 'Err + msg => + 'Err + "dependency of `%{field}` failed: %{msg}", + 'Ok => + acc, + }) result) 'Ok (std.record.to_array deps), + maxProperties + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `maxProperties n x` fails if `x` is a record containing stricly more than `n` fields. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.1] + "% + = fun + n + x + => + if !(std.is_record x) then + 'Ok + else + if (std.record.length (x | { _ : Dyn })) > n then + 'Err + "record contains more than %{std.string.from_number + n} fields" + else + 'Ok, + minProperties + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `minProperties n x` fails if `x` is a record containing stricly less than `n` fields. + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.1] + "% + = fun + n + x + => + if !(std.is_record x) then + 'Ok + else + if (std.record.length (x | { _ : Dyn })) < n then + 'Err + "record contains fewer than %{std.string.from_number + n} fields" + else + 'Ok, + propertyNames + : (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.8]" + = fun + pred + x + => + if !(std.is_record x) then + 'Ok + else + std.array.fold_right + (fun + field + acc + => + (match { + 'Err + msg => + 'Err + "field `%{field}` did not validate against `propertyNames` schema", + 'Ok => + acc, + }) (pred (field | Dyn))) 'Ok + (std.record.fields (x | { _ : Dyn })), + record + : { _ : Dyn -> [| 'Ok, 'Err String |] } + -> { _ : Dyn -> [| 'Ok, 'Err String |] } + -> Bool + -> (Dyn -> [| 'Ok, 'Err String |]) -> Dyn -> [| 'Ok, 'Err String |] + | doc m%" + `record properties patternProperties additionalAllowed + additionalProperties x` is a combination of the `properties`, + `patternProperties` and `additionalProperties` validation keywords in + JSON schema. + + Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5] + "% + = fun + properties + patternProperties + additionalAllowed + additionalProperties + x + => + if !(std.is_record x) then + 'Ok + else + let x + | { _ : Dyn } + = x + in + let check_properties + : { + result : [| 'Ok, 'Err String |], + checked : { _ : Bool } + } + = std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + if !(std.record.has_field field x) then + acc + else + (match { + 'Err + msg => + { + checked : { _ : Bool } = {}, + result = + 'Err + "field `%{field}` didn't validate: %{msg}", + }, + 'Ok => + { + checked = + std.record.insert field true acc.checked, + result = acc.result, + }, + }) (value x."%{field}")) + { checked = {}, result = 'Ok, } + (std.record.to_array properties) + in + let matching_fields + : String -> { _ : Dyn } + = fun + pattern + => + let matcher + = std.string.is_match pattern + in + std.array.fold_left + (fun + acc + => + fun + { field, value, } + => + if matcher field then + std.record.insert field value acc + else + acc) {} (std.record.to_array x) + in + let check_pattern_properties + : { + result : [| 'Ok, 'Err String |], + checked : { _ : Bool } + } + = std.array.fold_right + (fun + { field = pattern, value = pred, } + => + fun + acc + => + (match { + r @ { result = 'Err msg, .. } => + r, + { result = 'Ok, checked = ch, } => + { + checked = + std.array.fold_left + (fun + r + field + => + if !(std.record.has_field field + r) then + std.record.insert field true r + else + r) acc.checked + (std.record.fields ch), + result = acc.result, + }, + }) + (std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + (match { + 'Err + msg => + { + checked : { _ : Bool } = {}, + result = + 'Err + "field `%{field}` didn't validate: %{msg}", + }, + 'Ok => + { + checked = + std.record.insert field true + acc.checked, + result = acc.result, + }, + }) (pred value)) + { + checked : { _ : Bool } = {}, + result = 'Ok, + } + (std.record.to_array + (matching_fields pattern)))) + { checked : { _ : Bool } = {}, result = 'Ok, } + (std.record.to_array patternProperties) + in + let remaining_fields + = std.array.fold_left + (fun + acc + field + => + if !(std.record.has_field field acc) then + acc + else + std.record.remove field acc) x + ((std.record.fields check_properties.checked) + @ (std.record.fields + check_pattern_properties.checked)) + in + let check_additional_properties + : [| 'Ok, 'Err String |] + = if (!additionalAllowed) + && (!(std.record.is_empty remaining_fields)) then + 'Err + "extra fields %{std.serialize 'Json + ((std.record.fields remaining_fields) + | Dyn)}" + else + std.array.fold_right + (fun + { field, value, } + => + fun + acc + => + (match { + 'Err + msg => + 'Err + "field `%{field}` didn't validate: %{msg}", + 'Ok => + acc, + }) (additionalProperties value)) 'Ok + (std.record.to_array remaining_fields) + in + (match { + 'Err + msg => + check_properties.result, + 'Ok => + (match { + 'Err + msg => + check_pattern_properties.result, + 'Ok => + check_additional_properties, + }) check_pattern_properties.result, + }) check_properties.result, + required + : Array String -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.5.3]" + = fun + fields + x + => + if !(std.is_record x) then + 'Ok + else + std.array.fold_right + (fun + field + acc + => + if !(std.record.has_field field (x | { _ : Dyn })) then + 'Err "missing required field %{field}" + else + acc) 'Ok fields, + }, + strings = + { + maxLength + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.1]" + = fun + limit + x + => + if !(std.is_string x) then + 'Ok + else + if (std.string.length (x | String)) <= limit then + 'Ok + else + 'Err + "expected a string of length no larger than %{std.string.from_number + limit}", + minLength + : Number -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.2]" + = fun + limit + x + => + if !(std.is_string x) then + 'Ok + else + if (std.string.length (x | String)) >= limit then + 'Ok + else + 'Err + "expected a string of length no smaller than %{std.string.from_number + limit}", + pattern + : String -> Dyn -> [| 'Ok, 'Err String |] + | doc "Cf. [https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.3.3]" + = fun + pattern + x + => + if !(std.is_string x) then + 'Ok + else + if std.string.is_match pattern (x | String) then + 'Ok + else + 'Err "expected a string matching the pattern `%{pattern}`", + }, + } + in +let rec _js2n__-refsenv + = {} + in + { + "$schema" | String | optional, + homepage | String, + maintainers + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + email = _js2n__-prdslib.isType '"String", + github = _js2n__-prdslib.isType '"String", + name = _js2n__-prdslib.isType '"String", + } {} true _js2n__-prdslib.always + ]), + _js2n__-prdslib.arrays.minItems 1 + ]) + | doc "Individuals who can be notified when the module requires human attention", + repository | Array (String) | optional, + versions | Array (String), + yanked_versions | { .. } | optional, + } \ No newline at end of file diff --git a/out/Network-as-Code Data Model.ncl b/out/Network-as-Code Data Model.ncl index 5c8d396..2621e1d 100644 --- a/out/Network-as-Code Data Model.ncl +++ b/out/Network-as-Code Data Model.ncl @@ -1687,6 +1687,313 @@ let rec _js2n__-refsenv - admin_state (required) "% | optional, + netflow_exporters + | Array + { + application_profile + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Application Profile (String)" + | optional, + description + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9\\\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$" + ]) + | doc "Description (String)" + | optional, + destination_ip + | String + | doc m%" + Destination IP (String) + - IPv4 or IPv6 address + "%, + destination_port + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.numbers.maximum 65535 + ]) + | doc m%" + Destination Port (Integer) + - Maximum value: 65535 + "%, + dscp + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum + [ + "unspecified", + "CS0", + "CS1", + "AF11", + "AF12", + "AF13", + "CS2", + "AF21", + "AF22", + "AF23", + "CS3", + "AF31", + "AF32", + "AF33", + "CS4", + "AF41", + "AF42", + "AF43", + "CS5", + "VA", + "EF", + "CS6", + "CS7" + ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.numbers.maximum 63 + ] + ]) + | doc m%" + DSCP (String, Integer) + - Default value: CS2 + "% + | optional, + endpoint_group + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Endpoint Group (String)" + | optional, + epg_type + | std.enum.TagOrString + | [| 'external_epg, 'epg |] + | doc m%" + EPG Type (String) + - Allowed values: epg, external_epg + "% + | optional, + external_endpoint_group + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "External Endpoint Group (String)" + | optional, + l3out + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "L3Out (String)" + | optional, + name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Name (String)", + source_ip + | String + | doc m%" + Source IP (String) + - Default value: 0.0.0.0 + - IPv4 or IPv6 address + "% + | optional, + source_type + | std.enum.TagOrString + | [| + 'ptep, + 'oob-mgmt-ip, + 'inband-mgmt-ip, + 'custom-src-ip + |] + | doc m%" + Source Type (String) + - Default value: custom-src-ip + - Allowed values: custom-src-ip, inband-mgmt-ip, oob-mgmt-ip, ptep + "% + | optional, + tenant + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Tenant (String)" + | optional, + vrf + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "VRF (String)" + | optional, + } + | doc m%" + Netflow Exporters (List - Object) + + Elements: + - name (required) + - description + - source_type + - source_ip + - destination_port (required) + - destination_ip (required) + - dscp + - epg_type + - tenant + - application_profile + - endpoint_group + - vrf + - l3out + - external_endpoint_group + "% + | optional, + netflow_monitors + | Array + { + description + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9\\\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$" + ]) + | doc "Description (String)" + | optional, + flow_exporters + | Array ( + _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + ) + | doc "Flow Exporters (List - String)" + | optional, + flow_record + | String + | doc "Flow Record (String)" + | optional, + name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Name (String)", + } + | doc m%" + Netflow Monitors (List - Object) + + Elements: + - name (required) + - description + - flow_record + - flow_exporters + "% + | optional, + netflow_records + | Array + { + description + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9\\\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$" + ]) + | doc "Description (String)" + | optional, + match_parameters + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum + [ + "dst-ip", + "dst-ipv4", + "dst-ipv6", + "dst-mac", + "dst-port", + "ethertype", + "proto", + "src-ip", + "src-ipv4", + "src-ipv6", + "src-mac", + "src-port", + "tos", + "vlan", + "unspecified" + ] + ]) + ]) + | doc "Match Parameters (List - String)" + | optional, + name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Name (String)", + } + | doc m%" + Netflow Records (List - Object) + + Elements: + - name (required) + - description + - match_parameters + "% + | optional, port_channel_member_policies | Array { @@ -2342,6 +2649,9 @@ let rec _js2n__-refsenv - mcp_policies - l2_policies - storm_control_policies + - netflow_exporters + - netflow_monitors + - netflow_records "% | optional, leaf_interface_policy_groups @@ -2442,6 +2752,36 @@ let rec _js2n__-refsenv "^[a-zA-Z0-9_.:-]{1,64}$" ]) | doc "Name (String)", + netflow_monitor_policies + | Array + { + ip_filter_type + | std.enum.TagOrString + | [| 'unspecified, 'ce, 'ipv6, 'ipv4 |] + | doc m%" + IP Filter Type (String) + - Default value: ipv4 + - Allowed values: ipv4, ipv6, ce, unspecified + "% + | optional, + name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9_.:-]{1,64}$" + ]) + | doc "Name (String)", + } + | doc m%" + Netflow Monitor Policies (List - Object) + + Elements: + - name (required) + - ip_filter_type + "% + | optional, port_channel_member_policy | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -2508,6 +2848,7 @@ let rec _js2n__-refsenv - port_channel_member_policy - storm_control_policy - aaep + - netflow_monitor_policies "% | optional, leaf_interface_profile_name @@ -10503,6 +10844,16 @@ let rec _js2n__-refsenv - Default value: false "% | optional, + allow_origins + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9-_:/.,]{1,256}$" + ]) + | doc "Allow Origins (String)" + | optional, port | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -10525,6 +10876,7 @@ let rec _js2n__-refsenv Elements: - admin_state - port + - allow_origins "% | optional, https @@ -10536,6 +10888,16 @@ let rec _js2n__-refsenv - Default value: true "% | optional, + allow_origins + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[a-zA-Z0-9-_:/.,]{1,256}$" + ]) + | doc "Allow Origins (String)" + | optional, client_cert_auth_state | Bool | doc m%" @@ -10622,6 +10984,7 @@ let rec _js2n__-refsenv - tlsv1_2 - tlsv1_3 - key_ring + - allow_origins "% | optional, name @@ -15434,13 +15797,6 @@ let rec _js2n__-refsenv - Default value: false "% | optional, - private - | Bool - | doc m%" - Private (Boolean) - - Default value: true - "% - | optional, public | Bool | doc m%" @@ -15470,7 +15826,6 @@ let rec _js2n__-refsenv - description - ip (required) - public - - private - shared - igmp_querier - nd_ra_prefix @@ -16601,13 +16956,6 @@ let rec _js2n__-refsenv - Default value: false "% | optional, - private - | Bool - | doc m%" - Private (Boolean) - - Default value: true - "% - | optional, public | Bool | doc m%" @@ -16637,7 +16985,6 @@ let rec _js2n__-refsenv - description - ip (required) - public - - private - shared - igmp_querier - nd_ra_prefix @@ -17181,13 +17528,6 @@ let rec _js2n__-refsenv - Default value: false "% | optional, - private - | Bool - | doc m%" - Private (Boolean) - - Default value: true - "% - | optional, public | Bool | doc m%" @@ -17218,7 +17558,6 @@ let rec _js2n__-refsenv - ip (required) - primary_ip - public - - private - shared - virtual - igmp_querier @@ -39260,212 +39599,6 @@ let rec _js2n__-refsenv organizations | Array { - action_batches - | Array - { - confirmed - | Bool - | doc "Confirmed (Boolean)" - | optional, - synchronous - | Bool - | doc "Synchronous (Boolean)" - | optional, - } - | doc m%" - Action Batches (List - Object) - - Elements: - - confirmed - - synchronous - "% - | optional, - adaptive_policy_acls - | Array - { - description - | String - | doc "Description (String)" - | optional, - ip_version - | std.enum.TagOrString - | [| 'ipv6, 'ipv4, 'any |] - | doc m%" - IP Version (String) - - Allowed values: any, ipv4, ipv6 - "% - | optional, - name | String | doc "Name (String)" | optional, - rules - | Array - { - dst_port - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "(?i:any)" - ]) - | doc "Dst Port (String)" - | optional, - policy - | std.enum.TagOrString - | [| 'deny, 'allow |] - | doc m%" - Policy (String) - - Allowed values: allow, deny - "%, - protocol - | std.enum.TagOrString - | [| 'udp, 'tcp, 'icmp, 'any |] - | doc m%" - Protocol (String) - - Allowed values: any, icmp, tcp, udp - "%, - src_port - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "(?i:any)" - ]) - | doc "Src Port (String)" - | optional, - } - | doc m%" - Rules (List - Object) - - Elements: - - policy (required) - - protocol (required) - - src_port - - dst_port - "% - | optional, - } - | doc m%" - Adaptive Policy ACLs (List - Object) - - Elements: - - name - - description - - rules - - ip_version - "% - | optional, - adaptive_policy_groups - | Array - { - description - | String - | doc "Description (String)" - | optional, - name | String | doc "Name (String)" | optional, - sgt - | std.number.Integer - | doc "SGT (Integer)" - | optional, - } - | doc m%" - Adaptive Policy Groups (List - Object) - - Elements: - - name - - sgt - - description - "% - | optional, - adaptive_policy_policies - | Array - { - acls - | Array - { - id | String | doc "ID (String)" | optional, - name - | String - | doc "Name (String)" - | optional, - } - | doc m%" - ACLs (List - Object) - - Elements: - - id - - name - "% - | optional, - destination_group - | { - id | String | doc "ID (String)" | optional, - name | String | doc "Name (String)" | optional, - sgt - | std.number.Integer - | doc "SGT (Integer)" - | optional, - } - | doc m%" - Destination Group (Object) - - Elements: - - id - - name - - sgt - "% - | optional, - last_entry_rule - | std.enum.TagOrString - | [| 'deny, '"default", 'allow |] - | doc m%" - Last Entry Rule (String) - - Allowed values: allow, default, deny - "% - | optional, - source_group - | { - id | String | doc "ID (String)" | optional, - name | String | doc "Name (String)" | optional, - sgt - | std.number.Integer - | doc "SGT (Integer)" - | optional, - } - | doc m%" - Source Group (Object) - - Elements: - - id - - name - - sgt - "% - | optional, - } - | doc m%" - Adaptive Policy Policies (List - Object) - - Elements: - - source_group - - destination_group - - acls - - last_entry_rule - "% - | optional, - adaptive_policy_settings - | { - enabled_networks - | Array (String) - | doc "Enabled Networks (List - String)" - | optional, - } - | doc m%" - Adaptive Policy Settings (Object) - - Elements: - - enabled_networks - "% - | optional, admins | Array { @@ -39539,40 +39672,6 @@ let rec _js2n__-refsenv - enabled "% | optional, - claim - | { - orders - | Array (String) - | doc "Orders (List - String)" - | optional, - serials - | Array (String) - | doc "Serials (List - String)" - | optional, - } - | doc m%" - Claim (Object) - - Elements: - - orders - - serials - "% - | optional, - early_access_features_opt_ins - | Array - { - limit_scope_to_networks - | Array (String) - | doc "Limit Scope To Networks (List - String)" - | optional, - } - | doc m%" - Early Access Features Opt Ins (List - Object) - - Elements: - - limit_scope_to_networks - "% - | optional, login_security | { account_lockout_attempts @@ -39703,6 +39802,10 @@ let rec _js2n__-refsenv networks | Array { + copy_from_network_id + | String + | doc "Copy From Network ID (String)" + | optional, devices | Array { @@ -39710,443 +39813,11 @@ let rec _js2n__-refsenv | String | doc "Address (String)" | optional, - blink_leds - | { - duration - | std.number.Integer - | doc "Duration (Integer)" - | optional, - duty - | std.number.Integer - | doc "Duty (Integer)" - | optional, - period - | std.number.Integer - | doc "Period (Integer)" - | optional, - } - | doc m%" - Blink Leds (Object) - - Elements: - - duration - - period - - duty - "% - | optional, floor_plan_id | String | doc "Floor Plan ID (String)" | optional, lat | Number | doc "Lat (Number)" | optional, - live_tools_arp_table - | { - callback - | { - http_server - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Http Server (Object) - - Elements: - - id - "% - | optional, - payload_template - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Payload Template (Object) - - Elements: - - id - "% - | optional, - shared_secret - | String - | doc "Shared Secret (String)" - | optional, - url - | String - | doc "Url (String)" - | optional, - } - | doc m%" - Callback (Object) - - Elements: - - url - - shared_secret - - http_server - - payload_template - "% - | optional, - } - | doc m%" - Live Tools ARP Table (Object) - - Elements: - - callback - "% - | optional, - live_tools_cable_test - | { - callback - | { - http_server - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Http Server (Object) - - Elements: - - id - "% - | optional, - payload_template - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Payload Template (Object) - - Elements: - - id - "% - | optional, - shared_secret - | String - | doc "Shared Secret (String)" - | optional, - url - | String - | doc "Url (String)" - | optional, - } - | doc m%" - Callback (Object) - - Elements: - - url - - shared_secret - - http_server - - payload_template - "% - | optional, - ports - | Array ( - _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.strings.pattern - "(\\d{1,3})" - ]) - ) - | doc "Ports (List - String)", - } - | doc m%" - Live Tools Cable Test (Object) - - Elements: - - ports (required) - - callback - "% - | optional, - live_tools_ping - | { - callback - | { - http_server - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Http Server (Object) - - Elements: - - id - "% - | optional, - payload_template - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Payload Template (Object) - - Elements: - - id - "% - | optional, - shared_secret - | String - | doc "Shared Secret (String)" - | optional, - url - | String - | doc "Url (String)" - | optional, - } - | doc m%" - Callback (Object) - - Elements: - - url - - shared_secret - - http_server - - payload_template - "% - | optional, - count - | std.number.Integer - | doc "Count (Integer)" - | optional, - target | String | doc "Target (String)", - } - | doc m%" - Live Tools Ping (Object) - - Elements: - - target (required) - - count - - callback - "% - | optional, - live_tools_ping_device - | { - callback - | { - http_server - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Http Server (Object) - - Elements: - - id - "% - | optional, - payload_template - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Payload Template (Object) - - Elements: - - id - "% - | optional, - shared_secret - | String - | doc "Shared Secret (String)" - | optional, - url - | String - | doc "Url (String)" - | optional, - } - | doc m%" - Callback (Object) - - Elements: - - url - - shared_secret - - http_server - - payload_template - "% - | optional, - count - | std.number.Integer - | doc "Count (Integer)" - | optional, - } - | doc m%" - Live Tools Ping Device (Object) - - Elements: - - count - - callback - "% - | optional, - live_tools_throughput_test - | { - callback - | { - http_server - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Http Server (Object) - - Elements: - - id - "% - | optional, - payload_template - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Payload Template (Object) - - Elements: - - id - "% - | optional, - shared_secret - | String - | doc "Shared Secret (String)" - | optional, - url - | String - | doc "Url (String)" - | optional, - } - | doc m%" - Callback (Object) - - Elements: - - url - - shared_secret - - http_server - - payload_template - "% - | optional, - } - | doc m%" - Live Tools Throughput Test (Object) - - Elements: - - callback - "% - | optional, - live_tools_wake_on_lan - | { - callback - | { - http_server - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Http Server (Object) - - Elements: - - id - "% - | optional, - payload_template - | { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Payload Template (Object) - - Elements: - - id - "% - | optional, - shared_secret - | String - | doc "Shared Secret (String)" - | optional, - url - | String - | doc "Url (String)" - | optional, - } - | doc m%" - Callback (Object) - - Elements: - - url - - shared_secret - - http_server - - payload_template - "% - | optional, - mac - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$" - ]) - | doc m%" - MAC (String) - - MAC address (XX:XX:XX:XX:XX:XX) - "%, - vlan_id - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.numbers.maximum - 4094, - _js2n__-prdslib.numbers.minimum 1 - ]) - | doc m%" - Vlan ID (Integer) - - Minimum value: 1 - - Maximum value: 4094 - "% - | optional, - } - | doc m%" - Live Tools Wake On Lan (Object) - - Elements: - - vlan_id - - mac (required) - - callback - "% - | optional, lng | Number | doc "Lng (Number)" | optional, management_interface | { @@ -40522,28 +40193,6 @@ let rec _js2n__-refsenv - profile "% | optional, - switch_ports_cycle - | { - ports - | Array ( - _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.strings.pattern - "(\\d{1,3})" - ]) - ) - | doc "Ports (List - String)", - } - | doc m%" - Switch Ports Cycle (Object) - - Elements: - - ports (required) - "% - | optional, switch_profile_id | String | doc "Switch Profile ID (String)" @@ -40933,101 +40582,6 @@ let rec _js2n__-refsenv | Array (String) | doc "Tags (List - String)" | optional, - wireless_alternate_management_interface_ipv6 - | { - addresses - | Array - { - address - | String - | doc "Address (String)" - | optional, - assignment_mode - | std.enum.TagOrString - | [| 'static, 'dynamic |] - | doc m%" - Assignment Mode (String) - - Allowed values: dynamic, static - "% - | optional, - gateway - | String - | doc m%" - Gateway (String) - - IPv4 or IPv6 address - "% - | optional, - nameservers - | { - addresses - | Array (String) - | doc "Addresses (List - String)" - | optional, - } - | doc m%" - Nameservers (Object) - - Elements: - - addresses - "% - | optional, - prefix - | String - | doc "Prefix (String)" - | optional, - protocol - | std.enum.TagOrString - | [| 'ipv6, 'ipv4 |] - | doc m%" - Protocol (String) - - Allowed values: ipv4, ipv6 - "% - | optional, - } - | doc m%" - Addresses (List - Object) - - Elements: - - protocol - - assignment_mode - - address - - gateway - - prefix - - nameservers - "% - | optional, - } - | doc m%" - Wireless Alternate Management Interface IPv6 (Object) - - Elements: - - addresses - "% - | optional, - wireless_bluetooth_settings - | { - major - | std.number.Integer - | doc "Major (Integer)" - | optional, - minor - | std.number.Integer - | doc "Minor (Integer)" - | optional, - uuid - | String - | doc "Uuid (String)" - | optional, - } - | doc m%" - Wireless Bluetooth Settings (Object) - - Elements: - - uuid - - major - - minor - "% - | optional, wireless_radio_settings | { five_ghz_settings @@ -41101,193 +40655,18 @@ let rec _js2n__-refsenv - move_map_marker - switch_profile_id - floor_plan_id - - blink_leds - - live_tools_arp_table - - live_tools_cable_test - - live_tools_ping - - live_tools_ping_device - - live_tools_throughput_test - - live_tools_wake_on_lan - management_interface - - switch_ports_cycle - switch_ports - switch_routing_interfaces - switch_routing_static_routes - switch_warm_spare - - wireless_alternate_management_interface_ipv6 - - wireless_bluetooth_settings - wireless_radio_settings "% | optional, - devices_claim - | { - serials - | Array (String) - | doc "Serials (List - String)", - } - | doc m%" - Devices Claim (Object) - - Elements: - - serials (required) - "% - | optional, - devices_claim_vmx - | { - size - | std.enum.TagOrString - | [| - 'xlarge, - 'small, - 'medium, - 'large, - '"100" - |] - | doc m%" - Size (String) - - Allowed values: 100, large, medium, small, xlarge - "%, - } - | doc m%" - Devices Claim Vmx (Object) - - Elements: - - size (required) - "% - | optional, - devices_remove - | { serial | String | doc "Serial (String)", } - | doc m%" - Devices Remove (Object) - - Elements: - - serial (required) - "% - | optional, enrollment_string | String | doc "Enrollment String (String)" | optional, - floor_plans - | Array - { - bottom_left_corner - | { - lat - | Number - | doc "Lat (Number)" - | optional, - lng - | Number - | doc "Lng (Number)" - | optional, - } - | doc m%" - Bottom Left Corner (Object) - - Elements: - - lat - - lng - "% - | optional, - bottom_right_corner - | { - lat - | Number - | doc "Lat (Number)" - | optional, - lng - | Number - | doc "Lng (Number)" - | optional, - } - | doc m%" - Bottom Right Corner (Object) - - Elements: - - lat - - lng - "% - | optional, - center - | { - lat - | Number - | doc "Lat (Number)" - | optional, - lng - | Number - | doc "Lng (Number)" - | optional, - } - | doc m%" - Center (Object) - - Elements: - - lat - - lng - "% - | optional, - image_contents - | String - | doc "Image Contents (String)" - | optional, - name - | String - | doc "Name (String)" - | optional, - top_left_corner - | { - lat - | Number - | doc "Lat (Number)" - | optional, - lng - | Number - | doc "Lng (Number)" - | optional, - } - | doc m%" - Top Left Corner (Object) - - Elements: - - lat - - lng - "% - | optional, - top_right_corner - | { - lat - | Number - | doc "Lat (Number)" - | optional, - lng - | Number - | doc "Lng (Number)" - | optional, - } - | doc m%" - Top Right Corner (Object) - - Elements: - - lat - - lng - "% - | optional, - } - | doc m%" - Floor Plans (List - Object) - - Elements: - - name - - center - - bottom_left_corner - - bottom_right_corner - - top_left_corner - - top_right_corner - - image_contents - "% - | optional, group_policies | Array { @@ -41895,6 +41274,14 @@ let rec _js2n__-refsenv - sunday "% | optional, + splash_auth_settings + | std.enum.TagOrString + | [| '"network default", 'bypass |] + | doc m%" + Splash Auth Settings (String) + - Allowed values: bypass, network default + "% + | optional, vlan_tagging | { settings @@ -41943,6 +41330,7 @@ let rec _js2n__-refsenv - bandwidth - firewall_and_traffic_shaping - content_filtering + - splash_auth_settings - vlan_tagging - bonjour_forwarding "% @@ -42405,6 +41793,10 @@ let rec _js2n__-refsenv | Array (String) | doc "Url Redirect Walled Garden Ranges (List - String)" | optional, + voice_vlan_clients + | Bool + | doc "Voice Vlan Clients (Boolean)" + | optional, } | doc m%" Switch Access Policies (List - Object) @@ -42424,6 +41816,7 @@ let rec _js2n__-refsenv - increase_access_speed - guest_vlan_id - dot1x + - voice_vlan_clients - url_redirect_walled_garden_enabled - url_redirect_walled_garden_ranges "% @@ -42511,6 +41904,30 @@ let rec _js2n__-refsenv | optional, switch_dhcp_server_policy | { + alerts + | { + email + | { + enabled + | Bool + | doc "Enabled (Boolean)" + | optional, + } + | doc m%" + Email (Object) + + Elements: + - enabled + "% + | optional, + } + | doc m%" + Alerts (Object) + + Elements: + - email + "% + | optional, allowed_servers | Array ( _js2n__-prdslib.contract_from_predicate @@ -42562,6 +41979,7 @@ let rec _js2n__-refsenv Switch DHCP Server Policy (Object) Elements: + - alerts - default_policy - allowed_servers - blocked_servers @@ -42601,6 +42019,9 @@ let rec _js2n__-refsenv - MAC address (XX:XX:XX:XX:XX:XX) "% | optional, + trusted_server_name + | String + | doc "Trusted Server Name (String)", vlan | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -42620,6 +42041,7 @@ let rec _js2n__-refsenv Switch DHCP Server Policy ARP Inspection Trusted Servers (List - Object) Elements: + - trusted_server_name (required) - mac - vlan - ipv4 @@ -42660,6 +42082,9 @@ let rec _js2n__-refsenv switch_link_aggregations | Array { + link_aggregation_name + | String + | doc "Link Aggregation Name (String)", switch_ports | Array { @@ -42713,6 +42138,7 @@ let rec _js2n__-refsenv Switch Link Aggregations (List - Object) Elements: + - link_aggregation_name (required) - switch_ports - switch_profile_ports "% @@ -42985,6 +42411,9 @@ let rec _js2n__-refsenv - Allowed values: ANY, TCP, UDP "% | optional, + qos_rule_name + | String + | doc "QoS Rule Name (String)", src_port | std.number.Integer | doc "Src Port (Integer)" @@ -43018,6 +42447,7 @@ let rec _js2n__-refsenv Switch QoS Rules (List - Object) Elements: + - qos_rule_name (required) - vlan - protocol - src_port @@ -43117,11 +42547,15 @@ let rec _js2n__-refsenv | String | doc "Multicast Group (String)" | optional, + rendezvous_point_name + | String + | doc "Rendezvous Point Name (String)", } | doc m%" Switch Routing Multicast Rendezvous Points (List - Object) Elements: + - rendezvous_point_name (required) - interface_ip - multicast_group "% @@ -43337,371 +42771,377 @@ let rec _js2n__-refsenv "% | optional, switch_stacks - | { - add - | { serial | String | doc "Serial (String)", } - | doc m%" - Add (Object) - - Elements: - - serial (required) - "% - | optional, - name | String | doc "Name (String)", - remove - | { serial | String | doc "Serial (String)", } - | doc m%" - Remove (Object) - - Elements: - - serial (required) - "% - | optional, - routing_interfaces - | Array - { - default_gateway - | String - | doc m%" - Default Gateway (String) - - IPv4 or IPv6 address - "% - | optional, - dhcp - | { - boot_file_name - | String - | doc "Boot File Name (String)" - | optional, - boot_next_server - | String - | doc "Boot Next Server (String)" - | optional, - boot_options_enabled - | Bool - | doc "Boot Options Enabled (Boolean)" - | optional, - dhcp_lease_time - | std.enum.TagOrString - | [| - '"4 hours", - '"30 minutes", - '"12 hours", - '"1 week", - '"1 hour", - '"1 day" - |] - | doc m%" - DHCP Lease Time (String) - - Allowed values: 1 day, 1 hour, 1 week, 12 hours, 30 minutes, 4 hours - "% - | optional, - dhcp_mode - | std.enum.TagOrString - | [| - 'dhcpServer, - 'dhcpRelay, - 'dhcpDisabled - |] - | doc m%" - DHCP Mode (String) - - Allowed values: dhcpDisabled, dhcpRelay, dhcpServer - "% - | optional, - dhcp_options - | Array - { - code - | String - | doc "Code (String)", - type - | std.enum.TagOrString - | [| - 'text, - 'ip, - 'integer, - 'hex - |] - | doc m%" - Type (String) - - Allowed values: hex, integer, ip, text - "%, - value - | String - | doc "Value (String)", - } - | doc m%" - DHCP Options (List - Object) - - Elements: - - code (required) - - type (required) - - value (required) - "% - | optional, - dhcp_relay_server_ips - | Array (String) - | doc "DHCP Relay Server IPs (List - String)" - | optional, - dns_custom_nameservers - | Array (String) - | doc "DNS Custom Nameservers (List - String)" - | optional, - dns_nameservers_option - | std.enum.TagOrString - | [| - 'openDns, - 'googlePublicDns, - 'custom - |] - | doc m%" - DNS Nameservers Option (String) - - Allowed values: custom, googlePublicDns, openDns - "% - | optional, - fixed_ip_assignments - | Array - { - ip - | String - | doc m%" - IP (String) - - IPv4 or IPv6 address - "%, - mac - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.strings.pattern - "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$" - ]) - | doc m%" - MAC (String) - - MAC address (XX:XX:XX:XX:XX:XX) - "%, - name - | String - | doc "Name (String)", - } - | doc m%" - Fixed IP Assignments (List - Object) - - Elements: - - name (required) - - mac (required) - - ip (required) - "% - | optional, - reserved_ip_ranges - | Array - { - comment - | String - | doc "Comment (String)" - | optional, - end - | String - | doc m%" - End (String) - - IPv4 or IPv6 address - "%, - start - | String - | doc m%" - Start (String) - - IPv4 or IPv6 address - "%, - } - | doc m%" - Reserved IP Ranges (List - Object) - - Elements: - - start (required) - - end (required) - - comment - "% - | optional, - } - | doc m%" - DHCP (Object) - - Elements: - - dhcp_mode - - dhcp_relay_server_ips - - dhcp_lease_time - - dns_nameservers_option - - dns_custom_nameservers - - boot_options_enabled - - boot_next_server - - boot_file_name - - dhcp_options - - reserved_ip_ranges - - fixed_ip_assignments - "% - | optional, - interface_ip - | String - | doc m%" - Interface IP (String) - - IPv4 or IPv6 address - "% - | optional, - ipv6 - | { - address - | String - | doc m%" - Address (String) - - IPv4 or IPv6 address - "% - | optional, - assignment_mode - | String - | doc "Assignment Mode (String)" - | optional, - gateway - | String - | doc m%" - Gateway (String) - - IPv4 or IPv6 address - "% - | optional, - prefix - | String - | doc "Prefix (String)" - | optional, - } - | doc m%" - IPv6 (Object) - - Elements: - - assignment_mode - - prefix - - address - - gateway - "% - | optional, - multicast_routing - | std.enum.TagOrString - | [| - 'enabled, - 'disabled, - '"IGMP snooping querier" - |] - | doc m%" - Multicast Routing (String) - - Allowed values: IGMP snooping querier, disabled, enabled - "% - | optional, - name - | String - | doc "Name (String)" - | optional, - ospf_settings - | { - area - | String - | doc "Area (String)" - | optional, - cost - | std.number.Integer - | doc "Cost (Integer)" - | optional, - is_passive_enabled - | Bool - | doc "Is Passive Enabled (Boolean)" - | optional, - } - | doc m%" - OSPF Settings (Object) - - Elements: - - area - - cost - - is_passive_enabled - "% - | optional, - subnet - | String - | doc "Subnet (String)" - | optional, - vlan_id - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.numbers.maximum - 4094, - _js2n__-prdslib.numbers.minimum 1 - ]) - | doc m%" - Vlan ID (Integer) - - Minimum value: 1 - - Maximum value: 4094 - "% - | optional, + | Array + { + add + | { + serial | String | doc "Serial (String)", } - | doc m%" - Routing Interfaces (List - Object) - - Elements: - - name - - subnet - - interface_ip - - multicast_routing - - vlan_id - - default_gateway - - ospf_settings - - ipv6 - - dhcp - "% - | optional, - routing_static_routes - | Array - { - advertise_via_ospf_enabled - | Bool - | doc "Advertise Via OSPF Enabled (Boolean)" - | optional, - name - | String - | doc "Name (String)" - | optional, - next_hop_ip - | String - | doc m%" - Next Hop IP (String) - - IPv4 or IPv6 address - "% - | optional, - prefer_over_ospf_routes_enabled - | Bool - | doc "Prefer Over OSPF Routes Enabled (Boolean)" - | optional, - subnet - | String - | doc "Subnet (String)" - | optional, + | doc m%" + Add (Object) + + Elements: + - serial (required) + "% + | optional, + name | String | doc "Name (String)", + remove + | { + serial | String | doc "Serial (String)", } - | doc m%" - Routing Static Routes (List - Object) - - Elements: - - name - - subnet - - next_hop_ip - - advertise_via_ospf_enabled - - prefer_over_ospf_routes_enabled - "% - | optional, - serials - | Array (String) - | doc "Serials (List - String)", - } + | doc m%" + Remove (Object) + + Elements: + - serial (required) + "% + | optional, + routing_interfaces + | Array + { + default_gateway + | String + | doc m%" + Default Gateway (String) + - IPv4 or IPv6 address + "% + | optional, + dhcp + | { + boot_file_name + | String + | doc "Boot File Name (String)" + | optional, + boot_next_server + | String + | doc "Boot Next Server (String)" + | optional, + boot_options_enabled + | Bool + | doc "Boot Options Enabled (Boolean)" + | optional, + dhcp_lease_time + | std.enum.TagOrString + | [| + '"4 hours", + '"30 minutes", + '"12 hours", + '"1 week", + '"1 hour", + '"1 day" + |] + | doc m%" + DHCP Lease Time (String) + - Allowed values: 1 day, 1 hour, 1 week, 12 hours, 30 minutes, 4 hours + "% + | optional, + dhcp_mode + | std.enum.TagOrString + | [| + 'dhcpServer, + 'dhcpRelay, + 'dhcpDisabled + |] + | doc m%" + DHCP Mode (String) + - Allowed values: dhcpDisabled, dhcpRelay, dhcpServer + "% + | optional, + dhcp_options + | Array + { + code + | String + | doc "Code (String)", + type + | std.enum.TagOrString + | [| + 'text, + 'ip, + 'integer, + 'hex + |] + | doc m%" + Type (String) + - Allowed values: hex, integer, ip, text + "%, + value + | String + | doc "Value (String)", + } + | doc m%" + DHCP Options (List - Object) + + Elements: + - code (required) + - type (required) + - value (required) + "% + | optional, + dhcp_relay_server_ips + | Array (String) + | doc "DHCP Relay Server IPs (List - String)" + | optional, + dns_custom_nameservers + | Array (String) + | doc "DNS Custom Nameservers (List - String)" + | optional, + dns_nameservers_option + | std.enum.TagOrString + | [| + 'openDns, + 'googlePublicDns, + 'custom + |] + | doc m%" + DNS Nameservers Option (String) + - Allowed values: custom, googlePublicDns, openDns + "% + | optional, + fixed_ip_assignments + | Array + { + ip + | String + | doc m%" + IP (String) + - IPv4 or IPv6 address + "%, + mac + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"String", + _js2n__-prdslib.strings.pattern + "^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$" + ]) + | doc m%" + MAC (String) + - MAC address (XX:XX:XX:XX:XX:XX) + "%, + name + | String + | doc "Name (String)", + } + | doc m%" + Fixed IP Assignments (List - Object) + + Elements: + - name (required) + - mac (required) + - ip (required) + "% + | optional, + reserved_ip_ranges + | Array + { + comment + | String + | doc "Comment (String)" + | optional, + end + | String + | doc m%" + End (String) + - IPv4 or IPv6 address + "%, + start + | String + | doc m%" + Start (String) + - IPv4 or IPv6 address + "%, + } + | doc m%" + Reserved IP Ranges (List - Object) + + Elements: + - start (required) + - end (required) + - comment + "% + | optional, + } + | doc m%" + DHCP (Object) + + Elements: + - dhcp_mode + - dhcp_relay_server_ips + - dhcp_lease_time + - dns_nameservers_option + - dns_custom_nameservers + - boot_options_enabled + - boot_next_server + - boot_file_name + - dhcp_options + - reserved_ip_ranges + - fixed_ip_assignments + "% + | optional, + interface_ip + | String + | doc m%" + Interface IP (String) + - IPv4 or IPv6 address + "% + | optional, + ipv6 + | { + address + | String + | doc m%" + Address (String) + - IPv4 or IPv6 address + "% + | optional, + assignment_mode + | String + | doc "Assignment Mode (String)" + | optional, + gateway + | String + | doc m%" + Gateway (String) + - IPv4 or IPv6 address + "% + | optional, + prefix + | String + | doc "Prefix (String)" + | optional, + } + | doc m%" + IPv6 (Object) + + Elements: + - assignment_mode + - prefix + - address + - gateway + "% + | optional, + multicast_routing + | std.enum.TagOrString + | [| + 'enabled, + 'disabled, + '"IGMP snooping querier" + |] + | doc m%" + Multicast Routing (String) + - Allowed values: IGMP snooping querier, disabled, enabled + "% + | optional, + name + | String + | doc "Name (String)" + | optional, + ospf_settings + | { + area + | String + | doc "Area (String)" + | optional, + cost + | std.number.Integer + | doc "Cost (Integer)" + | optional, + is_passive_enabled + | Bool + | doc "Is Passive Enabled (Boolean)" + | optional, + } + | doc m%" + OSPF Settings (Object) + + Elements: + - area + - cost + - is_passive_enabled + "% + | optional, + subnet + | String + | doc "Subnet (String)" + | optional, + vlan_id + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.numbers.maximum + 4094, + _js2n__-prdslib.numbers.minimum + 1 + ]) + | doc m%" + Vlan ID (Integer) + - Minimum value: 1 + - Maximum value: 4094 + "% + | optional, + } + | doc m%" + Routing Interfaces (List - Object) + + Elements: + - name + - subnet + - interface_ip + - multicast_routing + - vlan_id + - default_gateway + - ospf_settings + - ipv6 + - dhcp + "% + | optional, + routing_static_routes + | Array + { + advertise_via_ospf_enabled + | Bool + | doc "Advertise Via OSPF Enabled (Boolean)" + | optional, + name + | String + | doc "Name (String)" + | optional, + next_hop_ip + | String + | doc m%" + Next Hop IP (String) + - IPv4 or IPv6 address + "% + | optional, + prefer_over_ospf_routes_enabled + | Bool + | doc "Prefer Over OSPF Routes Enabled (Boolean)" + | optional, + subnet + | String + | doc "Subnet (String)" + | optional, + } + | doc m%" + Routing Static Routes (List - Object) + + Elements: + - name + - subnet + - next_hop_ip + - advertise_via_ospf_enabled + - prefer_over_ospf_routes_enabled + "% + | optional, + serials + | Array (String) + | doc "Serials (List - String)", + } | doc m%" - Switch Stacks (Object) + Switch Stacks (List - Object) Elements: - name (required) @@ -43825,10 +43265,6 @@ let rec _js2n__-refsenv vlan_profiles | Array { - iname - | String - | doc "Iname (String)" - | optional, name | String | doc "Name (String)", vlan_groups | Array @@ -43899,7 +43335,6 @@ let rec _js2n__-refsenv Vlan Profiles (List - Object) Elements: - - iname - name (required) - vlan_names (required) - vlan_groups (required) @@ -43937,304 +43372,6 @@ let rec _js2n__-refsenv - stack_ids (required) "% | optional, - wireless_alternate_management_interface - | { - access_points - | Array - { - alternate_management_ip - | String - | doc "Alternate Management IP (String)", - dns1 - | String - | doc "Dns1 (String)" - | optional, - dns2 - | String - | doc "Dns2 (String)" - | optional, - gateway - | String - | doc m%" - Gateway (String) - - IPv4 or IPv6 address - "% - | optional, - serial | String | doc "Serial (String)", - subnet_mask - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^(255|254|252|248|240|224|192|128|0+)(\\.0|\\.128|\\.192|\\.224|\\.240|\\.248|\\.252|\\.254|\\.255){0,3}$" - ]) - | doc "Subnet Mask (String)" - | optional, - } - | doc m%" - Access Points (List - Object) - - Elements: - - serial (required) - - alternate_management_ip (required) - - subnet_mask - - gateway - - dns1 - - dns2 - "% - | optional, - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - protocols - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.enum - [ - "ldap", - "radius", - "snmp", - "syslog" - ] - ]) - ]) - | doc "Protocols (List - String)" - | optional, - vlan_id - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType 'Integer, - _js2n__-prdslib.numbers.maximum 4094, - _js2n__-prdslib.numbers.minimum 1 - ]) - | doc m%" - Vlan ID (Integer) - - Minimum value: 1 - - Maximum value: 4094 - "% - | optional, - } - | doc m%" - Wireless Alternate Management Interface (Object) - - Elements: - - enabled - - vlan_id - - protocols - - access_points - "% - | optional, - wireless_billing - | { - currency - | String - | doc "Currency (String)" - | optional, - plans - | Array - { - bandwidth_limits - | { - limit_down - | std.number.Integer - | doc "Limit Down (Integer)" - | optional, - limit_up - | std.number.Integer - | doc "Limit Up (Integer)" - | optional, - } - | doc m%" - Bandwidth Limits (Object) - - Elements: - - limit_up - - limit_down - "%, - id - | String - | doc "ID (String)" - | optional, - price | Number | doc "Price (Number)", - time_limit - | std.enum.TagOrString - | [| - '"30 days", - '"1 week", - '"1 hour", - '"1 day" - |] - | doc m%" - Time Limit (String) - - Allowed values: 1 day, 1 hour, 1 week, 30 days - "%, - } - | doc m%" - Plans (List - Object) - - Elements: - - id - - price (required) - - bandwidth_limits (required) - - time_limit (required) - "% - | optional, - } - | doc m%" - Wireless Billing (Object) - - Elements: - - currency - - plans - "% - | optional, - wireless_bluetooth_settings - | { - advertising_enabled - | Bool - | doc "Advertising Enabled (Boolean)" - | optional, - major - | std.number.Integer - | doc "Major (Integer)" - | optional, - major_minor_assignment_mode - | std.enum.TagOrString - | [| 'Unique, 'Non-unique |] - | doc m%" - Major Minor Assignment Mode (String) - - Allowed values: Non-unique, Unique - "% - | optional, - minor - | std.number.Integer - | doc "Minor (Integer)" - | optional, - scanning_enabled - | Bool - | doc "Scanning Enabled (Boolean)" - | optional, - uuid | String | doc "Uuid (String)" | optional, - } - | doc m%" - Wireless Bluetooth Settings (Object) - - Elements: - - scanning_enabled - - advertising_enabled - - uuid - - major_minor_assignment_mode - - major - - minor - "% - | optional, - wireless_ethernet_ports_profiles - | Array - { - name - | String - | doc "Name (String)" - | optional, - ports - | Array - { - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - name | String | doc "Name (String)", - psk_group_id - | String - | doc "Psk Group ID (String)" - | optional, - ssid - | std.number.Integer - | doc "Ssid (Integer)" - | optional, - } - | doc m%" - Ports (List - Object) - - Elements: - - name (required) - - enabled - - ssid - - psk_group_id - "% - | optional, - usb_ports - | Array - { - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - name | String | doc "Name (String)", - ssid - | std.number.Integer - | doc "Ssid (Integer)" - | optional, - } - | doc m%" - Usb Ports (List - Object) - - Elements: - - name (required) - - enabled - - ssid - "% - | optional, - } - | doc m%" - Wireless Ethernet Ports Profiles (List - Object) - - Elements: - - name - - ports - - usb_ports - "% - | optional, - wireless_ethernet_ports_profiles_assign - | { - profile_id - | String - | doc "Profile ID (String)" - | optional, - serials - | Array (String) - | doc "Serials (List - String)", - } - | doc m%" - Wireless Ethernet Ports Profiles Assign (Object) - - Elements: - - serials (required) - - profile_id - "% - | optional, - wireless_ethernet_ports_profiles_set_default - | { - profile_id - | String - | doc "Profile ID (String)" - | optional, - } - | doc m%" - Wireless Ethernet Ports Profiles Set Default (Object) - - Elements: - - profile_id - "% - | optional, wireless_rf_profiles | Array { @@ -45479,6 +44616,20 @@ let rec _js2n__-refsenv - rxsop "% | optional, + transmission + | { + enabled + | Bool + | doc "Enabled (Boolean)" + | optional, + } + | doc m%" + Transmission (Object) + + Elements: + - enabled + "% + | optional, two_four_ghz_settings | { ax_enabled @@ -45531,6 +44682,7 @@ let rec _js2n__-refsenv - two_four_ghz_settings - five_ghz_settings - six_ghz_settings + - transmission - per_ssid_settings - flex_radios "% @@ -45835,67 +44987,9 @@ let rec _js2n__-refsenv - Maximum value: 4094 "% | optional, - device_type_group_policies - | { - device_type_policies - | Array - { - device_policy - | std.enum.TagOrString - | [| - '"Group policy", - 'Blocked, - 'Allowed - |] - | doc m%" - Device Policy (String) - - Allowed values: Allowed, Blocked, Group policy - "%, - device_type - | std.enum.TagOrString - | [| - 'iPod, - 'iPhone, - 'iPad, - '"Windows Phone", - 'Windows, - '"Other OS", - '"Mac OS X", - '"Chrome OS", - 'BlackBerry, - '"B&N Nook", - 'Android - |] - | doc m%" - Device Type (String) - - Allowed values: Android, B&N Nook, BlackBerry, Chrome OS, Mac OS X, Other OS, Windows, Windows Phone, iPad, iPhone, iPod - "%, - group_policy_id - | std.number.Integer - | doc "Group Policy ID (Integer)" - | optional, - } - | doc m%" - Device Type Policies (List - Object) - - Elements: - - device_type (required) - - device_policy (required) - - group_policy_id - "% - | optional, - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - } - | doc m%" - Device Type Group Policies (Object) - - Elements: - - enabled - - device_type_policies - "% + disassociate_clients_on_vpn_failover + | Bool + | doc "Disassociate Clients On VPN Failover (Boolean)" | optional, dns_rewrite | { @@ -46036,123 +45130,6 @@ let rec _js2n__-refsenv - Allowed values: access disabled, access enabled "% | optional, - firewall_l3_firewall_rules - | { - allow_lan_access - | Bool - | doc "Allow Lan Access (Boolean)" - | optional, - rules - | Array - { - comment - | String - | doc "Comment (String)" - | optional, - dest_cidr - | String - | doc "Dest Cidr (String)", - dest_port - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.strings.pattern - "\\d{1,5}" - ]) - | doc "Dest Port (String)" - | optional, - policy - | std.enum.TagOrString - | [| 'deny, 'allow |] - | doc m%" - Policy (String) - - Allowed values: allow, deny - "%, - protocol - | std.enum.TagOrString - | [| - 'udp, - 'tcp, - 'icmp6, - 'icmp, - 'any - |] - | doc m%" - Protocol (String) - - Allowed values: any, icmp, icmp6, tcp, udp - "%, - } - | doc m%" - Rules (List - Object) - - Elements: - - comment - - policy (required) - - protocol (required) - - dest_port - - dest_cidr (required) - "% - | optional, - } - | doc m%" - Firewall L3 Firewall Rules (Object) - - Elements: - - rules - - allow_lan_access - "% - | optional, - firewall_l7_firewall_rules - | { - rules - | Array - { - policy - | std.enum.TagOrString - | [| 'deny |] - | doc m%" - Policy (String) - - Allowed values: deny - "% - | optional, - type - | std.enum.TagOrString - | [| - 'port, - 'ipRange, - 'host, - 'applicationCategory, - 'application - |] - | doc m%" - Type (String) - - Allowed values: application, applicationCategory, host, ipRange, port - "% - | optional, - value - | String - | doc "Value (String)" - | optional, - } - | doc m%" - Rules (List - Object) - - Elements: - - policy - - type - - value - "% - | optional, - } - | doc m%" - Firewall L7 Firewall Rules (Object) - - Elements: - - rules - "% - | optional, gre | { concentrator @@ -46179,246 +45156,6 @@ let rec _js2n__-refsenv - key "% | optional, - hotspot20 - | { - domains - | Array (String) - | doc "Domains (List - String)" - | optional, - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - mcc_mncs - | Array - { - mcc - | String - | doc "Mcc (String)" - | optional, - mnc - | String - | doc "Mnc (String)" - | optional, - } - | doc m%" - Mcc Mncs (List - Object) - - Elements: - - mcc - - mnc - "% - | optional, - nai_realms - | Array - { - format - | std.enum.TagOrString - | [| '"1", '"0" |] - | doc m%" - Format (String) - - Allowed values: 0, 1 - "% - | optional, - methods - | Array - { - id - | String - | doc "ID (String)" - | optional, - } - | doc m%" - Methods (List - Object) - - Elements: - - id - "% - | optional, - realm - | String - | doc "Realm (String)" - | optional, - } - | doc m%" - Nai Realms (List - Object) - - Elements: - - format - - realm - - methods - "% - | optional, - network_access_type - | std.enum.TagOrString - | [| - 'Wildcard, - '"Test or experimental", - '"Private network with guest access", - '"Private network", - '"Personal device network", - '"Free public network", - '"Emergency services only network", - '"Chargeable public network" - |] - | doc m%" - Network Access Type (String) - - Allowed values: Chargeable public network, Emergency services only network, Free public network, Personal device network, Private network, Private network with guest access, Test or experimental, Wildcard - "% - | optional, - operator - | { - name - | String - | doc "Name (String)" - | optional, - } - | doc m%" - Operator (Object) - - Elements: - - name - "% - | optional, - roam_consort_ois - | Array (String) - | doc "Roam Consort Ois (List - String)" - | optional, - venue - | { - name - | String - | doc "Name (String)" - | optional, - type - | std.enum.TagOrString - | [| - '"Zoo or Aquarium", - '"Unspecified Vehicular", - '"Unspecified Utility and Miscellaneous", - '"Unspecified Storage", - '"Unspecified Residential", - '"Unspecified Outdoor", - '"Unspecified Mercantile", - '"Unspecified Institutional", - '"Unspecified Factory and Industrial", - '"Unspecified Educational", - '"Unspecified Business", - '"Unspecified Assembly", - 'Unspecified, - '"University or College", - 'Train, - '"Traffic Control", - 'Theater, - 'Stadium, - '"Shopping Mall", - '"Ship or Boat", - '"School, Secondary", - '"School, Primary", - '"Retail Store", - 'Restaurant, - '"Rest Area", - '"Research and Development Facility", - '"Professional Office", - '"Private Residence", - '"Prison or Jail", - '"Post Office", - '"Police Station", - '"Place of Worship", - '"Passenger Terminal", - 'Museum, - '"Muni-mesh Network", - '"Motor Bike", - '"Long-Term Care Facility", - 'Library, - 'Kiosk, - '"Hotel or Motel", - 'Hospital, - '"Group Home", - '"Grocery Market", - '"Gas Station", - '"Fire Station", - 'Ferry, - 'Factory, - '"Emergency Coordination Center", - 'Dormitory, - '"Doctor or Dentist office", - '"Convention Center", - '"Coffee Shop", - '"City Park", - '"Bus Stop", - 'Bus, - '"Boarding House", - 'Bar, - 'Bank, - '"Automotive Service Station", - '"Automobile or Truck", - '"Attorney Office", - 'Arena, - '"Amusement Park", - 'Amphitheater, - '"Alcohol and Drug Rehabilitation Center", - 'Airplane - |] - | doc m%" - Type (String) - - Allowed values: Airplane, Alcohol and Drug Rehabilitation Center, Amphitheater, Amusement Park, Arena, Attorney Office, Automobile or Truck, Automotive Service Station, Bank, Bar, Boarding House, Bus, Bus Stop, City Park, Coffee Shop, Convention Center, Doctor or Dentist office, Dormitory, Emergency Coordination Center, Factory, Ferry, Fire Station, Gas Station, Grocery Market, Group Home, Hospital, Hotel or Motel, Kiosk, Library, Long-Term Care Facility, Motor Bike, Muni-mesh Network, Museum, Passenger Terminal, Place of Worship, Police Station, Post Office, Prison or Jail, Private Residence, Professional Office, Research and Development Facility, Rest Area, Restaurant, Retail Store, School, Primary, School, Secondary, Ship or Boat, Shopping Mall, Stadium, Theater, Traffic Control, Train, University or College, Unspecified, Unspecified Assembly, Unspecified Business, Unspecified Educational, Unspecified Factory and Industrial, Unspecified Institutional, Unspecified Mercantile, Unspecified Outdoor, Unspecified Residential, Unspecified Storage, Unspecified Utility and Miscellaneous, Unspecified Vehicular, Zoo or Aquarium - "% - | optional, - } - | doc m%" - Venue (Object) - - Elements: - - name - - type - "% - | optional, - } - | doc m%" - Hotspot20 (Object) - - Elements: - - enabled - - operator - - venue - - network_access_type - - domains - - roam_consort_ois - - mcc_mncs - - nai_realms - "% - | optional, - identity_psks - | Array - { - expires_at - | String - | doc "Expires At (String)" - | optional, - group_policy_id - | String - | doc "Group Policy ID (String)" - | optional, - name - | String - | doc "Name (String)" - | optional, - passphrase - | String - | doc "Passphrase (String)" - | optional, - } - | doc m%" - Identity Psks (List - Object) - - Elements: - - name - - passphrase - - group_policy_id - - expires_at - "% - | optional, ip_assignment_mode | String | doc "IP Assignment Mode (String)" @@ -46853,66 +45590,6 @@ let rec _js2n__-refsenv | Bool | doc "Radius Testing Enabled (Boolean)" | optional, - schedules - | { - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - ranges - | Array - { - end_day - | String - | doc "End Day (String)", - end_time - | String - | doc "End Time (String)", - start_day - | String - | doc "Start Day (String)", - start_time - | String - | doc "Start Time (String)", - } - | doc m%" - Ranges (List - Object) - - Elements: - - start_day (required) - - start_time (required) - - end_day (required) - - end_time (required) - "% - | optional, - ranges_in_seconds - | Array - { - end - | std.number.Integer - | doc "End (Integer)", - start - | std.number.Integer - | doc "Start (Integer)", - } - | doc m%" - Ranges In Seconds (List - Object) - - Elements: - - start (required) - - end (required) - "% - | optional, - } - | doc m%" - Schedules (Object) - - Elements: - - enabled - - ranges - - ranges_in_seconds - "% - | optional, secondary_concentrator_network_id | String | doc "Secondary Concentrator Network ID (String)" @@ -46931,108 +45608,31 @@ let rec _js2n__-refsenv - enabled "% | optional, - traffic_shaping_rules - | { - default_rules_enabled - | Bool - | doc "Default Rules Enabled (Boolean)" - | optional, - rules - | Array - { - definitions - | Array - { - type - | std.enum.TagOrString - | [| - 'port, - 'localNet, - 'ipRange, - 'host, - 'applicationCategory, - 'application - |] - | doc m%" - Type (String) - - Allowed values: application, applicationCategory, host, ipRange, localNet, port - "%, - value - | String - | doc "Value (String)", - } - | doc m%" - Definitions (List - Object) - - Elements: - - type (required) - - value (required) - "%, - dscp_tag_value - | std.number.Integer - | doc "DSCP Tag Value (Integer)" - | optional, - pcp_tag_value - | std.number.Integer - | doc "Pcp Tag Value (Integer)" - | optional, - per_client_bandwidth_limits - | { - bandwidth_limits - | { - limit_down - | std.number.Integer - | doc "Limit Down (Integer)" - | optional, - limit_up - | std.number.Integer - | doc "Limit Up (Integer)" - | optional, - } - | doc m%" - Bandwidth Limits (Object) - - Elements: - - limit_up - - limit_down - "% - | optional, - settings - | String - | doc "Settings (String)" - | optional, - } - | doc m%" - Per Client Bandwidth Limits (Object) - - Elements: - - settings - - bandwidth_limits - "% - | optional, - } - | doc m%" - Rules (List - Object) - - Elements: - - definitions (required) - - per_client_bandwidth_limits - - dscp_tag_value - - pcp_tag_value - "% - | optional, - traffic_shaping_enabled - | Bool - | doc "Traffic Shaping Enabled (Boolean)" - | optional, - } + splash_guest_sponsor_domains + | Array (String) + | doc "Splash Guest Sponsor Domains (List - String)" + | optional, + splash_page + | std.enum.TagOrString + | [| + '"Systems Manager Sentry", + '"Sponsored guest", + '"SMS authentication", + '"Password-protected with custom RADIUS", + '"Password-protected with Meraki RADIUS", + '"Password-protected with LDAP", + '"Password-protected with Active Directory", + 'None, + '"Google OAuth", + '"Google Apps domain", + '"Facebook Wi-Fi", + '"Click-through splash page", + '"Cisco ISE", + 'Billing + |] | doc m%" - Traffic Shaping Rules (Object) - - Elements: - - traffic_shaping_enabled - - default_rules_enabled - - rules + Splash Page (String) + - Allowed values: Billing, Cisco ISE, Click-through splash page, Facebook Wi-Fi, Google Apps domain, Google OAuth, None, Password-protected with Active Directory, Password-protected with LDAP, Password-protected with Meraki RADIUS, Password-protected with custom RADIUS, SMS authentication, Sponsored guest, Systems Manager Sentry "% | optional, use_vlan_tagging @@ -47057,133 +45657,6 @@ let rec _js2n__-refsenv - Maximum value: 4094 "% | optional, - vpn - | { - concentrator - | { - network_id - | String - | doc "Network ID (String)" - | optional, - vlan_id - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - 'Integer, - _js2n__-prdslib.numbers.maximum - 4094, - _js2n__-prdslib.numbers.minimum - 1 - ]) - | doc m%" - Vlan ID (Integer) - - Minimum value: 1 - - Maximum value: 4094 - "% - | optional, - } - | doc m%" - Concentrator (Object) - - Elements: - - network_id - - vlan_id - "% - | optional, - failover - | { - heartbeat_interval - | std.number.Integer - | doc "Heartbeat Interval (Integer)" - | optional, - idle_timeout - | std.number.Integer - | doc "Idle Timeout (Integer)" - | optional, - request_ip - | String - | doc "Request IP (String)" - | optional, - } - | doc m%" - Failover (Object) - - Elements: - - request_ip - - heartbeat_interval - - idle_timeout - "% - | optional, - split_tunnel - | { - enabled - | Bool - | doc "Enabled (Boolean)" - | optional, - rules - | Array - { - comment - | String - | doc "Comment (String)" - | optional, - dest_cidr - | String - | doc "Dest Cidr (String)", - dest_port - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"String", - _js2n__-prdslib.strings.pattern - "\\d{1,5}" - ]) - | doc "Dest Port (String)" - | optional, - policy - | String - | doc "Policy (String)", - protocol - | std.enum.TagOrString - | [| 'UDP, 'TCP, 'Any |] - | doc m%" - Protocol (String) - - Allowed values: Any, TCP, UDP - "% - | optional, - } - | doc m%" - Rules (List - Object) - - Elements: - - protocol - - dest_cidr (required) - - dest_port - - policy (required) - - comment - "% - | optional, - } - | doc m%" - Split Tunnel (Object) - - Elements: - - enabled - - rules - "% - | optional, - } - | doc m%" - VPN (Object) - - Elements: - - concentrator - - split_tunnel - - failover - "% - | optional, walled_garden_enabled | Bool | doc "Walled Garden Enabled (Boolean)" @@ -47221,6 +45694,8 @@ let rec _js2n__-refsenv - wpa_encryption_mode - dot11w - dot11r + - splash_page + - splash_guest_sponsor_domains - oauth - local_radius - ldap @@ -47244,6 +45719,7 @@ let rec _js2n__-refsenv - use_vlan_tagging - concentrator_network_id - secondary_concentrator_network_id + - disassociate_clients_on_vpn_failover - vlan_id - default_vlan_id - ap_tags_and_vlan_ids @@ -47269,15 +45745,7 @@ let rec _js2n__-refsenv - speed_burst - named_vlans - bonjour_forwarding - - device_type_group_policies - eap_override - - firewall_l3_firewall_rules - - firewall_l7_firewall_rules - - hotspot20 - - identity_psks - - schedules - - traffic_shaping_rules - - vpn "% | optional, } @@ -47291,10 +45759,7 @@ let rec _js2n__-refsenv - enrollment_string - notes - product_types (required) - - devices_claim - - devices_claim_vmx - - devices_remove - - floor_plans + - copy_from_network_id - group_policies - settings - snmp @@ -47319,12 +45784,6 @@ let rec _js2n__-refsenv - syslog_servers - vlan_profiles - vlan_profiles_assignments_reassign - - wireless_alternate_management_interface - - wireless_billing - - wireless_bluetooth_settings - - wireless_ethernet_ports_profiles - - wireless_ethernet_ports_profiles_assign - - wireless_ethernet_ports_profiles_set_default - wireless_rf_profiles - wireless_settings - wireless_ssids @@ -47391,14 +45850,7 @@ let rec _js2n__-refsenv - name - management - api - - action_batches - - adaptive_policy_acls - - adaptive_policy_groups - - adaptive_policy_policies - - adaptive_policy_settings - admins - - claim - - early_access_features_opt_ins - login_security - networks - snmp @@ -74267,7 +72719,7 @@ let rec _js2n__-refsenv | String | doc "Description (String)" | optional, - endpoint_trackers + ipv4_trackers | Array { description @@ -74497,7 +72949,7 @@ let rec _js2n__-refsenv | optional, } | doc m%" - Endpoint Trackers (List - Object) + Ipv4 Trackers (List - Object) Elements: - name (required) @@ -74540,7 +72992,7 @@ let rec _js2n__-refsenv Elements: - name (required) - description - - endpoint_trackers + - ipv4_trackers "% | optional, system_profiles @@ -75200,56 +73652,16 @@ let rec _js2n__-refsenv | doc "Privilege Variable (String)" | optional, public_key_chains - | Array - { - key_string - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.maxLength - 1024, - _js2n__-prdslib.strings.minLength 1 - ]) - | doc m%" - Key String (String) - - Minimum length: 1 - - Maximum length: 1024 - "%, - key_type - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.maxLength - 32, - _js2n__-prdslib.strings.minLength 1 - ]) - | doc m%" - Key Type (String) - - Minimum length: 1 - - Maximum length: 32 - "% - | optional, - key_type_variable - | _js2n__-prdslib.contract_from_predicate - (_js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"String", - _js2n__-prdslib.strings.pattern - "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" - ]) - | doc "Key Type Variable (String)" - | optional, - } - | doc m%" - Public Key Chains (List - Object) - - Elements: - - key_type - - key_type_variable - - key_string (required) - "% + | Array ( + _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^AAAA[0-9A-Za-z+/]+[=]{0,3}$" + ]) + ) + | doc "Public Key Chains (List - String)" | optional, } | doc m%" @@ -79971,6 +78383,227 @@ let rec _js2n__-refsenv | String | doc "Description (String)" | optional, + ipv6_trackers + | Array + { + description + | String + | doc "Description (String)" + | optional, + endpoint_api_url + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.maxLength 512 + ]) + | doc m%" + Endpoint Api Url (String) + - Maximum length: 512 + "% + | optional, + endpoint_api_url_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Endpoint Api Url Variable (String)" + | optional, + endpoint_dns_name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.maxLength 63 + ]) + | doc m%" + Endpoint DNS Name (String) + - Maximum length: 63 + "% + | optional, + endpoint_dns_name_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Endpoint DNS Name Variable (String)" + | optional, + endpoint_ip + | String + | doc m%" + Endpoint IP (String) + - IPv4 or IPv6 address + "% + | optional, + endpoint_ip_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Endpoint IP Variable (String)" + | optional, + endpoint_tracker_type + | std.enum.TagOrString + | [| 'ipv6-interface |] + | doc m%" + Endpoint Tracker Type (String) + - Allowed values: ipv6-interface + "% + | optional, + endpoint_tracker_type_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Endpoint Tracker Type Variable (String)" + | optional, + interval + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.numbers.maximum 600, + _js2n__-prdslib.numbers.minimum 20 + ]) + | doc m%" + Interval (Integer) + - Minimum value: 20 + - Maximum value: 600 + "% + | optional, + interval_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Interval Variable (String)" + | optional, + multiplier + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.numbers.maximum 10, + _js2n__-prdslib.numbers.minimum 1 + ]) + | doc m%" + Multiplier (Integer) + - Minimum value: 1 + - Maximum value: 10 + "% + | optional, + multiplier_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Multiplier Variable (String)" + | optional, + name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[^&<>! \"]{1,128}$" + ]) + | doc "Name (String)", + threshold + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.numbers.maximum 1000, + _js2n__-prdslib.numbers.minimum 100 + ]) + | doc m%" + Threshold (Integer) + - Minimum value: 100 + - Maximum value: 1000 + "% + | optional, + threshold_variable + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[./\\[\\]a-zA-Z0-9_-]{1,64}$" + ]) + | doc "Threshold Variable (String)" + | optional, + tracker_name + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.strings.pattern + "^[^), otherwise it is a flag without a value (e.g. --enable-some-feature)." + | optional, .. } | doc "These configure options make up the flags that can be passed to ./configure when installing the extension." diff --git a/out/conda-forge.ncl b/out/conda-forge.ncl index 75db815..1cbb340 100644 --- a/out/conda-forge.ncl +++ b/out/conda-forge.ncl @@ -1139,8 +1139,7 @@ let rec _js2n__-refsenv "conda-build", "conda-build+classic", "conda-build+conda-libmamba-solver", - "mambabuild", - "rattler-build" + "mambabuild" ] ], _js2n__-prdslib.isType 'Null diff --git a/out/dependabot-v2.json.ncl b/out/dependabot-v2.json.ncl index 974342c..627cb29 100644 --- a/out/dependabot-v2.json.ncl +++ b/out/dependabot-v2.json.ncl @@ -928,7 +928,6 @@ let rec _js2n__-refsenv "npm", "nuget", "pip", - "pip-compile", "pub", "swift", "terraform" diff --git a/out/gitlab-ci.ncl b/out/gitlab-ci.ncl index ff843ff..3101445 100644 --- a/out/gitlab-ci.ncl +++ b/out/gitlab-ci.ncl @@ -1967,6 +1967,7 @@ let rec _js2n__-refsenv _js2n__-refsenv."_js2n__-:definitions/retry!predicate", rules = _js2n__-refsenv."_js2n__-:definitions/rules!predicate", + run = _js2n__-refsenv."_js2n__-:definitions/steps!predicate", script = _js2n__-refsenv."_js2n__-:definitions/script!predicate", secrets = @@ -2677,6 +2678,42 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", _js2n__-prdslib.strings.minLength 1 ], + "_js2n__-:definitions/steps!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "step" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "script" ], + _js2n__-prdslib.records.record {} {} true + _js2n__-prdslib.always + ] + ], + _js2n__-prdslib.records.required [ "name" ], + _js2n__-prdslib.records.record + { + env = + _js2n__-refsenv."_js2n__-:definitions/globalVariables!predicate", + inputs = + _js2n__-refsenv."_js2n__-:definitions/inputs!predicate", + name = _js2n__-prdslib.isType '"String", + script = _js2n__-prdslib.isType '"String", + step = _js2n__-prdslib.isType '"String", + } {} false _js2n__-prdslib.never + ]) + ], "_js2n__-:definitions/string_file_list!predicate" = _js2n__-prdslib.oneOf [ diff --git a/out/ioBroker Configuration.ncl b/out/ioBroker Configuration.ncl index b71e3a8..54e48b5 100644 --- a/out/ioBroker Configuration.ncl +++ b/out/ioBroker Configuration.ncl @@ -912,7 +912,7 @@ let rec _js2n__-refsenv | doc "All backups older than configured hours will be deleted. But only if the number of files is greater than of backupNumber", path | String - | doc "Absolute path to backup directory or empty to backup in data directory", + | doc "Absolute path to back-up directory or empty to back-up in data directory", period | Number | doc "by default backup every 2 hours. Time is in minutes. To disable backup set the value to 0", @@ -1060,9 +1060,9 @@ let rec _js2n__-refsenv | doc "Write to the database file no more than every intervalMs milliseconds.", maxBufferedCommands | Number - | doc "Force writing after this many changes have been buffered. This reduces memory consumption and data loss in case of a crash.", + | doc "Force writing of buffered commands after so many changes. This reduces memory consumption and data loss in case of a crash.", } - | doc "By default, the database immediately writes to the database file. Write accesses can be reduced using the throttleFS option. Be aware that buffered changes will be lost in case the process crashes", + | doc "By default, the database immediately writes to the database file. Write access can be reduced using the throttleFS option. Be aware that buffered changes will be lost in case the process crashes", }, "_js2n__-:definitions/ObjectsDatabaseOptions!contract" = { diff --git a/out/ioBroker JSON UI.ncl b/out/ioBroker JSON UI.ncl index dce2199..0ecaa04 100644 --- a/out/ioBroker JSON UI.ncl +++ b/out/ioBroker JSON UI.ncl @@ -1021,6 +1021,7 @@ let rec _js2n__-refsenv "alive", "autocomplete", "cron", + "deviceManager", "fileSelector", "text", "textSendTo", @@ -1061,7 +1062,8 @@ let rec _js2n__-refsenv "checkLicense", "uuid", "timePicker", - "datePicker" + "datePicker", + "qrCode" ] ], "_js2n__-:definitions/cronProps!predicate" = @@ -1150,6 +1152,39 @@ let rec _js2n__-refsenv xs = _js2n__-prdslib.always, } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/deviceManagerProps!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "type" ], + _js2n__-prdslib.records.record + { + confirm = _js2n__-prdslib.always, + darkStyle = _js2n__-prdslib.always, + "default" = _js2n__-prdslib.always, + defaultFunc = _js2n__-prdslib.always, + defaultSendTo = _js2n__-prdslib.always, + disabled = _js2n__-prdslib.always, + help = _js2n__-prdslib.always, + helpLink = _js2n__-prdslib.always, + hidden = _js2n__-prdslib.always, + hideOnlyControl = _js2n__-prdslib.always, + label = _js2n__-prdslib.always, + lg = _js2n__-prdslib.always, + md = _js2n__-prdslib.always, + newLine = _js2n__-prdslib.always, + noMultiEdit = _js2n__-prdslib.always, + noTranslation = _js2n__-prdslib.always, + onChange = _js2n__-prdslib.always, + sm = _js2n__-prdslib.always, + style = _js2n__-prdslib.always, + tooltip = _js2n__-prdslib.always, + type = _js2n__-prdslib.always, + validator = _js2n__-prdslib.always, + validatorErrorText = _js2n__-prdslib.always, + validatorNoSaveOnError = _js2n__-prdslib.always, + xs = _js2n__-prdslib.always, + } {} false _js2n__-prdslib.never + ], "_js2n__-:definitions/doNotSaveProp!predicate" | doc "Do not save this attribute as used only for internal calculations" = _js2n__-prdslib.isType '"Bool", @@ -1435,6 +1470,44 @@ let rec _js2n__-refsenv xs = _js2n__-prdslib.always, } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/qrCodeProps!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required [ "data", "type" ], + _js2n__-prdslib.records.record + { + bgColor = _js2n__-prdslib.isType '"String", + confirm = _js2n__-prdslib.always, + darkStyle = _js2n__-prdslib.always, + data = _js2n__-prdslib.isType '"String", + "default" = _js2n__-prdslib.always, + defaultFunc = _js2n__-prdslib.always, + defaultSendTo = _js2n__-prdslib.always, + disabled = _js2n__-prdslib.always, + fgColor = _js2n__-prdslib.isType '"String", + help = _js2n__-prdslib.always, + helpLink = _js2n__-prdslib.always, + hidden = _js2n__-prdslib.always, + hideOnlyControl = _js2n__-prdslib.always, + label = _js2n__-prdslib.always, + level = _js2n__-prdslib.enum [ "L", "M", "Q", "H" ], + lg = _js2n__-prdslib.always, + md = _js2n__-prdslib.always, + newLine = _js2n__-prdslib.always, + noMultiEdit = _js2n__-prdslib.always, + noTranslation = _js2n__-prdslib.always, + onChange = _js2n__-prdslib.always, + size = _js2n__-prdslib.isType '"Number", + sm = _js2n__-prdslib.always, + style = _js2n__-prdslib.always, + tooltip = _js2n__-prdslib.always, + type = _js2n__-prdslib.always, + validator = _js2n__-prdslib.always, + validatorErrorText = _js2n__-prdslib.always, + validatorNoSaveOnError = _js2n__-prdslib.always, + xs = _js2n__-prdslib.always, + } {} false _js2n__-prdslib.never + ], "_js2n__-:definitions/sendToProps!predicate" = _js2n__-prdslib.allOf [ @@ -2809,6 +2882,59 @@ let rec _js2n__-refsenv } {} false _js2n__-prdslib.never ] ]) _js2n__-prdslib.always, + _js2n__-prdslib.ifThenElse + (_js2n__-prdslib.records.record + { type = _js2n__-prdslib.const "qrCode", } {} true + _js2n__-prdslib.always) + (_js2n__-prdslib.allOf + [ + _js2n__-refsenv."_js2n__-:definitions/tableItemBaseProps!predicate", + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.records.required + [ "data", "type" ], + _js2n__-prdslib.records.record + { + attr = _js2n__-prdslib.always, + bgColor = + _js2n__-prdslib.isType '"String", + confirm = _js2n__-prdslib.always, + darkStyle = _js2n__-prdslib.always, + data = _js2n__-prdslib.isType '"String", + "default" = _js2n__-prdslib.always, + defaultFunc = _js2n__-prdslib.always, + defaultSendTo = _js2n__-prdslib.always, + disabled = _js2n__-prdslib.always, + fgColor = + _js2n__-prdslib.isType '"String", + help = _js2n__-prdslib.always, + helpLink = _js2n__-prdslib.always, + hidden = _js2n__-prdslib.always, + hideOnlyControl = _js2n__-prdslib.always, + label = _js2n__-prdslib.always, + level = + _js2n__-prdslib.enum + [ "L", "M", "Q", "H" ], + lg = _js2n__-prdslib.always, + md = _js2n__-prdslib.always, + newLine = _js2n__-prdslib.always, + noMultiEdit = _js2n__-prdslib.always, + noTranslation = _js2n__-prdslib.always, + onChange = _js2n__-prdslib.always, + size = _js2n__-prdslib.isType '"Number", + sm = _js2n__-prdslib.always, + style = _js2n__-prdslib.always, + tooltip = _js2n__-prdslib.always, + type = _js2n__-prdslib.always, + validator = _js2n__-prdslib.always, + validatorErrorText = + _js2n__-prdslib.always, + validatorNoSaveOnError = + _js2n__-prdslib.always, + xs = _js2n__-prdslib.always, + } {} false _js2n__-prdslib.never + ] + ]) _js2n__-prdslib.always, _js2n__-prdslib.ifThenElse (_js2n__-prdslib.records.record { type = _js2n__-prdslib.const "func", } {} true @@ -4772,6 +4898,14 @@ let rec _js2n__-refsenv xs = _js2n__-prdslib.always, } {} false _js2n__-prdslib.never ]) _js2n__-prdslib.always, + _js2n__-prdslib.ifThenElse + (_js2n__-prdslib.records.record + { + type = + _js2n__-prdslib.const "qrCode", + } {} true _js2n__-prdslib.always) + _js2n__-refsenv."_js2n__-:definitions/qrCodeProps!predicate" + _js2n__-prdslib.always, _js2n__-prdslib.ifThenElse (_js2n__-prdslib.records.record { @@ -4779,6 +4913,15 @@ let rec _js2n__-refsenv } {} true _js2n__-prdslib.always) _js2n__-refsenv."_js2n__-:definitions/cronProps!predicate" _js2n__-prdslib.always, + _js2n__-prdslib.ifThenElse + (_js2n__-prdslib.records.record + { + type = + _js2n__-prdslib.const + "deviceManager", + } {} true _js2n__-prdslib.always) + _js2n__-refsenv."_js2n__-:definitions/deviceManagerProps!predicate" + _js2n__-prdslib.always, _js2n__-prdslib.ifThenElse (_js2n__-prdslib.records.record { @@ -4886,6 +5029,9 @@ let rec _js2n__-refsenv clone = _js2n__-prdslib.isType '"Bool", + compact = + _js2n__-prdslib.isType + '"Bool", confirm = _js2n__-prdslib.always, darkStyle = @@ -4898,6 +5044,15 @@ let rec _js2n__-refsenv _js2n__-prdslib.always, disabled = _js2n__-prdslib.always, + encryptedAttributes = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType + '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], export = _js2n__-prdslib.isType '"Bool", @@ -5753,8 +5908,6 @@ let rec _js2n__-refsenv [ "items", "type" ], _js2n__-prdslib.records.record { - allowAddByFilter = - _js2n__-refsenv."_js2n__-:definitions/allowAddByFilterProp!predicate", clone = _js2n__-prdslib.isType '"Bool", @@ -5770,18 +5923,12 @@ let rec _js2n__-refsenv _js2n__-prdslib.always, disabled = _js2n__-prdslib.always, - export = - _js2n__-prdslib.isType - '"Bool", help = _js2n__-prdslib.always, helpLink = _js2n__-prdslib.always, hidden = _js2n__-prdslib.always, hideOnlyControl = _js2n__-prdslib.always, - "import" = - _js2n__-prdslib.isType - '"Bool", items = _js2n__-refsenv."_js2n__-:definitions/tableItems!predicate", label = _js2n__-prdslib.always, @@ -5808,15 +5955,6 @@ let rec _js2n__-refsenv tooltip = _js2n__-prdslib.always, type = _js2n__-prdslib.always, - uniqueColumns = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType - '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType - '"String") - ], validator = _js2n__-prdslib.always, validatorErrorText = @@ -6678,12 +6816,26 @@ let rec _js2n__-refsenv xs = _js2n__-prdslib.always, } {} false _js2n__-prdslib.never ]) _js2n__-prdslib.always, + _js2n__-prdslib.ifThenElse + (_js2n__-prdslib.records.record + { type = _js2n__-prdslib.const "qrCode", } {} + true _js2n__-prdslib.always) + _js2n__-refsenv."_js2n__-:definitions/qrCodeProps!predicate" + _js2n__-prdslib.always, _js2n__-prdslib.ifThenElse (_js2n__-prdslib.records.record { type = _js2n__-prdslib.const "cron", } {} true _js2n__-prdslib.always) _js2n__-refsenv."_js2n__-:definitions/cronProps!predicate" _js2n__-prdslib.always, + _js2n__-prdslib.ifThenElse + (_js2n__-prdslib.records.record + { + type = + _js2n__-prdslib.const "deviceManager", + } {} true _js2n__-prdslib.always) + _js2n__-refsenv."_js2n__-:definitions/deviceManagerProps!predicate" + _js2n__-prdslib.always, _js2n__-prdslib.ifThenElse (_js2n__-prdslib.records.record { type = _js2n__-prdslib.const "text", } {} @@ -6766,12 +6918,22 @@ let rec _js2n__-refsenv allowAddByFilter = _js2n__-refsenv."_js2n__-:definitions/allowAddByFilterProp!predicate", clone = _js2n__-prdslib.isType '"Bool", + compact = + _js2n__-prdslib.isType '"Bool", confirm = _js2n__-prdslib.always, darkStyle = _js2n__-prdslib.always, "default" = _js2n__-prdslib.always, defaultFunc = _js2n__-prdslib.always, defaultSendTo = _js2n__-prdslib.always, disabled = _js2n__-prdslib.always, + encryptedAttributes = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType + '"String") + ], export = _js2n__-prdslib.isType '"Bool", help = _js2n__-prdslib.always, helpLink = _js2n__-prdslib.always, @@ -7400,8 +7562,6 @@ let rec _js2n__-refsenv [ "items", "type" ], _js2n__-prdslib.records.record { - allowAddByFilter = - _js2n__-refsenv."_js2n__-:definitions/allowAddByFilterProp!predicate", clone = _js2n__-prdslib.isType '"Bool", confirm = _js2n__-prdslib.always, darkStyle = _js2n__-prdslib.always, @@ -7409,14 +7569,11 @@ let rec _js2n__-refsenv defaultFunc = _js2n__-prdslib.always, defaultSendTo = _js2n__-prdslib.always, disabled = _js2n__-prdslib.always, - export = _js2n__-prdslib.isType '"Bool", help = _js2n__-prdslib.always, helpLink = _js2n__-prdslib.always, hidden = _js2n__-prdslib.always, hideOnlyControl = _js2n__-prdslib.always, - "import" = - _js2n__-prdslib.isType '"Bool", items = _js2n__-refsenv."_js2n__-:definitions/tableItems!predicate", label = _js2n__-prdslib.always, @@ -7436,14 +7593,6 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", tooltip = _js2n__-prdslib.always, type = _js2n__-prdslib.always, - uniqueColumns = - _js2n__-prdslib.allOf - [ - _js2n__-prdslib.isType '"Array", - _js2n__-prdslib.arrays.arrayOf - (_js2n__-prdslib.isType - '"String") - ], validator = _js2n__-prdslib.always, validatorErrorText = _js2n__-prdslib.always, diff --git a/out/ioBroker Package manifest.ncl b/out/ioBroker Package manifest.ncl index 9a567f6..041aab0 100644 --- a/out/ioBroker Package manifest.ncl +++ b/out/ioBroker Package manifest.ncl @@ -1894,17 +1894,45 @@ let rec _js2n__-refsenv [ "link" ], _js2n__-prdslib.records.record { + cloud = + _js2n__-prdslib.isType + '"String", color = _js2n__-prdslib.isType '"String", + description = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"String", + _js2n__-refsenv."_js2n__-:definitions/multilingual!predicate" + ], icon = _js2n__-prdslib.isType '"String", + intro = + _js2n__-prdslib.isType '"Bool", link = _js2n__-prdslib.isType '"String", + name = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"String", + _js2n__-refsenv."_js2n__-:definitions/multilingual!predicate" + ], + order = + _js2n__-prdslib.isType + '"Number", pro = - _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType + '"Bool", + _js2n__-prdslib.isType + '"String" + ], } {} false _js2n__-prdslib.never ] ], diff --git a/out/mirrord config.ncl b/out/mirrord config.ncl index d45fb54..d7e7600 100644 --- a/out/mirrord config.ncl +++ b/out/mirrord config.ncl @@ -1260,6 +1260,86 @@ let rec _js2n__-refsenv deployment = _js2n__-prdslib.isType '"String", } {} false _js2n__-prdslib.never ], + "_js2n__-:definitions/DnsFileConfig!predicate" + | doc m%" + Resolve DNS via the remote pod. + + Defaults to `true`. + + Mind that: - DNS resolving can be done in multiple ways. Some frameworks use `getaddrinfo`/`gethostbyname` functions, while others communicate directly with the DNS server at port `53` and perform a sort of manual resolution. Just enabling the `dns` feature in mirrord might not be enough. If you see an address resolution error, try enabling the [`fs`](#feature-fs) feature, and setting `read_only: ["/etc/resolv.conf"]`. - DNS filter currently works only with frameworks that use `getaddrinfo`/`gethostbyname` functions. + "% + = _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.record + { + enabled = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType 'Null + ], + filter = + _js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/DnsFilterConfig!predicate", + _js2n__-prdslib.isType 'Null + ], + } {} false _js2n__-prdslib.never + ], + "_js2n__-:definitions/DnsFilterConfig!predicate" + | doc m%" + List of addresses/ports/subnets that should be resolved through either the remote pod or local app, depending how you set this up with either `remote` or `local`. + + You may use this option to specify when DNS resolution is done from the remote pod (which is the default behavior when you enable remote DNS), or from the local app (default when you have remote DNS disabled). + + Takes a list of values, such as: + + - Only queries for hostname `my-service-in-cluster` will go through the remote pod. + + ```json { "remote": ["my-service-in-cluster"] } ``` + + - Only queries for addresses in subnet `1.1.1.0/24` with service port `1337`` will go through the remote pod. + + ```json { "remote": ["1.1.1.0/24:1337"] } ``` + + - Only queries for hostname `google.com` with service port `1337` or `7331` will go through the remote pod. + + ```json { "remote": ["google.com:1337", "google.com:7331"] } ``` + + - Only queries for `localhost` with service port `1337` will go through the local app. + + ```json { "local": ["localhost:1337"] } ``` + + - Only queries with service port `1337` or `7331` will go through the local app. + + ```json { "local": [":1337", ":7331"] } ``` + + Valid values follow this pattern: `[name|address|subnet/mask][:port]`. + "% + = _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "remote" ], + _js2n__-prdslib.records.record + { + remote = + _js2n__-refsenv."_js2n__-:definitions/VecOrSingle_for_String!predicate", + } {} false _js2n__-prdslib.never + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "local" ], + _js2n__-prdslib.records.record + { + local = + _js2n__-refsenv."_js2n__-:definitions/VecOrSingle_for_String!predicate", + } {} false _js2n__-prdslib.never + ] + ], "_js2n__-:definitions/EnvFileConfig!predicate" | doc m%" Allows the user to set or override the local process' environment variables with the ones from the remote pod. @@ -1763,7 +1843,7 @@ let rec _js2n__-refsenv See the network traffic [reference](https://mirrord.dev/docs/reference/traffic/) for more details. - ```json { "feature": { "network": { "incoming": { "mode": "steal", "http_filter": { "header_filter": "host: api\\..+" }, "port_mapping": [[ 7777, 8888 ]], "ignore_localhost": false, "ignore_ports": [9999, 10000] }, "outgoing": { "tcp": true, "udp": true, "filter": { "local": ["tcp://1.1.1.0/24:1337", "1.1.5.0/24", "google.com", ":53"] }, "ignore_localhost": false, "unix_streams": "bear.+" }, "dns": false } } } ``` + ```json { "feature": { "network": { "incoming": { "mode": "steal", "http_filter": { "header_filter": "host: api\\..+" }, "port_mapping": [[ 7777, 8888 ]], "ignore_localhost": false, "ignore_ports": [9999, 10000] }, "outgoing": { "tcp": true, "udp": true, "filter": { "local": ["tcp://1.1.1.0/24:1337", "1.1.5.0/24", "google.com", ":53"] }, "ignore_localhost": false, "unix_streams": "bear.+" }, "dns": { "enabled": true, "filter": { "local": ["1.1.1.0/24:1337", "1.1.5.0/24", "google.com"] } } } } } ``` "% = _js2n__-prdslib.allOf [ @@ -1773,7 +1853,7 @@ let rec _js2n__-refsenv dns = _js2n__-prdslib.anyOf [ - _js2n__-prdslib.isType '"Bool", + _js2n__-refsenv."_js2n__-:definitions/ToggleableConfig_for_DnsFileConfig!predicate", _js2n__-prdslib.isType 'Null ], incoming = @@ -1988,6 +2068,12 @@ let rec _js2n__-refsenv } {} false _js2n__-prdslib.never ] ], + "_js2n__-:definitions/ToggleableConfig_for_DnsFileConfig!predicate" = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-refsenv."_js2n__-:definitions/DnsFileConfig!predicate" + ], "_js2n__-:definitions/ToggleableConfig_for_EnvFileConfig!predicate" = _js2n__-prdslib.anyOf [ diff --git a/out/sfdx-hardis configuration.ncl b/out/sfdx-hardis configuration.ncl index 6578f86..861e557 100644 --- a/out/sfdx-hardis configuration.ncl +++ b/out/sfdx-hardis configuration.ncl @@ -970,7 +970,8 @@ let rec _js2n__-refsenv "listViewsMine", "minimizeProfiles", "productrequest", - "systemDebug" + "systemDebug", + "v60" ] ]) ]) diff --git a/out/spicepod.yaml.ncl b/out/spicepod.yaml.ncl index 43ad445..962e5e2 100644 --- a/out/spicepod.yaml.ncl +++ b/out/spicepod.yaml.ncl @@ -1001,6 +1001,43 @@ let rec _js2n__-refsenv ], } {} true _js2n__-prdslib.always ], + "_js2n__-:definitions/Catalog!predicate" = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType 'Record, + _js2n__-prdslib.records.required [ "from", "name" ], + _js2n__-prdslib.records.record + { + dataset_params = + _js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/Params!predicate", + _js2n__-prdslib.isType 'Null + ], + dependsOn = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + from = _js2n__-prdslib.isType '"String", + include = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.arrays.arrayOf + (_js2n__-prdslib.isType '"String") + ], + name = _js2n__-prdslib.isType '"String", + params = + _js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/Params!predicate", + _js2n__-prdslib.isType 'Null + ], + } {} true _js2n__-prdslib.always + ], "_js2n__-:definitions/ColumnEmbeddingConfig!predicate" | doc "Configuration for if and how a dataset's column should be embedded." = _js2n__-prdslib.allOf @@ -1024,6 +1061,13 @@ let rec _js2n__-refsenv use = _js2n__-prdslib.isType '"String", } {} true _js2n__-prdslib.always ], + "_js2n__-:definitions/ComponentOrReference_for_Catalog!contract" = + _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/Catalog!predicate", + _js2n__-refsenv."_js2n__-:definitions/ComponentReference!predicate" + ]), "_js2n__-:definitions/ComponentOrReference_for_Dataset!contract" = _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.anyOf @@ -1434,6 +1478,10 @@ let rec _js2n__-refsenv } in { + catalogs + | Array + _js2n__-refsenv."_js2n__-:definitions/ComponentOrReference_for_Catalog!contract" + | optional, datasets | Array _js2n__-refsenv."_js2n__-:definitions/ComponentOrReference_for_Dataset!contract" @@ -1457,6 +1505,7 @@ let rec _js2n__-refsenv | _js2n__-prdslib.contract_from_predicate _js2n__-refsenv."_js2n__-:definitions/SpicepodKind!predicate" | doc "The kind of Spicepod", + metadata | { .. } | optional, models | Array _js2n__-refsenv."_js2n__-:definitions/ComponentOrReference_for_Model!contract" diff --git a/out/uv.ncl b/out/uv.ncl index 916b0cd..4e03303 100644 --- a/out/uv.ncl +++ b/out/uv.ncl @@ -965,7 +965,7 @@ let rec _js2n__-refsenv ], "_js2n__-:definitions/ExtraName!predicate" | doc m%" - The normalized name of an extra dependency group. + The normalized name of an extra dependency. Converts the name to lowercase and collapses runs of `-`, `_`, and `.` down to a single `-`. For example, `---`, `.`, and `__` are all converted to a single `-`. @@ -1061,6 +1061,12 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ], + allow-empty-requirements = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType 'Null + ], annotation-style = _js2n__-prdslib.anyOf [ @@ -1079,6 +1085,36 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ], + concurrent-builds = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.numbers.minimum 1 + ], + concurrent-downloads = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.numbers.minimum 1 + ], + concurrent-installs = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType 'Integer, + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.numbers.minimum 1 + ], config-settings = _js2n__-prdslib.anyOf [ @@ -1091,6 +1127,12 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", _js2n__-prdslib.isType 'Null ], + emit-build-options = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType 'Null + ], emit-find-links = _js2n__-prdslib.anyOf [ @@ -1254,7 +1296,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ], - offline = + no-strip-markers = _js2n__-prdslib.anyOf [ _js2n__-prdslib.isType '"Bool", @@ -1277,6 +1319,12 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", _js2n__-prdslib.isType 'Null ], + prefix = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.isType 'Null + ], prerelease = _js2n__-prdslib.anyOf [ @@ -1301,6 +1349,23 @@ let rec _js2n__-refsenv _js2n__-refsenv."_js2n__-:definitions/PythonVersion!predicate", _js2n__-prdslib.isType 'Null ], + reinstall = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType 'Null + ], + reinstall-package = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/PackageName!predicate" + ], require-hashes = _js2n__-prdslib.anyOf [ @@ -1331,6 +1396,29 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", _js2n__-prdslib.isType 'Null ], + universal = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType 'Null + ], + upgrade = + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Bool", + _js2n__-prdslib.isType 'Null + ], + upgrade-package = + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/Requirement!predicate" + ], } {} false _js2n__-prdslib.never ], "_js2n__-:definitions/PreReleaseMode!predicate" = @@ -1362,6 +1450,49 @@ let rec _js2n__-refsenv _js2n__-prdslib.enum [ "if-necessary-or-explicit" ] ] ], + "_js2n__-:definitions/PythonFetch!predicate" = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "automatic" ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "manual" ] + ] + ], + "_js2n__-:definitions/PythonPreference!predicate" = + _js2n__-prdslib.oneOf + [ + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "only-managed" ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "installed" ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "managed" ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "system" ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "only-system" ] + ] + ], "_js2n__-:definitions/PythonVersion!predicate" | doc "A Python version specifier, e.g. `3.7` or `3.8.0`." = _js2n__-prdslib.allOf @@ -1369,6 +1500,9 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", _js2n__-prdslib.strings.pattern "^3\\.\\d+(\\.\\d+)?$" ], + "_js2n__-:definitions/Requirement!predicate" + | doc "A PEP 508 dependency specifier" + = _js2n__-prdslib.isType '"String", "_js2n__-:definitions/ResolutionMode!predicate" = _js2n__-prdslib.oneOf [ @@ -1587,6 +1721,11 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType '"String", _js2n__-prdslib.enum [ "x86_64-manylinux_2_28" ] ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "x86_64-manylinux_2_31" ] + ], _js2n__-prdslib.allOf [ _js2n__-prdslib.isType '"String", @@ -1596,6 +1735,11 @@ let rec _js2n__-refsenv [ _js2n__-prdslib.isType '"String", _js2n__-prdslib.enum [ "aarch64-manylinux_2_28" ] + ], + _js2n__-prdslib.allOf + [ + _js2n__-prdslib.isType '"String", + _js2n__-prdslib.enum [ "aarch64-manylinux_2_31" ] ] ], "_js2n__-:definitions/ToolUvWorkspace!predicate" = @@ -1626,7 +1770,7 @@ let rec _js2n__-refsenv _js2n__-prdslib.arrays.arrayOf _js2n__-refsenv."_js2n__-:definitions/String!predicate" ], - } {} false _js2n__-prdslib.never + } {} true _js2n__-prdslib.always ], } in @@ -1636,16 +1780,173 @@ let rec _js2n__-refsenv (_js2n__-prdslib.anyOf [ _js2n__-prdslib.isType '"String", _js2n__-prdslib.isType 'Null ]) | optional, + compile-bytecode + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + config-settings + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/ConfigSettings!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + dev-dependencies + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf (_js2n__-prdslib.isType '"String") + ]) + | doc "PEP 508-style requirements, e.g., `flask==3.0.0`, or `black @ https://...`." + | optional, + exclude-newer + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/ExcludeNewer!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + extra-index-url + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/IndexUrl!predicate" + ]) + | optional, + find-links + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/FlatIndexLocation!predicate" + ]) + | optional, + index-strategy + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/IndexStrategy!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + index-url + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/IndexUrl!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + keyring-provider + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/KeyringProviderType!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + link-mode + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/LinkMode!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + managed + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | doc "Whether the project is managed by `uv`. If `false`, `uv` will ignore the project when `uv run` is invoked." + | optional, native-tls | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.anyOf [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) | optional, + no-binary + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + no-binary-package + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/PackageName!predicate" + ]) + | optional, + no-build + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + no-build-package + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/PackageName!predicate" + ]) + | optional, no-cache | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.anyOf [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) | optional, + no-index + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + offline + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + override-dependencies + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf (_js2n__-prdslib.isType '"String") + ]) + | doc "PEP 508 style requirements, e.g. `flask==3.0.0`, or `black @ https://...`." + | optional, pip | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.anyOf @@ -1654,11 +1955,61 @@ let rec _js2n__-refsenv _js2n__-prdslib.isType 'Null ]) | optional, + prerelease + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/PreReleaseMode!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, preview | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.anyOf [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) | optional, + python-fetch + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/PythonFetch!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + python-preference + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/PythonPreference!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, + reinstall + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + reinstall-package + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/PackageName!predicate" + ]) + | optional, + resolution + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ + _js2n__-refsenv."_js2n__-:definitions/ResolutionMode!predicate", + _js2n__-prdslib.isType 'Null + ]) + | optional, sources | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.allOf @@ -1672,6 +2023,24 @@ let rec _js2n__-refsenv _js2n__-refsenv."_js2n__-:definitions/Source!predicate" ]) | optional, + upgrade + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.anyOf + [ _js2n__-prdslib.isType '"Bool", _js2n__-prdslib.isType 'Null ]) + | optional, + upgrade-package + | _js2n__-prdslib.contract_from_predicate + (_js2n__-prdslib.allOf + [ + _js2n__-prdslib.anyOf + [ + _js2n__-prdslib.isType '"Array", + _js2n__-prdslib.isType 'Null + ], + _js2n__-prdslib.arrays.arrayOf + _js2n__-refsenv."_js2n__-:definitions/Requirement!predicate" + ]) + | optional, workspace | _js2n__-prdslib.contract_from_predicate (_js2n__-prdslib.anyOf @@ -1679,5 +2048,7 @@ let rec _js2n__-refsenv _js2n__-refsenv."_js2n__-:definitions/ToolUvWorkspace!predicate", _js2n__-prdslib.isType 'Null ]) + | doc "The workspace definition for the project, if any." | optional, + .. } \ No newline at end of file