This is an automated email from the ASF dual-hosted git repository.

nfilotto pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 3cf50a8  CAMEL-17717: REST DSL securityRequirements cleanup (#7105)
3cf50a8 is described below

commit 3cf50a85bbfd16b509585ec15fcf69fc392ae511
Author: Nicolas Filotto <[email protected]>
AuthorDate: Fri Mar 4 20:51:01 2022 +0100

    CAMEL-17717: REST DSL securityRequirements cleanup (#7105)
---
 .../org/apache/camel/catalog/models/rest.json      |  2 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  | 22 ++----
 .../apache/camel/openapi/RestOpenApiReader.java    | 29 +++----
 .../org/apache/camel/model/rest/jaxb.index         |  1 -
 .../org/apache/camel/model/rest/rest.json          |  2 +-
 .../apache/camel/model/rest/RestDefinition.java    | 18 +++--
 .../model/rest/SecurityRequirementsDefinition.java | 92 ----------------------
 .../java/org/apache/camel/xml/in/ModelParser.java  | 12 +--
 .../ROOT/pages/camel-3x-upgrade-guide-3_16.adoc    |  5 +-
 .../dsl/yaml/deserializers/ModelDeserializers.java | 46 +----------
 .../deserializers/ModelDeserializersResolver.java  |  3 -
 .../src/generated/resources/camel-yaml-dsl.json    | 13 +--
 .../src/generated/resources/camelYamlDsl.json      | 13 +--
 13 files changed, 47 insertions(+), 211 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/rest.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/rest.json
index c64990e..7f5f3af 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/rest.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/rest.json
@@ -22,7 +22,7 @@
     "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "label": 
"advanced", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "Whether to include or exclude this rest 
operation in API documentation. This option will override what may be 
configured on a parent level. The default value is true." },
     "tag": { "kind": "attribute", "displayName": "Tag", "label": "advanced", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
configure a special tag for the operations within this rest definition." },
     "securityDefinitions": { "kind": "element", "displayName": "Security 
Definitions", "label": "security", "required": false, "type": "object", 
"javaType": "org.apache.camel.model.rest.RestSecuritiesDefinition", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the security definitions such as Basic, OAuth2 etc." },
-    "securityRequirements": { "kind": "element", "displayName": "Security 
Requirements", "label": "security", "required": false, "type": "object", 
"javaType": "org.apache.camel.model.rest.SecurityRequirementsDefinition", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the security requirement(s) for all endpoints." },
+    "securityRequirements": { "kind": "element", "displayName": "Security 
Requirements", "label": "security", "required": false, "type": "array", 
"javaType": "java.util.List<org.apache.camel.model.rest.SecurityDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the security requirement(s) for all endpoints." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the id of this node" 
},
     "description": { "kind": "element", "displayName": "Description", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.model.DescriptionDefinition", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the description of 
this node" }
   }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index c1742f1..6dd00d4 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -1424,14 +1424,6 @@ To configure rest security definitions.
     </xs:annotation>
   </xs:element>
 
-  <xs:element name="securityRequirements" 
type="tns:securityRequirementsDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en"><![CDATA[
-To configure global rest security requirements.
-      ]]></xs:documentation>
-    </xs:annotation>
-  </xs:element>
-
   <xs:element name="serviceCall" type="tns:serviceCallDefinition">
     <xs:annotation>
       <xs:documentation xml:lang="en"><![CDATA[
@@ -14665,7 +14657,13 @@ to refer to an existing data format instance.
       <xs:extension base="tns:optionalIdentifiedDefinition">
         <xs:sequence>
           <xs:element minOccurs="0" ref="tns:securityDefinitions"/>
-          <xs:element minOccurs="0" ref="tns:securityRequirements"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" 
name="securityRequirements" type="tns:securityDefinition">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+Sets the security requirement(s) for all endpoints.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
           <xs:choice maxOccurs="unbounded" minOccurs="0">
             <xs:element ref="tns:delete"/>
             <xs:element ref="tns:get"/>
@@ -14773,12 +14771,6 @@ To configure a special tag for the operations within 
this rest definition.
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="securityRequirementsDefinition">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" minOccurs="0" 
name="securityRequirement" type="tns:securityDefinition"/>
-    </xs:sequence>
-  </xs:complexType>
-
   <xs:complexType name="restsDefinition">
     <xs:complexContent>
       <xs:extension base="tns:optionalIdentifiedDefinition">
diff --git 
a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
 
b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
index 43f7348..6141edf 100644
--- 
a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
+++ 
b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
@@ -20,7 +20,6 @@ import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodType;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -97,7 +96,6 @@ import org.apache.camel.model.rest.RestPropertyDefinition;
 import org.apache.camel.model.rest.RestSecuritiesDefinition;
 import org.apache.camel.model.rest.RestSecurityDefinition;
 import org.apache.camel.model.rest.SecurityDefinition;
-import org.apache.camel.model.rest.SecurityRequirementsDefinition;
 import org.apache.camel.model.rest.VerbDefinition;
 import org.apache.camel.spi.ClassResolver;
 import org.apache.camel.support.CamelContextHelper;
@@ -258,21 +256,18 @@ public class RestOpenApiReader {
         doParseVerbs(camelContext, openApi, rest, camelContextId, verbs, 
pathAsTag);
 
         // setup root security node if necessary
-        SecurityRequirementsDefinition securitiesRequirement = 
rest.getSecurityRequirements();
-        if (securitiesRequirement != null) {
-            Collection<SecurityDefinition> securityRequirements = 
securitiesRequirement.securityRequirements();
-            securityRequirements.forEach(requirement -> {
-                OasSecurityRequirement oasRequirement = 
openApi.createSecurityRequirement();
-                List<String> scopes;
-                if (requirement.getScopes() == null || 
requirement.getScopes().trim().isEmpty()) {
-                    scopes = Collections.emptyList();
-                } else {
-                    scopes = 
Arrays.asList(requirement.getScopes().trim().split("\\s*,\\s*"));
-                }
-                
oasRequirement.addSecurityRequirementItem(requirement.getKey(), scopes);
-                openApi.addSecurityRequirement(oasRequirement);
-            });
-        }
+        List<SecurityDefinition> securityRequirements = 
rest.getSecurityRequirements();
+        securityRequirements.forEach(requirement -> {
+            OasSecurityRequirement oasRequirement = 
openApi.createSecurityRequirement();
+            List<String> scopes;
+            if (requirement.getScopes() == null || 
requirement.getScopes().trim().isEmpty()) {
+                scopes = Collections.emptyList();
+            } else {
+                scopes = 
Arrays.asList(requirement.getScopes().trim().split("\\s*,\\s*"));
+            }
+            oasRequirement.addSecurityRequirementItem(requirement.getKey(), 
scopes);
+            openApi.addSecurityRequirement(oasRequirement);
+        });
     }
 
     private void parseOas30(Oas30Document openApi, RestDefinition rest, String 
pathAsTag) {
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index
index 388ecc7..d5151db 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index
@@ -25,4 +25,3 @@ RestPropertyDefinition
 RestSecuritiesDefinition
 RestsDefinition
 SecurityDefinition
-SecurityRequirementsDefinition
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/rest.json
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/rest.json
index c64990e..7f5f3af 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/rest.json
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/rest.json
@@ -22,7 +22,7 @@
     "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "label": 
"advanced", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "description": "Whether to include or exclude this rest 
operation in API documentation. This option will override what may be 
configured on a parent level. The default value is true." },
     "tag": { "kind": "attribute", "displayName": "Tag", "label": "advanced", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
configure a special tag for the operations within this rest definition." },
     "securityDefinitions": { "kind": "element", "displayName": "Security 
Definitions", "label": "security", "required": false, "type": "object", 
"javaType": "org.apache.camel.model.rest.RestSecuritiesDefinition", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the security definitions such as Basic, OAuth2 etc." },
-    "securityRequirements": { "kind": "element", "displayName": "Security 
Requirements", "label": "security", "required": false, "type": "object", 
"javaType": "org.apache.camel.model.rest.SecurityRequirementsDefinition", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the security requirement(s) for all endpoints." },
+    "securityRequirements": { "kind": "element", "displayName": "Security 
Requirements", "label": "security", "required": false, "type": "array", 
"javaType": "java.util.List<org.apache.camel.model.rest.SecurityDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the security requirement(s) for all endpoints." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the id of this node" 
},
     "description": { "kind": "element", "displayName": "Description", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.model.DescriptionDefinition", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the description of 
this node" }
   }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 954be24..facf13f 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -80,9 +80,9 @@ public class RestDefinition extends 
OptionalIdentifiedDefinition<RestDefinition>
     @XmlElement(name = "securityDefinitions") // use the name Swagger/OpenAPI 
uses
     @Metadata(label = "security")
     private RestSecuritiesDefinition securityDefinitions;
-    @XmlElement(name = "securityRequirements") // use the name Swagger/OpenAPI 
uses
+    @XmlElement
     @Metadata(label = "security")
-    private SecurityRequirementsDefinition securityRequirements;
+    private List<SecurityDefinition> securityRequirements = new ArrayList<>();
     @XmlElementRef
     private List<VerbDefinition> verbs = new ArrayList<>();
 
@@ -170,14 +170,14 @@ public class RestDefinition extends 
OptionalIdentifiedDefinition<RestDefinition>
         this.securityDefinitions = securityDefinitions;
     }
 
-    public SecurityRequirementsDefinition getSecurityRequirements() {
+    public List<SecurityDefinition> getSecurityRequirements() {
         return securityRequirements;
     }
 
     /**
      * Sets the security requirement(s) for all endpoints.
      */
-    public void setSecurityRequirements(SecurityRequirementsDefinition 
securityRequirements) {
+    public void setSecurityRequirements(List<SecurityDefinition> 
securityRequirements) {
         this.securityRequirements = securityRequirements;
     }
 
@@ -591,10 +591,14 @@ public class RestDefinition extends 
OptionalIdentifiedDefinition<RestDefinition>
     public RestDefinition security(String key, String scopes) {
         // add to last verb
         if (getVerbs().isEmpty()) {
-            if (securityRequirements == null) {
-                securityRequirements = new SecurityRequirementsDefinition();
+            SecurityDefinition requirement = securityRequirements
+                    .stream().filter(r -> 
key.equals(r.getKey())).findFirst().orElse(null);
+            if (requirement == null) {
+                requirement = new SecurityDefinition();
+                securityRequirements.add(requirement);
+                requirement.setKey(key);
             }
-            securityRequirements.securityRequirement(key, scopes);
+            requirement.setScopes(scopes);
         } else {
             VerbDefinition verb = getVerbs().get(getVerbs().size() - 1);
             SecurityDefinition sd = new SecurityDefinition();
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/SecurityRequirementsDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/SecurityRequirementsDefinition.java
deleted file mode 100644
index 42ea7a8..0000000
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/SecurityRequirementsDefinition.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model.rest;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-import org.apache.camel.spi.Metadata;
-
-/**
- * To configure global rest security requirements.
- */
-@Metadata(label = "rest,security,configuration", title = "Rest Security 
Requirements")
-@XmlRootElement(name = "securityRequirements")
-@XmlAccessorType(XmlAccessType.FIELD)
-public class SecurityRequirementsDefinition {
-
-    @XmlTransient
-    RestDefinition rest;
-    @XmlTransient
-    Map<String, SecurityDefinition> itemsMap = new HashMap<>();
-    @XmlElements({ @XmlElement(name = "securityRequirement", type = 
SecurityDefinition.class) })
-    List<SecurityDefinition> securityRequirements = new ArrayList<>();
-
-    public SecurityRequirementsDefinition() {
-    }
-
-    public SecurityRequirementsDefinition(RestDefinition rest) {
-        this.rest = rest;
-    }
-
-    public RestDefinition securityRequirement(String key) {
-        return securityRequirement(key, null);
-    }
-
-    public RestDefinition securityRequirement(String key, String scopes) {
-        SecurityDefinition requirement = itemsMap.get(key);
-        if (requirement == null) {
-            requirement = new SecurityDefinition();
-        }
-
-        requirement.setKey(key);
-        requirement.setScopes(scopes);
-        itemsMap.put(key, requirement);
-        securityRequirements = new ArrayList<>(itemsMap.values());
-
-        return rest;
-    }
-
-    public Collection<SecurityDefinition> securityRequirements() {
-        return new ArrayList<>(securityRequirements);
-    }
-
-    public List<SecurityDefinition> getSecurityRequirements() {
-        return securityRequirements;
-    }
-
-    /**
-     * Security requirement configurations
-     */
-    public void setSecurityRequirements(Collection<SecurityDefinition> 
securityRequirements) {
-        itemsMap = securityRequirements.stream()
-                .collect(Collectors.toMap(SecurityDefinition::getKey, 
Function.identity(), (u, v) -> u));
-        this.securityRequirements = new ArrayList<>(itemsMap.values());
-    }
-}
diff --git 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index b6d537ef..bd2d248 100644
--- 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -1096,7 +1096,7 @@ public class ModelParser extends BaseParser {
                 case "post": doAdd(doParsePostDefinition(), def.getVerbs(), 
def::setVerbs); break;
                 case "put": doAdd(doParsePutDefinition(), def.getVerbs(), 
def::setVerbs); break;
                 case "securityDefinitions": 
def.setSecurityDefinitions(doParseRestSecuritiesDefinition()); break;
-                case "securityRequirements": 
def.setSecurityRequirements(doParseSecurityRequirementsDefinition()); break;
+                case "securityRequirements": 
doAdd(doParseSecurityDefinition(), def.getSecurityRequirements(), 
def::setSecurityRequirements); break;
                 default: return 
optionalIdentifiedDefinitionElementHandler().accept(def, key);
             }
             return true;
@@ -3066,16 +3066,6 @@ public class ModelParser extends BaseParser {
             return true;
         }, noValueHandler());
     }
-    protected SecurityRequirementsDefinition 
doParseSecurityRequirementsDefinition() throws IOException, 
XmlPullParserException {
-        return doParse(new SecurityRequirementsDefinition(),
-            noAttributeHandler(), (def, key) -> {
-            if ("securityRequirement".equals(key)) {
-                doAdd(doParseSecurityDefinition(), 
def.getSecurityRequirements(), def::setSecurityRequirements);
-                return true;
-            }
-            return false;
-        }, noValueHandler());
-    }
     public Optional<RestsDefinition> parseRestsDefinition()
             throws IOException, XmlPullParserException {
         String tag = getNextTag("rests", "rest");
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc
index 7be01b3..0e54c46 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc
@@ -147,7 +147,10 @@ Renamed the following classes in package 
`org.apache.camel.model.rest`:
 - `RestOperationParamDefinition` to `ParamDefinition`
 - `RestOperationResponseHeaderDefinition` to `ResponseHeaderDefinition`
 - `RestOperationResponseMsgDefinition` to `ResponseMessageDefinition`
-- `RestSecuritiesRequirement` to `SecurityRequirementsDefinition`
+
+==== Removed classes
+
+For the sake of simplicity, the class `RestSecuritiesRequirement` has been 
removed because it contains only elements of type `SecurityDefinition` which 
have been moved directly into `RestDefinition`.
 
 === Aggregate EIP
 
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index 7d9cc24..34eb592 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -220,7 +220,6 @@ import org.apache.camel.model.rest.RestPropertyDefinition;
 import org.apache.camel.model.rest.RestSecuritiesDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 import org.apache.camel.model.rest.SecurityDefinition;
-import org.apache.camel.model.rest.SecurityRequirementsDefinition;
 import org.apache.camel.model.transformer.CustomTransformerDefinition;
 import org.apache.camel.model.transformer.DataFormatTransformerDefinition;
 import org.apache.camel.model.transformer.EndpointTransformerDefinition;
@@ -12165,7 +12164,7 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
                     @YamlProperty(name = "produces", type = "string"),
                     @YamlProperty(name = "put", type = 
"array:org.apache.camel.model.rest.PutDefinition"),
                     @YamlProperty(name = "security-definitions", type = 
"object:org.apache.camel.model.rest.RestSecuritiesDefinition"),
-                    @YamlProperty(name = "security-requirements", type = 
"object:org.apache.camel.model.rest.SecurityRequirementsDefinition"),
+                    @YamlProperty(name = "security-requirements", type = 
"array:org.apache.camel.model.rest.SecurityDefinition"),
                     @YamlProperty(name = "skip-binding-on-error-code", type = 
"boolean"),
                     @YamlProperty(name = "tag", type = "string")
             }
@@ -12225,7 +12224,7 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
                     break;
                 }
                 case "security-requirements": {
-                    org.apache.camel.model.rest.SecurityRequirementsDefinition 
val = asType(node, 
org.apache.camel.model.rest.SecurityRequirementsDefinition.class);
+                    
java.util.List<org.apache.camel.model.rest.SecurityDefinition> val = 
asFlatList(node, org.apache.camel.model.rest.SecurityDefinition.class);
                     target.setSecurityRequirements(val);
                     break;
                 }
@@ -13446,47 +13445,6 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
     }
 
     @YamlType(
-            types = 
org.apache.camel.model.rest.SecurityRequirementsDefinition.class,
-            order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            nodes = {
-                    "security-requirements",
-                    "securityRequirements"
-            },
-            properties = @YamlProperty(name = "security-requirement", type = 
"object:org.apache.camel.model.rest.SecurityDefinition")
-    )
-    public static class SecurityRequirementsDefinitionDeserializer extends 
YamlDeserializerBase<SecurityRequirementsDefinition> {
-        public SecurityRequirementsDefinitionDeserializer() {
-            super(SecurityRequirementsDefinition.class);
-        }
-
-        @Override
-        protected SecurityRequirementsDefinition newInstance() {
-            return new SecurityRequirementsDefinition();
-        }
-
-        @Override
-        protected boolean setProperty(SecurityRequirementsDefinition target, 
String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "security-requirement": {
-                    org.apache.camel.model.rest.SecurityDefinition val = 
asType(node, org.apache.camel.model.rest.SecurityDefinition.class);
-                    
java.util.List<org.apache.camel.model.rest.SecurityDefinition> existing = 
target.getSecurityRequirements();
-                    if (existing == null) {
-                        existing = new java.util.ArrayList<>();
-                    }
-                    existing.add(val);
-                    target.setSecurityRequirements(existing);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
-    @YamlType(
             types = 
org.apache.camel.model.cloud.ServiceCallConfigurationDefinition.class,
             order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
             nodes = {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
index bbd2dea..24c2fa8 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
@@ -391,9 +391,6 @@ public final class ModelDeserializersResolver implements 
YamlDeserializerResolve
             case "org.apache.camel.model.ScriptDefinition": return new 
ModelDeserializers.ScriptDefinitionDeserializer();
             case "security": return new 
ModelDeserializers.SecurityDefinitionDeserializer();
             case "org.apache.camel.model.rest.SecurityDefinition": return new 
ModelDeserializers.SecurityDefinitionDeserializer();
-            case "security-requirements": return new 
ModelDeserializers.SecurityRequirementsDefinitionDeserializer();
-            case "securityRequirements": return new 
ModelDeserializers.SecurityRequirementsDefinitionDeserializer();
-            case "org.apache.camel.model.rest.SecurityRequirementsDefinition": 
return new ModelDeserializers.SecurityRequirementsDefinitionDeserializer();
             case "service-call-configuration": return new 
ModelDeserializers.ServiceCallConfigurationDefinitionDeserializer();
             case "serviceCallConfiguration": return new 
ModelDeserializers.ServiceCallConfigurationDefinitionDeserializer();
             case 
"org.apache.camel.model.cloud.ServiceCallConfigurationDefinition": return new 
ModelDeserializers.ServiceCallConfigurationDefinitionDeserializer();
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
index 9ca79c9..b96eb2e 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
@@ -7371,7 +7371,10 @@
             "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.RestSecuritiesDefinition"
           },
           "security-requirements" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.SecurityRequirementsDefinition"
+            "type" : "array",
+            "items" : {
+              "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.SecurityDefinition"
+            }
           },
           "skip-binding-on-error-code" : {
             "type" : "boolean"
@@ -7445,14 +7448,6 @@
         },
         "required" : [ "key" ]
       },
-      "org.apache.camel.model.rest.SecurityRequirementsDefinition" : {
-        "type" : "object",
-        "properties" : {
-          "security-requirement" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.SecurityDefinition"
-          }
-        }
-      },
       "org.apache.camel.model.transformer.CustomTransformerDefinition" : {
         "type" : "object",
         "properties" : {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
index f67dbf4..a7c11d0 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
@@ -7269,7 +7269,10 @@
             "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.RestSecuritiesDefinition"
           },
           "securityRequirements" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.SecurityRequirementsDefinition"
+            "type" : "array",
+            "items" : {
+              "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.SecurityDefinition"
+            }
           },
           "skipBindingOnErrorCode" : {
             "type" : "boolean"
@@ -7343,14 +7346,6 @@
         },
         "required" : [ "key" ]
       },
-      "org.apache.camel.model.rest.SecurityRequirementsDefinition" : {
-        "type" : "object",
-        "properties" : {
-          "securityRequirement" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.rest.SecurityDefinition"
-          }
-        }
-      },
       "org.apache.camel.model.transformer.CustomTransformerDefinition" : {
         "type" : "object",
         "properties" : {

Reply via email to