{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "IBM ZCodeScan Rules Document", "description": "JSON schema for zcodescan-rules.yaml and zcodescan-rules.yaml files. Version 1.1.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2025. All Rights Reserved.", "type": "object", "additionalProperties": false, "properties": { "rules": { "description": "The list of rules to apply.", "type": "array", "items": { "$ref": "#/definitions/ruleItem" }, "minItems": 1 } }, "definitions": { "ruleItem": { "type": "object", "additionalProperties": false, "properties": { "id": { "description": "The id of the rule to apply.", "oneOf": [ { "type": "string", "description": "Custom rule following the pattern custom.*Rule", "pattern": "^custom.*Rule$" }, { "const": "zcodescan.cobol.rules.AcceptDateTimeRule", "description": "Use CURRENT-DATE rather than ACCEPT DATE or ACCEPT TIME" }, { "const": "zcodescan.cobol.rules.AcceptFromConsoleRule", "description": "Avoid ACCEPT statements containing FROM CONSOLE or FROM SYSIN" }, { "const": "zcodescan.cobol.rules.AcceptRule", "description": "Insecure use of ACCEPT" }, { "const": "zcodescan.cobol.rules.AlterRule", "description": "Avoid use of ALTER for control flow." }, { "const": "zcodescan.cobol.rules.AvoidSectionInProcedureDivisionRule", "description": "Avoid using SECTION in the procedure division" }, { "const": "zcodescan.cobol.rules.BinarySubscriptRule", "description": "Use binary subscripts" }, { "const": "zcodescan.cobol.rules.BlockContainsRule", "description": "Specify 0 RECORDS for BLOCK CONTAINS clauses in file description entries" }, { "const": "zcodescan.cobol.rules.BufferOverflowRule", "description": "Improper restriction of operations within the bounds of a memory buffer" }, { "const": "zcodescan.cobol.rules.CallSyntaxRule", "description": "Avoid CALL statements with a literal program name" }, { "const": "zcodescan.cobol.rules.CancelRule", "description": "Avoid CANCEL statements" }, { "const": "zcodescan.cobol.rules.CheckSqlcodeAfterExecSqlRule", "description": "EXEC SQL: Check the value of SQLCODE after an EXEC SQL statement" }, { "const": "zcodescan.cobol.rules.Comp3PictureClauseRule", "description": "Use an odd number of digits in a COMP-3 or PACKED-DECIMAL data definition" }, { "const": "zcodescan.cobol.rules.CompilerDirectivesRule", "description": "Avoid using the compiler directive" }, { "const": "zcodescan.cobol.rules.ConditionNamePrefixRule", "description": "Use the specified prefix with condition names" }, { "const": "zcodescan.cobol.rules.CopySuppressRule", "description": "Avoid COPY SUPPRESS statements" }, { "const": "zcodescan.cobol.rules.CopybookRule", "description": "Avoid including the specified copy book" }, { "const": "zcodescan.cobol.rules.CorrespondingRule", "description": "Avoid CORRESPONDING phrases" }, { "const": "zcodescan.cobol.rules.DisplayUponConsoleRule", "description": "Avoid DISPLAY statements containing UPON CONSOLE" }, { "const": "zcodescan.cobol.rules.EntryRule", "description": "Avoid ENTRY statements" }, { "const": "zcodescan.cobol.rules.EvaluateNotIfRule", "description": "Use an EVALUATE statement rather than a nested IF statement" }, { "const": "zcodescan.cobol.rules.EvaluateWhenOtherRule", "description": "Use a WHEN OTHER phrase with an EVALUATE statement" }, { "const": "zcodescan.cobol.rules.ExitParagraphRule", "description": "Use an EXIT paragraph in each section" }, { "const": "zcodescan.cobol.rules.ExitProgramRule", "description": "Avoid EXIT PROGRAM statements" }, { "const": "zcodescan.cobol.rules.FileNameConventionRule", "description": "Follow the specified naming convention for COBOL file names" }, { "const": "zcodescan.cobol.rules.FiveBasedLevelNumbersRule", "description": "Use level numbers in the sequence 01, 05, 10, 15..." }, { "const": "zcodescan.cobol.rules.GotoParagraphRule", "description": "Avoid GO TO statements, except those that reference an EXIT paragraph" }, { "const": "zcodescan.cobol.rules.GotoRule", "description": "Avoid GO TO statements" }, { "const": "zcodescan.cobol.rules.IfElseRule", "description": "Avoid IF without ELSE" }, { "const": "zcodescan.cobol.rules.IndexSubscriptRule", "description": "Avoid using subscripts to access a table. Use indexes." }, { "const": "zcodescan.cobol.rules.InitializeRule", "description": "Avoid INITIALIZE statements. Use elementary MOVE statements or VALUE clauses." }, { "const": "zcodescan.cobol.rules.InlinePerformLineLimitRule", "description": "An inline PERFORM statement cannot exceed the specified line number limit" }, { "const": "zcodescan.cobol.rules.Level88Rule", "description": "Avoid using level-88 entries in data descriptions" }, { "const": "zcodescan.cobol.rules.MultipleExitsRule", "description": "Avoid using more than one EXIT statement per section" }, { "const": "zcodescan.cobol.rules.NestedIfLimitRule", "description": "Avoid nesting IF statements deeper than the specified number of levels" }, { "const": "zcodescan.cobol.rules.NextSentenceInScopedRangeRule", "description": "Use CONTINUE rather than NEXT SENTENCE inside a scoped range." }, { "const": "zcodescan.cobol.rules.NextSentenceRule", "description": "Avoid NEXT SENTENCE phrases." }, { "const": "zcodescan.cobol.rules.OccursDependingOnRule", "description": "Avoid OCCURS DEPENDING ON phrases" }, { "const": "zcodescan.cobol.rules.ParagraphCommentRule", "description": "Use comments to describe all paragraphs" }, { "const": "zcodescan.cobol.rules.PerformExceptPerformSectionRule", "description": "Avoid PERFORM, except PERFORM section" }, { "const": "zcodescan.cobol.rules.PerformWithThroughRule", "description": "Use THRU phrases in PERFORM statements" }, { "const": "zcodescan.cobol.rules.PerformWithoutThroughRule", "description": "Avoid THRU phrases in PERFORM statements" }, { "const": "zcodescan.cobol.rules.ProcedureRule", "description": "Procedure division statements cannot exceed the specified line number limit" }, { "const": "zcodescan.cobol.rules.ProgramIdRule", "description": "Use a program name that matches the source file name" }, { "const": "zcodescan.cobol.rules.RequireEndClauseRule", "description": "End Clause is Required " }, { "const": "zcodescan.cobol.rules.ReserveRule", "description": "Avoid RESERVE clauses in FILE-CONTROL paragraphs" }, { "const": "zcodescan.cobol.rules.RespOptionRule", "description": "EXEC CICS: Use the RESP option" }, { "const": "zcodescan.cobol.rules.RestrictedRoutineRule", "description": "Avoid calling the specified routine" }, { "const": "zcodescan.cobol.rules.SearchAllRule", "description": "Use SEARCH ALL rather than SEARCH to search a table" }, { "const": "zcodescan.cobol.rules.SectionCommentRule", "description": "Use comments to describe all sections" }, { "const": "zcodescan.cobol.rules.SqlAvoidSelectStarRule", "description": "EXEC SQL: Avoid SELECT *" }, { "const": "zcodescan.cobol.rules.SqlDeclareCursorOrderByRule", "description": "EXEC SQL: Use an ORDER BY clause when declaring a cursor" }, { "const": "zcodescan.cobol.rules.SqlInjectionRule", "description": "Improper neutralization of special elements used in an SQL command (SQL Injection)" }, { "const": "zcodescan.cobol.rules.SqlWhereRule", "description": "Use a WHERE clause in SQL statements" }, { "const": "zcodescan.cobol.rules.StaticCallNameRule", "description": "Avoid static calls except for the specified program name" }, { "const": "zcodescan.cobol.rules.StopRunRule", "description": "Avoid STOP RUN and STOP literal statements" }, { "const": "zcodescan.cobol.rules.UninitialzedVariablesRule", "description": "Use of uninitialized variables." }, { "const": "zcodescan.cobol.rules.UnprotectedAuthCredentialRule", "description": "Unprotected Authentication Credentials" }, { "const": "zcodescan.cobol.rules.XMLParseRule", "description": "Avoid XML PARSE statements" } ] }, "severity": { "enum": ["BLOCKER", "HIGH", "MEDIUM", "LOW", "INFO", "OFF"] }, "statements": {}, "parameters": { "type": "array", "description": "Optional parameters for the rule.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the parameter.", "minLength": 1 }, "value": { "description": "Parameter value.", "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] } }, "required": ["name", "value"], "additionalProperties": false }, "minItems": 1 } }, "required": ["id"], "allOf": [ { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.AcceptDateTimeRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.AcceptFromConsoleRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.AcceptRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.AlterRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.AvoidSectionInProcedureDivisionRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.BinarySubscriptRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.BlockContainsRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.BufferOverflowRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CallSyntaxRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CancelRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CheckSqlcodeAfterExecSqlRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.Comp3PictureClauseRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CompilerDirectivesRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.CompilerDirectivesRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ConditionNamePrefixRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.ConditionNamePrefixRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CopySuppressRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CopybookRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.CopybookRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.CorrespondingRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.DisplayUponConsoleRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.EntryRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.EvaluateNotIfRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.EvaluateWhenOtherRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ExitParagraphRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ExitProgramRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.FileNameConventionRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.FileNameConventionRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.FiveBasedLevelNumbersRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.GotoParagraphRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.GotoRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.IfElseRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.IndexSubscriptRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.InitializeRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.InlinePerformLineLimitRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.InlinePerformLineLimitRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.Level88Rule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.MultipleExitsRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.NestedIfLimitRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.NestedIfLimitRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.NextSentenceInScopedRangeRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.NextSentenceRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.OccursDependingOnRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ParagraphCommentRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.ParagraphCommentRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.PerformExceptPerformSectionRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.PerformWithThroughRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.PerformWithoutThroughRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ProcedureRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.ProcedureRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ProgramIdRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.RequireEndClauseRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.RequireEndClauseRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.ReserveRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.RespOptionRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.RestrictedRoutineRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.RestrictedRoutineRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.SearchAllRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.SectionCommentRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.SectionCommentRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.SqlAvoidSelectStarRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.SqlDeclareCursorOrderByRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.SqlInjectionRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.SqlWhereRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.SqlWhereRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.StaticCallNameRule", "type": "string" } } }, "then": { "properties": { "statements": { "description": "The list of statements for this rule.", "type": "array", "items": { "$ref": "#/definitions/zcodescan.cobol.rules.StaticCallNameRuleStatementItem" }, "minItems": 1 } }, "required": ["id", "statements"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.StopRunRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.UninitialzedVariablesRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.UnprotectedAuthCredentialRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } }, { "if": { "properties": { "id": { "const": "zcodescan.cobol.rules.XMLParseRule", "type": "string" } } }, "then": { "not": { "required": ["statements"] }, "required": ["id"] } } ] }, "zcodescan.cobol.rules.CompilerDirectivesRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": [ "BasisDirective", "CopyDirective", "ProcessDirective", "ReplaceDirective", "ServicelabelDirective", "ServiceloadDirective", "TitleDirective" ] }, "value": { "type": "boolean", "description": "Perform statement" } } }, "zcodescan.cobol.rules.ConditionNamePrefixRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["CONDITION_NAME_PREFIX"] }, "value": { "type": "string", "description": "Perform statement" } } }, "zcodescan.cobol.rules.CopybookRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["CopybookName"] }, "value": { "type": "string", "description": "Perform statement" } } }, "zcodescan.cobol.rules.FileNameConventionRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["ConventionMask"] }, "value": { "type": "string", "description": "Perform statement" } } }, "zcodescan.cobol.rules.InlinePerformLineLimitRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["LineLimit"] }, "value": { "type": "integer", "description": "Perform statement" } } }, "zcodescan.cobol.rules.NestedIfLimitRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["NestingLimit"] }, "value": { "type": "integer", "description": "Perform statement" } } }, "zcodescan.cobol.rules.ParagraphCommentRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["LOCATION"] }, "value": { "type": "integer", "description": "Perform statement" } } }, "zcodescan.cobol.rules.ProcedureRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["LineLimit"] }, "value": { "type": "integer", "description": "Perform statement" } } }, "zcodescan.cobol.rules.RequireEndClauseRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["Call", "Evaluate", "If", "Read", "Search"] }, "value": { "type": "boolean", "description": "Perform statement" } } }, "zcodescan.cobol.rules.RestrictedRoutineRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["RoutineName"] }, "value": { "type": "string", "description": "Perform statement" } } }, "zcodescan.cobol.rules.SectionCommentRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["LOCATION"] }, "value": { "type": "integer", "description": "Perform statement" } } }, "zcodescan.cobol.rules.SqlWhereRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["Delete", "Select", "Update"] }, "value": { "type": "boolean", "description": "Perform statement" } } }, "zcodescan.cobol.rules.StaticCallNameRuleStatementItem": { "type": "object", "additionalProperties": false, "properties": { "name": { "enum": ["PROGRAM_NAME"] }, "value": { "type": "string", "description": "Perform statement" } } } } }