/* Generated from Java with JSweet 2.3.7 - http://www.jsweet.org */
import { ValidationCompat } from '../../compat/ValidationCompat';
import { DocumentType } from '../models/DocumentType';
import { OasInvalidApiBasePathRule } from './rules/invalid/format/OasInvalidApiBasePathRule';
import { InvalidApiDescriptionRule } from './rules/invalid/format/InvalidApiDescriptionRule';
import { OasInvalidApiHostRule } from './rules/invalid/format/OasInvalidApiHostRule';
import { InvalidContactEmailRule } from './rules/invalid/format/InvalidContactEmailRule';
import { InvalidContactUrlRule } from './rules/invalid/format/InvalidContactUrlRule';
import { OasInvalidExampleDescriptionRule } from './rules/invalid/format/OasInvalidExampleDescriptionRule';
import { InvalidExternalDocsDescriptionRule } from './rules/invalid/format/InvalidExternalDocsDescriptionRule';
import { OasInvalidExternalDocsUrlRule } from './rules/invalid/format/OasInvalidExternalDocsUrlRule';
import { OasInvalidHeaderDefaultValueRule } from './rules/invalid/format/OasInvalidHeaderDefaultValueRule';
import { OasInvalidHeaderDescriptionRule } from './rules/invalid/format/OasInvalidHeaderDescriptionRule';
import { InvalidLicenseUrlRule } from './rules/invalid/format/InvalidLicenseUrlRule';
import { OasInvalidLinkDescriptionRule } from './rules/invalid/format/OasInvalidLinkDescriptionRule';
import { OasInvalidOAuthAuthorizationUrlRule } from './rules/invalid/format/OasInvalidOAuthAuthorizationUrlRule';
import { OasInvalidOAuthRefreshUrlRule } from './rules/invalid/format/OasInvalidOAuthRefreshUrlRule';
import { OasInvalidOAuthTokenUrlRule } from './rules/invalid/format/OasInvalidOAuthTokenUrlRule';
import { OasInvalidOpenIDConnectUrlRule } from './rules/invalid/format/OasInvalidOpenIDConnectUrlRule';
import { OasInvalidOperationConsumesRule } from './rules/invalid/format/OasInvalidOperationConsumesRule';
import { OasInvalidOperationDescriptionRule } from './rules/invalid/format/OasInvalidOperationDescriptionRule';
import { OasInvalidOperationProducesRule } from './rules/invalid/format/OasInvalidOperationProducesRule';
import { OasInvalidParameterDescriptionRule } from './rules/invalid/format/OasInvalidParameterDescriptionRule';
import { OasInvalidPathItemDescriptionRule } from './rules/invalid/format/OasInvalidPathItemDescriptionRule';
import { OasInvalidRequestBodyDescriptionRule } from './rules/invalid/format/OasInvalidRequestBodyDescriptionRule';
import { OasInvalidResponseDescriptionRule } from './rules/invalid/format/OasInvalidResponseDescriptionRule';
import { OasInvalidSchemaItemsDefaultValueRule } from './rules/invalid/format/OasInvalidSchemaItemsDefaultValueRule';
import { OasInvalidSecuritySchemeAuthUrlRule } from './rules/invalid/format/OasInvalidSecuritySchemeAuthUrlRule';
import { OasInvalidSecuritySchemeDescriptionRule } from './rules/invalid/format/OasInvalidSecuritySchemeDescriptionRule';
import { OasInvalidSecuritySchemeTokenUrlRule } from './rules/invalid/format/OasInvalidSecuritySchemeTokenUrlRule';
import { InvalidServerDescriptionRule } from './rules/invalid/format/InvalidServerDescriptionRule';
import { InvalidServerUrlRule } from './rules/invalid/format/InvalidServerUrlRule';
import { OasInvalidServerVariableDescriptionRule } from './rules/invalid/format/OasInvalidServerVariableDescriptionRule';
import { InvalidTagDescriptionRule } from './rules/invalid/format/InvalidTagDescriptionRule';
import { InvalidTermsOfServiceUrlRule } from './rules/invalid/format/InvalidTermsOfServiceUrlRule';
import { OasInvalidXmlNamespaceUrlRule } from './rules/invalid/format/OasInvalidXmlNamespaceUrlRule';
import { OasDuplicatePathSegmentRule } from './rules/invalid/name/OasDuplicatePathSegmentRule';
import { OasEmptyPathSegmentRule } from './rules/invalid/name/OasEmptyPathSegmentRule';
import { OasIdenticalPathTemplateRule } from './rules/invalid/name/OasIdenticalPathTemplateRule';
import { OasInvalidCallbackDefinitionNameRule } from './rules/invalid/name/OasInvalidCallbackDefinitionNameRule';
import { OasInvalidExampleDefinitionNameRule } from './rules/invalid/name/OasInvalidExampleDefinitionNameRule';
import { OasInvalidHeaderDefinitionNameRule } from './rules/invalid/name/OasInvalidHeaderDefinitionNameRule';
import { OasInvalidHttpResponseCodeRule } from './rules/invalid/name/OasInvalidHttpResponseCodeRule';
import { OasInvalidLinkDefinitionNameRule } from './rules/invalid/name/OasInvalidLinkDefinitionNameRule';
import { OasInvalidParameterDefNameRule } from './rules/invalid/name/OasInvalidParameterDefNameRule';
import { OasInvalidPathSegmentRule } from './rules/invalid/name/OasInvalidPathSegmentRule';
import { OasInvalidRequestBodyDefinitionNameRule } from './rules/invalid/name/OasInvalidRequestBodyDefinitionNameRule';
import { OasInvalidResponseDefNameRule } from './rules/invalid/name/OasInvalidResponseDefNameRule';
import { OasInvalidSchemaDefNameRule } from './rules/invalid/name/OasInvalidSchemaDefNameRule';
import { OasInvalidScopeNameRule } from './rules/invalid/name/OasInvalidScopeNameRule';
import { OasInvalidSecuritySchemeNameRule } from './rules/invalid/name/OasInvalidSecuritySchemeNameRule';
import { OasUnmatchedEncodingPropertyRule } from './rules/invalid/name/OasUnmatchedEncodingPropertyRule';
import { OasUnmatchedExampleTypeRule } from './rules/invalid/name/OasUnmatchedExampleTypeRule';
import { OasInvalidCallbackReferenceRule } from './rules/invalid/reference/OasInvalidCallbackReferenceRule';
import { OasInvalidExampleReferenceRule } from './rules/invalid/reference/OasInvalidExampleReferenceRule';
import { OasInvalidHeaderReferenceRule } from './rules/invalid/reference/OasInvalidHeaderReferenceRule';
import { OasInvalidLinkOperationReferenceRule } from './rules/invalid/reference/OasInvalidLinkOperationReferenceRule';
import { OasInvalidLinkReferenceRule } from './rules/invalid/reference/OasInvalidLinkReferenceRule';
import { OasInvalidParameterReferenceRule } from './rules/invalid/reference/OasInvalidParameterReferenceRule';
import { OasInvalidPathItemReferenceRule } from './rules/invalid/reference/OasInvalidPathItemReferenceRule';
import { OasInvalidRequestBodyReferenceRule } from './rules/invalid/reference/OasInvalidRequestBodyReferenceRule';
import { OasInvalidResponseReferenceRule } from './rules/invalid/reference/OasInvalidResponseReferenceRule';
import { OasInvalidSchemaReferenceRule } from './rules/invalid/reference/OasInvalidSchemaReferenceRule';
import { OasInvalidSecurityRequirementNameRule } from './rules/invalid/reference/OasInvalidSecurityRequirementNameRule';
import { OasInvalidSecuritySchemeReferenceRule } from './rules/invalid/reference/OasInvalidSecuritySchemeReferenceRule';
import { OasInvalidSchemaArrayItemsRule } from './rules/invalid/type/OasInvalidSchemaArrayItemsRule';
import { OasInvalidSchemaTypeValueRule } from './rules/invalid/type/OasInvalidSchemaTypeValueRule';
import { OasAllowReservedNotAllowedForParamRule } from './rules/invalid/value/OasAllowReservedNotAllowedForParamRule';
import { OasAllowReservedNotAllowedRule } from './rules/invalid/value/OasAllowReservedNotAllowedRule';
import { OasEncodingStyleNotAllowedRule } from './rules/invalid/value/OasEncodingStyleNotAllowedRule';
import { OasExplodeNotAllowedRule } from './rules/invalid/value/OasExplodeNotAllowedRule';
import { OasFormDataParamNotAllowedRule } from './rules/invalid/value/OasFormDataParamNotAllowedRule';
import { OasInvalidApiConsumesMTRule } from './rules/invalid/value/OasInvalidApiConsumesMTRule';
import { OasInvalidApiProducesMTRule } from './rules/invalid/value/OasInvalidApiProducesMTRule';
import { OasInvalidApiSchemeRule } from './rules/invalid/value/OasInvalidApiSchemeRule';
import { OasInvalidEncodingForMPMTRule } from './rules/invalid/value/OasInvalidEncodingForMPMTRule';
import { OasInvalidHeaderStyleRule } from './rules/invalid/value/OasInvalidHeaderStyleRule';
import { OasInvalidHttpSecuritySchemeTypeRule } from './rules/invalid/value/OasInvalidHttpSecuritySchemeTypeRule';
import { OasInvalidLinkOperationIdRule } from './rules/invalid/value/OasInvalidLinkOperationIdRule';
import { OasInvalidOperationIdRule } from './rules/invalid/value/OasInvalidOperationIdRule';
import { OasInvalidOperationSchemeRule } from './rules/invalid/value/OasInvalidOperationSchemeRule';
import { OasInvalidSecurityReqScopesRule } from './rules/invalid/value/OasInvalidSecurityReqScopesRule';
import { OasMissingPathParamDefinitionRule } from './rules/invalid/value/OasMissingPathParamDefinitionRule';
import { OasMissingResponseForOperationRule } from './rules/invalid/value/OasMissingResponseForOperationRule';
import { OasOperationSummaryTooLongRule } from './rules/invalid/value/OasOperationSummaryTooLongRule';
import { OasPathParamNotFoundRule } from './rules/invalid/value/OasPathParamNotFoundRule';
import { OasRequiredParamWithDefaultValueRule } from './rules/invalid/value/OasRequiredParamWithDefaultValueRule';
import { OasSecurityRequirementScopesMustBeEmptyRule } from './rules/invalid/value/OasSecurityRequirementScopesMustBeEmptyRule';
import { OasServerVarNotFoundInTemplateRule } from './rules/invalid/value/OasServerVarNotFoundInTemplateRule';
import { OasUnexpectedArrayCollectionFormatRule } from './rules/invalid/value/OasUnexpectedArrayCollectionFormatRule';
import { OasUnexpectedHeaderCollectionFormatRule } from './rules/invalid/value/OasUnexpectedHeaderCollectionFormatRule';
import { OasUnexpectedHeaderUsageRule } from './rules/invalid/value/OasUnexpectedHeaderUsageRule';
import { OasUnexpectedNumOfParamMTsRule } from './rules/invalid/value/OasUnexpectedNumOfParamMTsRule';
import { OasUnexpectedNumberOfHeaderMTsRule } from './rules/invalid/value/OasUnexpectedNumberOfHeaderMTsRule';
import { OasUnexpectedParamAllowEmptyValueRule } from './rules/invalid/value/OasUnexpectedParamAllowEmptyValueRule';
import { OasUnexpectedParamCollectionFormatRule } from './rules/invalid/value/OasUnexpectedParamCollectionFormatRule';
import { OasUnexpectedParamMultiRule } from './rules/invalid/value/OasUnexpectedParamMultiRule';
import { OasUnexpectedRequestBodyRule } from './rules/invalid/value/OasUnexpectedRequestBodyRule';
import { OasUnexpectedSecurityRequirementScopesRule } from './rules/invalid/value/OasUnexpectedSecurityRequirementScopesRule';
import { OasUnexpectedUsageOfBearerTokenRule } from './rules/invalid/value/OasUnexpectedUsageOfBearerTokenRule';
import { OasUnexpectedUsageOfDiscriminatorRule } from './rules/invalid/value/OasUnexpectedUsageOfDiscriminatorRule';
import { OasUnexpectedXmlWrappingRule } from './rules/invalid/value/OasUnexpectedXmlWrappingRule';
import { OasUnknownApiKeyLocationRule } from './rules/invalid/value/OasUnknownApiKeyLocationRule';
import { OasUnknownArrayCollectionFormatRule } from './rules/invalid/value/OasUnknownArrayCollectionFormatRule';
import { OasUnknownArrayFormatRule } from './rules/invalid/value/OasUnknownArrayFormatRule';
import { OasUnknownArrayTypeRule } from './rules/invalid/value/OasUnknownArrayTypeRule';
import { OasUnknownCookieParamStyleRule } from './rules/invalid/value/OasUnknownCookieParamStyleRule';
import { OasUnknownEncodingStyleRule } from './rules/invalid/value/OasUnknownEncodingStyleRule';
import { OasUnknownHeaderCollectionFormatRule } from './rules/invalid/value/OasUnknownHeaderCollectionFormatRule';
import { OasUnknownHeaderFormatRule } from './rules/invalid/value/OasUnknownHeaderFormatRule';
import { OasUnknownHeaderParamStyleRule } from './rules/invalid/value/OasUnknownHeaderParamStyleRule';
import { OasUnknownHeaderTypeRule } from './rules/invalid/value/OasUnknownHeaderTypeRule';
import { OasUnknownOauthFlowTypeRule } from './rules/invalid/value/OasUnknownOauthFlowTypeRule';
import { OasUnknownParamCollectionFormatRule } from './rules/invalid/value/OasUnknownParamCollectionFormatRule';
import { OasUnknownParamFormatRule } from './rules/invalid/value/OasUnknownParamFormatRule';
import { OasUnknownParamLocationRule } from './rules/invalid/value/OasUnknownParamLocationRule';
import { OasUnknownParamStyleRule } from './rules/invalid/value/OasUnknownParamStyleRule';
import { OasUnknownParamTypeRule } from './rules/invalid/value/OasUnknownParamTypeRule';
import { OasUnknownPathParamStyleRule } from './rules/invalid/value/OasUnknownPathParamStyleRule';
import { OasUnknownQueryParamStyleRule } from './rules/invalid/value/OasUnknownQueryParamStyleRule';
import { OasUnknownSecuritySchemeTypeRule } from './rules/invalid/value/OasUnknownSecuritySchemeTypeRule';
import { OasBodyAndFormDataMutualExclusivityRule } from './rules/mutex/OasBodyAndFormDataMutualExclusivityRule';
import { OasExampleValueMutualExclusivityRule } from './rules/mutex/OasExampleValueMutualExclusivityRule';
import { OasHeaderExamplesMutualExclusivityRule } from './rules/mutex/OasHeaderExamplesMutualExclusivityRule';
import { OasHeaderSchemaContentMutualExclusivityRule } from './rules/mutex/OasHeaderSchemaContentMutualExclusivityRule';
import { OasLinkOperationRefMutualExclusivityRule } from './rules/mutex/OasLinkOperationRefMutualExclusivityRule';
import { OasMediaTypeExamplesMutualExclusivityRule } from './rules/mutex/OasMediaTypeExamplesMutualExclusivityRule';
import { OasParameterExamplesMutualExclusivityRule } from './rules/mutex/OasParameterExamplesMutualExclusivityRule';
import { OasParameterSchemaContentMutualExclusivityRule } from './rules/mutex/OasParameterSchemaContentMutualExclusivityRule';
import { OasBodyParameterUniquenessValidationRule } from './rules/other/OasBodyParameterUniquenessValidationRule';
import { OasIgnoredContentTypeHeaderRule } from './rules/other/OasIgnoredContentTypeHeaderRule';
import { OasIgnoredHeaderParameterRule } from './rules/other/OasIgnoredHeaderParameterRule';
import { OasOperationIdUniquenessValidationRule } from './rules/other/OasOperationIdUniquenessValidationRule';
import { OasParameterUniquenessValidationRule } from './rules/other/OasParameterUniquenessValidationRule';
import { TagUniquenessValidationRule } from './rules/other/TagUniquenessValidationRule';
import { OasUnknownPropertyRule } from './rules/other/OasUnknownPropertyRule';
import { SecurityRequirementUniquenessValidationRule } from './rules/other/SecurityRequirementUniquenessValidationRule';
import { OasMissingApiInformationRule } from './rules/required/OasMissingApiInformationRule';
import { MissingApiKeySchemeParamLocationRule } from './rules/required/MissingApiKeySchemeParamLocationRule';
import { MissingApiKeySchemeParamNameRule } from './rules/required/MissingApiKeySchemeParamNameRule';
import { OasMissingApiPathsRule } from './rules/required/OasMissingApiPathsRule';
import { MissingApiTitleRule } from './rules/required/MissingApiTitleRule';
import { MissingApiVersionRule } from './rules/required/MissingApiVersionRule';
import { OasMissingBodyParameterSchemaRule } from './rules/required/OasMissingBodyParameterSchemaRule';
import { OasMissingDiscriminatorPropertyNameRule } from './rules/required/OasMissingDiscriminatorPropertyNameRule';
import { OasMissingExternalDocumentationUrlRule } from './rules/required/OasMissingExternalDocumentationUrlRule';
import { OasMissingHeaderArrayInformationRule } from './rules/required/OasMissingHeaderArrayInformationRule';
import { OasMissingHeaderTypeRule } from './rules/required/OasMissingHeaderTypeRule';
import { MissingHttpSecuritySchemeTypeRule } from './rules/required/MissingHttpSecuritySchemeTypeRule';
import { OasMissingItemsArrayInformationRule } from './rules/required/OasMissingItemsArrayInformationRule';
import { OasMissingItemsTypeRule } from './rules/required/OasMissingItemsTypeRule';
import { AaMissingCorrelationIdRule } from './rules/required/AaMissingCorrelationIdRule';
import { AasMissingServerProtocolRule } from './rules/required/AasMissingServerProtocolRule';
import { MissingLicenseNameRule } from './rules/required/MissingLicenseNameRule';
import { MissingOAuthFlowAuthUrlRule } from './rules/required/MissingOAuthFlowAuthUrlRule';
import { MissingOAuthFlowRokenUrlRule } from './rules/required/MissingOAuthFlowRokenUrlRule';
import { MissingOAuthFlowScopesRule } from './rules/required/MissingOAuthFlowScopesRule';
import { OasMissingOAuthSchemeAuthUrlRule } from './rules/required/OasMissingOAuthSchemeAuthUrlRule';
import { OasMissingOAuthSchemeFlowTypeRule } from './rules/required/OasMissingOAuthSchemeFlowTypeRule';
import { OasMissingOAuthSchemeScopesRule } from './rules/required/OasMissingOAuthSchemeScopesRule';
import { OasMissingOAuthSchemeTokenUrlRule } from './rules/required/OasMissingOAuthSchemeTokenUrlRule';
import { MissingOAuthSecuritySchemeFlowsRule } from './rules/required/MissingOAuthSecuritySchemeFlowsRule';
import { OasMissingOpenApiPropertyRule } from './rules/required/OasMissingOpenApiPropertyRule';
import { MissingOpenIdConnectSecuritySchemeConnectUrlRule } from './rules/required/MissingOpenIdConnectSecuritySchemeConnectUrlRule';
import { MissingOperationDescriptionRule } from './rules/required/MissingOperationDescriptionRule';
import { MissingOperationIdRule } from './rules/required/MissingOperationIdRule';
import { OasMissingOperationResponsesRule } from './rules/required/OasMissingOperationResponsesRule';
import { MissingOperationSummaryRule } from './rules/required/MissingOperationSummaryRule';
import { OasMissingOperationTagsRule } from './rules/required/OasMissingOperationTagsRule';
import { OasMissingParameterArrayTypeRule } from './rules/required/OasMissingParameterArrayTypeRule';
import { OasMissingParameterLocationRule } from './rules/required/OasMissingParameterLocationRule';
import { OasMissingParameterNameRule } from './rules/required/OasMissingParameterNameRule';
import { OasMissingParameterTypeRule } from './rules/required/OasMissingParameterTypeRule';
import { OasMissingRequestBodyContentRule } from './rules/required/OasMissingRequestBodyContentRule';
import { OasMissingResponseDefinitionDescriptionRule } from './rules/required/OasMissingResponseDefinitionDescriptionRule';
import { OasMissingResponseDescriptionRule } from './rules/required/OasMissingResponseDescriptionRule';
import { OasMissingSchemaArrayInformationRule } from './rules/required/OasMissingSchemaArrayInformationRule';
import { MissingSecuritySchemeTypeRule } from './rules/required/MissingSecuritySchemeTypeRule';
import { MissingServerTemplateUrlRule } from './rules/required/MissingServerTemplateUrlRule';
import { OasMissingServerVarDefaultValueRule } from './rules/required/OasMissingServerVarDefaultValueRule';
import { MissingTagNameRule } from './rules/required/MissingTagNameRule';
import { OasPathParamsMustBeRequiredRule } from './rules/required/OasPathParamsMustBeRequiredRule';
/**
 * Constructor.
 * @class
 * @author eric.wittmann@gmail.com
 */
