Search in sources :

Example 1 with Oas30RequestBody

use of io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody in project apicurio-data-models by Apicurio.

the class DeleteRequestBodyCommand method readNode.

/**
 * @see io.apicurio.datamodels.cmd.commands.DeleteNodeCommand#readNode(io.apicurio.datamodels.core.models.Document,
 *      java.lang.Object)
 */
@Override
protected Oas30RequestBody readNode(Document doc, Object node) {
    Oas30Operation operation = (Oas30Operation) this._parentPath.resolve(doc);
    Oas30RequestBody requestBody = operation.createRequestBody();
    Library.readNode(node, requestBody);
    return requestBody;
}
Also used : Oas30RequestBody(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody) Oas30Operation(io.apicurio.datamodels.openapi.v3.models.Oas30Operation)

Example 2 with Oas30RequestBody

use of io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody in project apicurio-data-models by Apicurio.

the class Oas30DataModelReader method readRequestBody.

/**
 * Reads an OAS 3.0 Request Body object from the given JS data.
 * @param json
 * @param node
 */
public void readRequestBody(Object json, Oas30RequestBody node) {
    String $ref = JsonCompat.consumePropertyString(json, Constants.PROP_$REF);
    String description = JsonCompat.consumePropertyString(json, Constants.PROP_DESCRIPTION);
    Object content = JsonCompat.consumeProperty(json, Constants.PROP_CONTENT);
    Boolean required = JsonCompat.consumePropertyBoolean(json, Constants.PROP_REQUIRED);
    node.$ref = $ref;
    node.description = description;
    node.required = required;
    if (content != null) {
        JsonCompat.keys(content).forEach(name -> {
            Object mediaType = JsonCompat.consumeProperty(content, name);
            Oas30MediaType mediaTypeModel = node.createMediaType(name);
            this.readMediaType(mediaType, mediaTypeModel);
            node.addMediaType(name, mediaTypeModel);
        });
    }
    this.readExtensions(json, node);
    this.readExtraProperties(json, node);
}
Also used : Oas30MediaType(io.apicurio.datamodels.openapi.v3.models.Oas30MediaType)

Example 3 with Oas30RequestBody

use of io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody in project apicurio-data-models by Apicurio.

the class Oas30IReferenceManipulationStrategy method attachAsComponent.

