/** * @license * Copyright 2017 Red Hat * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Oas30ValidationRule } from "./common.rule"; import { Oas30XML } from "../../models/3.0/xml.model"; import { Oas30Encoding } from "../../models/3.0/encoding.model"; import { Oas30MediaType } from "../../models/3.0/media-type.model"; import { Oas30Header, Oas30HeaderDefinition } from "../../models/3.0/header.model"; import { Oas30Link, Oas30LinkDefinition } from "../../models/3.0/link.model"; import { Oas30NodeVisitorAdapter } from "../../visitors/visitor.base"; import { Oas30Operation } from "../../models/3.0/operation.model"; import { Oas30Parameter, Oas30ParameterDefinition } from "../../models/3.0/parameter.model"; import { Oas30SecurityScheme } from "../../models/3.0/security-scheme.model"; import { Oas30Responses } from "../../models/3.0/responses.model"; import { Oas30SecurityRequirement } from "../../models/3.0/security-requirement.model"; import { Oas30Discriminator } from "../../models/3.0/discriminator.model"; import { Oas30ServerVariable } from "../../models/3.0/server-variable.model"; /** * Used to find an operation with a given operation id. */ export declare class Oas30OperationFinder extends Oas30NodeVisitorAdapter { private operationId; private foundOp; constructor(operationId: string); visitOperation(node: Oas30Operation): void; isFound(): boolean; } /** * Implements the Invalid Property Value validation rule. This rule is responsible * for reporting whenever the **value** of a property fails to conform to requirements * outlined by the specification. This is typically things like enums, where the * *format* of the value is fine (e.g. correct data-type) but the valid is somehow * invalid. */ export declare class Oas30InvalidPropertyValueValidationRule extends Oas30ValidationRule { /** * Returns true if the given value is a valid operationId. * @param id */ private isValidOperationId(id); /** * Parses the given path template for segments. For example, a path template might be * * /foo/{fooId}/resources/{resourceId} * * In this case, this method will return [ "fooId", "resourceId" ] * * @param pathTemplate * @return {Array} */ private parsePathTemplate(pathTemplate); /** * Parses the given server template for variable names. For example, a server template might be * * https://{username}.gigantic-server.com:{port}/{basePath} * * In this case, this method will return [ "username", "port", "basePath" ] * * @param serverTemplate * @return {Array} */ private parseServerTemplate(serverTemplate); /** * Returns true if it's OK to use "wrapped" in the XML node. It's only OK to do this if * the type being defined is an 'array' type. * @param xml * @return {boolean} */ private isWrappedOK(xml); /** * Returns true if the given media type name is multipart/* or application/x-www-form-urlencoded * @param {string} typeName * @return {boolean} */ private isValidMultipartType(typeName); /** * Returns true if the given operation is one of: POST, PUT, OPTIONS * @param {Oas30Operation} operation * @return {boolean} */ private isValidRequestBodyOperation(operation); visitEncoding(node: Oas30Encoding): void; visitHeader(node: Oas30Header): void; visitHeaderDefinition(node: Oas30HeaderDefinition): void; visitLink(node: Oas30Link): void; visitLinkDefinition(node: Oas30LinkDefinition): void; visitMediaType(node: Oas30MediaType): void; visitOperation(node: Oas30Operation): void; visitResponses(node: Oas30Responses): void; visitParameter(node: Oas30Parameter): void; visitParameterDefinition(node: Oas30ParameterDefinition): void; visitXML(node: Oas30XML): void; visitDiscriminator(node: Oas30Discriminator): void; visitSecurityScheme(node: Oas30SecurityScheme): void; visitSecurityRequirement(node: Oas30SecurityRequirement): void; visitServerVariable(node: Oas30ServerVariable): void; }