Repository: eclipse/microprofile-open-api
Pull request #239 (2018-07-13 12:54:42)

#216 - Add example to content
Signed-off-by: ivanjunckes <ijunckes@tomitribe.com>


Patch:
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Content.java b/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Content.java
index 6867584..3d17717 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Content.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Content.java
@@ -46,6 +46,14 @@ public @interface Content {
      **/
     ExampleObject[] examples() default {};
 
+
+    /**
+     * A free-form property to include an example of an instance for this content.
+     *
+     * @return an example of this content
+     **/
+    String example() default "";
+
     /**
      * The schema defining the type used for the request body.
      *
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Schema.java b/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Schema.java
index 7d710db..f023c24 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Schema.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/annotations/media/Schema.java
@@ -111,8 +111,8 @@ public @interface Schema {
     double multipleOf() default 0;
 
     /**
-     * Sets the maximum numeric value for a property.  Value must be a valid number. 
-     * Ignored if the value is an empty string or not a number.
+     * Sets the maximum numeric value for a property. 
+     * Ignored if the value is an empty string.
      * 
      * @return the maximum value for this schema
      **/
@@ -126,7 +126,7 @@ public @interface Schema {
     boolean exclusiveMaximum() default false;
 
     /**
-     * Sets the minimum numeric value for a property. Value must be a valid number.
+     * Sets the minimum numeric value for a property. 
      * Ignored if the value is an empty string or not a number.
      * 
      * @return the minimum value for this schema
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/Components.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/Components.java
index f5c58b6..6a784dd 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/Components.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/Components.java
@@ -49,7 +49,7 @@ import org.eclipse.microprofile.openapi.models.security.SecurityScheme;
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject"> OpenAPI Specification Components
  *      Object</a>
  */
-public interface Components extends Constructible, Extensible<Components> {
+public interface Components extends Constructible, Extensible {
 
     /**
      * Returns the schemas property from a Components instance.
@@ -71,10 +71,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param schemas a Map containing keys and reusable schemas
      * @return the current Components object
      */
-    default Components schemas(Map<String, Schema> schemas) {
-        setSchemas(schemas);
-        return this;
-    }
+    Components schemas(Map<String, Schema> schemas);
 
     /**
      * Adds the given schema to this Components' list of schemas with the given string as its key.
@@ -105,10 +102,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param responses a Map containing keys and reusable response objects
      * @return the current Components object
      */
-    default Components responses(Map<String, APIResponse> responses) {
-        setResponses(responses);
-        return this;
-    }
+    Components responses(Map<String, APIResponse> responses);
 
     /**
      * Adds the given response to this Components' map of responses with the given string as its key.
@@ -139,10 +133,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param parameters a Map containing keys and reusable parameter objects
      * @return the current Components object
      */
-    default Components parameters(Map<String, Parameter> parameters) {
-        setParameters(parameters);
-        return this;
-    }
+    Components parameters(Map<String, Parameter> parameters);
 
     /**
      * Adds the given parameter to this Components' map of parameters with the given string as its key.
@@ -173,10 +164,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param examples a Map containing keys and reusable example objects
      * @return the current Components object
      */
-    default Components examples(Map<String, Example> examples) {
-        setExamples(examples);
-        return this;
-    }
+    Components examples(Map<String, Example> examples);
 
     /**
      * Adds the given example to this Components' map of examples with the given string as its key.
@@ -207,10 +195,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param requestBodies a Map containing the keys and reusable request body objects
      * @return the current Components object
      */
-    default Components requestBodies(Map<String, RequestBody> requestBodies) {
-        setRequestBodies(requestBodies);
-        return this;
-    }
+    Components requestBodies(Map<String, RequestBody> requestBodies);
 
     /**
      * Adds the given request body to this Components' map of request bodies with the given string as its key.
@@ -241,10 +226,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param headers a Map containing the keys and reusable header objects
      * @return the current Components object
      */
-    default Components headers(Map<String, Header> headers) {
-        setHeaders(headers);
-        return this;
-    }
+    Components headers(Map<String, Header> headers);
 
     /**
      * Adds the given header to this Components' map of headers with the given string as its key.
@@ -275,10 +257,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param securitySchemes a Map containing the keys and reusable security scheme objects
      * @return the current Components object
      */
-    default Components securitySchemes(Map<String, SecurityScheme> securitySchemes) {
-        setSecuritySchemes(securitySchemes);
-        return this;
-    }
+    Components securitySchemes(Map<String, SecurityScheme> securitySchemes);
 
     /**
      * Adds the given security scheme to this Components' map of security schemes with the given string as its key.
@@ -309,10 +288,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param links a Map containing the keys and reusable link objects
      * @return the current Components object
      */
-    default Components links(Map<String, Link> links) {
-        setLinks(links);
-        return this;
-    }
+    Components links(Map<String, Link> links);
 
     /**
      * Adds the given link to this Components' map of links with the given string as its key.
@@ -343,10 +319,7 @@ public interface Components extends Constructible, Extensible<Components> {
      * @param callbacks a Map containing the keys and reusable callback objects
      * @return the current Components object
      */
-    default Components callbacks(Map<String, Callback> callbacks) {
-        setCallbacks(callbacks);
-        return this;
-    }
+    Components callbacks(Map<String, Callback> callbacks);
 
     /**
      * Adds the given callback to this Components' map of callbacks with the given string as its key.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/Extensible.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/Extensible.java
index 9741312..b64139e 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/Extensible.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/Extensible.java
@@ -25,7 +25,7 @@ import java.util.Map;
  * <p>
  * The extensions property names are always prefixed by "x-".
  */
-public interface Extensible<T extends Extensible<T>> {
+public interface Extensible {
 
     /**
      * Returns the extensions property from an Extensible instance.
@@ -34,26 +34,13 @@ public interface Extensible<T extends Extensible<T>> {
      **/
     Map<String, Object> getExtensions();
 
-    /**
-     * Sets this Extensible's extensions property to the given map of extensions.
-     * 
-     * @param extensions map containing keys which start with "x-" and values which provide additional information
-     * @return the current instance
-     */
-    default T extensions(Map<String, Object> extensions) {
-        setExtensions(extensions);
-        @SuppressWarnings("unchecked")
-        T t = (T) this;
-        return t;
-    }
-
     /**
      * Adds the given object to this Extensible's map of extensions, with the given name as its key.
      *
      * @param name the key used to access the extension object. Always prefixed by "x-".
      * @param value data not required by the specification
      */
-    T addExtension(String name, Object value);
+    void addExtension(String name, Object value);
 
     /**
      * Sets this Extensible's extensions property to the given map of extensions.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/ExternalDocumentation.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/ExternalDocumentation.java
index 5ddb55e..13a817f 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/ExternalDocumentation.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/ExternalDocumentation.java
@@ -26,7 +26,7 @@ package org.eclipse.microprofile.openapi.models;
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#externalDocumentationObject">OpenAPI Specification
  *      External Documentation Object</a>
  */
-public interface ExternalDocumentation extends Constructible, Extensible<ExternalDocumentation> {
+public interface ExternalDocumentation extends Constructible, Extensible {
 
     /**
      * Returns the description property from an ExternalDocumentation instance.
@@ -48,10 +48,7 @@ public interface ExternalDocumentation extends Constructible, Extensible<Externa
      * @param description a short description of the target documentation
      * @return the current ExternalDocumentation instance
      */
-    default ExternalDocumentation description(String description) {
-        setDescription(description);
-        return this;
-    }
+    ExternalDocumentation description(String description);
 
     /**
      * Returns the url property from an ExternalDocumentation instance.
@@ -73,9 +70,6 @@ public interface ExternalDocumentation extends Constructible, Extensible<Externa
      * @param url the URL for the target documentation
      * @return the current ExternalDocumentation instance
      */
-    default ExternalDocumentation url(String url) {
-        setUrl(url);
-        return this;
-    }
+    ExternalDocumentation url(String url);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/OpenAPI.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/OpenAPI.java
index 8037265..eb2928b 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/OpenAPI.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/OpenAPI.java
@@ -31,7 +31,7 @@ import org.eclipse.microprofile.openapi.models.tags.Tag;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object">OpenAPI Specification OpenAPI Object</a>
  */
-public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
+public interface OpenAPI extends Constructible, Extensible {
 
     /**
      * Returns the openapi property from an OpenAPI instance.
@@ -53,10 +53,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param openapi the semantic version number of the OpenAPI Specification version that the OpenAPI document uses
      * @return the current OpenAPI object
      */
-    default OpenAPI openapi(String openapi) {
-        setOpenapi(openapi);
-        return this;
-    }
+    OpenAPI openapi(String openapi);
 
     /**
      * Returns the info property from an OpenAPI instance.
@@ -78,10 +75,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param info metadata about the API
      * @return the current OpenAPI object
      */
-    default OpenAPI info(Info info) {
-        setInfo(info);
-        return this;
-    }
+    OpenAPI info(Info info);
 
     /**
      * Returns the externalDocs property from an OpenAPI instance.
@@ -103,10 +97,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param externalDocs additional external documentation
      * @return the current OpenAPI object
      */
-    default OpenAPI externalDocs(ExternalDocumentation externalDocs) {
-        setExternalDocs(externalDocs);
-        return this;
-    }
+    OpenAPI externalDocs(ExternalDocumentation externalDocs);
 
     /**
      * Returns the Servers defined in the API
@@ -128,10 +119,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param servers Server objects which provide connectivity information to target servers
      * @return the current OpenAPI object
      */
-    default OpenAPI servers(List<Server> servers) {
-        setServers(servers);
-        return this;
-    }
+    OpenAPI servers(List<Server> servers);
 
     /**
      * Adds the given server to this OpenAPI instance's list of servers.
@@ -161,10 +149,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param security which security mechanisms can be used across the API
      * @return the current OpenAPI object
      */
-    default OpenAPI security(List<SecurityRequirement> security) {
-        setSecurity(security);
-        return this;
-    }
+    OpenAPI security(List<SecurityRequirement> security);
 
     /**
      * Adds the given security requirement to this OpenAPI instance's list of security requirements.
@@ -195,10 +180,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param tags tags used by the specification with additional metadata
      * @return the current OpenAPI object
      */
-    default OpenAPI tags(List<Tag> tags) {
-        setTags(tags);
-        return this;
-    }
+    OpenAPI tags(List<Tag> tags);
 
     /**
      * Adds the given tag to this OpenAPI instance's list of tags.
@@ -228,10 +210,7 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param paths the available paths and operations for the API
      * @return the current OpenAPI object
      */
-    default OpenAPI paths(Paths paths) {
-        setPaths(paths);
-        return this;
-    }
+    OpenAPI paths(Paths paths);
 
     /**
      * Adds the given path item to this OpenAPI instance's list of paths
@@ -262,9 +241,6 @@ public interface OpenAPI extends Constructible, Extensible<OpenAPI> {
      * @param components a set of reusable objects used in the API specification
      * @return the current OpenAPI object
      */
-    default OpenAPI components(Components components) {
-        setComponents(components);
-        return this;
-    }
+    OpenAPI components(Components components);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/Operation.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/Operation.java
index e438ebc..33b8433 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/Operation.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/Operation.java
@@ -36,7 +36,7 @@ import org.eclipse.microprofile.openapi.models.servers.Server;
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject">OpenAPI Specification Operation
  *      Object</a>
  */
-public interface Operation extends Constructible, Extensible<Operation> {
+public interface Operation extends Constructible, Extensible {
 
     /**
      * Returns the tags property from an Operation instance.
@@ -58,10 +58,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param tags a list of tags for API documentation control
      * @return the current Operation object
      **/
-    default Operation tags(List<String> tags) {
-        setTags(tags);
-        return this;
-    }
+    Operation tags(List<String> tags);
 
     /**
      * Adds the given tag to this Operation's list of tags.
@@ -91,10 +88,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param summary a short summary of what the operation does
      * @return the current Operation object
      **/
-    default Operation summary(String summary) {
-        setSummary(summary);
-        return this;
-    }
+    Operation summary(String summary);
 
     /**
      * Returns the description property from an Operation instance.
@@ -116,10 +110,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param description a verbose explanation of the operation behavior
      * @return the current Operation object
      **/
-    default Operation description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Operation description(String description);
 
     /**
      * Returns the externalDocs property from an Operation instance.
@@ -141,10 +132,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param externalDocs additional external documentation for this operation
      * @return the current Operation object
      **/
-    default Operation externalDocs(ExternalDocumentation externalDocs) {
-        setExternalDocs(externalDocs);
-        return this;
-    }
+    Operation externalDocs(ExternalDocumentation externalDocs);
 
     /**
      * Returns the operationId property from an Operation instance.
@@ -166,10 +154,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param operationId unique string used to identify the operation
      * @return the current Operation object
      **/
-    default Operation operationId(String operationId) {
-        setOperationId(operationId);
-        return this;
-    }
+    Operation operationId(String operationId);
 
     /**
      * Returns the parameters property from an Operation instance.
@@ -191,10 +176,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param parameters a list of parameters that are applicable for this operation
      * @return the current Operation object
      **/
-    default Operation parameters(List<Parameter> parameters) {
-        setParameters(parameters);
-        return this;
-    }
+    Operation parameters(List<Parameter> parameters);
 
     /**
      * Adds the given parameter item to this Operation's list of parameters.
@@ -224,10 +206,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param requestBody the request body applicable for this operation
      * @return the current Operation object
      **/
-    default Operation requestBody(RequestBody requestBody) {
-        setRequestBody(requestBody);
-        return this;
-    }
+    Operation requestBody(RequestBody requestBody);
 
     /**
      * Returns the responses property from an Operation instance.
@@ -249,10 +228,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param responses collection of possible responses from executing this operation
      * @return the current Operation object
      **/
-    default Operation responses(APIResponses responses) {
-        setResponses(responses);
-        return this;
-    }
+    Operation responses(APIResponses responses);
 
     /**
      * Returns the callbacks property from an Operation instance.
@@ -274,18 +250,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param callbacks map of possible out-of-band callbacks related to the operation. The key value must be the correct format for this field.
      * @return the current Operation object
      **/
-    default Operation callbacks(Map<String, Callback> callbacks) {
-        setCallbacks(callbacks);
-        return this;
-    }
-
-    /**
-     * Adds the given callback item to this Operation's list of callbacks.
-     *
-     * @param callback a callback that is applicable for this operation
-     * @return the current Operation object
-     **/
-    Operation addCallback(Callback callback);
+    Operation callbacks(Map<String, Callback> callbacks);
 
     /**
      * Returns the deprecated property from an Operation instance.
@@ -307,10 +272,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param deprecated declaration whether this operation is deprecated
      * @return the current Operation object
      **/
-    default Operation deprecated(Boolean deprecated) {
-        setDeprecated(deprecated);
-        return this;
-    }
+    Operation deprecated(Boolean deprecated);
 
     /**
      * Returns the security property from an Operation instance.
@@ -332,10 +294,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param security list of which security mechanisms can be used for this operation
      * @return the current Operation object
      **/
-    default Operation security(List<SecurityRequirement> security) {
-        setSecurity(security);
-        return this;
-    }
+    Operation security(List<SecurityRequirement> security);
 
     /**
      * Adds the given security requirement item to this Operation's list of security mechanisms.
@@ -365,10 +324,7 @@ public interface Operation extends Constructible, Extensible<Operation> {
      * @param servers list of servers to service this operation
      * @return the current Operation object
      **/
-    default Operation servers(List<Server> servers) {
-        setServers(servers);
-        return this;
-    }
+    Operation servers(List<Server> servers);
 
     /**
      * Adds the given server to this Operation's list of servers.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/PathItem.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/PathItem.java
index 83e9880..c0bde3e 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/PathItem.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/PathItem.java
@@ -19,7 +19,6 @@ package org.eclipse.microprofile.openapi.models;
 
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 import org.eclipse.microprofile.openapi.models.parameters.Parameter;
 import org.eclipse.microprofile.openapi.models.servers.Server;
@@ -35,7 +34,7 @@ import org.eclipse.microprofile.openapi.models.servers.Server;
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject"> OpenAPI Specification Path Item
  *      Object</a>
  */
-public interface PathItem extends Constructible, Extensible<PathItem>, Reference<PathItem> {
+public interface PathItem extends Constructible, Extensible, Reference<PathItem> {
 
     /**
      * All of the possible types of HTTP operations for this path
@@ -64,10 +63,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param summary short summary of what the path item represents
      * @return the current PathItem instance
      **/
-    default PathItem summary(String summary) {
-        setSummary(summary);
-        return this;
-    }
+    PathItem summary(String summary);
 
     /**
      * Returns the description property from a PathItem instance.
@@ -89,10 +85,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param description detailed description of what the path item represents
      * @return the current PathItem instance
      **/
-    default PathItem description(String description) {
-        setDescription(description);
-        return this;
-    }
+    PathItem description(String description);
 
     /**
      * Returns the get property from a PathItem instance.
@@ -114,10 +107,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param get definition of a GET operation
      * @return the current PathItem instance
      **/
-    default PathItem GET(Operation get) {
-        setGET(get);
-        return this;
-    }
+    PathItem GET(Operation get);
 
     /**
      * Returns the put property from a PathItem instance.
@@ -139,10 +129,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param put definition of a PUT operation
      * @return the current PathItem instance
      **/
-    default PathItem PUT(Operation put) {
-        setPUT(put);
-        return this;
-    }
+    PathItem PUT(Operation put);
 
     /**
      * Returns the post property from a PathItem instance.
@@ -164,10 +151,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param post definition of a PUT operation
      * @return the current PathItem instance
      **/
-    default PathItem POST(Operation post) {
-        setPOST(post);
-        return this;
-    }
+    PathItem POST(Operation post);
 
     /**
      * Returns the delete property from a PathItem instance.
@@ -189,10 +173,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param delete definition of a DELETE operation
      * @return the current PathItem instance
      **/
-    default PathItem DELETE(Operation delete) {
-        setDELETE(delete);
-        return this;
-    }
+    PathItem DELETE(Operation delete);
 
     /**
      * Returns the options property from a PathItem instance.
@@ -214,10 +195,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param options definition of an OPTIONS operation
      * @return the current PathItem instance
      **/
-    default PathItem OPTIONS(Operation options) {
-        setOPTIONS(options);
-        return this;
-    }
+    PathItem OPTIONS(Operation options);
 
     /**
      * Returns the head property from a PathItem instance.
@@ -239,10 +217,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param head definition of a HEAD operation
      * @return the current PathItem instance
      **/
-    default PathItem HEAD(Operation head) {
-        setHEAD(head);
-        return this;
-    }
+    PathItem HEAD(Operation head);
 
     /**
      * Returns the patch property from a PathItem instance.
@@ -264,10 +239,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param patch definition of a PATCH operation
      * @return the current PathItem instance
      **/
-    default PathItem PATCH(Operation patch) {
-        setPATCH(patch);
-        return this;
-    }
+    PathItem PATCH(Operation patch);
 
     /**
      * Returns the trace property from a PathItem instance.
@@ -289,39 +261,21 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param trace definition of a TRACE operation
      * @return the current PathItem instance
      **/
-    default PathItem TRACE(Operation trace) {
-        setTRACE(trace);
-        return this;
-    }
+    PathItem TRACE(Operation trace);
 
     /**
      * Returns a list of all the operations for this path item.
      * 
-     * @deprecated since 1.1, use @link {@link Map#values()} on {@link #getOperations()} instead
      * @return a list of all the operations for this path item
      **/
-    @Deprecated
-    default List<Operation> readOperations() {
-        return getOperations().values().stream().collect(Collectors.toList());
-    }
+    List<Operation> readOperations();
 
     /**
      * Returns a map with all the operations for this path where the keys are HttpMethods.
      * 
-     * @deprecated since 1.1, use {@link #getOperations()} instead
      * @return a map with all the operations for this path where the keys are HttpMethods
      **/
-    @Deprecated
-    default Map<PathItem.HttpMethod, Operation> readOperationsMap() {
-        return getOperations();
-    }
-
-    /**
-     * Returns a map with all the operations for this path where the keys are {@link PathItem.HttpMethod} items
-     * 
-     * @return a map with all the operations for this path where the keys are HttpMethods
-     **/
-    Map<PathItem.HttpMethod, Operation> getOperations();
+    Map<PathItem.HttpMethod, Operation> readOperationsMap();
 
     /**
      * Returns the servers property from a PathItem instance.
@@ -343,10 +297,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param servers a list of the servers to service operations in this path item
      * @return the current PathItem instance
      **/
-    default PathItem servers(List<Server> servers) {
-        setServers(servers);
-        return this;
-    }
+    PathItem servers(List<Server> servers);
 
     /**
      * Adds the given server to this PathItem's list of servers.
@@ -376,10 +327,7 @@ public interface PathItem extends Constructible, Extensible<PathItem>, Reference
      * @param parameters a list of parameters that are applicable to all the operations described under this path
      * @return the current PathItem instance
      **/
-    default PathItem parameters(List<Parameter> parameters) {
-        setParameters(parameters);
-        return this;
-    }
+    PathItem parameters(List<Parameter> parameters);
 
     /**
      * Adds the given parameter to this PathItem's list of parameters.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/Paths.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/Paths.java
index a929394..8ba97c7 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/Paths.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/Paths.java
@@ -29,7 +29,7 @@ import java.util.Map;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathsObject"> OpenAPI Specification Paths Object</a>
  */
-public interface Paths extends Constructible, Extensible<Paths>, Map<String, PathItem> {
+public interface Paths extends Constructible, Extensible, Map<String, PathItem> {
 
     /**
      * Adds the given path item to this Paths and return this instance of Paths
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/Reference.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/Reference.java
index 23511d5..420db34 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/Reference.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/Reference.java
@@ -64,11 +64,6 @@ public interface Reference<T extends Reference<T>> {
      * @param ref a reference to a T object in the components in this OpenAPI document
      * @return the current instance
      **/
-    default T ref(String ref) {
-        setRef(ref);
-        @SuppressWarnings("unchecked")
-        T t = (T) this;
-        return t;
-    }
+    T ref(String ref);
 
 }
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/callbacks/Callback.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/callbacks/Callback.java
index 0680add..eb5f3fd 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/callbacks/Callback.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/callbacks/Callback.java
@@ -33,7 +33,7 @@ import org.eclipse.microprofile.openapi.models.Reference;
  * 
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#callbackObject">OpenAPI Specification Callback Object</a>
  */
-public interface Callback extends Constructible, Extensible<Callback>, Reference<Callback>, Map<String, PathItem> {
+public interface Callback extends Constructible, Extensible, Reference<Callback>, Map<String, PathItem> {
 
     /**
      * Adds the given PathItem to this Callback's list of PathItems using the string as its key.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/examples/Example.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/examples/Example.java
index 3f62757..c927abc 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/examples/Example.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/examples/Example.java
@@ -31,7 +31,7 @@ import org.eclipse.microprofile.openapi.models.Reference;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#exampleObject">OpenAPI Specification Example Object</a>
  */
-public interface Example extends Constructible, Extensible<Example>, Reference<Example> {
+public interface Example extends Constructible, Extensible, Reference<Example> {
 
     /**
      * Returns the summary property from an Example instance.
@@ -53,10 +53,7 @@ public interface Example extends Constructible, Extensible<Example>, Reference<E
      * @param summary short description of the example
      * @return the current Example object
      */
-    default Example summary(String summary) {
-        setSummary(summary);
-        return this;
-    }
+    Example summary(String summary);
 
     /**
      * Returns the description property from an Example instance.
@@ -78,10 +75,7 @@ public interface Example extends Constructible, Extensible<Example>, Reference<E
      * @param description long description of the example
      * @return the current Example object
      */
-    default Example description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Example description(String description);
 
     /**
      * Returns the value property from an Example instance.
@@ -103,10 +97,7 @@ public interface Example extends Constructible, Extensible<Example>, Reference<E
      * @param value a literal example object
      * @return the current Example object
      */
-    default Example value(Object value) {
-        setValue(value);
-        return this;
-    }
+    Example value(Object value);
 
     /**
      * Returns the externalValue property from an Example instance.
@@ -128,9 +119,6 @@ public interface Example extends Constructible, Extensible<Example>, Reference<E
      * @param externalValue URL that points to the literal example
      * @return the current Example object
      */
-    default Example externalValue(String externalValue) {
-        setExternalValue(externalValue);
-        return this;
-    }
+    Example externalValue(String externalValue);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/headers/Header.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/headers/Header.java
index c025af8..06a0b91 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/headers/Header.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/headers/Header.java
@@ -34,7 +34,7 @@ import org.eclipse.microprofile.openapi.models.media.Schema;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#header-object">OpenAPI Specification Header Object</a>
  */
-public interface Header extends Constructible, Extensible<Header>, Reference<Header> {
+public interface Header extends Constructible, Extensible, Reference<Header> {
 
     /**
      * Controls the style of serialization. Only one style is supported for headers.
@@ -74,10 +74,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param description a brief description of the header parameter
      * @return the current Header instance
      */
-    default Header description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Header description(String description);
 
     /**
      * Returns the required property from a Header instance.
@@ -99,10 +96,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param required whether this parameter is mandatory
      * @return the current Header instance
      */
-    default Header required(Boolean required) {
-        setRequired(required);
-        return this;
-    }
+    Header required(Boolean required);
 
     /**
      * Returns the deprecated property from a Header instance.
@@ -124,10 +118,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param deprecated whether the header parameter is deprecated
      * @return the current Header instance
      */
-    default Header deprecated(Boolean deprecated) {
-        setDeprecated(deprecated);
-        return this;
-    }
+    Header deprecated(Boolean deprecated);
 
     /**
      * Returns the allowEmptyValue property from a Header instance.
@@ -149,10 +140,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param allowEmptyValue specify the ability to pass empty-valued parameters
      * @return the current Header instance
      */
-    default Header allowEmptyValue(Boolean allowEmptyValue) {
-        setAllowEmptyValue(allowEmptyValue);
-        return this;
-    }
+    Header allowEmptyValue(Boolean allowEmptyValue);
 
     /**
      * Returns the style property from a Header instance.
@@ -174,10 +162,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param style how the parameter value will be serialized
      * @return the current Header instance
      */
-    default Header style(Style style) {
-        setStyle(style);
-        return this;
-    }
+    Header style(Style style);
 
     /**
      * Returns the explode property from a Header instance.
@@ -199,10 +184,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param explode whether parameter values of type "array" or "object" generate separate parameters for each value
      * @return the current Header instance
      */
-    default Header explode(Boolean explode) {
-        setExplode(explode);
-        return this;
-    }
+    Header explode(Boolean explode);
 
     /**
      * Returns the schema property from a Header instance.
@@ -224,10 +206,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param schema schema defining the type used for the header parameter
      * @return the current Header instance
      */
-    default Header schema(Schema schema) {
-        setSchema(schema);
-        return this;
-    }
+    Header schema(Schema schema);
 
     /**
      * Returns the examples property from a Header instance.
@@ -251,10 +230,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param examples examples of the media type
      * @return the current Header instance
      */
-    default Header examples(Map<String, Example> examples) {
-        setExamples(examples);
-        return this;
-    }
+    Header examples(Map<String, Example> examples);
 
     /**
      * Adds an example of the media type using the specified key to this Header instance. The example should contain a value in the correct format as
@@ -288,10 +264,7 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param example example of the media type
      * @return the current Header instance
      */
-    default Header example(Object example) {
-        setExample(example);
-        return this;
-    }
+    Header example(Object example);
 
     /**
      * Returns the content property from a Header instance.
@@ -313,9 +286,6 @@ public interface Header extends Constructible, Extensible<Header>, Reference<Hea
      * @param content a map containing the media representations for the parameter
      * @return the current Header instance
      */
-    default Header content(Content content) {
-        setContent(content);
-        return this;
-    }
+    Header content(Content content);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Contact.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Contact.java
index 1024235..84785b9 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Contact.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Contact.java
@@ -25,7 +25,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.md#contactObject"
  */
-public interface Contact extends Constructible, Extensible<Contact> {
+public interface Contact extends Constructible, Extensible {
 
     /**
      * Returns the identifying name of this Contact instance.
@@ -47,10 +47,7 @@ public interface Contact extends Constructible, Extensible<Contact> {
      * @param name the name of the contact person/organization
      * @return this Contact instance
      */
-    default Contact name(String name) {
-        setName(name);
-        return this;
-    }
+    Contact name(String name);
 
     /**
      * Returns the URL pointing to the contact information for this Contact instance.
@@ -74,10 +71,7 @@ public interface Contact extends Constructible, Extensible<Contact> {
      * @param url the url pointing to the contact information
      * @return this Contact instance
      */
-    default Contact url(String url) {
-        setUrl(url);
-        return this;
-    }
+    Contact url(String url);
 
     /**
      * Returns the contact email of this Contact instance.
@@ -100,9 +94,6 @@ public interface Contact extends Constructible, Extensible<Contact> {
      * @param email the email of the contact person/organization
      * @return this Contact instance
      */
-    default Contact email(String email) {
-        setEmail(email);
-        return this;
-    }
+    Contact email(String email);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Info.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Info.java
index 0b66d10..108876c 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Info.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/info/Info.java
@@ -26,7 +26,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.md#infoObject"
  */
-public interface Info extends Constructible, Extensible<Info> {
+public interface Info extends Constructible, Extensible {
 
     /**
      * Returns the title for the application for this instance of Info
@@ -49,10 +49,7 @@ public interface Info extends Constructible, Extensible<Info> {
      * @param title the title of the application
      * @return this Info instance
      */
-    default Info title(String title) {
-        setTitle(title);
-        return this;
-    }
+    Info title(String title);
 
     /**
      * Returns a short description for the application for this Info instance.
@@ -75,10 +72,7 @@ public interface Info extends Constructible, Extensible<Info> {
      * @param description a short description for the application
      * @return this Info instance
      */
-    default Info description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Info description(String description);
 
     /**
      * Returns the URL to the Terms of Service for the API for this instance of Info.
@@ -102,10 +96,7 @@ public interface Info extends Constructible, Extensible<Info> {
      * @param termsOfService the URL to the Terms of Service for the API
      * @return this Info instance
      */
-    default Info termsOfService(String termsOfService) {
-        setTermsOfService(termsOfService);
-        return this;
-    }
+    Info termsOfService(String termsOfService);
 
     /**
      * Returns the contact information for the exposed API from this Info instance.
@@ -128,10 +119,7 @@ public interface Info extends Constructible, Extensible<Info> {
      * @param contact the contact information for the exposed API
      * @return this Info instance
      */
-    default Info contact(Contact contact) {
-        setContact(contact);
-        return this;
-    }
+    Info contact(Contact contact);
 
     /**
      * Returns the license information for the exposed API from this Info instance.
@@ -154,10 +142,7 @@ public interface Info extends Constructible, Extensible<Info> {
      * @param license the license information for the exposed API
      * @return this Info instance
      */
-    default Info license(License license) {
-        setLicense(license);
-        return this;
-    }
+    Info license(License license);
 
     /**
      * Returns the version of the OpenAPI document for this Info instance.
@@ -180,9 +165,6 @@ public interface Info extends Constructible, Extensible<Info> {
      * @param version the version of the OpenAPI document
      * @return this Info instance
      */
-    default Info version(String version) {
-        setVersion(version);
-        return this;
-    }
+    Info version(String version);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/info/License.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/info/License.java
index fba43a4..cf383f0 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/info/License.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/info/License.java
@@ -25,7 +25,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.md#licenseObject"
  */
-public interface License extends Constructible, Extensible<License> {
+public interface License extends Constructible, Extensible {
 
     /**
      * Returns the license name for this License instance that is used for the API.
@@ -47,10 +47,7 @@ public interface License extends Constructible, Extensible<License> {
      * @param name the license name used for the API
      * @return this License instance
      */
-    default License name(String name) {
-        setName(name);
-        return this;
-    }
+    License name(String name);
 
     /**
      * Returns the URL for this License instance that is used for the API.
@@ -73,9 +70,6 @@ public interface License extends Constructible, Extensible<License> {
      * @param url the URL to the license used for the API
      * @return this License instance
      */
-    default License url(String url) {
-        setUrl(url);
-        return this;
-    }
+    License url(String url);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/links/Link.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/links/Link.java
index 2740159..859772c 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/links/Link.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/links/Link.java
@@ -40,7 +40,7 @@ import org.eclipse.microprofile.openapi.models.servers.Server;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#linkObject"> OpenAPI Specification Link Object</a>
  */
-public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
+public interface Link extends Constructible, Extensible, Reference<Link> {
 
     /**
      * Returns the server property from a Link instance.
@@ -62,10 +62,7 @@ public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
      * @param server a server object to be used by the target operation
      * @return the current Link instance
      */
-    default Link server(Server server) {
-        setServer(server);
-        return this;
-    }
+    Link server(Server server);
 
     /**
      * Returns the operationRef property from a Link instance.
@@ -87,10 +84,7 @@ public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
      * @param operationRef a relative or absolute reference to an OAS operation
      * @return the current Link instance
      */
-    default Link operationRef(String operationRef) {
-        setOperationRef(operationRef);
-        return this;
-    }
+    Link operationRef(String operationRef);
 
     /**
      * Returns the requestBody property from a Link instance.
@@ -112,10 +106,7 @@ public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
      * @param requestBody a literal value or runtime expression to use as a request body when calling the target operation
      * @return the current Link instance
      */
-    default Link requestBody(Object requestBody) {
-        setRequestBody(requestBody);
-        return this;
-    }
+    Link requestBody(Object requestBody);
 
     /**
      * Returns the operationId property for this instance of Link.
@@ -137,10 +128,7 @@ public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
      * @param operationId the name of an existing, resolvable OAS operation
      * @return the current Link instance
      */
-    default Link operationId(String operationId) {
-        setOperationId(operationId);
-        return this;
-    }
+    Link operationId(String operationId);
 
     /**
      * Returns the parameters property from this instance of Link. The key is the parameter name and the value is a constant or a runtime expression
@@ -163,10 +151,7 @@ public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
      * @param parameters a map representing parameters to pass to this link's operation as specified with operationId or identified via operationRef
      * @return current link instance
      */
-    default Link parameters(Map<String, Object> parameters) {
-        setParameters(parameters);
-        return this;
-    }
+    Link parameters(Map<String, Object> parameters);
 
     /**
      * Add a new parameter to the parameters property of this instance of Link.
@@ -198,9 +183,6 @@ public interface Link extends Constructible, Extensible<Link>, Reference<Link> {
      * @param description a description of the link
      * @return the current Link instance
      */
-    default Link description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Link description(String description);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Discriminator.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Discriminator.java
index 24ae958..5d9f8ce 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Discriminator.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Discriminator.java
@@ -40,10 +40,7 @@ public interface Discriminator extends Constructible {
      * @param propertyName the name of the property in the payload that will hold the discriminator value
      * @return the current Discriminator instance
      */
-    default Discriminator propertyName(String propertyName) {
-        setPropertyName(propertyName);
-        return this;
-    }
+    Discriminator propertyName(String propertyName);
 
     /**
      * Returns the propertyName property from a Discriminator instance.
@@ -74,10 +71,7 @@ public interface Discriminator extends Constructible {
      * @param mapping a map containing keys and schema names or references
      * @return the current Discriminator instance
      */
-    default Discriminator mapping(Map<String, String> mapping) {
-        setMapping(mapping);
-        return this;
-    }
+    Discriminator mapping(Map<String, String> mapping);
 
     /**
      * Returns the mapping property from a Discriminator instance.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Encoding.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Encoding.java
index 020ba3c..54217e1 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Encoding.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Encoding.java
@@ -28,7 +28,7 @@ import org.eclipse.microprofile.openapi.models.headers.Header;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.md#encodingObject">Encoding Object</a>
  */
-public interface Encoding extends Constructible, Extensible<Encoding> {
+public interface Encoding extends Constructible, Extensible {
 
     enum Style {
         FORM("form"), SPACE_DELIMITED("spaceDelimited"), PIPE_DELIMITED("pipeDelimited"), DEEP_OBJECT("deepObject");
@@ -54,10 +54,7 @@ public interface Encoding extends Constructible, Extensible<Encoding> {
      * @param contentType a string that describes the type of content of the encoding
      * @return Encoding
      */
-    default Encoding contentType(String contentType) {
-        setContentType(contentType);
-        return this;
-    }
+    Encoding contentType(String contentType);
 
     /**
      * The Content-Type for encoding a specific property. Default value depends on the property type: i.e. for binary string - contentType is
@@ -87,10 +84,7 @@ public interface Encoding extends Constructible, Extensible<Encoding> {
      * @param headers a map of name to corresponding header object
      * @return Encoding
      */
-    default Encoding headers(Map<String, Header> headers) {
-        setHeaders(headers);
-        return this;
-    }
+    Encoding headers(Map<String, Header> headers);
 
     /**
      * Headers property of an Encoding is a map that allows additional information to be provided as headers
@@ -110,15 +104,6 @@ public interface Encoding extends Constructible, Extensible<Encoding> {
      */
     void setHeaders(Map<String, Header> headers);
 
-    /**
-     * Adds the given header to this Encoding' list of headers with the given string as its key.
-     *
-     * @param key a key conforming to the format required for this object
-     * @param header the header object
-     * @return the current Encoding object
-     */
-    Encoding addHeader(String key, Header header);
-
     /**
      * Style describes how the encoding value will be serialized depending on the type of the parameter value.
      * <p>
@@ -127,10 +112,7 @@ public interface Encoding extends Constructible, Extensible<Encoding> {
      * @param style a string that descibes how encoding value will be serialized
      * @return Encoding
      */
-    default Encoding style(Style style) {
-        setStyle(style);
-        return this;
-    }
+    Encoding style(Style style);
 
     /**
      * Style describes how the encoding value will be serialized depending on the type of the parameter value.
@@ -160,10 +142,7 @@ public interface Encoding extends Constructible, Extensible<Encoding> {
      * @param explode a boolean that indicates whether the property values of array or object will generate separate parameters
      * @return Encoding
      */
-    default Encoding explode(Boolean explode) {
-        setExplode(explode);
-        return this;
-    }
+    Encoding explode(Boolean explode);
 
     /**
      * When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the
@@ -195,10 +174,7 @@ public interface Encoding extends Constructible, Extensible<Encoding> {
      * @param allowReserved a boolean that determines whether the parameter value SHOULD allow reserved characters
      * @return Encoding
      */
-    default Encoding allowReserved(Boolean allowReserved) {
-        setAllowReserved(allowReserved);
-        return this;
-    }
+    Encoding allowReserved(Boolean allowReserved);
 
     /**
      * AllowReserved determines whether the parameter value SHOULD allow reserved characters to be encoded without percent-encoding.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/MediaType.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/MediaType.java
index 8e07028..f2c39f5 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/MediaType.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/MediaType.java
@@ -32,7 +32,7 @@ import org.eclipse.microprofile.openapi.models.examples.Example;
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject">OpenAPI Specification Media Type
  *      Object</a>
  */
-public interface MediaType extends Constructible, Extensible<MediaType> {
+public interface MediaType extends Constructible, Extensible {
 
     /**
      * Returns the schema property from a MediaType instance.
@@ -54,10 +54,7 @@ public interface MediaType extends Constructible, Extensible<MediaType> {
      * @param schema the schema defining the type used for the request body
      * @return the current MediaType instance
      */
-    default MediaType schema(Schema schema) {
-        setSchema(schema);
-        return this;
-    }
+    MediaType schema(Schema schema);
 
     /**
      * Returns the collection of examples from a MediaType instance.
@@ -81,10 +78,7 @@ public interface MediaType extends Constructible, Extensible<MediaType> {
      * @param examples examples of the media type
      * @return the current MediaType instance
      */
-    default MediaType examples(Map<String, Example> examples) {
-        setExamples(examples);
-        return this;
-    }
+    MediaType examples(Map<String, Example> examples);
 
     /**
      * Adds an example item to the examples map of a MediaType instance. The example object should match the media type and specified schema if
@@ -118,10 +112,7 @@ public interface MediaType extends Constructible, Extensible<MediaType> {
      * @param example an example of the media type
      * @return the current MediaType instance
      */
-    default MediaType example(Object example) {
-        setExample(example);
-        return this;
-    }
+    MediaType example(Object example);
 
     /**
      * Returns the encoding property from a MediaType instance.
@@ -143,10 +134,7 @@ public interface MediaType extends Constructible, Extensible<MediaType> {
      * @param encoding a map between property names and their encoding information
      * @return the current MediaType instance
      */
-    default MediaType encoding(Map<String, Encoding> encoding) {
-        setEncoding(encoding);
-        return this;
-    }
+    MediaType encoding(Map<String, Encoding> encoding);
 
     /**
      * Adds an Encoding item to the encoding property of a MediaType instance.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Schema.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Schema.java
index 350e2de..ae3ba4e 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Schema.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/Schema.java
@@ -39,7 +39,7 @@ import org.eclipse.microprofile.openapi.models.Reference;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#schemaObject">OpenAPI Specification Schema Object</a>
  */
-public interface Schema extends Extensible<Schema>, Constructible, Reference<Schema> {
+public interface Schema extends Extensible, Constructible, Reference<Schema> {
 
     
     /**
@@ -81,10 +81,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param discriminator the object that is used to differentiate between the schemas which may satisfy the payload description
      * @return the current Schema instance
      */
-    default Schema discriminator(Discriminator discriminator) {
-        setDiscriminator(discriminator);
-        return this;
-    }
+    Schema discriminator(Discriminator discriminator);
 
     /**
      * Returns the title property from this Schema instance.
@@ -106,10 +103,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param title a title to assign to this Schema
      * @return the current Schema instance
      */
-    default Schema title(String title) {
-        setTitle(title);
-        return this;
-    }
+    Schema title(String title);
 
     /**
      * Returns the default value property from this Schema instance.
@@ -131,10 +125,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param defaultValue a value to use as the default
      * @return the current Schema instance
      */
-    default Schema defaultValue(Object defaultValue) {
-        setDefaultValue(defaultValue);
-        return this;
-    }
+    Schema defaultValue(Object defaultValue);
 
     /**
      * Returns the enumerated list of values allowed for objects defined by this Schema.
@@ -150,10 +141,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      */
     void setEnumeration(List<Object> enumeration);
 
-    default Schema enumeration(List<Object> enumeration) {
-        setEnumeration(enumeration);
-        return this;
-    }
+    Schema enumeration(List<Object> enumeration);
 
     /**
      * Adds an item of the appropriate type to the enumerated list of values allowed.
@@ -185,10 +173,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param multipleOf a positive number that restricts the value of objects described by this Schema
      * @return the current Schema instance
      */
-    default Schema multipleOf(BigDecimal multipleOf) {
-        setMultipleOf(multipleOf);
-        return this;
-    }
+    Schema multipleOf(BigDecimal multipleOf);
 
     /**
      * Returns the maximum property from this Schema instance.
@@ -210,10 +195,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param maximum specifies the maximum numeric value of objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema maximum(BigDecimal maximum) {
-        setMaximum(maximum);
-        return this;
-    }
+    Schema maximum(BigDecimal maximum);
 
     /**
      * Returns the exclusiveMaximum property from this Schema instance.
@@ -235,10 +217,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param exclusiveMaximum when true the numeric value of objects defined by this Schema must be less than indicated by the maximum property
      * @return the current Schema instance
      */
-    default Schema exclusiveMaximum(Boolean exclusiveMaximum) {
-        setExclusiveMaximum(exclusiveMaximum);
-        return this;
-    }
+    Schema exclusiveMaximum(Boolean exclusiveMaximum);
 
     /**
      * Returns the minimum property from this Schema instance.
@@ -260,10 +239,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param minimum specifies the minimum numeric value of objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema minimum(BigDecimal minimum) {
-        setMinimum(minimum);
-        return this;
-    }
+    Schema minimum(BigDecimal minimum);
 
     /**
      * Returns the exclusiveMinimum property from this Schema instance.
@@ -285,10 +261,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param exclusiveMinimum when true the numeric value of objects defined by this Schema must be greater than indicated by the minimum property
      * @return the current Schema instance
      */
-    default Schema exclusiveMinimum(Boolean exclusiveMinimum) {
-        setExclusiveMinimum(exclusiveMinimum);
-        return this;
-    }
+    Schema exclusiveMinimum(Boolean exclusiveMinimum);
 
     /**
      * Returns the maxLength property from this Schema instance.
@@ -312,10 +285,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param maxLength the maximum length of objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema maxLength(Integer maxLength) {
-        setMaxLength(maxLength);
-        return this;
-    }
+    Schema maxLength(Integer maxLength);
 
     /**
      * Returns the minLength property from this Schema instance.
@@ -339,10 +309,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param minLength the minimum length of objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema minLength(Integer minLength) {
-        setMinLength(minLength);
-        return this;
-    }
+    Schema minLength(Integer minLength);
 
     /**
      * Returns the pattern property from this Schema instance.
@@ -364,10 +331,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param pattern the regular expression which restricts objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema pattern(String pattern) {
-        setPattern(pattern);
-        return this;
-    }
+    Schema pattern(String pattern);
 
     /**
      * Returns the maxItems property from this Schema instance.
@@ -391,10 +355,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param maxItems the maximum number of elements in objects defined by this Schema e.g. array elements
      * @return the current Schema instance
      */
-    default Schema maxItems(Integer maxItems) {
-        setMaxItems(maxItems);
-        return this;
-    }
+    Schema maxItems(Integer maxItems);
 
     /**
      * Returns the minItems property from this Schema instance.
@@ -418,10 +379,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param minItems the minimum number of elements in objects defined by this Schema e.g. array elements
      * @return the current Schema instance
      */
-    default Schema minItems(Integer minItems) {
-        setMinItems(minItems);
-        return this;
-    }
+    Schema minItems(Integer minItems);
 
     /**
      * Returns the uniqueItems property from this Schema instance.
@@ -443,10 +401,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param uniqueItems ensure the items (e.g. array elements) are unique in objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema uniqueItems(Boolean uniqueItems) {
-        setUniqueItems(uniqueItems);
-        return this;
-    }
+    Schema uniqueItems(Boolean uniqueItems);
 
     /**
      * Returns the maxProperties property from this Schema instance.
@@ -470,10 +425,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param maxProperties limit the number of properties in objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema maxProperties(Integer maxProperties) {
-        setMaxProperties(maxProperties);
-        return this;
-    }
+    Schema maxProperties(Integer maxProperties);
 
     /**
      * Returns the minProperties property from this Schema instance.
@@ -497,10 +449,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param minProperties limit the number of properties in objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema minProperties(Integer minProperties) {
-        setMinProperties(minProperties);
-        return this;
-    }
+    Schema minProperties(Integer minProperties);
 
     /**
      * Returns the required property from this Schema instance.
@@ -522,10 +471,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param required the list of fields required in objects defined by this Schema
      * @return the current Schema instance
      */
-    default Schema required(List<String> required) {
-        setRequired(required);
-        return this;
-    }
+    Schema required(List<String> required);
 
     /**
      * Adds the name of an item to the list of fields required in objects defined by this Schema.
@@ -557,10 +503,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * reference schemas
      * @return the current Schema instance
      */
-    default Schema type(SchemaType type) {
-        setType(type);
-        return this;
-    }
+    Schema type(SchemaType type);
 
     /**
      * Returns a Schema which describes properties not allowed in objects defined by the current schema.
@@ -582,10 +525,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param not the Schema which describes properties not allowed
      * @return the current Schema instance
      */
-    default Schema not(Schema not) {
-        setNot(not);
-        return this;
-    }
+    Schema not(Schema not);
 
     /**
      * Returns the properties defined in this Schema.
@@ -607,10 +547,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param properties a map which associates property names with the schemas that describe their contents
      * @return the current Schema instance
      */
-    default Schema properties(Map<String, Schema> properties) {
-        setProperties(properties);
-        return this;
-    }
+    Schema properties(Map<String, Schema> properties);
 
     /**
      * Adds a Schema property of the provided name using the given schema.
@@ -698,10 +635,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param description a string containing a description of the purpose of this Schema
      * @return the current Schema instance
      */
-    default Schema description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Schema description(String description);
 
     /**
      * Returns the format property from this Schema instance. This property clarifies the data type specified in the type property.
@@ -725,10 +659,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param format the string specifying the data format
      * @return the current Schema instance
      */
-    default Schema format(String format) {
-        setFormat(format);
-        return this;
-    }
+    Schema format(String format);
 
     /**
      * Returns the nullable property from this Schema instance which indicates whether null is a valid value.
@@ -750,10 +681,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param nullable a boolean value indicating this Schema allows a null value.
      * @return the current Schema instance
      */
-    default Schema nullable(Boolean nullable) {
-        setNullable(nullable);
-        return this;
-    }
+    Schema nullable(Boolean nullable);
 
     /**
      * Returns the readOnly property from this Schema instance.
@@ -775,10 +703,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param readOnly true indicates the Schema should not be sent as part of a request message
      * @return the current Schema instance
      */
-    default Schema readOnly(Boolean readOnly) {
-        setReadOnly(readOnly);
-        return this;
-    }
+    Schema readOnly(Boolean readOnly);
 
     /**
      * Returns the writeOnly property from this Schema instance.
@@ -800,10 +725,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param writeOnly true indicates the Schema should not be sent as part of a response message
      * @return the current Schema instance
      */
-    default Schema writeOnly(Boolean writeOnly) {
-        setWriteOnly(writeOnly);
-        return this;
-    }
+    Schema writeOnly(Boolean writeOnly);
 
     /**
      * Returns the example property from this Schema instance.
@@ -827,10 +749,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param example an object which is an instance of this Schema
      * @return the current Schema instance
      */
-    default Schema example(Object example) {
-        setExample(example);
-        return this;
-    }
+    Schema example(Object example);
 
     /**
      * Returns the externalDocs property from this Schema instance.
@@ -852,10 +771,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param externalDocs an additional external documentation object
      * @return the current Schema instance
      */
-    default Schema externalDocs(ExternalDocumentation externalDocs) {
-        setExternalDocs(externalDocs);
-        return this;
-    }
+    Schema externalDocs(ExternalDocumentation externalDocs);
 
     /**
      * Returns the deprecated property from this Schema instance.
@@ -877,10 +793,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param deprecated true to indicate this Schema is deprecated
      * @return the current Schema instance
      */
-    default Schema deprecated(Boolean deprecated) {
-        setDeprecated(deprecated);
-        return this;
-    }
+    Schema deprecated(Boolean deprecated);
 
     /**
      * Returns the xml property from this Schema instance.
@@ -904,10 +817,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param xml a metadata object to describe the XML representation of this property
      * @return the current Schema instance
      */
-    default Schema xml(XML xml) {
-        setXml(xml);
-        return this;
-    }
+    Schema xml(XML xml);
     
     
     /**
@@ -930,10 +840,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param items the Schema used by this array
      * @return the current Schema instance
      */
-    default Schema items(Schema items) {
-        setItems(items);
-        return this;
-    }
+    Schema items(Schema items);
     
     /**
      * Returns the schemas used by the allOf property.
@@ -955,10 +862,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param allOf the list of schemas used by the allOf property
      * @return the current Schema instance
      */
-    default Schema allOf(List<Schema> allOf) {
-        setAllOf(allOf);
-        return this;
-    }
+    Schema allOf(List<Schema> allOf);
 
     /**
      * Adds the given Schema to the list of schemas used by the allOf property.
@@ -988,10 +892,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param anyOf the list of schemas used by the anyOf property
      * @return the current Schema instance
      */
-    default Schema anyOf(List<Schema> anyOf) {
-        setAnyOf(anyOf);
-        return this;
-    }
+    Schema anyOf(List<Schema> anyOf);
 
     /**
      * Adds the given Schema to the list of schemas used by the anyOf property.
@@ -1021,10 +922,7 @@ public interface Schema extends Extensible<Schema>, Constructible, Reference<Sch
      * @param oneOf the list of schemas used by the oneOf property
      * @return the current Schema instance
      */
-    default Schema oneOf(List<Schema> oneOf) {
-        setOneOf(oneOf);
-        return this;
-    }
+    Schema oneOf(List<Schema> oneOf);
 
     /**
      * Adds the given Schema to the list of schemas used by the oneOf property.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/XML.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/XML.java
index 3bbd922..5b6df7f 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/media/XML.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/media/XML.java
@@ -27,7 +27,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/3.0.0-rc2/versions/3.0.md#xmlObject">XML Object</a>
  * </p>
  */
-public interface XML extends Constructible, Extensible<XML> {
+public interface XML extends Constructible, Extensible {
 
     /**
      * This method returns the name property from XML instance.
@@ -55,10 +55,7 @@ public interface XML extends Constructible, Extensible<XML> {
      * @param name the name of this XML instance
      * @return XML instance with the set name property
      */
-    default XML name(String name) {
-        setName(name);
-        return this;
-    }
+    XML name(String name);
 
     /**
      * This method returns the namespace property of XML instance.
@@ -86,10 +83,7 @@ public interface XML extends Constructible, Extensible<XML> {
      * @param namespace the URI of the namespace definition
      * @return XML instance with the set namespace property
      */
-    default XML namespace(String namespace) {
-        setNamespace(namespace);
-        return this;
-    }
+    XML namespace(String namespace);
 
     /**
      * This method returns the prefix property of XML instance.
@@ -117,10 +111,7 @@ public interface XML extends Constructible, Extensible<XML> {
      * @param prefix string prefix to be used with the name
      * @return XML instance with the set prefix property
      */
-    default XML prefix(String prefix) {
-        setPrefix(prefix);
-        return this;
-    }
+    XML prefix(String prefix);
 
     /**
      * This method returns the attribute property of XML instance.
@@ -148,10 +139,7 @@ public interface XML extends Constructible, Extensible<XML> {
      * @param attribute a boolean that declares whether the property definition translates to an attribute instead of an element
      * @return XML instance with the set attribute property
      */
-    default XML attribute(Boolean attribute) {
-        setAttribute(attribute);
-        return this;
-    }
+    XML attribute(Boolean attribute);
 
     /**
      * This method returns the wrapped property of XML instance.
@@ -182,9 +170,6 @@ public interface XML extends Constructible, Extensible<XML> {
      * @param wrapped a boolean that signifies whether the array is wrapped
      * @return XML instance with the set wrapped property
      */
-    default XML wrapped(Boolean wrapped) {
-        setWrapped(wrapped);
-        return this;
-    }
+    XML wrapped(Boolean wrapped);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/Parameter.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/Parameter.java
index 01a4447..eff0833 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/Parameter.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/Parameter.java
@@ -50,7 +50,7 @@ import org.eclipse.microprofile.openapi.models.media.Schema;
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject">OpenAPI Specification Parameter
  *      Object</a>
  */
-public interface Parameter extends Constructible, Extensible<Parameter>, Reference<Parameter> {
+public interface Parameter extends Constructible, Extensible, Reference<Parameter> {
 
     /**
      * The values allowed for the style field.
@@ -109,10 +109,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param name the name of the parameter
      * @return the current Parameter instance
      */
-    default Parameter name(String name) {
-        setName(name);
-        return this;
-    }
+    Parameter name(String name);
 
     /**
      * Returns the in property from a Parameter instance.
@@ -134,10 +131,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param in the value of the in property
      * @return the current Parameter instance
      */
-    default Parameter in(In in) {
-        setIn(in);
-        return this;
-    }
+    Parameter in(In in);
 
     /**
      * Returns the description property from a Parameter instance.
@@ -159,10 +153,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param description a brief description of the parameter
      * @return the current Parameter instance
      */
-    default Parameter description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Parameter description(String description);
 
     /**
      * Returns the required property from a Parameter instance.
@@ -184,10 +175,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param required indicates whether this parameter is mandatory
      * @return the current Parameter instance
      */
-    default Parameter required(Boolean required) {
-        setRequired(required);
-        return this;
-    }
+    Parameter required(Boolean required);
 
     /**
      * Returns the deprecated property from a Parameter instance.
@@ -209,10 +197,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param deprecated specifies that a parameter is deprecated
      * @return the current Parameter instance
      */
-    default Parameter deprecated(Boolean deprecated) {
-        setDeprecated(deprecated);
-        return this;
-    }
+    Parameter deprecated(Boolean deprecated);
 
     /**
      * Returns the allowEmptyValue property from a Parameter instance.
@@ -234,10 +219,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param allowEmptyValue specify the ability to pass empty-valued parameters
      * @return the current Parameter instance
      */
-    default Parameter allowEmptyValue(Boolean allowEmptyValue) {
-        setAllowEmptyValue(allowEmptyValue);
-        return this;
-    }
+    Parameter allowEmptyValue(Boolean allowEmptyValue);
 
     /**
      * Returns the style property from a Parameter instance.
@@ -259,10 +241,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param style describes how the parameter value will be serialized
      * @return the current Parameter instance
      */
-    default Parameter style(Parameter.Style style) {
-        setStyle(style);
-        return this;
-    }
+    Parameter style(Parameter.Style style);
 
     /**
      * Returns the explode property from a Parameter instance.
@@ -284,10 +263,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param explode whether parameter values of type "array" or "object" generate separate parameters for each value
      * @return the current Parameter instance
      */
-    default Parameter explode(Boolean explode) {
-        setExplode(explode);
-        return this;
-    }
+    Parameter explode(Boolean explode);
 
     /**
      * Returns the allowReserved property from a Parameter instance.
@@ -309,10 +285,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param allowReserved specifies whether the parameter value should allow reserved characters
      * @return the current Parameter instance
      */
-    default Parameter allowReserved(Boolean allowReserved) {
-        setAllowReserved(allowReserved);
-        return this;
-    }
+    Parameter allowReserved(Boolean allowReserved);
 
     /**
      * Returns the schema property from a Parameter instance.
@@ -334,10 +307,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param schema schema defining the type used for the parameter
      * @return the current Parameter instance
      */
-    default Parameter schema(Schema schema) {
-        setSchema(schema);
-        return this;
-    }
+    Parameter schema(Schema schema);
 
     /**
      * Returns the examples property from a Parameter instance.
@@ -361,10 +331,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param examples examples of the media type
      * @return the current Parameter instance
      */
-    default Parameter examples(Map<String, Example> examples) {
-        setExamples(examples);
-        return this;
-    }
+    Parameter examples(Map<String, Example> examples);
 
     /**
      * Adds an example of the media type using the specified key. The example should contain a value in the correct format as specified in the
@@ -398,10 +365,7 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param example example of the media type
      * @return the current Parameter instance
      */
-    default Parameter example(Object example) {
-        setExample(example);
-        return this;
-    }
+    Parameter example(Object example);
 
     /**
      * Returns the content property from a Parameter instance.
@@ -423,9 +387,6 @@ public interface Parameter extends Constructible, Extensible<Parameter>, Referen
      * @param content a map containing the media representations for the parameter
      * @return the current Parameter instance
      */
-    default Parameter content(Content content) {
-        setContent(content);
-        return this;
-    }
+    Parameter content(Content content);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/RequestBody.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/RequestBody.java
index 387a8cf..ef5b91c 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/RequestBody.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/parameters/RequestBody.java
@@ -27,7 +27,7 @@ import org.eclipse.microprofile.openapi.models.media.Content;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/3.0.0-rc2/versions/3.0.md#requestBodyObject">requestBody Object</a>
  */
-public interface RequestBody extends Constructible, Extensible<RequestBody>, Reference<RequestBody> {
+public interface RequestBody extends Constructible, Extensible, Reference<RequestBody> {
 
     /**
      * Returns the description of this instance of RequestBody.
@@ -52,10 +52,7 @@ public interface RequestBody extends Constructible, Extensible<RequestBody>, Ref
      * @return this RequestBody instance
      */
 
-    default RequestBody description(String description) {
-        setDescription(description);
-        return this;
-    }
+    RequestBody description(String description);
 
     /**
      * Returns the content of this instance of RequestBody, where the keys in content are media type names and the values describe it.
@@ -80,10 +77,7 @@ public interface RequestBody extends Constructible, Extensible<RequestBody>, Ref
      * @return RequestBody instance with the modified content property
      */
 
-    default RequestBody content(Content content) {
-        setContent(content);
-        return this;
-    }
+    RequestBody content(Content content);
 
     /**
      * Returns whether this instance of RequestBody is required for the operation.
@@ -108,9 +102,6 @@ public interface RequestBody extends Constructible, Extensible<RequestBody>, Ref
      * @return this RequestBody instance
      */
 
-    default RequestBody required(Boolean required) {
-        setRequired(required);
-        return this;
-    }
+    RequestBody required(Boolean required);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponse.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponse.java
index dbdd50c..714d1c5 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponse.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponse.java
@@ -31,7 +31,7 @@ import org.eclipse.microprofile.openapi.models.media.Content;
  *
  * @see "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject"
  */
-public interface APIResponse extends Constructible, Extensible<APIResponse>, Reference<APIResponse> {
+public interface APIResponse extends Constructible, Extensible, Reference<APIResponse> {
 
     /**
      * Returns a short description of this instance of ApiResponse.
@@ -56,10 +56,7 @@ public interface APIResponse extends Constructible, Extensible<APIResponse>, Ref
      * @return this ApiResponse instance
      */
 
-    default APIResponse description(String description) {
-        setDescription(description);
-        return this;
-    }
+    APIResponse description(String description);
 
     /**
      * Returns the map of Headers in this instance of ApiResponse.
@@ -86,10 +83,7 @@ public interface APIResponse extends Constructible, Extensible<APIResponse>, Ref
      * @return this ApiResponse instance
      */
 
-    default APIResponse headers(Map<String, Header> headers) {
-        setHeaders(headers);
-        return this;
-    }
+    APIResponse headers(Map<String, Header> headers);
 
     /**
      * Adds the given Header to this ApiResponse instance's map of Headers with the given name and return this instance of ApiResponse. If this
@@ -125,10 +119,7 @@ public interface APIResponse extends Constructible, Extensible<APIResponse>, Ref
      * @return this ApiResponse instance
      */
 
-    default APIResponse content(Content content) {
-        setContent(content);
-        return this;
-    }
+    APIResponse content(Content content);
 
     /**
      * Returns the operations links that can be followed from tis instance of ApiResponse.
@@ -153,10 +144,7 @@ public interface APIResponse extends Constructible, Extensible<APIResponse>, Ref
      * @return current APIResponse instance
      */
 
-    default APIResponse links(Map<String, Link> links) {
-        setLinks(links);
-        return this;
-    }
+    APIResponse links(Map<String, Link> links);
 
     /**
      * Adds a link to this instance of ApiResponse using the given name and Link, and returns this ApiResponse instance.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponses.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponses.java
index b297f5a..6a6ab67 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponses.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/responses/APIResponses.java
@@ -64,9 +64,6 @@ public interface APIResponses extends Constructible, Map<String, APIResponse> {
      * @return this ApiResponses instance
      */
 
-    default APIResponses defaultValue(APIResponse defaultValue) {
-        setDefaultValue(defaultValue);
-        return this;
-    }
+    APIResponses defaultValue(APIResponse defaultValue);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlow.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlow.java
index f9b5913..b2eb4fb 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlow.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlow.java
@@ -25,7 +25,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#oauthFlowObject">OAuth Flow Object</a>
  */
-public interface OAuthFlow extends Constructible, Extensible<OAuthFlow> {
+public interface OAuthFlow extends Constructible, Extensible {
 
     /**
      * The authorization URL to be used for this flow. This MUST be in the form of a URL. This is a REQUIRED property.
@@ -59,10 +59,7 @@ public interface OAuthFlow extends Constructible, Extensible<OAuthFlow> {
      * @param authorizationUrl the authorization URL used for this flow
      * @return OAuthFlow instance with the set authorizationUrl property
      */
-    default OAuthFlow authorizationUrl(String authorizationUrl) {
-        setAuthorizationUrl(authorizationUrl);
-        return this;
-    }
+    OAuthFlow authorizationUrl(String authorizationUrl);
 
     /**
      * The token URL to be used for this flow. This MUST be in the form of a URL. This is a REQUIRED property.
@@ -96,10 +93,7 @@ public interface OAuthFlow extends Constructible, Extensible<OAuthFlow> {
      * @param tokenUrl the token URL to be used for this flow
      * @return OAuthFlow instance with the set tokenUrl property
      */
-    default OAuthFlow tokenUrl(String tokenUrl) {
-        setTokenUrl(tokenUrl);
-        return this;
-    }
+    OAuthFlow tokenUrl(String tokenUrl);
 
     /**
      * The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL.
@@ -133,10 +127,7 @@ public interface OAuthFlow extends Constructible, Extensible<OAuthFlow> {
      * @param refreshUrl the URL to be used for obtaining refresh tokens
      * @return OAuthFlow instance with the set refreshUrl property
      */
-    default OAuthFlow refreshUrl(String refreshUrl) {
-        setRefreshUrl(refreshUrl);
-        return this;
-    }
+    OAuthFlow refreshUrl(String refreshUrl);
 
     /**
      * The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. This is a REQUIRED property.
@@ -170,9 +161,6 @@ public interface OAuthFlow extends Constructible, Extensible<OAuthFlow> {
      * @param scopes the available scopes for the OAuth2 security scheme
      * @return OAuthFlow instance with the set scopes property
      */
-    default OAuthFlow scopes(Scopes scopes) {
-        setScopes(scopes);
-        return this;
-    }
+    OAuthFlow scopes(Scopes scopes);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlows.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlows.java
index c766449..522e694 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlows.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/OAuthFlows.java
@@ -25,7 +25,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#oauthFlowsObject">OAuthFlows Object</a>
  */
-public interface OAuthFlows extends Constructible, Extensible<OAuthFlows> {
+public interface OAuthFlows extends Constructible, Extensible {
 
     /**
      * This method returns the implicit property from OAuthFlows instance.
@@ -47,10 +47,7 @@ public interface OAuthFlows extends Constructible, Extensible<OAuthFlows> {
      * @param implicit the OauthFlow instance
      * @return OAuthFlows instance with the set implicit property
      */
-    default OAuthFlows implicit(OAuthFlow implicit) {
-        setImplicit(implicit);
-        return this;
-    }
+    OAuthFlows implicit(OAuthFlow implicit);
 
     /**
      * OAuth Resource Owner Password flow
@@ -78,10 +75,7 @@ public interface OAuthFlows extends Constructible, Extensible<OAuthFlows> {
      * @param password the OauthFlow instance
      * @return OAuthFlows instance with the set password property
      */
-    default OAuthFlows password(OAuthFlow password) {
-        setPassword(password);
-        return this;
-    }
+    OAuthFlows password(OAuthFlow password);
 
     /**
      * OAuth Client Credential flow; previously called application in OpenAPI 2.0
@@ -110,10 +104,7 @@ public interface OAuthFlows extends Constructible, Extensible<OAuthFlows> {
      * @param clientCredentials the OauthFlow instance
      * @return OAuthFlows instance with the set clientCredentials property
      */
-    default OAuthFlows clientCredentials(OAuthFlow clientCredentials) {
-        setClientCredentials(clientCredentials);
-        return this;
-    }
+    OAuthFlows clientCredentials(OAuthFlow clientCredentials);
 
     /**
      * OAuth Authorization Code flow; previously called accessCode in OpenAPI 2.0
@@ -142,9 +133,6 @@ public interface OAuthFlows extends Constructible, Extensible<OAuthFlows> {
      * @param authorizationCode the OauthFlow instance
      * @return OAuthFlows instance with the set authorizationCode property
      */
-    default OAuthFlows authorizationCode(OAuthFlow authorizationCode) {
-        setAuthorizationCode(authorizationCode);
-        return this;
-    }
+    OAuthFlows authorizationCode(OAuthFlow authorizationCode);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/Scopes.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/Scopes.java
index 639bf86..bef28fb 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/Scopes.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/Scopes.java
@@ -28,7 +28,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#oauthFlowObject">OAuthFlow Object</a>
  **/
 
-public interface Scopes extends Constructible, Extensible<Scopes>, Map<String, String> {
+public interface Scopes extends Constructible, Extensible, Map<String, String> {
 
     /**
      * Adds name of an existing scope object and item parameters to a Scopes instance as a key-value pair in a map.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/SecurityScheme.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/SecurityScheme.java
index 4120de7..2127a5c 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/security/SecurityScheme.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/security/SecurityScheme.java
@@ -26,7 +26,7 @@ import org.eclipse.microprofile.openapi.models.Reference;
  *
  * @see "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#security-scheme-object"
  */
-public interface SecurityScheme extends Constructible, Extensible<SecurityScheme>, Reference<SecurityScheme> {
+public interface SecurityScheme extends Constructible, Extensible, Reference<SecurityScheme> {
 
     /**
      * Type is a REQUIRED property that specifies the type of SecurityScheme instance.
@@ -96,10 +96,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param type the type of SecurityScheme instance
      * @return SecurityScheme instance with the set type property
      */
-    default SecurityScheme type(SecurityScheme.Type type) {
-        setType(type);
-        return this;
-    }
+    SecurityScheme type(SecurityScheme.Type type);
 
     /**
      * A short description for security schema.
@@ -127,10 +124,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param description short description of the SecuirtyScheme instance
      * @return SecurityScheme instance with the set description property
      */
-    default SecurityScheme description(String description) {
-        setDescription(description);
-        return this;
-    }
+    SecurityScheme description(String description);
 
     /**
      * Name is a REQUIRED property - this is the name of the header, query or cookie parameter to be used.
@@ -158,10 +152,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param name the name of the header, query or cookie parameter to be used
      * @return SecurityScheme instance with the set name property
      */
-    default SecurityScheme name(String name) {
-        setName(name);
-        return this;
-    }
+    SecurityScheme name(String name);
 
     /**
      * In is a REQUIRED property that indicates the location of the API key. Valid values are "query", "header", "cookie".
@@ -189,10 +180,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param in the location of the API key
      * @return SecurityScheme instance with the set in property
      */
-    default SecurityScheme in(SecurityScheme.In in) {
-        setIn(in);
-        return this;
-    }
+    SecurityScheme in(SecurityScheme.In in);
 
     /**
      * Schema is a REQUIRED property that is the name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.
@@ -220,10 +208,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param scheme the name of the HTTP Authorization scheme to be used in the Authorization header
      * @return SecurityScheme instance with the set scheme property
      */
-    default SecurityScheme scheme(String scheme) {
-        setScheme(scheme);
-        return this;
-    }
+    SecurityScheme scheme(String scheme);
 
     /**
      * bearerFormat is intended as a hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an
@@ -254,10 +239,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param bearerFormat a hint to the client to identify how the bearer token is formatted
      * @return SecurityScheme instance with the set bearerFormat property
      */
-    default SecurityScheme bearerFormat(String bearerFormat) {
-        setBearerFormat(bearerFormat);
-        return this;
-    }
+    SecurityScheme bearerFormat(String bearerFormat);
 
     /**
      * Flows is a REQUIRED property.
@@ -294,10 +276,7 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param flows an object containing configuration information for the flow types supported
      * @return SecurityScheme instance with the set flows property
      */
-    default SecurityScheme flows(OAuthFlows flows) {
-        setFlows(flows);
-        return this;
-    }
+    SecurityScheme flows(OAuthFlows flows);
 
     /**
      * openIdConnectUrl is a REQUIRED property.
@@ -334,9 +313,6 @@ public interface SecurityScheme extends Constructible, Extensible<SecurityScheme
      * @param openIdConnectUrl a URL where OAuth2 configuration values are stored
      * @return SecurityScheme instance with the set openIdConnectUrl property
      */
-    default SecurityScheme openIdConnectUrl(String openIdConnectUrl) {
-        setOpenIdConnectUrl(openIdConnectUrl);
-        return this;
-    }
+    SecurityScheme openIdConnectUrl(String openIdConnectUrl);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/Server.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/Server.java
index 3d29413..e1936bc 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/Server.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/Server.java
@@ -25,7 +25,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#serverObject">Server Object</a>
  */
-public interface Server extends Constructible, Extensible<Server> {
+public interface Server extends Constructible, Extensible {
 
     /**
      * This method returns the url property of Server instance, which is a URL to the target host.
@@ -66,10 +66,7 @@ public interface Server extends Constructible, Extensible<Server> {
      * @param url a URL to the target host
      * @return Server instance with the set url property.
      */
-    default Server url(String url) {
-        setUrl(url);
-        return this;
-    }
+    Server url(String url);
 
     /**
      * This method returns the description property of Server instance. The decsription property is an optional string describing the host designated
@@ -97,10 +94,7 @@ public interface Server extends Constructible, Extensible<Server> {
      * @param description an optional string describing the host designated by the URL
      * @return Server instance with the set description property.
      */
-    default Server description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Server description(String description);
 
     /**
      * This method returns the variables property of Server instance.
@@ -128,9 +122,6 @@ public interface Server extends Constructible, Extensible<Server> {
      * @param variables a map between variable name and its value
      * @return Server instance with the set variables property.
      */
-    default Server variables(ServerVariables variables) {
-        setVariables(variables);
-        return this;
-    }
+    Server variables(ServerVariables variables);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariable.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariable.java
index 1eac8a1..5c393be 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariable.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariable.java
@@ -27,7 +27,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#server-variable-object">ServerVariable Object</a>
  */
-public interface ServerVariable extends Constructible, Extensible<ServerVariable> {
+public interface ServerVariable extends Constructible, Extensible {
 
     /**
      * This method returns the enumeration property of ServerVariable instance.
@@ -55,10 +55,7 @@ public interface ServerVariable extends Constructible, Extensible<ServerVariable
      * @param enumeration an list of string values to be used if the substitution options are from a limited set
      * @return ServerVariable instance with the set enumeration property
      */
-    default ServerVariable enumeration(List<String> enumeration) {
-        setEnumeration(enumeration);
-        return this;
-    }
+    ServerVariable enumeration(List<String> enumeration);
 
     /**
      * This method adds a string item to enumeration list of a ServerVariable instance and returns the instance.
@@ -100,10 +97,7 @@ public interface ServerVariable extends Constructible, Extensible<ServerVariable
      * @return ServerVariable instance with the set defaultValue property
      */
 
-    default ServerVariable defaultValue(String defaultValue) {
-        setDefaultValue(defaultValue);
-        return this;
-    }
+    ServerVariable defaultValue(String defaultValue);
 
     /**
      * This method returns the description property of ServerVariable instance. Description property is optional for server variable.
@@ -128,9 +122,6 @@ public interface ServerVariable extends Constructible, Extensible<ServerVariable
      * @param description a short description of the server variable
      * @return ServerVariable instance with the set description property
      */
-    default ServerVariable description(String description) {
-        setDescription(description);
-        return this;
-    }
+    ServerVariable description(String description);
 
 }
\ No newline at end of file
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariables.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariables.java
index 8842043..c0d73e8 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariables.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/servers/ServerVariables.java
@@ -27,7 +27,7 @@ import org.eclipse.microprofile.openapi.models.Extensible;
  *
  * @see <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#server-variable-object">ServerVariable Object</a>
  */
-public interface ServerVariables extends Constructible, Extensible<ServerVariables>, Map<String, ServerVariable> {
+public interface ServerVariables extends Constructible, Extensible, Map<String, ServerVariable> {
 
     /**
      * This method adds a key-value item to a ServerVariables instance from the name-item parameter pair and returns the modified instance.
diff --git a/api/src/main/java/org/eclipse/microprofile/openapi/models/tags/Tag.java b/api/src/main/java/org/eclipse/microprofile/openapi/models/tags/Tag.java
index 3e3f8fe..4a98375 100644
--- a/api/src/main/java/org/eclipse/microprofile/openapi/models/tags/Tag.java
+++ b/api/src/main/java/org/eclipse/microprofile/openapi/models/tags/Tag.java
@@ -28,7 +28,7 @@ import org.eclipse.microprofile.openapi.models.ExternalDocumentation;
  * 
  * @see <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#tagObject">OpenAPI Specification Tag Object</a>
  */
-public interface Tag extends Constructible, Extensible<Tag> {
+public interface Tag extends Constructible, Extensible {
 
     /**
      * Returns the name property from a Tag instance.
@@ -50,10 +50,7 @@ public interface Tag extends Constructible, Extensible<Tag> {
      * @param name the name property for this tag
      * @return the current Tag instance
      */
-    default Tag name(String name) {
-        setName(name);
-        return this;
-    }
+    Tag name(String name);
 
     /**
      * Returns the description property from a Tag instance.
@@ -75,10 +72,7 @@ public interface Tag extends Constructible, Extensible<Tag> {
      * @param description the description property for this tag
      * @return the current Tag instance
      */
-    default Tag description(String description) {
-        setDescription(description);
-        return this;
-    }
+    Tag description(String description);
 
     /**
      * Returns the externalDocs property from a Tag instance.
@@ -100,9 +94,6 @@ public interface Tag extends Constructible, Extensible<Tag> {
      * @param externalDocs additional external documentation for this tag
      * @return the current Tag instance
      */
-    default Tag externalDocs(ExternalDocumentation externalDocs) {
-        setExternalDocs(externalDocs);
-        return this;
-    }
+    Tag externalDocs(ExternalDocumentation externalDocs);
 
 }
\ No newline at end of file
diff --git a/tck/src/main/java/org/eclipse/microprofile/openapi/apps/airlines/resources/ReviewResource.java b/tck/src/main/java/org/eclipse/microprofile/openapi/apps/airlines/resources/ReviewResource.java
index f23f9d7..5e208e8 100644
--- a/tck/src/main/java/org/eclipse/microprofile/openapi/apps/airlines/resources/ReviewResource.java
+++ b/tck/src/main/java/org/eclipse/microprofile/openapi/apps/airlines/resources/ReviewResource.java
@@ -321,9 +321,7 @@ public class ReviewResource {
                     required = true,
                     in = ParameterIn.PATH,
                     content = @Content(
-                        examples = @ExampleObject(
-                            name = "example",
-                            value = "Acme Air"))),
+                        example = "Acme Air")),
                 @Parameter(
                     name = "user",
                     description = "sername of the user for the reviews",


Test patch:
diff --git a/tck/src/main/java/org/eclipse/microprofile/openapi/tck/AirlinesAppTest.java b/tck/src/main/java/org/eclipse/microprofile/openapi/tck/AirlinesAppTest.java
index 1380380..486c30e 100644
--- a/tck/src/main/java/org/eclipse/microprofile/openapi/tck/AirlinesAppTest.java
+++ b/tck/src/main/java/org/eclipse/microprofile/openapi/tck/AirlinesAppTest.java
@@ -664,6 +664,13 @@ public class AirlinesAppTest extends AppTestBase {
         vr.body("paths.'/reviews/users/{user}'.get.parameters.find{ it.name=='user'}.examples.example2.value", equalTo("pat@example.com"));
     }
 
+    @RunAsClient
+    @Test(dataProvider = "formatProvider")
+    public void testContentExampleAttribute(String type){
+        ValidatableResponse vr = callEndpoint(type);
+        vr.body("paths.'/reviews/{user}/{airlines}'.get.parameters.find{it.name=='airlines'}.content.'*/*'.example", equalTo("Acme Air"));
+    }
+
     @RunAsClient
     @Test(dataProvider = "formatProvider")
     public void testTagDeclarations(String type) {
diff --git a/tck/src/main/java/org/eclipse/microprofile/openapi/tck/ModelConstructionTest.java b/tck/src/main/java/org/eclipse/microprofile/openapi/tck/ModelConstructionTest.java
index c439c0d..b723f34 100644
--- a/tck/src/main/java/org/eclipse/microprofile/openapi/tck/ModelConstructionTest.java
+++ b/tck/src/main/java/org/eclipse/microprofile/openapi/tck/ModelConstructionTest.java
@@ -261,47 +261,6 @@ public class ModelConstructionTest extends Arquillian {
         final Server s = createConstructibleInstance(Server.class);
         checkSameObject(pi, pi.addServer(s));
         checkListEntry(pi.getServers(), s);
-        
-        final Operation o1 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.GET(o1));
-        checkSameObject(o1, pi.getGET());
-        
-        final Operation o2 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.PUT(o2));
-        checkSameObject(o2, pi.getPUT());
-        
-        final Operation o3 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.POST(o3));
-        checkSameObject(o3, pi.getPOST());
-        
-        final Operation o4 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.DELETE(o4));
-        checkSameObject(o4, pi.getDELETE());
-        
-        final Operation o5 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.OPTIONS(o5));
-        checkSameObject(o5, pi.getOPTIONS());
-        
-        final Operation o6 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.HEAD(o6));
-        checkSameObject(o6, pi.getHEAD());
-        
-        final Operation o7 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.PATCH(o7));
-        checkSameObject(o7, pi.getPATCH());
-        
-        final Operation o8 = createConstructibleInstance(Operation.class);
-        checkSameObject(pi, pi.TRACE(o8));
-        checkSameObject(o8, pi.getTRACE());
-        
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.GET, o1);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.PUT, o2);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.POST, o3);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.DELETE, o4);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.OPTIONS, o5);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.HEAD, o6);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.PATCH, o7);
-        checkMapEntry(pi.getOperations(), PathItem.HttpMethod.TRACE, o8);
     }
     
     @Test
@@ -855,7 +814,7 @@ public class ModelConstructionTest extends Arquillian {
         return properties;
     }
     
-    private <K, T> void checkMapEntry(Map<K,T> map, K key, T value) {
+    private <T> void checkMapEntry(Map<String,T> map, String key, T value) {
         assertNotNull(map, "The map must not be null.");
         assertTrue(map.containsKey(key), "The map is expected to contain the key: " + key);
         assertSame(map.get(key), value, "The value associated with the key: " + key + " is expected to be the same one that was added.");