@Override
public ReferenceAndNode attachAsComponent(Document document, String name, Node component) {
    // TODO visitor?
    if (// TODO get documenttype
    !(document instanceof Oas30Document))
        throw new IllegalArgumentException("Oas30Document expected.");
    Oas30Document model = (Oas30Document) document;
    if (component instanceof Oas30Schema) {
        if (model.components.getSchemaDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30SchemaDefinition definition = wrap(component, new Oas30SchemaDefinition(name), model);
        // TODO this should be done by vvv
        definition.attachToParent(model.components);
        model.components.addSchemaDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "schemas/" + name, definition);
    }
    if (component instanceof Oas30Response) {
        if (model.components.getResponseDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30ResponseDefinition definition = wrap(component, new Oas30ResponseDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addResponseDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "responses/" + name, definition);
    }
    if (component instanceof Oas30Parameter) {
        if (model.components.getParameterDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30ParameterDefinition definition = wrap(component, new Oas30ParameterDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addParameterDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "parameters/" + name, definition);
    }
    if (component instanceof Oas30Example) {
        if (model.components.getExampleDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30ExampleDefinition definition = wrap(component, new Oas30ExampleDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addExampleDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "examples/" + name, definition);
    }
    if (component instanceof Oas30RequestBody) {
        if (model.components.getRequestBodyDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30RequestBodyDefinition definition = wrap(component, new Oas30RequestBodyDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addRequestBodyDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "requestBodies/" + name, definition);
    }
    if (component instanceof Oas30Header) {
        if (model.components.getHeaderDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30HeaderDefinition definition = wrap(component, new Oas30HeaderDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addHeaderDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "headers/" + name, definition);
    }
    if (component instanceof ModernSecurityScheme) {
        if (model.components.getSecurityScheme(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30SecurityScheme definition = wrap(component, new Oas30SecurityScheme(name), model);
        definition.attachToParent(model.components);
        model.components.addSecurityScheme(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "securitySchemes/" + name, definition);
    }
    if (component instanceof Oas30Link) {
        if (model.components.getLinkDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30LinkDefinition definition = wrap(component, new Oas30LinkDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addLinkDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "links/" + name, definition);
    }
    if (component instanceof Oas30Callback) {
        if (model.components.getCallbackDefinition(name) != null)
            throw new IllegalArgumentException("Definition with that name already exists: " + name);
        Oas30CallbackDefinition definition = wrap(component, new Oas30CallbackDefinition(name), model);
        definition.attachToParent(model.components);
        model.components.addCallbackDefinition(definition.getName(), definition);
        return new ReferenceAndNode(PREFIX + "callbacks/" + name, definition);
    }
    return null;
}
Also used : ModernSecurityScheme(io.apicurio.datamodels.core.models.common.ModernSecurityScheme) Oas30CallbackDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30CallbackDefinition) Oas30SchemaDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30SchemaDefinition) Oas30Parameter(io.apicurio.datamodels.openapi.v3.models.Oas30Parameter) Oas30Example(io.apicurio.datamodels.openapi.v3.models.Oas30Example) Oas30Callback(io.apicurio.datamodels.openapi.v3.models.Oas30Callback) Oas30RequestBodyDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBodyDefinition) Oas30ResponseDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30ResponseDefinition) Oas30Schema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema) Oas30Header(io.apicurio.datamodels.openapi.v3.models.Oas30Header) Oas30HeaderDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30HeaderDefinition) Oas30Document(io.apicurio.datamodels.openapi.v3.models.Oas30Document) Oas30ExampleDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30ExampleDefinition) Oas30LinkDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30LinkDefinition) Oas30ParameterDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30ParameterDefinition) Oas30RequestBody(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody) Oas30Link(io.apicurio.datamodels.openapi.v3.models.Oas30Link) Oas30SecurityScheme(io.apicurio.datamodels.openapi.v3.models.Oas30SecurityScheme) Oas30Response(io.apicurio.datamodels.openapi.v3.models.Oas30Response)

Example 4 with Oas30RequestBody

use of io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody in project syndesis by syndesisio.

the class Oas30DataShapeGeneratorHelper method findBodySchema.

/**
 * Find schema that is specified to define the body if any.
 * @param openApiDoc the OpenAPI document.
 * @param operation maybe holding a body schema.
 * @return the body schema.
 */
static Optional<DataShapeGenerator.NameAndSchema> findBodySchema(Oas30Document openApiDoc, Oas30Operation operation, String mediaType) {
    if (operation.requestBody == null) {
        return empty();
    }
    Oas30RequestBody bodyToUse = resolveRequestBody(openApiDoc, operation.requestBody);
    Optional<Oas30MediaType> body = Oas30ModelHelper.getMediaType(bodyToUse, mediaType);
    if (body.isPresent()) {
        String name = ofNullable(body.get().getName()).orElse(bodyToUse.description);
        return Optional.of(new DataShapeGenerator.NameAndSchema(name, body.get().schema));
    }
    return empty();
}
Also used : Oas30RequestBody(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody) DataShapeGenerator(io.syndesis.server.api.generator.openapi.DataShapeGenerator) Oas30MediaType(io.apicurio.datamodels.openapi.v3.models.Oas30MediaType)

Example 5 with Oas30RequestBody

use of io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody in project apicurio-data-models by Apicurio.

the class Oas20to30TransformationVisitor method visitParameter.

/**
 * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameter(io.apicurio.datamodels.core.models.common.Parameter)
 */