var ValidationRuleSet = /** @class */ (function () {
    function ValidationRuleSet() {
        if (this.rules === undefined)
            this.rules = null;
        this.rules = ([]);
        /* add */ (this.rules.push(ValidationRuleSet.md("UNKNOWN-001", "Unknown/Unexpected Property", "Unknown Property", "All", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "An unexpected property \"${\'property\'}\" was found.  Extension properties should begin with \"x-\".", OasUnknownPropertyRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("TAG-003", "Duplicate Tag Definition", "Uniqueness", "Tag", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Duplicate tag \'${\'tagName\'}\' found (every tag must have a unique name).", TagUniquenessValidationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-003", "Duplicate Operation ID", "Uniqueness", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Duplicate operationId \'${\'operationId\'}\' found (operation IDs must be unique across all operations in the API).", OasOperationIdUniquenessValidationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-019", "Duplicate Parameter", "Uniqueness", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Duplicate ${\'paramIn\'} parameter named \'${\'paramName\'}\' found (parameters must be unique by name and location).", OasParameterUniquenessValidationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-020", "Duplicate Body Parameter", "Uniqueness", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Operation has multiple \"body\" parameters.", OasBodyParameterUniquenessValidationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SREQ-005", "Duplicate Security Requirements", "Uniqueness", "Security Requirement", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Duplicate Security Requirement \'${\'securityReq\'}\' in Security field", SecurityRequirementUniquenessValidationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-004", "Invalid API Host", "Invalid Property Format", "API", [ValidationRuleSet.oai20_$LI$()], true, "Host not properly formatted - only the host name (and optionally port) should be specified.", OasInvalidApiHostRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-005", "Invalid API Base Path", "Invalid Property Format", "API", [ValidationRuleSet.oai20_$LI$()], true, "Base Path should being with a \'/\' character.", OasInvalidApiBasePathRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("INF-003", "Invalid API Description", "Invalid Property Format", "Info", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "API description is an incorrect format.", InvalidApiDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("INF-004", "Invalid Terms of Service URL", "Invalid Property Format", "Info", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Terms of Service URL is an incorrect format.", InvalidTermsOfServiceUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("CTC-001", "Invalid Contact URL", "Invalid Property Format", "Contact", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Contact URL is an incorrect format.", InvalidContactUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("CTC-002", "Invalid Contact Email", "Invalid Property Format", "Contact", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Contact Email is an incorrect format.", InvalidContactEmailRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LIC-002", "Invalid License URL", "Invalid Property Format", "License", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "License URL is an incorrect format.", InvalidLicenseUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-002", "Invalid Operation Description", "Invalid Property Format", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Operation Description is an incorrect format.", OasInvalidOperationDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-005", "Invalid Operation \'Consumes\' Type", "Invalid Property Format", "Operation", [ValidationRuleSet.oai20_$LI$()], true, "Operation \"consumes\" must be a valid mime type.", OasInvalidOperationConsumesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-006", "Invalid Operation \'Produces\' Type", "Invalid Property Format", "Operation", [ValidationRuleSet.oai20_$LI$()], true, "Operation \"produces\" must be a valid mime type.", OasInvalidOperationProducesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ED-002", "Invalid External Documentation Description", "Invalid Property Format", "External Documentation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "External Docs Description is an incorrect format.", InvalidExternalDocsDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ED-003", "Invalid External Documentation URL", "Invalid Property Format", "External Documentation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "External Docs URL is an incorrect format.", OasInvalidExternalDocsUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-010", "Invalid Parameter Description", "Invalid Property Format", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Parameter Description is an incorrect format.", OasInvalidParameterDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-007", "Invalid Schema Items Default Value", "Invalid Property Format", "Shema Items", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Schema Items default value does not conform to the correct type.", OasInvalidSchemaItemsDefaultValueRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-005", "Invalid Header Default Value", "Invalid Property Format", "Header Items", [ValidationRuleSet.oai20_$LI$()], true, "The \"default\" property must conform to the \"type\" of the items.", OasInvalidHeaderDefaultValueRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("TAG-002", "Invalid Tag Description", "Invalid Property Format", "Tag", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Tag Description is an incorrect format.", InvalidTagDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-011", "Invalid Security Scheme Auth URL", "Invalid Property Format", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "Security Scheme Authorization URL is an incorrect format.", OasInvalidSecuritySchemeAuthUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-012", "Invalid Security Scheme Token URL", "Invalid Property Format", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "Security Scheme Token URL is an incorrect format.", OasInvalidSecuritySchemeTokenUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("XML-001", "Invalid XML Namespace URL", "Invalid Property Format", "XML", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "XML Namespace URL is an incorrect format.", OasInvalidXmlNamespaceUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RES-004", "Invalid Response Description", "Invalid Property Format", "Response", [ValidationRuleSet.oai30_$LI$()], true, "Response description is an incorrect format.", OasInvalidResponseDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("EX-002", "Invalid Example Description", "Invalid Property Format", "Example", [ValidationRuleSet.oai30_$LI$()], true, "Example Description is an incorrect format.", OasInvalidExampleDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LINK-004", "Invalid Link Description", "Invalid Property Format", "Link", [ValidationRuleSet.oai30_$LI$()], true, "Link Description is an incorrect format.", OasInvalidLinkDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("FLOW-003", "Invalid OAuth Authorization URL", "Invalid Property Format", "Link", [ValidationRuleSet.oai30_$LI$()], true, "OAuth Authorization URL is an incorrect format.", OasInvalidOAuthAuthorizationUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("FLOW-004", "Invalid OAuth Token URL", "Invalid Property Format", "Link", [ValidationRuleSet.oai30_$LI$()], true, "OAuth Token URL is an incorrect format.", OasInvalidOAuthTokenUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("FLOW-005", "Invalid OAuth Refresh URL", "Invalid Property Format", "Link", [ValidationRuleSet.oai30_$LI$()], true, "OAuth Refresh URL is an incorrect format.", OasInvalidOAuthRefreshUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-008", "Invalid Path Item Description", "Invalid Property Format", "Path Item", [ValidationRuleSet.oai30_$LI$()], true, "Path Item Description is an incorrect format.", OasInvalidPathItemDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RB-001", "Invalid Request Body Description", "Invalid Property Format", "Request Body", [ValidationRuleSet.oai30_$LI$()], true, "Request Body Description is an incorrect format.", OasInvalidRequestBodyDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-009", "Invalid Header Description", "Invalid Property Format", "Header", [ValidationRuleSet.oai30_$LI$()], true, "Header Description is an incorrect format.", OasInvalidHeaderDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-014", "Invalid OpenID Connect URL", "Invalid Property Format", "Security Scheme", [ValidationRuleSet.oai30_$LI$()], true, "OpenID Connect URL is an incorrect format.", OasInvalidOpenIDConnectUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-015", "Invalid Security Scheme Description", "Invalid Property Format", "Security Scheme", [ValidationRuleSet.oai30_$LI$()], true, "Security Scheme Description is an incorrect format.", OasInvalidSecuritySchemeDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SRV-003", "Invalid Server Description", "Invalid Property Format", "Server", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Server Description is an incorrect format.", InvalidServerDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SRV-002", "Invalid Server URL", "Invalid Property Format", "Server", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Server URL is an incorrect format.", InvalidServerUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SVAR-002", "Invalid Server Variable Description", "Invalid Property Format", "Server Variable", [ValidationRuleSet.oai30_$LI$()], true, "Server Variable Description is an incorrect format.", OasInvalidServerVariableDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-006", "Empty Path Segment", "Invalid Property Name", "Path Item", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path template \"${\'path\'}\" contains one or more empty segment.", OasEmptyPathSegmentRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-007", "Duplicate Path Segment", "Invalid Property Name", "Path Item", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path template \"${\'path\'}\" contains duplicate variable names (${\'duplicates\'}).", OasDuplicatePathSegmentRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-005", "Invalid Path Segment", "Invalid Property Name", "Path Item", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path template \"${\'path\'}\" is not valid.", OasInvalidPathSegmentRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-009", "Identical Path Template", "Invalid Property Name", "Path Item", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path template \"${\'path\'}\" is semantically identical to at least one other path.", OasIdenticalPathTemplateRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RES-003", "Invalid HTTP Response Code", "Invalid Property Name", "Response", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "\"${\'statusCode\'}\" is not a valid HTTP response status code.", OasInvalidHttpResponseCodeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("EX-001", "Unmatched Example Type", "Invalid Property Name", "Example", [ValidationRuleSet.oai20_$LI$()], true, "Example \'${\'contentType\'}\' must match one of the \"produces\" mime-types.", OasUnmatchedExampleTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SDEF-001", "Invalid Schema Definition Name", "Invalid Property Name", "Schema Definition", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Schema Definition Name is not valid.", OasInvalidSchemaDefNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PDEF-001", "Invalid Parameter Definition Name", "Invalid Property Name", "Parameter Definition", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Parameter Definition Name is not valid.", OasInvalidParameterDefNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RDEF-001", "Invalid Response Definition Name", "Invalid Property Name", "Response Definition", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Response Definition Name is not valid.", OasInvalidResponseDefNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SCPS-001", "Invalid Scope Name", "Invalid Scope Name", "Scopes", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "\'${\'scope\'}\' is not a valid scope name.", OasInvalidScopeNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-013", "Invalid Security Scheme Name", "Invalid Property Name", "Security Scheme", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Security Scheme Name is not valid.", OasInvalidSecuritySchemeNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("EDEF-001", "Invalid Example Definition Name", "Invalid Property Name", "Components", [ValidationRuleSet.oai30_$LI$()], true, "Example Definition Name is not valid.", OasInvalidExampleDefinitionNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RBDEF-001", "Invalid Request Body Definition Name", "Invalid Property Name", "Components", [ValidationRuleSet.oai30_$LI$()], true, "Request Body Definition Name is not valid.", OasInvalidRequestBodyDefinitionNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HDEF-001", "Invalid Header Definition Name", "Invalid Property Name", "Components", [ValidationRuleSet.oai30_$LI$()], true, "Header Definition Name is not valid.", OasInvalidHeaderDefinitionNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LDEF-001", "Invalid Link Definition Name", "Invalid Property Name", "Components", [ValidationRuleSet.oai30_$LI$()], true, "Link Definition Name is not valid.", OasInvalidLinkDefinitionNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("CDEF-001", "Invalid Callback Definition Name", "Invalid Property Name", "Components", [ValidationRuleSet.oai30_$LI$()], true, "Callback Definition Name is not valid.", OasInvalidCallbackDefinitionNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ENC-006", "Unmatched Encoding Property", "Invalid Property Name", "Components", [ValidationRuleSet.oai30_$LI$()], true, "Encoding Property \"${\'name\'}\" not found in the associated schema.", OasUnmatchedEncodingPropertyRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-006", "Invalid API Scheme", "Invalid Property Value", "API", [ValidationRuleSet.oai20_$LI$()], true, "API scheme \"${\'scheme\'}\" not allowed.  Must be one of: http, https, ws, wss", OasInvalidApiSchemeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-007", "Invalid \'Consumes\' Mime-Type", "Invalid Property Value", "API", [ValidationRuleSet.oai20_$LI$()], true, "API \"consumes\" must be a valid mime-type.", OasInvalidApiConsumesMTRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-008", "Invalid \'Produces\' Mime-Type", "Invalid Property Value", "API", [ValidationRuleSet.oai20_$LI$()], true, "API \"produces\" must be a valid mime-type.", OasInvalidApiProducesMTRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-001", "Operation Summary Too Long", "Invalid Property Value", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Operation Summary should be less than 120 characters.", OasOperationSummaryTooLongRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-004", "Invalid Operation ID", "Invalid Property Value", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Operation ID is an invalid format.", OasInvalidOperationIdRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-010", "Invalid Operation Scheme", "Invalid Property Value", "Operation", [ValidationRuleSet.oai20_$LI$()], true, "Operation scheme \"${\'scheme\'}\" not allowed.  Must be one of: http, https, ws, wss", OasInvalidOperationSchemeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-007", "Path Parameter Not Found", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path Parameter \"${\'name\'}\" not found in path template.", OasPathParamNotFoundRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-008", "Form Data Parameter Not Allowed", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Form Data Parameters are only used in \'application/x-www-form-urlencoded\' or \'multipart/form-data\' requests.", OasFormDataParamNotAllowedRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-009", "Unknown Parameter Location", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Parameters can only be found in one of: ${\'options\'}", OasUnknownParamLocationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-011", "Unknown Parameter Type", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Parameter types are limited to: string, number, integer, boolean, array, file", OasUnknownParamTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-012", "Unknown Parameter Format", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Parameter Format must be one of: int32, int64, float, double, byte, binary, date, date-time, password", OasUnknownParamFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-013", "Unexpected Usage of Parameter \'allowEmptyValue\'", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Allow Empty Value is not allowed (only for ${\'options\'} params).", OasUnexpectedParamAllowEmptyValueRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-014", "Unexpected Usage of Parameter \'collectionFormat\'", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "The \"collectionFormat\" property is only allowed for \'array\' type parameters.", OasUnexpectedParamCollectionFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-015", "Unknown Parameter Collection Format", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Parameter Collection Format must be one of: csv, ssv, tsv, pipes, multi", OasUnknownParamCollectionFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-016", "Unexpected Parameter Usage of \'multi\'", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Parameter Collection Format can only be \"multi\" for Query and Form Data parameters.", OasUnexpectedParamMultiRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-017", "Required Parameter With Default Value Not Allowed", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Required Parameters can not have a default value.", OasRequiredParamWithDefaultValueRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-003", "Unknown Array Type", "Invalid Property Value", "Items", [ValidationRuleSet.oai20_$LI$()], true, "Schema Items Type must be one of: string, number, integer, boolean, array", OasUnknownArrayTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-004", "Unknown Array Format", "Invalid Property Value", "Items", [ValidationRuleSet.oai20_$LI$()], true, "Schema Items Format must be one of: int32, int64, float, double, byte, binary, date, date-time, password", OasUnknownArrayFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-005", "Unknown Array Collection Format", "Invalid Property Value", "Items", [ValidationRuleSet.oai20_$LI$()], true, "Schema Items Collection Format must be one of: csv, ssv, tsv, pipes", OasUnknownArrayCollectionFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-006", "Unexpected Usage of Array \'collectionFormat\'", "Invalid Property Value", "Items", [ValidationRuleSet.oai20_$LI$()], true, "Schema Items Collection Format is only allowed for Array style parameters.", OasUnexpectedArrayCollectionFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-003", "Unknown Header Type", "Invalid Property Value", "Header", [ValidationRuleSet.oai20_$LI$()], true, "Header Type must be one of: string, number, integer, boolean, array", OasUnknownHeaderTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-004", "Unknown Header Format", "Invalid Property Value", "Header", [ValidationRuleSet.oai20_$LI$()], true, "Header Format must be one of: int32, int64, float, double, byte, binary, date, date-time, password", OasUnknownHeaderFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-006", "Unexpected Usage of Header \'collectionFormat\'", "Invalid Property Value", "Header", [ValidationRuleSet.oai20_$LI$()], true, "Header Collection Format is only allowed for \"array\" type headers.", OasUnexpectedHeaderCollectionFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-007", "Unknown Header Collection Format", "Invalid Property Value", "Header", [ValidationRuleSet.oai20_$LI$()], true, "Header Collection Format must be one of: csv, ssv, tsv, pipes", OasUnknownHeaderCollectionFormatRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("XML-002", "Unexpected Usage of XML Wrapping", "Invalid Property Value", "XML", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "XML Wrapped elements can only be used for \"array\" properties.", OasUnexpectedXmlWrappingRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-008", "Unknown Security Scheme Type", "Invalid Property Value", "Security Scheme", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Security Scheme Type must be one of: ${\'options\'}", OasUnknownSecuritySchemeTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-009", "Unknown API Key Location", "Invalid Property Value", "Security Scheme", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "API Key Security Scheme must be located \"in\" one of: ${\'options\'}", OasUnknownApiKeyLocationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-010", "Unknown OAuth Flow Type", "Invalid Property Value", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "OAuth Security Scheme \"flow\" must be one of: implicit, password, application, accessCode", OasUnknownOauthFlowTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SREQ-002", "Security Requirement Scopes Must Be Empty", "Invalid Property Value", "Security Requirement", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Security Requirement \'${\'sname\'}\' scopes must be an empty array because the referenced Security Definition not ${\'options\'}.", OasSecurityRequirementScopesMustBeEmptyRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SREQ-003", "Unexpected Security Requirement Scope(s)", "Invalid Property Value", "Security Requirement", [ValidationRuleSet.oai20_$LI$()], true, "Security Requirement \'${\'sname\'}\' scopes must be an array of values from the possible scopes defined by the referenced Security Definition.", OasUnexpectedSecurityRequirementScopesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ENC-001", "Unexpected Usage of Headers (Multipart Media Type)", "Invalid Property Value", "Encoding", [ValidationRuleSet.oai30_$LI$()], true, "Headers are not allowed for \"${\'name\'}\" media types.", OasUnexpectedHeaderUsageRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ENC-002", "Encoding Style Not Allowed for Media Type", "Invalid Property Value", "Encoding", [ValidationRuleSet.oai30_$LI$()], true, "Encoding Style is not allowed for \"${\'name\'}\" media types.", OasEncodingStyleNotAllowedRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ENC-003", "\'Explode\' Not Allowed for Media Type", "Invalid Property Value", "Encoding", [ValidationRuleSet.oai30_$LI$()], true, "\"Explode\" is not allowed for \"${\'name\'}\" media types.", OasExplodeNotAllowedRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ENC-004", "\'Allow Reserved\' Not Allowed for Media Type", "Invalid Property Value", "Encoding", [ValidationRuleSet.oai30_$LI$()], true, "\"Allow Reserved\" is not allowed for \"${\'name\'}\" media types.", OasAllowReservedNotAllowedRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ENC-005", "Unknown Encoding Style", "Invalid Property Value", "Encoding", [ValidationRuleSet.oai30_$LI$()], true, "Encoding Style is an invalid value.", OasUnknownEncodingStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-010", "InvalidHeaderStyle", "Invalid Property Value", "Header", [ValidationRuleSet.oai30_$LI$()], true, "Header Style must be \"simple\".", OasInvalidHeaderStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-011", "Unexpected Number of Header Media Types", "Invalid Property Value", "Header", [ValidationRuleSet.oai30_$LI$()], true, "Header content cannot have multiple media types.", OasUnexpectedNumberOfHeaderMTsRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LINK-002", "Invalid Link OperationID Reference", "Invalid Reference", "Link", [ValidationRuleSet.oai30_$LI$()], true, "The Operation ID does not refer to an existing Operation.", OasInvalidLinkOperationIdRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("MT-003", "Invalid Encoding For Multi-Part Media Type", "Invalid Property Value", "Media Type", [ValidationRuleSet.oai30_$LI$()], true, "Encoding is not allowed for \"${\'name\'}\" media types.", OasInvalidEncodingForMPMTRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-009", "Unexpected Request Body", "Invalid Property Value", "Operation", [ValidationRuleSet.oai30_$LI$()], true, "Request Body is not supported for ${\'method\'} operations.", OasUnexpectedRequestBodyRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-011", "Missing Path Parameter Definition", "Invalid Property Value", "Operation", [ValidationRuleSet.oai30_$LI$()], true, "No definition found for path variable \"${\'param\'}\" for path \'${\'path\'}\' and method \'${\'method\'}\'.", OasMissingPathParamDefinitionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-013", "Missing Response for Operation", "Invalid Property Value", "Operation", [ValidationRuleSet.oai30_$LI$()], true, "Operation must have at least one Response.", OasMissingResponseForOperationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-022", "Unknown Parameter Style", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Parameter Style must be one of: [\"matrix\", \"label\", \"form\", \"simple\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"] (Found \"${\'style\'}\").", OasUnknownParamStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-023", "Unknown Query Parameter Style", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Query Parameter Style must be one of: [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"] (Found \"${\'style\'}\").", OasUnknownQueryParamStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-024", "Unknown Cookie Parameter Style", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Cookie Parameter style must be \"form\". (Found \"${\'style\'}\")", OasUnknownCookieParamStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-025", "Unknown Header Parameter Style", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Header Parameter Style must be \"simple\". (Found \"${\'style\'}\").", OasUnknownHeaderParamStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-027", "Unknown Path Parameter Style", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Path Parameter Style must be one of: [\"matrix\", \"label\", \"simple\"]  (Found \"${\'style\'}\").", OasUnknownPathParamStyleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-028", "\'Allow Reserved\' Not Allowed for Param", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Allow Reserved is only allowed for Query Parameters.", OasAllowReservedNotAllowedForParamRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-029", "Unexpected Number of Parameter Media Types", "Invalid Property Value", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Parameter content cannot have multiple media types.", OasUnexpectedNumOfParamMTsRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SCH-002", "Unexpected Usage of Discriminator", "Invalid Property Value", "Schema", [ValidationRuleSet.oai30_$LI$()], true, "Schema Discriminator is only allowed when using one of: [\"oneOf\", \"anyOf\", \"allOf\"]", OasUnexpectedUsageOfDiscriminatorRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-016", "Invalid HTTP Security Scheme Type", "Invalid Property Value", "Security Scheme", [ValidationRuleSet.oai30_$LI$()], true, "HTTP Security Scheme must be one of: [\"basic\", \"bearer\", \"digest\", \"hoba\", \"mutual\", \"negotiate\", \"oauth\", \"vapid\", \"scram-sha-1\", \"scram-sha-256\"] (Found: \'${\'scheme\'}\')", OasInvalidHttpSecuritySchemeTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-017", "Unexpected Usage of \'bearerFormat\'", "Invalid Property Value", "Security Scheme", [ValidationRuleSet.oai30_$LI$()], true, "Security Scheme \"Bearer Format\" only allowed for HTTP Bearer auth scheme.", OasUnexpectedUsageOfBearerTokenRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SREQ-004", "Invalid Security Requirement Scopes", "Invalid Property Value", "Security Requirement", [ValidationRuleSet.oai30_$LI$()], true, "Value (scopes) for Security Requirement \"${\'name\'}\" must be an array.", OasInvalidSecurityReqScopesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SVAR-003", "Server Variable Not Found in Template", "Invalid Property Value", "XXX", [ValidationRuleSet.oai30_$LI$()], true, "Server Variable \"${\'name\'}\" is not found in the server url template.", OasServerVarNotFoundInTemplateRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-018", "Invalid Parameter Reference", "Invalid Reference", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Parameter Reference must refer to a valid Parameter Definition.", OasInvalidParameterReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-001", "Invalid Path Item Reference", "Invalid Reference", "Path Item", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path Item Reference must refer to a valid Path Item Definition.", OasInvalidPathItemReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RES-002", "Invalid Response Reference", "Invalid Reference", "Response", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Response Reference must refer to a valid Response Definition.", OasInvalidResponseReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SCH-001", "Invalid Schema Reference", "Invalid Reference", "Schema", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Schema Reference must refer to a valid Schema Definition.", OasInvalidSchemaReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SREQ-001", "Invalid Security Requirement Name", "Invalid Reference", "Security Requirement", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Security Requirement \'${\'name\'}\' must refer to a valid Security Scheme.", OasInvalidSecurityRequirementNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-018", "Invalid Security Scheme Reference", "Invalid Reference", "Security Scheme", [ValidationRuleSet.oai30_$LI$()], true, "Security Scheme Reference must refer to a valid Security Scheme Definition.", OasInvalidSecuritySchemeReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("CALL-001", "Invalid Callback Reference", "Invalid Reference", "Callback", [ValidationRuleSet.oai30_$LI$()], true, "Callback Reference must refer to a valid Callback Definition.", OasInvalidCallbackReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("EX-003", "Invalid Example Reference", "Invalid Reference", "Example", [ValidationRuleSet.oai30_$LI$()], true, "Example Reference must refer to a valid Example Definition.", OasInvalidExampleReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-012", "Invalid Head Reference", "Invalid Reference", "Header", [ValidationRuleSet.oai30_$LI$()], true, "Header Reference must refer to a valid Header Definition.", OasInvalidHeaderReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LINK-005", "Invalid Link Reference", "Invalid Reference", "Link", [ValidationRuleSet.oai30_$LI$()], true, "Link Reference must refer to a valid Link Definition.", OasInvalidLinkReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LINK-003", "Invalid Link Operation Reference", "Invalid Reference", "Link", [ValidationRuleSet.oai30_$LI$()], true, "Link \"Operation Reference\" must refer to a valid Operation Definition.", OasInvalidLinkOperationReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RB-003", "Invalid Request Body Reference", "Invalid Reference", "Request Body", [ValidationRuleSet.oai30_$LI$()], true, "Request Body Reference must refer to a valid Request Body Definition.", OasInvalidRequestBodyReferenceRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PATH-002", "Body and Form Data Params are Mutually Exclusive", "Mutual Exclusivity", "Operation", [ValidationRuleSet.oai20_$LI$()], true, "Operation may not have both Body and Form Data parameters.", OasBodyAndFormDataMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("EX-004", "Example Value and External Value are Mutually Exclusive", "Mutual Exclusivity", "Example", [ValidationRuleSet.oai30_$LI$()], true, "Example \"Value\" and \"External Value\" are mutually exclusive.", OasExampleValueMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-013", "Header Example and Examples are Mutually Exclusive", "Mutual Exclusivity", "Header", [ValidationRuleSet.oai30_$LI$()], true, "Header \"Example\" and \"Examples\" are mutually exclusive.", OasHeaderExamplesMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-014", "Header Schema and Content are Mutually Exclusive", "Mutual Exclusivity", "Header", [ValidationRuleSet.oai30_$LI$()], true, "Header cannot have both a Schema and Content.", OasHeaderSchemaContentMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LINK-001", "Link Operation Ref and Operation ID are Mutually Exclusive", "Mutual Exclusivity", "Link", [ValidationRuleSet.oai30_$LI$()], true, "Link Operation Reference and Operation ID cannot both be used.", OasLinkOperationRefMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("MT-001", "Media Type Example and Examples are Mutually Exclusive", "Mutual Exclusivity", "Media Type", [ValidationRuleSet.oai30_$LI$()], true, "Media Type \"Example\" and \"Examples\" are mutually exclusive.", OasMediaTypeExamplesMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-030", "Parameter Schema and Content are Mutually Exclusive", "Mutual Exclusivity", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Parameter cannot have both a Schema and Content.", OasParameterSchemaContentMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-031", "Parameter Example and Examples are Mutually Exclusive", "Mutual Exclusivity", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "Parameter \"Example\" and \"Examples\" are mutually exclusive.", OasParameterExamplesMutualExclusivityRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-001", "Missing OpenAPI Property", "Required Property", "API", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "API is missing the \'openapi\' property.", OasMissingOpenApiPropertyRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-002", "Missing API Information", "Required Property", "API", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "API is missing the \'info\' property.", OasMissingApiInformationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("R-003", "Missing API Paths", "Required Property", "API", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "API is missing the \'paths\' property.", OasMissingApiPathsRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("INF-001", "Missing API Title", "Required Property", "Info", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "API is missing a title.", MissingApiTitleRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("INF-002", "Missing API Version", "Required Property", "Info", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "API is missing a version.", MissingApiVersionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("LIC-001", "Missing License Name", "Required Property", "License", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "License is missing a name.", MissingLicenseNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-007", "Missing Operation Responses", "Required Property", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Operation must have at least one response.", OasMissingOperationResponsesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-008", "Missing Operation ID", "Required Property", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], false, "Operation is missing a operation id.", MissingOperationIdRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-014", "Missing Operation Summary", "Required Property", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], false, "Operation is missing a summary.", MissingOperationSummaryRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-015", "Missing Operation Description", "Required Property", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], false, "Operation is missing a description.", MissingOperationDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("OP-016", "Missing Operation Tags", "Required Property", "Operation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], false, "Operation must have at least one tag.", OasMissingOperationTagsRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("ED-001", "Missing External Documentation URL", "Required Property", "External Documentation", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "External Documentation is missing a URL.", OasMissingExternalDocumentationUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-001", "Missing Parameter Name", "Required Property", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Parameter is missing a name.", OasMissingParameterNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-002", "Missing Parameter Location", "Required Property", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Parameter is missing a location (Query, Header, etc).", OasMissingParameterLocationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-003", "Path Parameters Must Be Required", "Required Property", "Parameter", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Path Parameter \"${\'name\'}\" must be marked as required.", OasPathParamsMustBeRequiredRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-004", "Missing Body Parameter Schema", "Required Property", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Body Parameters must have a schema defined.", OasMissingBodyParameterSchemaRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-005", "Missing Parameter Type", "Required Property", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Parameter \'${\'name\'}\' is missing a type.", OasMissingParameterTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-006", "Missing Parameter Array Type", "Required Property", "Parameter", [ValidationRuleSet.oai20_$LI$()], true, "Parameter \'${\'name\'}\' marked as array but no array type provided.", OasMissingParameterArrayTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-001", "Missing Items Type", "Required Property", "Items", [ValidationRuleSet.oai20_$LI$()], true, "Type information is missing for array items.", OasMissingItemsTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("IT-002", "Missing Items Array Information", "Required Property", "Items", [ValidationRuleSet.oai20_$LI$()], true, "Type information missing for array items.", OasMissingItemsArrayInformationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RES-001", "Missing Response Description", "Required Property", "Response", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Response (code ${\'statusCode\'}) is missing a description.", OasMissingResponseDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RDEF-002", "Missing Response Definition Description", "Required Property", "Response Definition", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Response Definition \'${\'name\'}\' is missing a description.", OasMissingResponseDefinitionDescriptionRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-001", "Missing Header Type", "Required Property", "Header", [ValidationRuleSet.oai20_$LI$()], true, "Header is missing type information.", OasMissingHeaderTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-002", "Missing Header Array Information", "Required Property", "Header", [ValidationRuleSet.oai20_$LI$()], true, "Header is missing array type information.", OasMissingHeaderArrayInformationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SCH-005", "Missing Schema Array Information", "Required Property", "Schema", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$()], true, "Schema is missing array type information.", OasMissingSchemaArrayInformationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("TAG-001", "Missing Tag Name", "Required Property", "Tag", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Tag is missing a name.", MissingTagNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-001", "Missing Security Scheme Type", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Security Scheme is missing a type.", MissingSecuritySchemeTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-002", "Missing API-Key Scheme Parameter Name", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "API Key Security Scheme is missing a parameter name (e.g. name of a header or query param).", MissingApiKeySchemeParamNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-003", "Missing API-Key Scheme Parameter Location", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$(), ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "API Key Security Scheme must describe where the Key can be found (e.g. header, query param, etc).", MissingApiKeySchemeParamLocationRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-004", "Missing OAuth Scheme Flow Type", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "OAuth Security Scheme is missing a flow type.", OasMissingOAuthSchemeFlowTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-005", "Missing OAuth Scheme Auth URL", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "OAuth Security Scheme is missing an Authorization URL.", OasMissingOAuthSchemeAuthUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-006", "Missing OAuth Scheme Token URL", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "OAuth Security Scheme is missing a Token URL.", OasMissingOAuthSchemeTokenUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-007", "Missing OAuth Scheme Scopes", "Required Property", "Security Scheme", [ValidationRuleSet.oai20_$LI$()], true, "OAuth Security Scheme is missing defined scopes.", OasMissingOAuthSchemeScopesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("DISC-001", "Missing a Discriminator Property Name", "Required Property", "Discriminator", [ValidationRuleSet.oai30_$LI$()], true, "Discriminator must indicate a property (by name).", OasMissingDiscriminatorPropertyNameRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("FLOW-006", "Missing OAuth Flow Scopes", "Required Property", "OAuth Flow", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "OAuth Flow is missing defined scopes.", MissingOAuthFlowScopesRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("FLOW-001", "Missing OAuth Flow Authorization URL", "Required Property", "OAuth Flow", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "${\'flowType\'} OAuth Flow is missing an Authorization URL.", MissingOAuthFlowAuthUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("FLOW-002", "Missing OAuth Flow Token URL", "Required Property", "OAuth Flow", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "${\'flowType\'} OAuth Flow is missing a Token URL.", MissingOAuthFlowRokenUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("RB-002", "Missing Request Body Content", "Required Property", "Request Body", [ValidationRuleSet.oai30_$LI$()], true, "Request Body content is missing.", OasMissingRequestBodyContentRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SRV-001", "Missing Server Template URL", "Required Property", "Server", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "Server is missing a template URL.", MissingServerTemplateUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SRV-004", "Missing Server Protocol", "Required Property", "Server", [ValidationRuleSet.aai20_$LI$()], true, "Server is missing a protocol.", AasMissingServerProtocolRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-019", "Missing HTTP Security Scheme Style", "Required Property", "Security Scheme", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "HTTP Security Scheme is missing a scheme (Basic, Digest, etc).", MissingHttpSecuritySchemeTypeRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-020", "Missing OAuth Security Scheme Flows", "Required Property", "Security Scheme", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "OAuth Security Scheme does not define any OAuth flows.", MissingOAuthSecuritySchemeFlowsRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SS-021", "Missing OID Connect Security Scheme Connect URL", "Required Property", "Security Scheme", [ValidationRuleSet.oai30_$LI$(), ValidationRuleSet.aai20_$LI$()], true, "OpenID Connect Security Scheme is missing a Connect URL.", MissingOpenIdConnectSecuritySchemeConnectUrlRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SVAR-001", "Missing Server Variable Default Value", "Required Property", "Server Variable", [ValidationRuleSet.oai30_$LI$()], true, "Server Variable \"${\'name\'}\" is missing a default value.", OasMissingServerVarDefaultValueRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("CID-001", "Missing Correlation ID Location", "Required Property", "Correlation ID", [ValidationRuleSet.aai20_$LI$()], true, "Correlation ID is missing a Location", AaMissingCorrelationIdRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("HEAD-008", "Ignored Content-Type Header", "Ignored Property", "Header", [ValidationRuleSet.oai30_$LI$()], true, "The \"Content-Type\" header will be ignored.", OasIgnoredContentTypeHeaderRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("PAR-021", "Ignored Header Parameter", "Ignored Property", "Parameter", [ValidationRuleSet.oai30_$LI$()], true, "The \"${\'name\'}\" header parameter will be ignored.", OasIgnoredHeaderParameterRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SCH-003", "Invalid Schema Type Value", "Invalid Property Type", "Schema", [ValidationRuleSet.oai30_$LI$()], true, "Schema type value of \"${\'type\'}\" is not allowed.  Must be one of: [${\'allowedTypes\'}]", OasInvalidSchemaTypeValueRule)) > 0);
        /* add */ (this.rules.push(ValidationRuleSet.md("SCH-004", "Invalid Schema Array Items", "Invalid Property Type", "Schema", [ValidationRuleSet.oai30_$LI$()], true, "Schema items must be present only for schemas of type \'array\'.", OasInvalidSchemaArrayItemsRule)) > 0);
        this.validateRuleData();
    }
    ValidationRuleSet.aai20_$LI$ = function () { if (ValidationRuleSet.aai20 == null)
        ValidationRuleSet.aai20 = DocumentType.asyncapi2; return ValidationRuleSet.aai20; };
    ;
    ValidationRuleSet.oai20_$LI$ = function () { if (ValidationRuleSet.oai20 == null)
        ValidationRuleSet.oai20 = DocumentType.openapi2; return ValidationRuleSet.oai20; };
    ;
    ValidationRuleSet.oai30_$LI$ = function () { if (ValidationRuleSet.oai30 == null)
        ValidationRuleSet.oai30 = DocumentType.openapi3; return ValidationRuleSet.oai30; };
    ;
    ValidationRuleSet.instance_$LI$ = function () { if (ValidationRuleSet.instance == null)
        ValidationRuleSet.instance = new ValidationRuleSet(); return ValidationRuleSet.instance; };
    ;
    ValidationRuleSet.md = function (code, name, type, entity, versions, specMandated, messageTemplate, ruleClass) {
        return new ValidationRuleMetaData(code, name, type, entity, versions, specMandated, messageTemplate, ruleClass);
    };
    /**
     * Verify that there are no duplicate codes in the set of rules.
     * @private
     */
    /*private*/ ValidationRuleSet.prototype.validateRuleData = function () {
        var codes = ([]);
        var names = ([]);
        for (var index136 = 0; index136 < this.rules.length; index136++) {
            var rule = this.rules[index136];
            {
                if ( /* contains */(codes.indexOf((rule.code)) >= 0)) {
                    throw Object.defineProperty(new Error("Duplicate rule code found: " + rule.code), '__classes', { configurable: true, value: ['java.lang.Throwable', 'java.lang.Object', 'java.lang.RuntimeException', 'java.lang.Exception'] });
                }
                else {
                    /* add */ (function (s, e) { if (s.indexOf(e) == -1) {
                        s.push(e);
                        return true;
                    }
                    else {
                        return false;
                    } })(codes, rule.code);
                }
                if ( /* contains */(names.indexOf((rule.name)) >= 0)) {
                    throw Object.defineProperty(new Error("Duplicate rule name found: " + rule.name), '__classes', { configurable: true, value: ['java.lang.Throwable', 'java.lang.Object', 'java.lang.RuntimeException', 'java.lang.Exception'] });
                }
                else {
                    /* add */ (function (s, e) { if (s.indexOf(e) == -1) {
                        s.push(e);
                        return true;
                    }
                    else {
                        return false;
                    } })(names, rule.name);
                }
            }
        }
    };
    /**
     * Gets all of the registered rules.
     * @return {ValidationRuleMetaData[]}
     */
    ValidationRuleSet.prototype.getAllRules = function () {
        return this.rules;
    };
    /**
     * Gets the actual rule instances (visitors) that should be applied to the given document.
     * @param {Document} document
     * @return {ValidationRule[]}
     */
    ValidationRuleSet.prototype.getRulesFor = function (document) {
        var rval = ([]);
        var type = document.getDocumentType();
        for (var index137 = 0; index137 < this.rules.length; index137++) {
            var rule = this.rules[index137];
            {
                if (rule.appliesTo(type)) {
                    var rc = ValidationCompat.instantiate(rule);
                    /* add */ (rval.push(rc) > 0);
                }
            }
        }
        return rval;
    };
    return ValidationRuleSet;
}());
export { ValidationRuleSet };
ValidationRuleSet["__class"] = "io.apicurio.datamodels.core.validation.ValidationRuleSet";
import { ValidationRuleMetaData } from './ValidationRuleMetaData';
//# sourceMappingURL=ValidationRuleSet.js.map