@Override
public void visitParameter(Parameter node) {
    Oas20Parameter param20 = (Oas20Parameter) node;
    if (NodeCompat.equals(param20.in, "body")) {
        Oas30Operation operation30 = (Oas30Operation) this.lookup(this.findParentOperation(param20));
        if (!NodeCompat.isNullOrUndefined(operation30)) {
            Oas30RequestBody body30 = (Oas30RequestBody) operation30.createRequestBody();
            operation30.requestBody = body30;
            body30.description = param20.description;
            body30.required = param20.required;
            if (!NodeCompat.isNullOrUndefined(param20.schema)) {
                List<String> consumes = this.findConsumes(param20);
                Oas20Schema schema = (Oas20Schema) param20.schema;
                consumes.forEach(ct -> {
                    Oas30MediaType mediaType30 = body30.createMediaType(ct);
                    body30.addMediaType(ct, mediaType30);
                    Oas30Schema schema30 = mediaType30.createSchema();
                    mediaType30.schema = this.toSchema(schema, schema30, true);
                    this.mapNode(schema, schema30);
                });
            }
        }
    } else if (NodeCompat.equals(param20.in, "formData")) {
        Oas30Operation operation30 = (Oas30Operation) this.lookup(this.findParentOperation(param20));
        if (!NodeCompat.isNullOrUndefined(operation30)) {
            List<String> consumes = this.findConsumes(param20);
            if (!this.hasFormDataMimeType(consumes)) {
                consumes = NodeCompat.asList("application/x-www-form-urlencoded");
            }
            consumes.forEach(ct -> {
                if (this.isFormDataMimeType(ct)) {
                    Oas30RequestBody body30 = operation30.requestBody;
                    if (NodeCompat.isNullOrUndefined(body30)) {
                        body30 = operation30.createRequestBody();
                        operation30.requestBody = body30;
                        body30.required = true;
                    }
                    Oas30MediaType mediaType30 = body30.getMediaType(ct);
                    if (NodeCompat.isNullOrUndefined(mediaType30)) {
                        mediaType30 = body30.createMediaType(ct);
                        body30.addMediaType(ct, mediaType30);
                    }
                    Oas30Schema schema30 = mediaType30.schema;
                    if (NodeCompat.isNullOrUndefined(schema30)) {
                        schema30 = mediaType30.createSchema();
                        mediaType30.schema = schema30;
                        schema30.type = "object";
                    }
                    Oas30PropertySchema property30 = (Oas30PropertySchema) schema30.createPropertySchema(param20.name);
                    schema30.addProperty(param20.name, property30);
                    property30.description = param20.description;
                    this.toSchema(param20, property30, false);
                    this.mapNode(param20, schema30);
                }
            });
        }
    } else {
        if (this.isRef(param20)) {
            Oas20ParameterDefinition paramDef = (Oas20ParameterDefinition) ReferenceUtil.resolveRef(param20.$ref, param20);
            // Request Bodies.  So a reference to a "body" param should become a reference to a request body.
            if (!NodeCompat.isNullOrUndefined(paramDef) && NodeCompat.equals(paramDef.in, "body")) {
                Oas30Operation parent30 = (Oas30Operation) this.lookup(this.findParentOperation(param20));
                if (!NodeCompat.isNullOrUndefined(parent30)) {
                    Oas30RequestBody body30 = parent30.createRequestBody();
                    parent30.requestBody = body30;
                    body30.$ref = "#/components/requestBodies/" + paramDef.getName();
                    this.mapNode(param20, body30);
                    return;
                }
            }
            // treat the param as though it is inlined (which will result in a requestBody model).
            if (!NodeCompat.isNullOrUndefined(paramDef) && NodeCompat.equals(paramDef.in, "formData")) {
                // Inline the parameter definition and then re-visit it.
                Library.readNode(Library.writeNode(paramDef), param20);
                param20.$ref = null;
                this.visitParameter(param20);
                return;
            }
        }
        // Now we have normal handling of a parameter, examples include path params, query params, header params, etc.
        IOasParameterParent parent30 = (IOasParameterParent) this.lookup(param20.parent());
        Oas30Parameter param30 = (Oas30Parameter) parent30.createParameter();
        parent30.addParameter(param30);
        this.transformParam(param20, param30);
        this.mapNode(param20, param30);
    }
}
Also used : Tag(io.apicurio.datamodels.core.models.common.Tag) OasResponses(io.apicurio.datamodels.openapi.models.OasResponses) IReferenceNode(io.apicurio.datamodels.core.models.IReferenceNode) Oas30ExternalDocumentation(io.apicurio.datamodels.openapi.v3.models.Oas30ExternalDocumentation) Oas30ParameterDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30ParameterDefinition) Oas20PropertySchema(io.apicurio.datamodels.openapi.v2.models.Oas20Schema.Oas20PropertySchema) Oas30ServerVariable(io.apicurio.datamodels.openapi.v3.models.Oas30ServerVariable) Info(io.apicurio.datamodels.core.models.common.Info) Oas20ResponseDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20ResponseDefinitions) Oas20Operation(io.apicurio.datamodels.openapi.v2.models.Oas20Operation) Oas30Document(io.apicurio.datamodels.openapi.v3.models.Oas30Document) Oas30Schema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema) Oas30Server(io.apicurio.datamodels.openapi.v3.models.Oas30Server) Oas20SecurityDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20SecurityDefinitions) Oas30AllOfSchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30AllOfSchema) Map(java.util.Map) Oas20ParameterDefinition(io.apicurio.datamodels.openapi.v2.models.Oas20ParameterDefinition) Parameter(io.apicurio.datamodels.core.models.common.Parameter) Oas20SecurityScheme(io.apicurio.datamodels.openapi.v2.models.Oas20SecurityScheme) Oas20Parameter(io.apicurio.datamodels.openapi.v2.models.Oas20Parameter) Schema(io.apicurio.datamodels.core.models.common.Schema) Oas30Paths(io.apicurio.datamodels.openapi.v3.models.Oas30Paths) NodePath(io.apicurio.datamodels.core.models.NodePath) Oas20Definitions(io.apicurio.datamodels.openapi.v2.models.Oas20Definitions) Library(io.apicurio.datamodels.Library) Oas30License(io.apicurio.datamodels.openapi.v3.models.Oas30License) ExternalDocumentation(io.apicurio.datamodels.core.models.common.ExternalDocumentation) IExample(io.apicurio.datamodels.core.models.common.IExample) IOasParameterParent(io.apicurio.datamodels.openapi.models.IOasParameterParent) Oas30RequestBody(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody) Oas30PropertySchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30PropertySchema) OasPaths(io.apicurio.datamodels.openapi.models.OasPaths) Oas20Schema(io.apicurio.datamodels.openapi.v2.models.Oas20Schema) Oas30Header(io.apicurio.datamodels.openapi.v3.models.Oas30Header) ValidationProblem(io.apicurio.datamodels.core.models.ValidationProblem) SecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement) List(java.util.List) OperationFinder(io.apicurio.datamodels.core.visitors.OperationFinder) Extension(io.apicurio.datamodels.core.models.Extension) Oas30Operation(io.apicurio.datamodels.openapi.v3.models.Oas30Operation) ConsumesProducesFinder(io.apicurio.datamodels.core.visitors.ConsumesProducesFinder) Oas30Responses(io.apicurio.datamodels.openapi.v3.models.Oas30Responses) Operation(io.apicurio.datamodels.core.models.common.Operation) Oas30Components(io.apicurio.datamodels.openapi.v3.models.Oas30Components) Oas30XML(io.apicurio.datamodels.openapi.v3.models.Oas30XML) ExtensibleNode(io.apicurio.datamodels.core.models.ExtensibleNode) OasXML(io.apicurio.datamodels.openapi.models.OasXML) Oas30SchemaDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30SchemaDefinition) Oas20SecurityRequirement(io.apicurio.datamodels.openapi.v2.models.Oas20SecurityRequirement) Oas20SchemaDefinition(io.apicurio.datamodels.openapi.v2.models.Oas20SchemaDefinition) ReferenceUtil(io.apicurio.datamodels.core.util.ReferenceUtil) OasHeader(io.apicurio.datamodels.openapi.models.OasHeader) HashMap(java.util.HashMap) Oas30Contact(io.apicurio.datamodels.openapi.v3.models.Oas30Contact) DocumentType(io.apicurio.datamodels.core.models.DocumentType) OasPathItem(io.apicurio.datamodels.openapi.models.OasPathItem) Oas30Parameter(io.apicurio.datamodels.openapi.v3.models.Oas30Parameter) IExternalDocumentationParent(io.apicurio.datamodels.core.models.common.IExternalDocumentationParent) IPropertySchema(io.apicurio.datamodels.core.models.common.IPropertySchema) Oas30Response(io.apicurio.datamodels.openapi.v3.models.Oas30Response) ArrayList(java.util.ArrayList) Oas20Scopes(io.apicurio.datamodels.openapi.v2.models.Oas20Scopes) Oas20ParameterDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20ParameterDefinitions) TraverserDirection(io.apicurio.datamodels.core.visitors.TraverserDirection) Oas30MediaType(io.apicurio.datamodels.openapi.v3.models.Oas30MediaType) Oas30SecurityRequirement(io.apicurio.datamodels.openapi.v3.models.Oas30SecurityRequirement) Oas30AdditionalPropertiesSchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30AdditionalPropertiesSchema) IOas20Visitor(io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor) Oas20Headers(io.apicurio.datamodels.openapi.v2.models.Oas20Headers) Document(io.apicurio.datamodels.core.models.Document) License(io.apicurio.datamodels.core.models.common.License) Oas30ResponseDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30ResponseDefinition) Oas20Response(io.apicurio.datamodels.openapi.v2.models.Oas20Response) ISecurityRequirementParent(io.apicurio.datamodels.core.models.common.ISecurityRequirementParent) Oas20Items(io.apicurio.datamodels.openapi.v2.models.Oas20Items) Contact(io.apicurio.datamodels.core.models.common.Contact) Oas30RequestBodyDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBodyDefinition) JsonCompat(io.apicurio.datamodels.compat.JsonCompat) Node(io.apicurio.datamodels.core.models.Node) SecurityScheme(io.apicurio.datamodels.core.models.common.SecurityScheme) OasSchema(io.apicurio.datamodels.openapi.models.OasSchema) IDefinition(io.apicurio.datamodels.core.models.common.IDefinition) Oas30ItemsSchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30ItemsSchema) Oas30Info(io.apicurio.datamodels.openapi.v3.models.Oas30Info) OasResponse(io.apicurio.datamodels.openapi.models.OasResponse) Oas30SecurityScheme(io.apicurio.datamodels.openapi.v3.models.Oas30SecurityScheme) NodeCompat(io.apicurio.datamodels.compat.NodeCompat) Oas20Document(io.apicurio.datamodels.openapi.v2.models.Oas20Document) Oas30PathItem(io.apicurio.datamodels.openapi.v3.models.Oas30PathItem) Constants(io.apicurio.datamodels.core.Constants) Oas30Parameter(io.apicurio.datamodels.openapi.v3.models.Oas30Parameter) Oas20ParameterDefinition(io.apicurio.datamodels.openapi.v2.models.Oas20ParameterDefinition) Oas30Operation(io.apicurio.datamodels.openapi.v3.models.Oas30Operation) Oas30Schema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema) Oas20Parameter(io.apicurio.datamodels.openapi.v2.models.Oas20Parameter) Oas20Schema(io.apicurio.datamodels.openapi.v2.models.Oas20Schema) IOasParameterParent(io.apicurio.datamodels.openapi.models.IOasParameterParent) Oas30RequestBody(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody) Oas30PropertySchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30PropertySchema) List(java.util.List) ArrayList(java.util.ArrayList) Oas30MediaType(io.apicurio.datamodels.openapi.v3.models.Oas30MediaType)

Aggregations

Oas30RequestBody (io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody)3 Oas30MediaType (io.apicurio.datamodels.openapi.v3.models.Oas30MediaType)2 Library (io.apicurio.datamodels.Library)1 JsonCompat (io.apicurio.datamodels.compat.JsonCompat)1 NodeCompat (io.apicurio.datamodels.compat.NodeCompat)1 Constants (io.apicurio.datamodels.core.Constants)1 Document (io.apicurio.datamodels.core.models.Document)1 DocumentType (io.apicurio.datamodels.core.models.DocumentType)1 ExtensibleNode (io.apicurio.datamodels.core.models.ExtensibleNode)1 Extension (io.apicurio.datamodels.core.models.Extension)1 IReferenceNode (io.apicurio.datamodels.core.models.IReferenceNode)1 Node (io.apicurio.datamodels.core.models.Node)1 NodePath (io.apicurio.datamodels.core.models.NodePath)1 ValidationProblem (io.apicurio.datamodels.core.models.ValidationProblem)1 Contact (io.apicurio.datamodels.core.models.common.Contact)1 ExternalDocumentation (io.apicurio.datamodels.core.models.common.ExternalDocumentation)1 IDefinition (io.apicurio.datamodels.core.models.common.IDefinition)1 IExample (io.apicurio.datamodels.core.models.common.IExample)1 IExternalDocumentationParent (io.apicurio.datamodels.core.models.common.IExternalDocumentationParent)1 IPropertySchema (io.apicurio.datamodels.core.models.common.IPropertySchema)1