You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2022/12/21 15:10:35 UTC

[camel-karavan] branch main updated: fix #573

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 7bfe1fb  fix #573
7bfe1fb is described below

commit 7bfe1fb6be54c4794e9a69a51f4c6ab0536e7f5b
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Wed Dec 21 10:10:13 2022 -0500

    fix #573
---
 karavan-core/src/core/api/CamelDefinitionYaml.ts   |    9 +-
 karavan-core/src/core/model/CamelDefinition.ts     | 2947 +++++++++++---------
 .../src/core/model/IntegrationDefinition.ts        |    6 +-
 karavan-core/test/checkRequired.spec.ts            |    2 +
 karavan-core/test/multiObjectProperties1.yaml      |    6 +-
 karavan-core/test/plain-try-catch.yaml             |   16 +-
 karavan-core/test/plain.spec.ts                    |    3 +-
 karavan-generator/pom.xml                          |    2 +-
 .../camel/karavan/generator/AbstractGenerator.java |   59 +
 .../generator/CamelDefinitionGenerator.java        |   54 +-
 .../karavan/generator/CamelMetadataGenerator.java  |    7 +-
 .../src/main/resources/CamelDefinition.header.ts   |    1 +
 .../src/main/resources/CamelDefinition.ts          |    1 +
 13 files changed, 1713 insertions(+), 1400 deletions(-)

diff --git a/karavan-core/src/core/api/CamelDefinitionYaml.ts b/karavan-core/src/core/api/CamelDefinitionYaml.ts
index 2da9985..cbb5bdb 100644
--- a/karavan-core/src/core/api/CamelDefinitionYaml.ts
+++ b/karavan-core/src/core/api/CamelDefinitionYaml.ts
@@ -97,13 +97,8 @@ export class CamelDefinitionYaml {
                 noRefs: false,
                 noArrayIndent: false,
                 sortKeys: function (a: any, b: any) {
-                    if (a === 'uri') return -1
-                    else if (b === 'uri') return 1
-                    else if (a === 'expression' && b == 'steps') return -1
-                    else if (b === 'expression' && a == 'steps') return 1
-                    else if (a === 'steps' && b !== 'uri') return -1
-                    else if (b === 'steps' && a !== 'uri') return 1
-                    else if (a > b) return 1
+                    if (a === 'steps') return 1
+                    else if (b === 'steps') return -1
                     else return 0;
                 },
                 replacer: (key, value) => this.replacer(key, value)
diff --git a/karavan-core/src/core/model/CamelDefinition.ts b/karavan-core/src/core/model/CamelDefinition.ts
index e4686fd..3498468 100644
--- a/karavan-core/src/core/model/CamelDefinition.ts
+++ b/karavan-core/src/core/model/CamelDefinition.ts
@@ -1,77 +1,79 @@
 /**
  * Generated by karavan build tools - do NOT edit this file!
  */
+import {v4 as uuidv4} from 'uuid';
 import {CamelElement} from "./IntegrationDefinition";
 export class ProcessorDefinition extends CamelElement {
-    idempotentConsumer?: IdempotentConsumerDefinition;
-    resumable?: ResumableDefinition;
-    doTry?: TryDefinition;
+    stepName?: string = 'processor';
+    aggregate?: AggregateDefinition;
+    bean?: BeanDefinition | string;
+    doCatch?: CatchDefinition;
+    choice?: ChoiceDefinition;
+    circuitBreaker?: CircuitBreakerDefinition;
+    claimCheck?: ClaimCheckDefinition;
     convertBodyTo?: ConvertBodyDefinition | string;
-    recipientList?: RecipientListDefinition;
-    when?: WhenDefinition;
-    setHeader?: SetHeaderDefinition;
+    delay?: DelayDefinition;
+    dynamicRouter?: DynamicRouterDefinition;
+    enrich?: EnrichDefinition;
+    filter?: FilterDefinition;
+    doFinally?: FinallyDefinition;
+    idempotentConsumer?: IdempotentConsumerDefinition;
     inOnly?: InOnlyDefinition | string;
     inOut?: InOutDefinition | string;
-    split?: SplitDefinition;
+    intercept?: InterceptDefinition;
+    interceptFrom?: InterceptFromDefinition | string;
     interceptSendToEndpoint?: InterceptSendToEndpointDefinition | string;
+    kamelet?: KameletDefinition | string;
+    loadBalance?: LoadBalanceDefinition;
+    log?: LogDefinition | string;
     loop?: LoopDefinition;
-    setExchangePattern?: SetExchangePatternDefinition | string;
     marshal?: MarshalDefinition;
+    multicast?: MulticastDefinition;
+    onCompletion?: OnCompletionDefinition;
     onFallback?: OnFallbackDefinition;
-    circuitBreaker?: CircuitBreakerDefinition;
-    enrich?: EnrichDefinition;
-    kamelet?: KameletDefinition | string;
-    saga?: SagaDefinition;
-    bean?: BeanDefinition | string;
     otherwise?: OtherwiseDefinition;
-    toD?: string;
-    sort?: SortDefinition;
-    loadBalance?: LoadBalanceDefinition;
-    script?: ScriptDefinition;
-    removeHeader?: RemoveHeaderDefinition | string;
-    delay?: DelayDefinition;
-    stop?: StopDefinition;
-    serviceCall?: ServiceCallDefinition | string;
-    intercept?: InterceptDefinition;
-    whenSkipSendToEndpoint?: WhenSkipSendToEndpointDefinition;
-    setProperty?: SetPropertyDefinition;
-    removeProperty?: RemovePropertyDefinition | string;
-    interceptFrom?: InterceptFromDefinition | string;
-    onCompletion?: OnCompletionDefinition;
     pausable?: PausableDefinition;
-    throttle?: ThrottleDefinition;
-    doFinally?: FinallyDefinition;
-    log?: LogDefinition | string;
-    doCatch?: CatchDefinition;
-    transacted?: TransactedDefinition;
-    claimCheck?: ClaimCheckDefinition;
+    pipeline?: PipelineDefinition;
+    policy?: PolicyDefinition;
     pollEnrich?: PollEnrichDefinition;
+    process?: ProcessDefinition;
+    recipientList?: RecipientListDefinition;
+    removeHeader?: RemoveHeaderDefinition | string;
     removeHeaders?: RemoveHeadersDefinition | string;
-    aggregate?: AggregateDefinition;
-    resequence?: ResequenceDefinition;
-    routingSlip?: RoutingSlipDefinition | string;
-    transform?: TransformDefinition;
-    stepName?: string = 'processor';
     removeProperties?: RemovePropertiesDefinition | string;
-    policy?: PolicyDefinition;
-    validate?: ValidateDefinition;
+    removeProperty?: RemovePropertyDefinition | string;
+    resequence?: ResequenceDefinition;
+    resumable?: ResumableDefinition;
     rollback?: RollbackDefinition | string;
-    process?: ProcessDefinition;
-    threads?: ThreadsDefinition;
-    setBody?: SetBodyDefinition;
+    routingSlip?: RoutingSlipDefinition | string;
+    saga?: SagaDefinition;
     sample?: SamplingDefinition | string;
+    script?: ScriptDefinition;
+    setBody?: SetBodyDefinition;
+    setExchangePattern?: SetExchangePatternDefinition | string;
+    setHeader?: SetHeaderDefinition;
+    setProperty?: SetPropertyDefinition;
+    sort?: SortDefinition;
+    split?: SplitDefinition;
+    step?: StepDefinition;
+    stop?: StopDefinition;
+    threads?: ThreadsDefinition;
+    throttle?: ThrottleDefinition;
     throwException?: ThrowExceptionDefinition;
-    dynamicRouter?: DynamicRouterDefinition;
-    multicast?: MulticastDefinition;
-    filter?: FilterDefinition;
-    pipeline?: PipelineDefinition;
+    to?: string;
+    toD?: string;
+    transacted?: TransactedDefinition;
+    transform?: TransformDefinition;
+    doTry?: TryDefinition;
     unmarshal?: UnmarshalDefinition;
+    validate?: ValidateDefinition;
+    when?: WhenDefinition;
+    whenSkipSendToEndpoint?: WhenSkipSendToEndpointDefinition;
     wireTap?: WireTapDefinition;
-    step?: StepDefinition;
-    to?: string;
-    choice?: ChoiceDefinition
+    serviceCall?: ServiceCallDefinition | string
     public constructor(init?: Partial<ProcessorDefinition>) {
         super('ProcessorDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -80,29 +82,32 @@ export class BeansDeserializer extends CamelElement {
 
     public constructor(init?: Partial<BeansDeserializer>) {
         super('BeansDeserializer')
+        
         Object.assign(this, init)
     }
 }
 
 export class ErrorHandlerBuilderDeserializer extends CamelElement {
     deadLetterChannel?: DeadLetterChannelDefinition;
-    noErrorHandler?: NoErrorHandlerDefinition;
-    jtaTransactionErrorHandler?: JtaTransactionErrorHandlerDefinition;
     defaultErrorHandler?: DefaultErrorHandlerDefinition;
-    springTransactionErrorHandler?: SpringTransactionErrorHandlerDefinition;
-    refErrorHandler?: RefErrorHandlerDefinition | string
+    jtaTransactionErrorHandler?: JtaTransactionErrorHandlerDefinition;
+    noErrorHandler?: NoErrorHandlerDefinition;
+    refErrorHandler?: RefErrorHandlerDefinition | string;
+    springTransactionErrorHandler?: SpringTransactionErrorHandlerDefinition
     public constructor(init?: Partial<ErrorHandlerBuilderDeserializer>) {
         super('ErrorHandlerBuilderDeserializer')
+        
         Object.assign(this, init)
     }
 }
 
 export class NamedBeanDefinition extends CamelElement {
     name: string = '';
-    type: string = '';
-    properties?: any = {}
+    properties?: any = {};
+    type: string = ''
     public constructor(init?: Partial<NamedBeanDefinition>) {
         super('NamedBeanDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -115,152 +120,161 @@ export class OutputAwareFromDefinition extends CamelElement {
     uri: string = ''
     public constructor(init?: Partial<OutputAwareFromDefinition>) {
         super('OutputAwareFromDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class AggregateDefinition extends CamelElement {
-    aggregationRepository?: string;
-    aggregationStrategy: string = '';
-    executorService?: string;
-    closeCorrelationKeyOnCompletion?: number;
-    description?: string;
-    discardOnAggregationFailure?: boolean;
-    eagerCheckCompletion?: boolean;
-    correlationExpression?: ExpressionSubElementDefinition;
-    timeoutCheckerExecutorService?: string;
-    completionOnNewCorrelationGroup?: boolean;
     stepName?: string = 'aggregate';
-    completionInterval?: string;
-    parallelProcessing?: boolean;
-    disabled?: boolean;
-    id?: string;
+    correlationExpression?: ExpressionSubElementDefinition;
     completionPredicate?: ExpressionSubElementDefinition;
-    aggregationStrategyMethodAllowNull?: boolean;
-    forceCompletionOnStop?: boolean;
-    completionFromBatchConsumer?: boolean;
-    completeAllOnStop?: boolean;
-    completionSize?: number;
-    optimisticLockRetryPolicy?: OptimisticLockRetryPolicyDefinition;
-    aggregationStrategyMethodName?: string;
-    steps?: CamelElement[] = [];
+    completionTimeoutExpression?: ExpressionSubElementDefinition;
     completionSizeExpression?: ExpressionSubElementDefinition;
+    optimisticLockRetryPolicy?: OptimisticLockRetryPolicyDefinition;
+    parallelProcessing?: boolean;
+    optimisticLocking?: boolean;
+    executorService?: string;
+    timeoutCheckerExecutorService?: string;
     aggregateController?: string;
+    aggregationRepository?: string;
+    aggregationStrategy: string = '';
+    aggregationStrategyMethodName?: string;
+    aggregationStrategyMethodAllowNull?: boolean;
+    completionSize?: number;
+    completionInterval?: string;
     completionTimeout?: string;
-    completionTimeoutExpression?: ExpressionSubElementDefinition;
-    inheritErrorHandler?: boolean;
+    completionTimeoutCheckerInterval?: string;
+    completionFromBatchConsumer?: boolean;
+    completionOnNewCorrelationGroup?: boolean;
+    eagerCheckCompletion?: boolean;
     ignoreInvalidCorrelationKeys?: boolean;
+    closeCorrelationKeyOnCompletion?: number;
     discardOnCompletionTimeout?: boolean;
-    completionTimeoutCheckerInterval?: string;
-    optimisticLocking?: boolean
+    discardOnAggregationFailure?: boolean;
+    forceCompletionOnStop?: boolean;
+    completeAllOnStop?: boolean;
+    disabled?: boolean;
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<AggregateDefinition>) {
         super('AggregateDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class BeanDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
+    stepName?: string = 'bean';
     ref?: string;
     method?: string;
-    stepName?: string = 'bean';
+    beanType?: string;
     scope?: string;
-    description?: string;
     disabled?: boolean;
     id?: string;
-    beanType?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<BeanDefinition>) {
         super('BeanDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class CatchDefinition extends CamelElement {
-    exception?: string[] = [];
-    inheritErrorHandler?: boolean;
     stepName?: string = 'doCatch';
+    exception?: string[] = [];
     onWhen?: WhenDefinition;
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<CatchDefinition>) {
         super('CatchDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ChoiceDefinition extends CamelElement {
-    otherwise?: OtherwiseDefinition;
-    inheritErrorHandler?: boolean;
     stepName?: string = 'choice';
-    description?: string;
+    when?: WhenDefinition[] = [];
+    otherwise?: OtherwiseDefinition;
+    precondition?: boolean;
     disabled?: boolean;
     id?: string;
-    precondition?: boolean;
-    when?: WhenDefinition[] = []
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ChoiceDefinition>) {
         super('ChoiceDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class CircuitBreakerDefinition extends CamelElement {
-    faultToleranceConfiguration?: FaultToleranceConfigurationDefinition;
-    inheritErrorHandler?: boolean;
     stepName?: string = 'circuitBreaker';
-    configuration?: string;
     resilience4jConfiguration?: Resilience4jConfigurationDefinition;
-    onFallback?: OnFallbackDefinition;
-    description?: string;
+    faultToleranceConfiguration?: FaultToleranceConfigurationDefinition;
+    configuration?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
+    onFallback?: OnFallbackDefinition;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<CircuitBreakerDefinition>) {
         super('CircuitBreakerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ClaimCheckDefinition extends CamelElement {
+    stepName?: string = 'claimCheck';
+    operation: string = '';
+    key?: string;
     filter?: string;
-    inheritErrorHandler?: boolean;
     aggregationStrategy?: string;
-    stepName?: string = 'claimCheck';
-    description?: string;
+    aggregationStrategyMethodName?: string;
     disabled?: boolean;
     id?: string;
-    aggregationStrategyMethodName?: string;
-    operation: string = '';
-    key?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ClaimCheckDefinition>) {
         super('ClaimCheckDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ContextScanDefinition extends CamelElement {
-    excludes?: string[] = [];
     stepName?: string = 'contextScan';
     includeNonSingletons?: boolean;
+    excludes?: string[] = [];
     includes?: string[] = []
     public constructor(init?: Partial<ContextScanDefinition>) {
         super('ContextScanDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ConvertBodyDefinition extends CamelElement {
-    charset?: string;
-    inheritErrorHandler?: boolean;
     stepName?: string = 'convertBodyTo';
-    description?: string;
+    type: string = '';
+    mandatory?: boolean;
+    charset?: string;
     disabled?: boolean;
     id?: string;
-    type: string = '';
-    mandatory?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ConvertBodyDefinition>) {
         super('ConvertBodyDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -270,187 +284,199 @@ export class DataFormatDefinition extends CamelElement {
     id?: string
     public constructor(init?: Partial<DataFormatDefinition>) {
         super('DataFormatDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class DelayDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'delay';
+    expression?: ExpressionDefinition;
+    asyncDelayed?: boolean;
     callerRunsWhenRejected?: boolean;
     executorService?: string;
-    asyncDelayed?: boolean;
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<DelayDefinition>) {
         super('DelayDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class DescriptionDefinition extends CamelElement {
     stepName?: string = 'description';
-    text?: string;
-    lang?: string
+    lang?: string;
+    text?: string
     public constructor(init?: Partial<DescriptionDefinition>) {
         super('DescriptionDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class DynamicRouterDefinition extends CamelElement {
+    stepName?: string = 'dynamicRouter';
+    expression?: ExpressionDefinition;
     uriDelimiter?: string;
     ignoreInvalidEndpoints?: boolean;
-    inheritErrorHandler?: boolean;
     cacheSize?: number;
-    expression?: ExpressionDefinition;
-    stepName?: string = 'dynamicRouter';
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<DynamicRouterDefinition>) {
         super('DynamicRouterDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class EnrichDefinition extends CamelElement {
-    aggregationStrategy?: string;
-    cacheSize?: number;
+    stepName?: string = 'enrich';
     expression?: ExpressionDefinition;
-    description?: string;
-    allowOptimisedComponents?: boolean;
+    aggregationStrategy?: string;
     aggregationStrategyMethodName?: string;
-    inheritErrorHandler?: boolean;
-    stepName?: string = 'enrich';
+    aggregationStrategyMethodAllowNull?: string;
+    aggregateOnException?: boolean;
+    shareUnitOfWork?: boolean;
+    cacheSize?: number;
     ignoreInvalidEndpoint?: boolean;
+    allowOptimisedComponents?: boolean;
     disabled?: boolean;
     id?: string;
-    aggregateOnException?: boolean;
-    aggregationStrategyMethodAllowNull?: string;
-    shareUnitOfWork?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<EnrichDefinition>) {
         super('EnrichDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ErrorHandlerDefinition extends CamelElement {
-    deadLetterChannel?: DeadLetterChannelDefinition;
-    noErrorHandler?: NoErrorHandlerDefinition;
     stepName?: string = 'errorHandler';
-    jtaTransactionErrorHandler?: JtaTransactionErrorHandlerDefinition;
+    id?: string;
+    deadLetterChannel?: DeadLetterChannelDefinition;
     defaultErrorHandler?: DefaultErrorHandlerDefinition;
-    springTransactionErrorHandler?: SpringTransactionErrorHandlerDefinition;
-    id?: string
+    jtaTransactionErrorHandler?: JtaTransactionErrorHandlerDefinition;
+    noErrorHandler?: NoErrorHandlerDefinition;
+    springTransactionErrorHandler?: SpringTransactionErrorHandlerDefinition
     public constructor(init?: Partial<ErrorHandlerDefinition>) {
         super('ErrorHandlerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ExpressionSubElementDefinition extends CamelElement {
-    ognl?: OgnlExpression | string;
-    python?: PythonExpression | string;
+    stepName?: string = 'expressionSubElement';
     constant?: ConstantExpression | string;
-    mvel?: MvelExpression | string;
-    method?: MethodCallExpression | string;
-    xquery?: XQueryExpression | string;
+    csimple?: CSimpleExpression | string;
     datasonnet?: DatasonnetExpression | string;
+    exchangeProperty?: ExchangePropertyExpression | string;
+    groovy?: GroovyExpression | string;
+    header?: HeaderExpression | string;
+    hl7terser?: Hl7TerserExpression | string;
+    joor?: JoorExpression | string;
     jq?: JqExpression | string;
     js?: JavaScriptExpression | string;
+    jsonpath?: JsonPathExpression | string;
     language?: LanguageExpression;
-    simple?: SimpleExpression | string;
-    hl7terser?: Hl7TerserExpression | string;
-    tokenize?: TokenizerExpression | string;
-    spel?: SpELExpression | string;
+    method?: MethodCallExpression | string;
+    mvel?: MvelExpression | string;
+    ognl?: OgnlExpression | string;
+    python?: PythonExpression | string;
     ref?: RefExpression | string;
+    simple?: SimpleExpression | string;
+    spel?: SpELExpression | string;
+    tokenize?: TokenizerExpression | string;
     xpath?: XPathExpression | string;
-    groovy?: GroovyExpression | string;
-    csimple?: CSimpleExpression | string;
-    stepName?: string = 'expressionSubElement';
-    exchangeProperty?: ExchangePropertyExpression | string;
-    jsonpath?: JsonPathExpression | string;
-    header?: HeaderExpression | string;
-    joor?: JoorExpression | string;
+    xquery?: XQueryExpression | string;
     xtokenize?: XMLTokenizerExpression | string
     public constructor(init?: Partial<ExpressionSubElementDefinition>) {
         super('ExpressionSubElementDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class FaultToleranceConfigurationDefinition extends CamelElement {
+    stepName?: string = 'faultToleranceConfiguration';
+    circuitBreaker?: string;
+    delay?: string;
+    successThreshold?: number;
+    requestVolumeThreshold?: number;
     failureRatio?: number;
-    timeoutDuration?: string;
     timeoutEnabled?: boolean;
-    timeoutScheduledExecutorService?: string;
-    successThreshold?: number;
+    timeoutDuration?: string;
     timeoutPoolSize?: number;
-    requestVolumeThreshold?: number;
-    bulkheadExecutorService?: string;
-    delay?: string;
-    stepName?: string = 'faultToleranceConfiguration';
-    bulkheadWaitingTaskQueue?: number;
-    circuitBreaker?: string;
-    id?: string;
+    timeoutScheduledExecutorService?: string;
+    bulkheadEnabled?: boolean;
     bulkheadMaxConcurrentCalls?: number;
-    bulkheadEnabled?: boolean
+    bulkheadWaitingTaskQueue?: number;
+    bulkheadExecutorService?: string;
+    id?: string
     public constructor(init?: Partial<FaultToleranceConfigurationDefinition>) {
         super('FaultToleranceConfigurationDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class FilterDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'filter';
-    description?: string;
+    expression?: ExpressionDefinition;
+    statusPropertyName?: string;
     disabled?: boolean;
     id?: string;
-    steps?: CamelElement[] = [];
-    statusPropertyName?: string
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<FilterDefinition>) {
         super('FilterDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class FinallyDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'doFinally';
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<FinallyDefinition>) {
         super('FinallyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class FromDefinition extends CamelElement {
     stepName?: string = 'from';
-    description?: string;
+    uri: string = '';
     id?: string;
+    description?: string;
     parameters?: any = {};
-    steps: CamelElement[] = [];
-    uri: string = ''
+    steps: CamelElement[] = []
     public constructor(init?: Partial<FromDefinition>) {
         super('FromDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class GlobalOptionDefinition extends CamelElement {
     stepName?: string = 'globalOption';
-    value: string = '';
-    key: string = ''
+    key: string = '';
+    value: string = ''
     public constructor(init?: Partial<GlobalOptionDefinition>) {
         super('GlobalOptionDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -460,747 +486,794 @@ export class GlobalOptionsDefinition extends CamelElement {
     globalOption?: GlobalOptionDefinition[] = []
     public constructor(init?: Partial<GlobalOptionsDefinition>) {
         super('GlobalOptionsDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class IdempotentConsumerDefinition extends CamelElement {
-    completionEager?: boolean;
-    skipDuplicate?: boolean;
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
-    eager?: boolean;
     stepName?: string = 'idempotentConsumer';
+    expression?: ExpressionDefinition;
     idempotentRepository: string = '';
-    description?: string;
+    eager?: boolean;
+    completionEager?: boolean;
+    skipDuplicate?: boolean;
     removeOnFailure?: boolean;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<IdempotentConsumerDefinition>) {
         super('IdempotentConsumerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class InOnlyDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'inOnly';
-    description?: string;
+    uri: string = '';
     disabled?: boolean;
     id?: string;
-    parameters?: any = {};
-    uri: string = ''
+    description?: string;
+    inheritErrorHandler?: boolean;
+    parameters?: any = {}
     public constructor(init?: Partial<InOnlyDefinition>) {
         super('InOnlyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class InOutDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'inOut';
-    description?: string;
+    uri: string = '';
     disabled?: boolean;
     id?: string;
-    parameters?: any = {};
-    uri: string = ''
+    description?: string;
+    inheritErrorHandler?: boolean;
+    parameters?: any = {}
     public constructor(init?: Partial<InOutDefinition>) {
         super('InOutDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class InputTypeDefinition extends CamelElement {
-    urn: string = '';
     stepName?: string = 'inputType';
-    description?: string;
+    urn: string = '';
+    validate?: boolean;
     id?: string;
-    validate?: boolean
+    description?: string
     public constructor(init?: Partial<InputTypeDefinition>) {
         super('InputTypeDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class InterceptDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'intercept';
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<InterceptDefinition>) {
         super('InterceptDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class InterceptFromDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'interceptFrom';
-    description?: string;
+    uri?: string;
     disabled?: boolean;
     id?: string;
-    steps?: CamelElement[] = [];
-    uri?: string
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<InterceptFromDefinition>) {
         super('InterceptFromDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class InterceptSendToEndpointDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    afterUri?: string;
     stepName?: string = 'interceptSendToEndpoint';
-    description?: string;
+    uri: string = '';
+    skipSendToOriginalEndpoint?: string;
+    afterUri?: string;
     disabled?: boolean;
     id?: string;
-    steps?: CamelElement[] = [];
-    uri: string = '';
-    skipSendToOriginalEndpoint?: string
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<InterceptSendToEndpointDefinition>) {
         super('InterceptSendToEndpointDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class KameletDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'kamelet';
     name: string = '';
+    inheritErrorHandler?: boolean;
     parameters?: any = {}
     public constructor(init?: Partial<KameletDefinition>) {
         super('KameletDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class LoadBalanceDefinition extends CamelElement {
-    customLoadBalancer?: CustomLoadBalancerDefinition | string;
-    description?: string;
-    steps?: CamelElement[] = [];
-    roundRobin?: RoundRobinLoadBalancerDefinition;
-    random?: RandomLoadBalancerDefinition;
-    inheritErrorHandler?: boolean;
     stepName?: string = 'loadBalance';
+    disabled?: boolean;
+    inheritErrorHandler?: boolean;
+    id?: string;
+    description?: string;
+    customLoadBalancer?: CustomLoadBalancerDefinition | string;
     failover?: FailoverLoadBalancerDefinition;
+    random?: RandomLoadBalancerDefinition;
+    roundRobin?: RoundRobinLoadBalancerDefinition;
+    steps?: CamelElement[] = [];
     sticky?: StickyLoadBalancerDefinition;
     topic?: TopicLoadBalancerDefinition;
-    disabled?: boolean;
-    id?: string;
     weighted?: WeightedLoadBalancerDefinition
     public constructor(init?: Partial<LoadBalanceDefinition>) {
         super('LoadBalanceDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class LogDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    logName?: string;
     stepName?: string = 'log';
+    message: string = '';
+    loggingLevel?: string;
+    logName?: string;
     marker?: string;
     logger?: string;
-    description?: string;
     disabled?: boolean;
     id?: string;
-    message: string = '';
-    loggingLevel?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<LogDefinition>) {
         super('LogDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class LoopDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'loop';
+    expression?: ExpressionDefinition;
+    copy?: boolean;
     doWhile?: boolean;
-    description?: string;
     breakOnShutdown?: boolean;
     disabled?: boolean;
-    copy?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<LoopDefinition>) {
         super('LoopDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class MarshalDefinition extends CamelElement {
-    univocityCsv?: UniVocityCsvDataFormat;
-    protobuf?: ProtobufDataFormat | string;
-    tarFile?: TarFileDataFormat;
-    tidyMarkup?: TidyMarkupDataFormat;
-    csv?: CsvDataFormat | string;
-    base64?: Base64DataFormat;
-    zipDeflater?: ZipDeflaterDataFormat;
-    description?: string;
-    bindy?: BindyDataFormat;
-    syslog?: SyslogDataFormat;
-    zipFile?: ZipFileDataFormat;
-    jaxb?: JaxbDataFormat;
-    rss?: RssDataFormat;
     stepName?: string = 'marshal';
-    mimeMultipart?: MimeMultipartDataFormat;
-    asn1?: ASN1DataFormat | string;
-    pgp?: PGPDataFormat;
-    thrift?: ThriftDataFormat | string;
-    json?: JsonDataFormat;
-    lzf?: LZFDataFormat;
     disabled?: boolean;
     id?: string;
-    fhirXml?: FhirXmlDataFormat;
-    barcode?: BarcodeDataFormat;
-    avro?: AvroDataFormat | string;
-    yaml?: YAMLDataFormat;
-    fhirJson?: FhirJsonDataFormat;
+    description?: string;
     any23?: Any23DataFormat | string;
-    custom?: CustomDataFormat | string;
-    flatpack?: FlatpackDataFormat;
-    swiftMx?: SwiftMxDataFormat;
+    asn1?: ASN1DataFormat | string;
+    avro?: AvroDataFormat | string;
+    barcode?: BarcodeDataFormat;
+    base64?: Base64DataFormat;
+    bindy?: BindyDataFormat;
     cbor?: CBORDataFormat;
     crypto?: CryptoDataFormat;
-    swiftMt?: SwiftMtDataFormat | string;
-    univocityTsv?: UniVocityTsvDataFormat;
+    csv?: CsvDataFormat | string;
+    custom?: CustomDataFormat | string;
+    fhirJson?: FhirJsonDataFormat;
+    fhirXml?: FhirXmlDataFormat;
+    flatpack?: FlatpackDataFormat;
+    grok?: GrokDataFormat;
+    gzipDeflater?: GzipDeflaterDataFormat;
     hl7?: HL7DataFormat;
+    ical?: IcalDataFormat;
     inheritErrorHandler?: boolean;
+    jacksonXml?: JacksonXMLDataFormat;
+    jaxb?: JaxbDataFormat;
+    json?: JsonDataFormat;
     jsonApi?: JsonApiDataFormat;
-    xmlSecurity?: XMLSecurityDataFormat;
-    ical?: IcalDataFormat;
+    lzf?: LZFDataFormat;
+    mimeMultipart?: MimeMultipartDataFormat;
+    pgp?: PGPDataFormat;
+    protobuf?: ProtobufDataFormat | string;
+    rss?: RssDataFormat;
+    soap?: SoapDataFormat | string;
+    swiftMt?: SwiftMtDataFormat | string;
+    swiftMx?: SwiftMxDataFormat;
+    syslog?: SyslogDataFormat;
+    tarFile?: TarFileDataFormat;
+    thrift?: ThriftDataFormat | string;
+    tidyMarkup?: TidyMarkupDataFormat;
+    univocityCsv?: UniVocityCsvDataFormat;
     univocityFixed?: UniVocityFixedDataFormat;
-    jacksonXml?: JacksonXMLDataFormat;
-    grok?: GrokDataFormat;
+    univocityTsv?: UniVocityTsvDataFormat;
+    xmlSecurity?: XMLSecurityDataFormat;
     xstream?: XStreamDataFormat | string;
-    gzipDeflater?: GzipDeflaterDataFormat;
-    soap?: SoapDataFormat | string
+    yaml?: YAMLDataFormat;
+    zipDeflater?: ZipDeflaterDataFormat;
+    zipFile?: ZipFileDataFormat
     public constructor(init?: Partial<MarshalDefinition>) {
         super('MarshalDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class MulticastDefinition extends CamelElement {
+    stepName?: string = 'multicast';
     aggregationStrategy?: string;
-    onPrepare?: string;
-    executorService?: string;
-    description?: string;
     aggregationStrategyMethodName?: string;
-    steps?: CamelElement[] = [];
-    timeout?: string;
-    inheritErrorHandler?: boolean;
+    aggregationStrategyMethodAllowNull?: boolean;
+    parallelAggregate?: boolean;
+    parallelProcessing?: boolean;
     streaming?: boolean;
-    stepName?: string = 'multicast';
     stopOnException?: boolean;
-    parallelProcessing?: boolean;
+    timeout?: string;
+    executorService?: string;
+    onPrepare?: string;
+    shareUnitOfWork?: boolean;
     disabled?: boolean;
     id?: string;
-    parallelAggregate?: boolean;
-    aggregationStrategyMethodAllowNull?: boolean;
-    shareUnitOfWork?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<MulticastDefinition>) {
         super('MulticastDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OnCompletionDefinition extends CamelElement {
-    executorService?: string;
-    description?: string;
-    useOriginalMessage?: boolean;
-    steps?: CamelElement[] = [];
+    stepName?: string = 'onCompletion';
     mode?: string;
-    inheritErrorHandler?: boolean;
     onCompleteOnly?: boolean;
-    stepName?: string = 'onCompletion';
+    onFailureOnly?: boolean;
     parallelProcessing?: boolean;
+    executorService?: string;
+    useOriginalMessage?: boolean;
     onWhen?: WhenDefinition;
     disabled?: boolean;
     id?: string;
-    onFailureOnly?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<OnCompletionDefinition>) {
         super('OnCompletionDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OnExceptionDefinition extends CamelElement {
+    stepName?: string = 'onException';
     exception?: string[] = [];
+    onWhen?: WhenDefinition;
+    retryWhile?: ExpressionSubElementDefinition;
     redeliveryPolicy?: RedeliveryPolicyDefinition;
+    redeliveryPolicyRef?: string;
+    handled?: ExpressionSubElementDefinition;
     continued?: ExpressionSubElementDefinition;
-    description?: string;
-    useOriginalMessage?: boolean;
-    steps?: CamelElement[] = [];
-    retryWhile?: ExpressionSubElementDefinition;
-    inheritErrorHandler?: boolean;
     onRedeliveryRef?: string;
-    stepName?: string = 'onException';
+    onExceptionOccurredRef?: string;
+    useOriginalMessage?: boolean;
     useOriginalBody?: boolean;
-    handled?: ExpressionSubElementDefinition;
-    onWhen?: WhenDefinition;
     disabled?: boolean;
     id?: string;
-    onExceptionOccurredRef?: string;
-    redeliveryPolicyRef?: string
-    public constructor(init?: Partial<OnExceptionDefinition>) {
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
+    public constructor(init?: Partial<OnExceptionDefinition>) {
         super('OnExceptionDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OnFallbackDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'onFallback';
     fallbackViaNetwork?: boolean;
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<OnFallbackDefinition>) {
         super('OnFallbackDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OptimisticLockRetryPolicyDefinition extends CamelElement {
-    retryDelay?: string;
     stepName?: string = 'optimisticLockRetryPolicy';
     maximumRetries?: number;
-    randomBackOff?: boolean;
+    retryDelay?: string;
+    maximumRetryDelay?: string;
     exponentialBackOff?: boolean;
-    maximumRetryDelay?: string
+    randomBackOff?: boolean
     public constructor(init?: Partial<OptimisticLockRetryPolicyDefinition>) {
         super('OptimisticLockRetryPolicyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OtherwiseDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'otherwise';
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<OtherwiseDefinition>) {
         super('OtherwiseDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OutputDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'output';
     description?: string;
     disabled?: boolean;
     id?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<OutputDefinition>) {
         super('OutputDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OutputTypeDefinition extends CamelElement {
-    urn: string = '';
     stepName?: string = 'outputType';
-    description?: string;
+    urn: string = '';
+    validate?: boolean;
     id?: string;
-    validate?: boolean
+    description?: string
     public constructor(init?: Partial<OutputTypeDefinition>) {
         super('OutputTypeDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PackageScanDefinition extends CamelElement {
-    excludes?: string[] = [];
-    package?: string[] = [];
     stepName?: string = 'packageScan';
+    package?: string[] = [];
+    excludes?: string[] = [];
     includes?: string[] = []
     public constructor(init?: Partial<PackageScanDefinition>) {
         super('PackageScanDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PausableDefinition extends CamelElement {
-    untilCheck: string = '';
-    inheritErrorHandler?: boolean;
     stepName?: string = 'pausable';
     consumerListener: string = '';
-    description?: string;
+    untilCheck: string = '';
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<PausableDefinition>) {
         super('PausableDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PipelineDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'pipeline';
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<PipelineDefinition>) {
         super('PipelineDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PolicyDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    ref: string = '';
     stepName?: string = 'policy';
-    description?: string;
+    ref: string = '';
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<PolicyDefinition>) {
         super('PolicyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PollEnrichDefinition extends CamelElement {
-    aggregationStrategy?: string;
-    cacheSize?: number;
+    stepName?: string = 'pollEnrich';
     expression?: ExpressionDefinition;
-    description?: string;
+    aggregationStrategy?: string;
     aggregationStrategyMethodName?: string;
+    aggregationStrategyMethodAllowNull?: string;
+    aggregateOnException?: boolean;
     timeout?: string;
-    inheritErrorHandler?: boolean;
-    stepName?: string = 'pollEnrich';
+    cacheSize?: number;
     ignoreInvalidEndpoint?: boolean;
     disabled?: boolean;
     id?: string;
-    aggregateOnException?: boolean;
-    aggregationStrategyMethodAllowNull?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<PollEnrichDefinition>) {
         super('PollEnrichDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ProcessDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    ref: string = '';
     stepName?: string = 'process';
-    description?: string;
+    ref: string = '';
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ProcessDefinition>) {
         super('ProcessDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PropertyDefinition extends CamelElement {
     stepName?: string = 'property';
-    value: string = '';
-    key: string = ''
+    key: string = '';
+    value: string = ''
     public constructor(init?: Partial<PropertyDefinition>) {
         super('PropertyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PropertyExpressionDefinition extends CamelElement {
-    expression?: ExpressionDefinition;
     stepName?: string = 'propertyExpression';
-    key: string = ''
+    key: string = '';
+    expression?: ExpressionDefinition
     public constructor(init?: Partial<PropertyExpressionDefinition>) {
         super('PropertyExpressionDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RecipientListDefinition extends CamelElement {
-    aggregationStrategy?: string;
-    cacheSize?: number;
+    stepName?: string = 'recipientList';
     expression?: ExpressionDefinition;
-    onPrepare?: string;
-    executorService?: string;
-    description?: string;
+    delimiter?: string;
+    aggregationStrategy?: string;
     aggregationStrategyMethodName?: string;
+    aggregationStrategyMethodAllowNull?: boolean;
+    parallelAggregate?: boolean;
+    parallelProcessing?: boolean;
     timeout?: string;
+    executorService?: string;
+    stopOnException?: boolean;
     ignoreInvalidEndpoints?: boolean;
-    inheritErrorHandler?: boolean;
     streaming?: boolean;
-    stepName?: string = 'recipientList';
-    stopOnException?: boolean;
-    delimiter?: string;
-    parallelProcessing?: boolean;
+    onPrepare?: string;
+    cacheSize?: number;
+    shareUnitOfWork?: boolean;
     disabled?: boolean;
     id?: string;
-    parallelAggregate?: boolean;
-    aggregationStrategyMethodAllowNull?: boolean;
-    shareUnitOfWork?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RecipientListDefinition>) {
         super('RecipientListDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RedeliveryPolicyDefinition extends CamelElement {
-    logNewException?: boolean;
-    backOffMultiplier?: number;
-    delayPattern?: string;
-    retryAttemptedLogInterval?: number;
-    logRetryAttempted?: boolean;
-    logExhaustedMessageHistory?: boolean;
     stepName?: string = 'redeliveryPolicy';
+    maximumRedeliveries?: number;
+    redeliveryDelay?: string;
+    asyncDelayedRedelivery?: boolean;
+    backOffMultiplier?: number;
+    useExponentialBackOff?: boolean;
     collisionAvoidanceFactor?: number;
-    logRetryStackTrace?: boolean;
-    disableRedelivery?: boolean;
-    id?: string;
-    logExhaustedMessageBody?: boolean;
-    logHandled?: boolean;
     useCollisionAvoidance?: boolean;
-    exchangeFormatterRef?: string;
-    allowRedeliveryWhileStopping?: boolean;
+    maximumRedeliveryDelay?: string;
     retriesExhaustedLogLevel?: string;
+    retryAttemptedLogLevel?: string;
+    retryAttemptedLogInterval?: number;
+    logRetryAttempted?: boolean;
     logStackTrace?: boolean;
-    maximumRedeliveryDelay?: string;
-    useExponentialBackOff?: boolean;
-    asyncDelayedRedelivery?: boolean;
+    logRetryStackTrace?: boolean;
+    logHandled?: boolean;
+    logNewException?: boolean;
     logContinued?: boolean;
-    retryAttemptedLogLevel?: string;
-    redeliveryDelay?: string;
-    maximumRedeliveries?: number;
-    logExhausted?: boolean
+    logExhausted?: boolean;
+    logExhaustedMessageHistory?: boolean;
+    logExhaustedMessageBody?: boolean;
+    disableRedelivery?: boolean;
+    delayPattern?: string;
+    allowRedeliveryWhileStopping?: boolean;
+    exchangeFormatterRef?: string;
+    id?: string
     public constructor(init?: Partial<RedeliveryPolicyDefinition>) {
         super('RedeliveryPolicyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RemoveHeaderDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'removeHeader';
     name: string = '';
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RemoveHeaderDefinition>) {
         super('RemoveHeaderDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RemoveHeadersDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'removeHeaders';
-    excludePattern?: string;
     pattern: string = '';
-    description?: string;
+    excludePattern?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RemoveHeadersDefinition>) {
         super('RemoveHeadersDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RemovePropertiesDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'removeProperties';
-    excludePattern?: string;
     pattern: string = '';
-    description?: string;
+    excludePattern?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RemovePropertiesDefinition>) {
         super('RemovePropertiesDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RemovePropertyDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'removeProperty';
     name: string = '';
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RemovePropertyDefinition>) {
         super('RemovePropertyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ResequenceDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    streamConfig?: StreamResequencerConfig;
-    expression: ExpressionDefinition = new ExpressionDefinition();
     stepName?: string = 'resequence';
-    description?: string;
+    expression: ExpressionDefinition = new ExpressionDefinition();
     disabled?: boolean;
     id?: string;
+    description?: string;
+    batchConfig?: BatchResequencerConfig;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = [];
-    batchConfig?: BatchResequencerConfig
+    streamConfig?: StreamResequencerConfig
     public constructor(init?: Partial<ResequenceDefinition>) {
         super('ResequenceDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class Resilience4jConfigurationDefinition extends CamelElement {
+    stepName?: string = 'resilience4jConfiguration';
+    circuitBreaker?: string;
+    config?: string;
     failureRateThreshold?: number;
-    slowCallDurationThreshold?: number;
-    minimumNumberOfCalls?: number;
     permittedNumberOfCallsInHalfOpenState?: number;
     throwExceptionWhenHalfOpenOrOpenState?: boolean;
-    slowCallRateThreshold?: number;
-    stepName?: string = 'resilience4jConfiguration';
-    writableStackTraceEnabled?: boolean;
-    automaticTransitionFromOpenToHalfOpenEnabled?: boolean;
-    circuitBreaker?: string;
     slidingWindowSize?: number;
-    id?: string;
-    config?: string;
     slidingWindowType?: string;
-    waitDurationInOpenState?: number
+    minimumNumberOfCalls?: number;
+    writableStackTraceEnabled?: boolean;
+    waitDurationInOpenState?: number;
+    automaticTransitionFromOpenToHalfOpenEnabled?: boolean;
+    slowCallRateThreshold?: number;
+    slowCallDurationThreshold?: number;
+    id?: string
     public constructor(init?: Partial<Resilience4jConfigurationDefinition>) {
         super('Resilience4jConfigurationDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestContextRefDefinition extends CamelElement {
-    ref: string = '';
-    stepName?: string = 'restContextRef'
+    stepName?: string = 'restContextRef';
+    ref: string = ''
     public constructor(init?: Partial<RestContextRefDefinition>) {
         super('RestContextRefDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ResumableDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'resumable';
     resumeStrategy: string = '';
     intermittent?: boolean;
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ResumableDefinition>) {
         super('ResumableDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RollbackDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'rollback';
+    message?: string;
     markRollbackOnly?: boolean;
-    description?: string;
+    markRollbackOnlyLast?: boolean;
     disabled?: boolean;
     id?: string;
-    message?: string;
-    markRollbackOnlyLast?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RollbackDefinition>) {
         super('RollbackDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteBuilderDefinition extends CamelElement {
-    ref: string = '';
     stepName?: string = 'routeBuilder';
+    ref: string = '';
     id?: string
     public constructor(init?: Partial<RouteBuilderDefinition>) {
         super('RouteBuilderDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteConfigurationContextRefDefinition extends CamelElement {
-    ref: string = '';
-    stepName?: string = 'routeConfigurationContextRef'
+    stepName?: string = 'routeConfigurationContextRef';
+    ref: string = ''
     public constructor(init?: Partial<RouteConfigurationContextRefDefinition>) {
         super('RouteConfigurationContextRefDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteConfigurationDefinition extends CamelElement {
-    onCompletion?: OnCompletionDefinition[] = [];
-    interceptSendToEndpoint?: InterceptSendToEndpointDefinition[] = [];
     stepName?: string = 'routeConfiguration';
-    intercept?: InterceptDefinition[] = [];
     errorHandler?: ErrorHandlerDefinition;
+    intercept?: InterceptDefinition[] = [];
+    interceptFrom?: InterceptFromDefinition[] = [];
+    interceptSendToEndpoint?: InterceptSendToEndpointDefinition[] = [];
     onException?: OnExceptionDefinition[] = [];
-    id?: string;
+    onCompletion?: OnCompletionDefinition[] = [];
     precondition?: string;
-    interceptFrom?: InterceptFromDefinition[] = []
+    id?: string
     public constructor(init?: Partial<RouteConfigurationDefinition>) {
         super('RouteConfigurationDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteContextRefDefinition extends CamelElement {
-    ref: string = '';
-    stepName?: string = 'routeContextRef'
+    stepName?: string = 'routeContextRef';
+    ref: string = ''
     public constructor(init?: Partial<RouteContextRefDefinition>) {
         super('RouteContextRefDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteDefinition extends CamelElement {
-    routeConfigurationId?: string;
-    description?: string;
-    logMask?: boolean;
-    precondition?: string;
-    autoStartup?: boolean;
-    trace?: boolean;
-    nodePrefixId?: string;
     stepName?: string = 'route';
+    group?: string;
+    trace?: boolean;
     messageHistory?: boolean;
-    from: FromDefinition = new FromDefinition();
-    streamCaching?: boolean;
-    id?: string;
+    logMask?: boolean;
+    autoStartup?: boolean;
     startupOrder?: number;
+    id?: string;
+    description?: string;
+    from: FromDefinition = new FromDefinition();
+    nodePrefixId?: string;
+    precondition?: string;
+    routeConfigurationId?: string;
     routePolicy?: string;
-    group?: string
+    streamCaching?: boolean
     public constructor(init?: Partial<RouteDefinition>) {
         super('RouteDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteTemplateBeanDefinition extends CamelElement {
     stepName?: string = 'routeTemplateBean';
-    name: string = '';
-    property?: PropertyDefinition[] = [];
-    type: string = '';
     beanType?: string;
+    name: string = '';
     properties?: any = {};
-    script?: string
+    property?: PropertyDefinition[] = [];
+    script?: string;
+    type: string = ''
     public constructor(init?: Partial<RouteTemplateBeanDefinition>) {
         super('RouteTemplateBeanDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RouteTemplateDefinition extends CamelElement {
-    route?: RouteDefinition;
     stepName?: string = 'routeTemplate';
+    route?: RouteDefinition;
+    id: string = '';
     beans?: NamedBeanDefinition[] = [];
     from?: FromDefinition;
-    id: string = '';
     parameters?: RouteTemplateParameterDefinition[] = []
     public constructor(init?: Partial<RouteTemplateDefinition>) {
         super('RouteTemplateDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -1208,207 +1281,221 @@ export class RouteTemplateDefinition extends CamelElement {
 export class RouteTemplateParameterDefinition extends CamelElement {
     stepName?: string = 'routeTemplateParameter';
     defaultValue?: string;
-    name: string = '';
     description?: string;
+    name: string = '';
     required?: boolean
     public constructor(init?: Partial<RouteTemplateParameterDefinition>) {
         super('RouteTemplateParameterDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RoutingSlipDefinition extends CamelElement {
+    stepName?: string = 'routingSlip';
+    expression?: ExpressionDefinition;
     uriDelimiter?: string;
     ignoreInvalidEndpoints?: boolean;
-    inheritErrorHandler?: boolean;
     cacheSize?: number;
-    expression?: ExpressionDefinition;
-    stepName?: string = 'routingSlip';
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<RoutingSlipDefinition>) {
         super('RoutingSlipDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SagaActionUriDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'sagaActionUri';
     description?: string;
     disabled?: boolean;
     id?: string;
+    inheritErrorHandler?: boolean;
     parameters?: any = {};
     uri: string = ''
     public constructor(init?: Partial<SagaActionUriDefinition>) {
         super('SagaActionUriDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SagaDefinition extends CamelElement {
-    completion?: string;
-    description?: string;
-    completionMode?: string;
+    stepName?: string = 'saga';
     sagaService?: string;
-    steps?: CamelElement[] = [];
-    timeout?: string;
-    inheritErrorHandler?: boolean;
     propagation?: string;
-    stepName?: string = 'saga';
+    completionMode?: string;
+    timeout?: string;
     compensation?: string;
+    completion?: string;
+    option?: PropertyExpressionDefinition[] = [];
     disabled?: boolean;
     id?: string;
-    option?: PropertyExpressionDefinition[] = []
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<SagaDefinition>) {
         super('SagaDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SamplingDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'sample';
-    description?: string;
+    samplePeriod?: string;
     messageFrequency?: number;
     disabled?: boolean;
     id?: string;
-    samplePeriod?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<SamplingDefinition>) {
         super('SamplingDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ScriptDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'script';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ScriptDefinition>) {
         super('ScriptDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SetBodyDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'setBody';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<SetBodyDefinition>) {
         super('SetBodyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SetExchangePatternDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'setExchangePattern';
     pattern: string = '';
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<SetExchangePatternDefinition>) {
         super('SetExchangePatternDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SetHeaderDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'setHeader';
     name: string = '';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<SetHeaderDefinition>) {
         super('SetHeaderDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SetPropertyDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'setProperty';
     name: string = '';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<SetPropertyDefinition>) {
         super('SetPropertyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SortDefinition extends CamelElement {
-    comparator?: string;
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'sort';
-    description?: string;
+    expression?: ExpressionDefinition;
+    comparator?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<SortDefinition>) {
         super('SortDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SplitDefinition extends CamelElement {
-    aggregationStrategy?: string;
+    stepName?: string = 'split';
     expression?: ExpressionDefinition;
-    onPrepare?: string;
-    executorService?: string;
-    description?: string;
+    delimiter?: string;
+    aggregationStrategy?: string;
     aggregationStrategyMethodName?: string;
-    steps?: CamelElement[] = [];
-    timeout?: string;
-    inheritErrorHandler?: boolean;
+    aggregationStrategyMethodAllowNull?: boolean;
+    parallelAggregate?: boolean;
+    parallelProcessing?: boolean;
     streaming?: boolean;
-    stepName?: string = 'split';
     stopOnException?: boolean;
-    delimiter?: string;
-    parallelProcessing?: boolean;
+    timeout?: string;
+    executorService?: string;
+    onPrepare?: string;
+    shareUnitOfWork?: boolean;
     disabled?: boolean;
     id?: string;
-    parallelAggregate?: boolean;
-    aggregationStrategyMethodAllowNull?: boolean;
-    shareUnitOfWork?: boolean
+    description?: string;
+    inheritErrorHandler?: boolean;
+    steps?: CamelElement[] = []
     public constructor(init?: Partial<SplitDefinition>) {
         super('SplitDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class StepDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'step';
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<StepDefinition>) {
         super('StepDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class StopDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'stop';
-    description?: string;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<StopDefinition>) {
         super('StopDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -1416,26 +1503,28 @@ export class StopDefinition extends CamelElement {
 export class TemplatedRouteBeanDefinition extends CamelElement {
     stepName?: string = 'templatedRouteBean';
     name: string = '';
-    property?: PropertyDefinition[] = [];
     type: string = '';
     beanType?: string;
-    properties?: any = {};
-    script?: string
+    property?: PropertyDefinition[] = [];
+    script?: string;
+    properties?: any = {}
     public constructor(init?: Partial<TemplatedRouteBeanDefinition>) {
         super('TemplatedRouteBeanDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class TemplatedRouteDefinition extends CamelElement {
-    routeId?: string;
     stepName?: string = 'templatedRoute';
-    beans?: NamedBeanDefinition[] = [];
-    parameters?: TemplatedRouteParameterDefinition[] = [];
     routeTemplateRef: string = '';
-    prefixId?: string
+    routeId?: string;
+    prefixId?: string;
+    beans?: NamedBeanDefinition[] = [];
+    parameters?: TemplatedRouteParameterDefinition[] = []
     public constructor(init?: Partial<TemplatedRouteDefinition>) {
         super('TemplatedRouteDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -1446,356 +1535,377 @@ export class TemplatedRouteParameterDefinition extends CamelElement {
     value: string = ''
     public constructor(init?: Partial<TemplatedRouteParameterDefinition>) {
         super('TemplatedRouteParameterDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ThreadPoolProfileDefinition extends CamelElement {
-    keepAliveTime?: number;
     stepName?: string = 'threadPoolProfile';
-    maxQueueSize?: number;
-    allowCoreThreadTimeOut?: boolean;
-    poolSize?: number;
-    description?: string;
     defaultProfile?: boolean;
-    id?: string;
+    poolSize?: number;
     maxPoolSize?: number;
+    keepAliveTime?: number;
+    timeUnit?: string;
+    maxQueueSize?: number;
+    allowCoreThreadTimeOut?: boolean;
     rejectedPolicy?: string;
-    timeUnit?: string
+    id?: string;
+    description?: string
     public constructor(init?: Partial<ThreadPoolProfileDefinition>) {
         super('ThreadPoolProfileDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ThreadsDefinition extends CamelElement {
-    keepAliveTime?: number;
-    callerRunsWhenRejected?: string;
+    stepName?: string = 'threads';
     executorService?: string;
     poolSize?: number;
-    description?: string;
-    threadName?: string;
-    rejectedPolicy?: string;
-    inheritErrorHandler?: boolean;
-    stepName?: string = 'threads';
+    maxPoolSize?: number;
+    keepAliveTime?: number;
+    timeUnit?: string;
     maxQueueSize?: number;
     allowCoreThreadTimeOut?: boolean;
+    threadName?: string;
+    rejectedPolicy?: string;
+    callerRunsWhenRejected?: string;
     disabled?: boolean;
     id?: string;
-    maxPoolSize?: number;
-    timeUnit?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ThreadsDefinition>) {
         super('ThreadsDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ThrottleDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'throttle';
-    callerRunsWhenRejected?: boolean;
+    expression?: ExpressionDefinition;
+    correlationExpression?: ExpressionSubElementDefinition;
     executorService?: string;
     timePeriodMillis?: string;
     asyncDelayed?: boolean;
-    description?: string;
+    callerRunsWhenRejected?: boolean;
     rejectExecution?: boolean;
-    correlationExpression?: ExpressionSubElementDefinition;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ThrottleDefinition>) {
         super('ThrottleDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ThrowExceptionDefinition extends CamelElement {
+    stepName?: string = 'throwException';
+    message?: string;
     exceptionType?: string;
-    inheritErrorHandler?: boolean;
     ref?: string;
-    stepName?: string = 'throwException';
-    description?: string;
     disabled?: boolean;
     id?: string;
-    message?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ThrowExceptionDefinition>) {
         super('ThrowExceptionDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ToDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
     stepName?: string = 'to';
-    pattern?: string;
-    description?: string;
+    uri: string = '';
     disabled?: boolean;
+    pattern?: string;
     id?: string;
-    parameters?: any = {};
-    uri: string = ''
+    description?: string;
+    inheritErrorHandler?: boolean;
+    parameters?: any = {}
     public constructor(init?: Partial<ToDefinition>) {
         super('ToDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ToDynamicDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    cacheSize?: number;
     stepName?: string = 'toD';
+    uri: string = '';
+    pattern?: string;
+    cacheSize?: number;
     ignoreInvalidEndpoint?: boolean;
+    allowOptimisedComponents?: boolean;
     autoStartComponents?: boolean;
-    pattern?: string;
-    description?: string;
     disabled?: boolean;
     id?: string;
-    allowOptimisedComponents?: boolean;
-    parameters?: any = {};
-    uri: string = ''
+    description?: string;
+    inheritErrorHandler?: boolean;
+    parameters?: any = {}
     public constructor(init?: Partial<ToDynamicDefinition>) {
         super('ToDynamicDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class TransactedDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    ref?: string;
     stepName?: string = 'transacted';
-    description?: string;
+    ref?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<TransactedDefinition>) {
         super('TransactedDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class TransformDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'transform';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
-    id?: string
+    id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<TransformDefinition>) {
         super('TransformDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class TryDefinition extends CamelElement {
-    doFinally?: FinallyDefinition;
-    inheritErrorHandler?: boolean;
     stepName?: string = 'doTry';
-    doCatch?: CatchDefinition[] = [];
-    description?: string;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    doCatch?: CatchDefinition[] = [];
+    doFinally?: FinallyDefinition;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<TryDefinition>) {
         super('TryDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class UnmarshalDefinition extends CamelElement {
-    univocityCsv?: UniVocityCsvDataFormat;
-    protobuf?: ProtobufDataFormat | string;
-    tarFile?: TarFileDataFormat;
-    tidyMarkup?: TidyMarkupDataFormat;
-    csv?: CsvDataFormat | string;
-    base64?: Base64DataFormat;
-    zipDeflater?: ZipDeflaterDataFormat;
-    description?: string;
-    bindy?: BindyDataFormat;
-    syslog?: SyslogDataFormat;
-    zipFile?: ZipFileDataFormat;
-    jaxb?: JaxbDataFormat;
-    rss?: RssDataFormat;
     stepName?: string = 'unmarshal';
-    mimeMultipart?: MimeMultipartDataFormat;
-    asn1?: ASN1DataFormat | string;
-    pgp?: PGPDataFormat;
-    thrift?: ThriftDataFormat | string;
-    json?: JsonDataFormat;
-    lzf?: LZFDataFormat;
+    allowNullBody?: boolean;
     disabled?: boolean;
     id?: string;
-    fhirXml?: FhirXmlDataFormat;
-    barcode?: BarcodeDataFormat;
-    allowNullBody?: boolean;
-    avro?: AvroDataFormat | string;
-    yaml?: YAMLDataFormat;
-    fhirJson?: FhirJsonDataFormat;
+    description?: string;
     any23?: Any23DataFormat | string;
-    custom?: CustomDataFormat | string;
-    flatpack?: FlatpackDataFormat;
-    swiftMx?: SwiftMxDataFormat;
+    asn1?: ASN1DataFormat | string;
+    avro?: AvroDataFormat | string;
+    barcode?: BarcodeDataFormat;
+    base64?: Base64DataFormat;
+    bindy?: BindyDataFormat;
     cbor?: CBORDataFormat;
     crypto?: CryptoDataFormat;
-    swiftMt?: SwiftMtDataFormat | string;
-    univocityTsv?: UniVocityTsvDataFormat;
+    csv?: CsvDataFormat | string;
+    custom?: CustomDataFormat | string;
+    fhirJson?: FhirJsonDataFormat;
+    fhirXml?: FhirXmlDataFormat;
+    flatpack?: FlatpackDataFormat;
+    grok?: GrokDataFormat;
+    gzipDeflater?: GzipDeflaterDataFormat;
     hl7?: HL7DataFormat;
+    ical?: IcalDataFormat;
     inheritErrorHandler?: boolean;
+    jacksonXml?: JacksonXMLDataFormat;
+    jaxb?: JaxbDataFormat;
+    json?: JsonDataFormat;
     jsonApi?: JsonApiDataFormat;
-    xmlSecurity?: XMLSecurityDataFormat;
-    ical?: IcalDataFormat;
+    lzf?: LZFDataFormat;
+    mimeMultipart?: MimeMultipartDataFormat;
+    pgp?: PGPDataFormat;
+    protobuf?: ProtobufDataFormat | string;
+    rss?: RssDataFormat;
+    soap?: SoapDataFormat | string;
+    swiftMt?: SwiftMtDataFormat | string;
+    swiftMx?: SwiftMxDataFormat;
+    syslog?: SyslogDataFormat;
+    tarFile?: TarFileDataFormat;
+    thrift?: ThriftDataFormat | string;
+    tidyMarkup?: TidyMarkupDataFormat;
+    univocityCsv?: UniVocityCsvDataFormat;
     univocityFixed?: UniVocityFixedDataFormat;
-    jacksonXml?: JacksonXMLDataFormat;
-    grok?: GrokDataFormat;
+    univocityTsv?: UniVocityTsvDataFormat;
+    xmlSecurity?: XMLSecurityDataFormat;
     xstream?: XStreamDataFormat | string;
-    gzipDeflater?: GzipDeflaterDataFormat;
-    soap?: SoapDataFormat | string
+    yaml?: YAMLDataFormat;
+    zipDeflater?: ZipDeflaterDataFormat;
+    zipFile?: ZipFileDataFormat
     public constructor(init?: Partial<UnmarshalDefinition>) {
         super('UnmarshalDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ValidateDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'validate';
-    description?: string;
+    expression?: ExpressionDefinition;
+    predicateExceptionFactory?: string;
     disabled?: boolean;
     id?: string;
-    predicateExceptionFactory?: string
+    description?: string;
+    inheritErrorHandler?: boolean
     public constructor(init?: Partial<ValidateDefinition>) {
         super('ValidateDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class WhenDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'when';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<WhenDefinition>) {
         super('WhenDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class WhenSkipSendToEndpointDefinition extends CamelElement {
-    inheritErrorHandler?: boolean;
-    expression?: ExpressionDefinition;
     stepName?: string = 'whenSkipSendToEndpoint';
-    description?: string;
+    expression?: ExpressionDefinition;
     disabled?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     steps?: CamelElement[] = []
     public constructor(init?: Partial<WhenSkipSendToEndpointDefinition>) {
         super('WhenSkipSendToEndpointDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class WireTapDefinition extends CamelElement {
-    cacheSize?: number;
+    stepName?: string = 'wireTap';
+    copy?: boolean;
+    dynamicUri?: boolean;
     onPrepare?: string;
     executorService?: string;
-    pattern?: string;
-    description?: string;
-    allowOptimisedComponents?: boolean;
     uri: string = '';
-    dynamicUri?: boolean;
-    inheritErrorHandler?: boolean;
-    stepName?: string = 'wireTap';
+    pattern?: string;
+    cacheSize?: number;
     ignoreInvalidEndpoint?: boolean;
+    allowOptimisedComponents?: boolean;
     autoStartComponents?: boolean;
     disabled?: boolean;
-    copy?: boolean;
     id?: string;
+    description?: string;
+    inheritErrorHandler?: boolean;
     parameters?: any = {}
     public constructor(init?: Partial<WireTapDefinition>) {
         super('WireTapDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class BlacklistServiceCallServiceFilterConfiguration extends CamelElement {
-    servers?: string[] = [];
     id?: string;
-    properties?: PropertyDefinition[] = []
+    properties?: PropertyDefinition[] = [];
+    servers?: string[] = []
     public constructor(init?: Partial<BlacklistServiceCallServiceFilterConfiguration>) {
         super('BlacklistServiceCallServiceFilterConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class CachingServiceCallServiceDiscoveryConfiguration extends CamelElement {
-    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
-    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
+    combinedServiceDiscovery?: CombinedServiceCallServiceDiscoveryConfiguration;
     consulServiceDiscovery?: ConsulServiceCallServiceDiscoveryConfiguration;
+    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
     id?: string;
-    units?: string;
-    staticServiceDiscovery?: StaticServiceCallServiceDiscoveryConfiguration;
-    combinedServiceDiscovery?: CombinedServiceCallServiceDiscoveryConfiguration;
+    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
     properties?: PropertyDefinition[] = [];
-    timeout?: number
+    staticServiceDiscovery?: StaticServiceCallServiceDiscoveryConfiguration;
+    timeout?: number;
+    units?: string
     public constructor(init?: Partial<CachingServiceCallServiceDiscoveryConfiguration>) {
         super('CachingServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class CombinedServiceCallServiceDiscoveryConfiguration extends CamelElement {
     cachingServiceDiscovery?: CachingServiceCallServiceDiscoveryConfiguration;
-    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
-    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
     consulServiceDiscovery?: ConsulServiceCallServiceDiscoveryConfiguration;
+    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
     id?: string;
-    staticServiceDiscovery?: StaticServiceCallServiceDiscoveryConfiguration;
-    properties?: PropertyDefinition[] = []
+    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
+    properties?: PropertyDefinition[] = [];
+    staticServiceDiscovery?: StaticServiceCallServiceDiscoveryConfiguration
     public constructor(init?: Partial<CombinedServiceCallServiceDiscoveryConfiguration>) {
         super('CombinedServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class CombinedServiceCallServiceFilterConfiguration extends CamelElement {
     blacklistServiceFilter?: BlacklistServiceCallServiceFilterConfiguration;
-    passThroughServiceFilter?: PassThroughServiceCallServiceFilterConfiguration;
-    healthyServiceFilter?: HealthyServiceCallServiceFilterConfiguration;
     customServiceFilter?: CustomServiceCallServiceFilterConfiguration;
+    healthyServiceFilter?: HealthyServiceCallServiceFilterConfiguration;
     id?: string;
+    passThroughServiceFilter?: PassThroughServiceCallServiceFilterConfiguration;
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<CombinedServiceCallServiceFilterConfiguration>) {
         super('CombinedServiceCallServiceFilterConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class ConsulServiceCallServiceDiscoveryConfiguration extends CamelElement {
-    password?: string;
     aclToken?: string;
-    readTimeoutMillis?: number;
+    blockSeconds?: number;
     connectTimeoutMillis?: number;
     datacenter?: string;
-    writeTimeoutMillis?: number;
     id?: string;
-    userName?: string;
-    blockSeconds?: number;
+    password?: string;
     properties?: PropertyDefinition[] = [];
-    url?: string
+    readTimeoutMillis?: number;
+    url?: string;
+    userName?: string;
+    writeTimeoutMillis?: number
     public constructor(init?: Partial<ConsulServiceCallServiceDiscoveryConfiguration>) {
         super('ConsulServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class CustomServiceCallServiceFilterConfiguration extends CamelElement {
-    ref?: string;
     id?: string;
-    properties?: PropertyDefinition[] = []
+    properties?: PropertyDefinition[] = [];
+    ref?: string
     public constructor(init?: Partial<CustomServiceCallServiceFilterConfiguration>) {
         super('CustomServiceCallServiceFilterConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1805,17 +1915,19 @@ export class DefaultServiceCallServiceLoadBalancerConfiguration extends CamelEle
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<DefaultServiceCallServiceLoadBalancerConfiguration>) {
         super('DefaultServiceCallServiceLoadBalancerConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class DnsServiceCallServiceDiscoveryConfiguration extends CamelElement {
     domain?: string;
-    proto?: string;
     id?: string;
-    properties?: PropertyDefinition[] = []
+    properties?: PropertyDefinition[] = [];
+    proto?: string
     public constructor(init?: Partial<DnsServiceCallServiceDiscoveryConfiguration>) {
         super('DnsServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1825,34 +1937,36 @@ export class HealthyServiceCallServiceFilterConfiguration extends CamelElement {
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<HealthyServiceCallServiceFilterConfiguration>) {
         super('HealthyServiceCallServiceFilterConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class KubernetesServiceCallServiceDiscoveryConfiguration extends CamelElement {
-    lookup?: string;
-    portProtocol?: string;
+    apiVersion?: string;
     caCertData?: string;
-    portName?: string;
-    oauthToken?: string;
-    clientKeyAlgo?: string;
+    caCertFile?: string;
+    clientCertData?: string;
     clientCertFile?: string;
-    dnsDomain?: string;
-    password?: string;
-    apiVersion?: string;
+    clientKeyAlgo?: string;
     clientKeyData?: string;
-    masterUrl?: string;
-    namespace?: string;
-    clientCertData?: string;
-    caCertFile?: string;
     clientKeyFile?: string;
-    id?: string;
     clientKeyPassphrase?: string;
+    dnsDomain?: string;
+    id?: string;
+    lookup?: string;
+    masterUrl?: string;
+    namespace?: string;
+    oauthToken?: string;
+    password?: string;
+    portName?: string;
+    portProtocol?: string;
     properties?: PropertyDefinition[] = [];
     trustCerts?: boolean;
     username?: string
     public constructor(init?: Partial<KubernetesServiceCallServiceDiscoveryConfiguration>) {
         super('KubernetesServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1862,85 +1976,89 @@ export class PassThroughServiceCallServiceFilterConfiguration extends CamelEleme
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<PassThroughServiceCallServiceFilterConfiguration>) {
         super('PassThroughServiceCallServiceFilterConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class ServiceCallConfigurationDefinition extends CamelElement {
-    defaultLoadBalancer?: DefaultServiceCallServiceLoadBalancerConfiguration;
-    serviceDiscoveryRef?: string;
+    stepName?: string = 'serviceCallConfiguration';
     expression?: ServiceCallExpressionConfiguration;
-    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
-    pattern?: string;
-    customServiceFilter?: CustomServiceCallServiceFilterConfiguration;
-    zookeeperServiceDiscovery?: ZooKeeperServiceCallServiceDiscoveryConfiguration;
     uri?: string;
-    blacklistServiceFilter?: BlacklistServiceCallServiceFilterConfiguration;
     component?: string;
+    pattern?: string;
+    serviceDiscoveryRef?: string;
+    serviceFilterRef?: string;
+    serviceChooserRef?: string;
+    loadBalancerRef?: string;
     expressionRef?: string;
-    passThroughServiceFilter?: PassThroughServiceCallServiceFilterConfiguration;
+    id?: string;
+    blacklistServiceFilter?: BlacklistServiceCallServiceFilterConfiguration;
     cachingServiceDiscovery?: CachingServiceCallServiceDiscoveryConfiguration;
-    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
-    healthyServiceFilter?: HealthyServiceCallServiceFilterConfiguration;
-    stepName?: string = 'serviceCallConfiguration';
-    loadBalancerRef?: string;
-    serviceFilterRef?: string;
+    combinedServiceDiscovery?: CombinedServiceCallServiceDiscoveryConfiguration;
     combinedServiceFilter?: CombinedServiceCallServiceFilterConfiguration;
-    serviceChooserRef?: string;
     consulServiceDiscovery?: ConsulServiceCallServiceDiscoveryConfiguration;
-    id?: string;
+    customServiceFilter?: CustomServiceCallServiceFilterConfiguration;
+    defaultLoadBalancer?: DefaultServiceCallServiceLoadBalancerConfiguration;
+    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
+    healthyServiceFilter?: HealthyServiceCallServiceFilterConfiguration;
+    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
+    passThroughServiceFilter?: PassThroughServiceCallServiceFilterConfiguration;
     staticServiceDiscovery?: StaticServiceCallServiceDiscoveryConfiguration;
-    combinedServiceDiscovery?: CombinedServiceCallServiceDiscoveryConfiguration
+    zookeeperServiceDiscovery?: ZooKeeperServiceCallServiceDiscoveryConfiguration
     public constructor(init?: Partial<ServiceCallConfigurationDefinition>) {
         super('ServiceCallConfigurationDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ServiceCallDefinition extends CamelElement {
-    pattern?: string;
-    description?: string;
-    blacklistServiceFilter?: BlacklistServiceCallServiceFilterConfiguration;
-    expressionRef?: string;
-    passThroughServiceFilter?: PassThroughServiceCallServiceFilterConfiguration;
-    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
-    healthyServiceFilter?: HealthyServiceCallServiceFilterConfiguration;
     stepName?: string = 'serviceCall';
-    serviceChooserRef?: string;
-    disabled?: boolean;
-    consulServiceDiscovery?: ConsulServiceCallServiceDiscoveryConfiguration;
-    id?: string;
-    defaultLoadBalancer?: DefaultServiceCallServiceLoadBalancerConfiguration;
-    serviceDiscoveryRef?: string;
+    name: string = '';
     expression?: ServiceCallExpressionConfiguration;
-    configurationRef?: string;
-    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
-    customServiceFilter?: CustomServiceCallServiceFilterConfiguration;
-    zookeeperServiceDiscovery?: ZooKeeperServiceCallServiceDiscoveryConfiguration;
     uri?: string;
     component?: string;
-    inheritErrorHandler?: boolean;
-    cachingServiceDiscovery?: CachingServiceCallServiceDiscoveryConfiguration;
-    loadBalancerRef?: string;
+    pattern?: string;
+    configurationRef?: string;
+    serviceDiscoveryRef?: string;
     serviceFilterRef?: string;
+    serviceChooserRef?: string;
+    loadBalancerRef?: string;
+    expressionRef?: string;
+    disabled?: boolean;
+    id?: string;
+    description?: string;
+    blacklistServiceFilter?: BlacklistServiceCallServiceFilterConfiguration;
+    cachingServiceDiscovery?: CachingServiceCallServiceDiscoveryConfiguration;
+    combinedServiceDiscovery?: CombinedServiceCallServiceDiscoveryConfiguration;
     combinedServiceFilter?: CombinedServiceCallServiceFilterConfiguration;
-    name: string = '';
+    consulServiceDiscovery?: ConsulServiceCallServiceDiscoveryConfiguration;
+    customServiceFilter?: CustomServiceCallServiceFilterConfiguration;
+    defaultLoadBalancer?: DefaultServiceCallServiceLoadBalancerConfiguration;
+    dnsServiceDiscovery?: DnsServiceCallServiceDiscoveryConfiguration;
+    healthyServiceFilter?: HealthyServiceCallServiceFilterConfiguration;
+    inheritErrorHandler?: boolean;
+    kubernetesServiceDiscovery?: KubernetesServiceCallServiceDiscoveryConfiguration;
+    passThroughServiceFilter?: PassThroughServiceCallServiceFilterConfiguration;
     staticServiceDiscovery?: StaticServiceCallServiceDiscoveryConfiguration;
-    combinedServiceDiscovery?: CombinedServiceCallServiceDiscoveryConfiguration
+    zookeeperServiceDiscovery?: ZooKeeperServiceCallServiceDiscoveryConfiguration
     public constructor(init?: Partial<ServiceCallDefinition>) {
         super('ServiceCallDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ServiceCallExpressionConfiguration extends CamelElement {
-    hostHeader?: string;
     expressionType?: ExpressionDefinition;
+    hostHeader?: string;
     id?: string;
     portHeader?: string;
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<ServiceCallExpressionConfiguration>) {
         super('ServiceCallExpressionConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1950,6 +2068,7 @@ export class ServiceCallServiceChooserConfiguration extends CamelElement {
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<ServiceCallServiceChooserConfiguration>) {
         super('ServiceCallServiceChooserConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1959,6 +2078,7 @@ export class ServiceCallServiceDiscoveryConfiguration extends CamelElement {
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<ServiceCallServiceDiscoveryConfiguration>) {
         super('ServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1968,6 +2088,7 @@ export class ServiceCallServiceFilterConfiguration extends CamelElement {
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<ServiceCallServiceFilterConfiguration>) {
         super('ServiceCallServiceFilterConfiguration')
+        
         Object.assign(this, init)
     }
 }
@@ -1977,358 +2098,378 @@ export class ServiceCallServiceLoadBalancerConfiguration extends CamelElement {
     properties?: PropertyDefinition[] = []
     public constructor(init?: Partial<ServiceCallServiceLoadBalancerConfiguration>) {
         super('ServiceCallServiceLoadBalancerConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class StaticServiceCallServiceDiscoveryConfiguration extends CamelElement {
-    servers?: string[] = [];
     id?: string;
-    properties?: PropertyDefinition[] = []
+    properties?: PropertyDefinition[] = [];
+    servers?: string[] = []
     public constructor(init?: Partial<StaticServiceCallServiceDiscoveryConfiguration>) {
         super('StaticServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class ZooKeeperServiceCallServiceDiscoveryConfiguration extends CamelElement {
-    nodes: string = '';
-    reconnectMaxRetries?: string;
     basePath: string = '';
-    reconnectBaseSleepTime?: string;
+    connectionTimeout?: string;
+    id?: string;
     namespace?: string;
+    nodes: string = '';
+    properties?: PropertyDefinition[] = [];
+    reconnectBaseSleepTime?: string;
+    reconnectMaxRetries?: string;
     reconnectMaxSleepTime?: string;
-    sessionTimeout?: string;
-    id?: string;
-    connectionTimeout?: string;
-    properties?: PropertyDefinition[] = []
+    sessionTimeout?: string
     public constructor(init?: Partial<ZooKeeperServiceCallServiceDiscoveryConfiguration>) {
         super('ZooKeeperServiceCallServiceDiscoveryConfiguration')
+        
         Object.assign(this, init)
     }
 }
 
 export class BatchResequencerConfig extends CamelElement {
-    batchSize?: number;
-    reverse?: boolean;
     allowDuplicates?: boolean;
+    batchSize?: number;
     batchTimeout?: string;
-    ignoreInvalidExchanges?: boolean
+    ignoreInvalidExchanges?: boolean;
+    reverse?: boolean
     public constructor(init?: Partial<BatchResequencerConfig>) {
         super('BatchResequencerConfig')
+        
         Object.assign(this, init)
     }
 }
 
 export class StreamResequencerConfig extends CamelElement {
-    comparator?: string;
-    timeout?: string;
     capacity?: number;
+    comparator?: string;
     deliveryAttemptInterval?: string;
     ignoreInvalidExchanges?: boolean;
-    rejectOld?: boolean
+    rejectOld?: boolean;
+    timeout?: string
     public constructor(init?: Partial<StreamResequencerConfig>) {
         super('StreamResequencerConfig')
+        
         Object.assign(this, init)
     }
 }
 
 export class ASN1DataFormat extends CamelElement {
     dataFormatName?: string = 'asn1';
+    unmarshalType?: string;
     usingIterator?: boolean;
-    id?: string;
-    unmarshalType?: string
+    id?: string
     public constructor(init?: Partial<ASN1DataFormat>) {
         super('ASN1DataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class Any23DataFormat extends CamelElement {
-    extractors?: string[] = [];
-    configuration?: PropertyDefinition[] = [];
     dataFormatName?: string = 'any23';
+    outputFormat?: string;
     baseUri?: string;
-    id?: string;
-    outputFormat?: string
+    configuration?: PropertyDefinition[] = [];
+    extractors?: string[] = [];
+    id?: string
     public constructor(init?: Partial<Any23DataFormat>) {
         super('Any23DataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class AvroDataFormat extends CamelElement {
-    allowUnmarshallType?: boolean;
-    include?: string;
-    contentTypeHeader?: boolean;
-    jsonView?: string;
     dataFormatName?: string = 'avro';
-    autoDiscoverSchemaResolver?: boolean;
-    timezone?: string;
     instanceClassName?: string;
-    moduleClassNames?: string;
-    allowJmsType?: boolean;
-    enableFeatures?: string;
+    library?: string;
+    objectMapper?: string;
+    useDefaultObjectMapper?: boolean;
     unmarshalType?: string;
+    jsonView?: string;
+    include?: string;
+    allowJmsType?: boolean;
+    collectionType?: string;
     useList?: boolean;
-    disableFeatures?: string;
+    moduleClassNames?: string;
     moduleRefs?: string;
-    schemaResolver?: string;
-    collectionType?: string;
-    useDefaultObjectMapper?: boolean;
-    library?: string;
-    objectMapper?: string;
+    enableFeatures?: string;
+    disableFeatures?: string;
+    allowUnmarshallType?: boolean;
+    timezone?: string;
     autoDiscoverObjectMapper?: boolean;
+    contentTypeHeader?: boolean;
+    schemaResolver?: string;
+    autoDiscoverSchemaResolver?: boolean;
     id?: string
     public constructor(init?: Partial<AvroDataFormat>) {
         super('AvroDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class BarcodeDataFormat extends CamelElement {
-    barcodeFormat?: string;
     dataFormatName?: string = 'barcode';
-    width?: number;
-    id?: string;
+    barcodeFormat?: string;
     imageType?: string;
-    height?: number
+    width?: number;
+    height?: number;
+    id?: string
     public constructor(init?: Partial<BarcodeDataFormat>) {
         super('BarcodeDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class Base64DataFormat extends CamelElement {
     dataFormatName?: string = 'base64';
-    urlSafe?: boolean;
-    id?: string;
+    lineLength?: number;
     lineSeparator?: string;
-    lineLength?: number
+    urlSafe?: boolean;
+    id?: string
     public constructor(init?: Partial<Base64DataFormat>) {
         super('Base64DataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class BindyDataFormat extends CamelElement {
-    unwrapSingleInstance?: boolean;
     dataFormatName?: string = 'bindy';
-    id?: string;
-    locale?: string;
     type: string = '';
+    classType?: string;
     allowEmptyStream?: boolean;
-    classType?: string
+    unwrapSingleInstance?: boolean;
+    locale?: string;
+    id?: string
     public constructor(init?: Partial<BindyDataFormat>) {
         super('BindyDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class CBORDataFormat extends CamelElement {
-    allowUnmarshallType?: boolean;
-    collectionType?: string;
-    useDefaultObjectMapper?: boolean;
+    dataFormatName?: string = 'cbor';
     objectMapper?: string;
+    useDefaultObjectMapper?: boolean;
+    unmarshalType?: string;
+    collectionType?: string;
+    useList?: boolean;
+    allowUnmarshallType?: boolean;
     prettyPrint?: boolean;
-    dataFormatName?: string = 'cbor';
     allowJmsType?: boolean;
-    id?: string;
     enableFeatures?: string;
-    unmarshalType?: string;
-    useList?: boolean;
-    disableFeatures?: string
+    disableFeatures?: string;
+    id?: string
     public constructor(init?: Partial<CBORDataFormat>) {
         super('CBORDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class CryptoDataFormat extends CamelElement {
-    shouldAppendHmac?: boolean;
-    inline?: boolean;
-    macAlgorithm?: string;
-    algorithmParameterRef?: string;
     dataFormatName?: string = 'crypto';
+    algorithm?: string;
+    keyRef?: string;
     cryptoProvider?: string;
     initVectorRef?: string;
-    keyRef?: string;
-    id?: string;
-    algorithm?: string;
-    bufferSize?: number
+    algorithmParameterRef?: string;
+    bufferSize?: number;
+    macAlgorithm?: string;
+    shouldAppendHmac?: boolean;
+    inline?: boolean;
+    id?: string
     public constructor(init?: Partial<CryptoDataFormat>) {
         super('CryptoDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class CsvDataFormat extends CamelElement {
+    dataFormatName?: string = 'csv';
+    formatRef?: string;
+    formatName?: string;
+    commentMarkerDisabled?: boolean;
+    commentMarker?: string;
+    delimiter?: string;
     escapeDisabled?: boolean;
-    ignoreEmptyLines?: boolean;
-    recordConverterRef?: string;
-    trailingDelimiter?: boolean;
+    escape?: string;
     headerDisabled?: boolean;
-    lazyLoad?: boolean;
-    commentMarkerDisabled?: boolean;
-    skipHeaderRecord?: boolean;
-    quote?: string;
-    trim?: boolean;
-    useMaps?: boolean;
-    delimiter?: string;
-    nullString?: string;
+    header?: string[] = [];
     allowMissingColumnNames?: boolean;
-    id?: string;
-    escape?: string;
-    nullStringDisabled?: boolean;
-    commentMarker?: string;
-    dataFormatName?: string = 'csv';
-    formatRef?: string;
-    quoteMode?: string;
-    formatName?: string;
+    ignoreEmptyLines?: boolean;
     ignoreSurroundingSpaces?: boolean;
+    nullStringDisabled?: boolean;
+    nullString?: string;
     quoteDisabled?: boolean;
-    useOrderedMaps?: boolean;
-    header?: string[] = [];
-    ignoreHeaderCase?: boolean;
+    quote?: string;
     recordSeparatorDisabled?: string;
-    captureHeaderRecord?: boolean;
+    recordSeparator?: string;
+    skipHeaderRecord?: boolean;
+    quoteMode?: string;
+    ignoreHeaderCase?: boolean;
+    trim?: boolean;
+    trailingDelimiter?: boolean;
     marshallerFactoryRef?: string;
-    recordSeparator?: string
+    lazyLoad?: boolean;
+    useMaps?: boolean;
+    useOrderedMaps?: boolean;
+    recordConverterRef?: string;
+    captureHeaderRecord?: boolean;
+    id?: string
     public constructor(init?: Partial<CsvDataFormat>) {
         super('CsvDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class CustomDataFormat extends CamelElement {
-    ref: string = '';
     dataFormatName?: string = 'custom';
+    ref: string = '';
     id?: string
     public constructor(init?: Partial<CustomDataFormat>) {
         super('CustomDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class DataFormatsDefinition extends CamelElement {
-    univocityCsv?: UniVocityCsvDataFormat;
-    protobuf?: ProtobufDataFormat | string;
-    tarFile?: TarFileDataFormat;
-    tidyMarkup?: TidyMarkupDataFormat;
-    csv?: CsvDataFormat | string;
-    base64?: Base64DataFormat;
-    zipDeflater?: ZipDeflaterDataFormat;
-    bindy?: BindyDataFormat;
-    syslog?: SyslogDataFormat;
-    zipFile?: ZipFileDataFormat;
-    jaxb?: JaxbDataFormat;
-    rss?: RssDataFormat;
     stepName?: string = 'dataFormats';
-    mimeMultipart?: MimeMultipartDataFormat;
+    any23?: Any23DataFormat | string;
     asn1?: ASN1DataFormat | string;
-    pgp?: PGPDataFormat;
-    thrift?: ThriftDataFormat | string;
-    json?: JsonDataFormat;
-    lzf?: LZFDataFormat;
-    fhirXml?: FhirXmlDataFormat;
-    barcode?: BarcodeDataFormat;
     avro?: AvroDataFormat | string;
-    yaml?: YAMLDataFormat;
-    fhirJson?: FhirJsonDataFormat;
-    any23?: Any23DataFormat | string;
-    custom?: CustomDataFormat | string;
-    flatpack?: FlatpackDataFormat;
-    swiftMx?: SwiftMxDataFormat;
+    barcode?: BarcodeDataFormat;
+    base64?: Base64DataFormat;
+    bindy?: BindyDataFormat;
     cbor?: CBORDataFormat;
     crypto?: CryptoDataFormat;
-    swiftMt?: SwiftMtDataFormat | string;
-    univocityTsv?: UniVocityTsvDataFormat;
+    csv?: CsvDataFormat | string;
+    custom?: CustomDataFormat | string;
+    fhirJson?: FhirJsonDataFormat;
+    fhirXml?: FhirXmlDataFormat;
+    flatpack?: FlatpackDataFormat;
+    grok?: GrokDataFormat;
+    gzipDeflater?: GzipDeflaterDataFormat;
     hl7?: HL7DataFormat;
-    jsonApi?: JsonApiDataFormat;
-    xmlSecurity?: XMLSecurityDataFormat;
     ical?: IcalDataFormat;
-    univocityFixed?: UniVocityFixedDataFormat;
     jacksonXml?: JacksonXMLDataFormat;
-    grok?: GrokDataFormat;
+    jaxb?: JaxbDataFormat;
+    json?: JsonDataFormat;
+    jsonApi?: JsonApiDataFormat;
+    lzf?: LZFDataFormat;
+    mimeMultipart?: MimeMultipartDataFormat;
+    pgp?: PGPDataFormat;
+    protobuf?: ProtobufDataFormat | string;
+    rss?: RssDataFormat;
+    soap?: SoapDataFormat | string;
+    swiftMt?: SwiftMtDataFormat | string;
+    swiftMx?: SwiftMxDataFormat;
+    syslog?: SyslogDataFormat;
+    tarFile?: TarFileDataFormat;
+    thrift?: ThriftDataFormat | string;
+    tidyMarkup?: TidyMarkupDataFormat;
+    univocityCsv?: UniVocityCsvDataFormat;
+    univocityFixed?: UniVocityFixedDataFormat;
+    univocityTsv?: UniVocityTsvDataFormat;
+    xmlSecurity?: XMLSecurityDataFormat;
     xstream?: XStreamDataFormat | string;
-    gzipDeflater?: GzipDeflaterDataFormat;
-    soap?: SoapDataFormat | string
+    yaml?: YAMLDataFormat;
+    zipDeflater?: ZipDeflaterDataFormat;
+    zipFile?: ZipFileDataFormat
     public constructor(init?: Partial<DataFormatsDefinition>) {
         super('DataFormatsDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class FhirJsonDataFormat extends CamelElement {
-    contentTypeHeader?: boolean;
-    dontStripVersionsFromReferencesAtPaths?: string[] = [];
-    prettyPrint?: boolean;
     dataFormatName?: string = 'fhirJson';
-    dontEncodeElements?: string[] = [];
-    summaryMode?: boolean;
-    encodeElementsAppliesToChildResourcesOnly?: boolean;
-    serverBaseUrl?: string;
     fhirVersion?: string;
-    suppressNarratives?: boolean;
+    prettyPrint?: boolean;
+    serverBaseUrl?: string;
+    omitResourceId?: boolean;
+    encodeElementsAppliesToChildResourcesOnly?: boolean;
     encodeElements?: string[] = [];
+    dontEncodeElements?: string[] = [];
     stripVersionsFromReferences?: boolean;
-    id?: string;
-    omitResourceId?: boolean;
-    overrideResourceIdWithBundleEntryFullUrl?: boolean
+    overrideResourceIdWithBundleEntryFullUrl?: boolean;
+    summaryMode?: boolean;
+    suppressNarratives?: boolean;
+    dontStripVersionsFromReferencesAtPaths?: string[] = [];
+    contentTypeHeader?: boolean;
+    id?: string
     public constructor(init?: Partial<FhirJsonDataFormat>) {
         super('FhirJsonDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class FhirXmlDataFormat extends CamelElement {
-    contentTypeHeader?: boolean;
-    dontStripVersionsFromReferencesAtPaths?: string[] = [];
-    prettyPrint?: boolean;
     dataFormatName?: string = 'fhirXml';
-    dontEncodeElements?: string[] = [];
-    summaryMode?: boolean;
-    encodeElementsAppliesToChildResourcesOnly?: boolean;
-    serverBaseUrl?: string;
     fhirVersion?: string;
-    suppressNarratives?: boolean;
+    prettyPrint?: boolean;
+    serverBaseUrl?: string;
+    omitResourceId?: boolean;
+    encodeElementsAppliesToChildResourcesOnly?: boolean;
     encodeElements?: string[] = [];
+    dontEncodeElements?: string[] = [];
     stripVersionsFromReferences?: boolean;
-    id?: string;
-    omitResourceId?: boolean;
-    overrideResourceIdWithBundleEntryFullUrl?: boolean
+    overrideResourceIdWithBundleEntryFullUrl?: boolean;
+    summaryMode?: boolean;
+    suppressNarratives?: boolean;
+    dontStripVersionsFromReferencesAtPaths?: string[] = [];
+    contentTypeHeader?: boolean;
+    id?: string
     public constructor(init?: Partial<FhirXmlDataFormat>) {
         super('FhirXmlDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class FlatpackDataFormat extends CamelElement {
-    allowShortLines?: boolean;
     dataFormatName?: string = 'flatpack';
-    delimiter?: string;
     definition?: string;
     fixed?: boolean;
-    id?: string;
+    delimiter?: string;
     ignoreFirstRecord?: boolean;
-    parserFactoryRef?: string;
+    allowShortLines?: boolean;
+    ignoreExtraColumns?: boolean;
     textQualifier?: string;
-    ignoreExtraColumns?: boolean
+    parserFactoryRef?: string;
+    id?: string
     public constructor(init?: Partial<FlatpackDataFormat>) {
         super('FlatpackDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class GrokDataFormat extends CamelElement {
-    flattened?: boolean;
-    namedOnly?: boolean;
     dataFormatName?: string = 'grok';
     pattern: string = '';
+    flattened?: boolean;
     allowMultipleMatchesPerLine?: boolean;
+    namedOnly?: boolean;
     id?: string
     public constructor(init?: Partial<GrokDataFormat>) {
         super('GrokDataFormat')
+        
         Object.assign(this, init)
     }
 }
@@ -2338,198 +2479,209 @@ export class GzipDeflaterDataFormat extends CamelElement {
     id?: string
     public constructor(init?: Partial<GzipDeflaterDataFormat>) {
         super('GzipDeflaterDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class HL7DataFormat extends CamelElement {
     dataFormatName?: string = 'hl7';
-    id?: string;
-    validate?: boolean
+    validate?: boolean;
+    id?: string
     public constructor(init?: Partial<HL7DataFormat>) {
         super('HL7DataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class IcalDataFormat extends CamelElement {
-    validating?: boolean;
     dataFormatName?: string = 'ical';
+    validating?: boolean;
     id?: string
     public constructor(init?: Partial<IcalDataFormat>) {
         super('IcalDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class JacksonXMLDataFormat extends CamelElement {
-    allowUnmarshallType?: boolean;
-    include?: string;
-    contentTypeHeader?: boolean;
+    dataFormatName?: string = 'jacksonXml';
+    xmlMapper?: string;
     prettyPrint?: boolean;
+    unmarshalType?: string;
+    allowUnmarshallType?: boolean;
     jsonView?: string;
-    dataFormatName?: string = 'jacksonXml';
+    include?: string;
+    allowJmsType?: boolean;
+    collectionType?: string;
+    useList?: boolean;
     timezone?: string;
+    enableJaxbAnnotationModule?: boolean;
     moduleClassNames?: string;
-    allowJmsType?: boolean;
+    moduleRefs?: string;
     enableFeatures?: string;
-    unmarshalType?: string;
-    useList?: boolean;
     disableFeatures?: string;
-    moduleRefs?: string;
-    collectionType?: string;
-    id?: string;
-    enableJaxbAnnotationModule?: boolean;
-    xmlMapper?: string
+    contentTypeHeader?: boolean;
+    id?: string
     public constructor(init?: Partial<JacksonXMLDataFormat>) {
         super('JacksonXMLDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class JaxbDataFormat extends CamelElement {
-    schema?: string;
-    contentTypeHeader?: boolean;
-    prettyPrint?: boolean;
     dataFormatName?: string = 'jaxb';
-    contextPathIsClassName?: boolean;
-    schemaLocation?: string;
     contextPath: string = '';
+    contextPathIsClassName?: boolean;
+    schema?: string;
     schemaSeverityLevel?: string;
-    xmlStreamWriterWrapper?: string;
-    noNamespaceSchemaLocation?: string;
-    encoding?: string;
+    prettyPrint?: boolean;
+    objectFactory?: boolean;
+    ignoreJaxbElement?: boolean;
     mustBeJaxbElement?: boolean;
     filterNonXmlChars?: boolean;
+    encoding?: string;
     fragment?: boolean;
-    objectFactory?: boolean;
-    namespacePrefixRef?: string;
     partClass?: string;
-    ignoreJaxbElement?: boolean;
-    id?: string;
+    partNamespace?: string;
+    namespacePrefixRef?: string;
+    xmlStreamWriterWrapper?: string;
+    schemaLocation?: string;
+    noNamespaceSchemaLocation?: string;
     jaxbProviderProperties?: string;
-    partNamespace?: string
+    contentTypeHeader?: boolean;
+    id?: string
     public constructor(init?: Partial<JaxbDataFormat>) {
         super('JaxbDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class JsonApiDataFormat extends CamelElement {
     dataFormatName?: string = 'jsonApi';
-    id?: string;
-    mainFormatType?: string
+    mainFormatType?: string;
+    id?: string
     public constructor(init?: Partial<JsonApiDataFormat>) {
         super('JsonApiDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class JsonDataFormat extends CamelElement {
-    contentTypeHeader?: boolean;
-    timezone?: string;
-    moduleClassNames?: string;
-    allowJmsType?: boolean;
-    enableFeatures?: string;
-    unmarshalType?: string;
-    library?: string;
-    permissions?: string;
+    dataFormatName?: string = 'json';
+    objectMapper?: string;
+    useDefaultObjectMapper?: boolean;
     autoDiscoverObjectMapper?: boolean;
-    id?: string;
-    allowUnmarshallType?: boolean;
-    include?: string;
     prettyPrint?: boolean;
+    library?: string;
+    unmarshalType?: string;
     jsonView?: string;
-    dataFormatName?: string = 'json';
-    autoDiscoverSchemaResolver?: boolean;
+    include?: string;
+    allowJmsType?: boolean;
+    collectionType?: string;
     useList?: boolean;
-    disableFeatures?: string;
+    moduleClassNames?: string;
     moduleRefs?: string;
-    schemaResolver?: string;
-    collectionType?: string;
-    useDefaultObjectMapper?: boolean;
-    objectMapper?: string;
+    enableFeatures?: string;
+    disableFeatures?: string;
+    permissions?: string;
+    allowUnmarshallType?: boolean;
+    timezone?: string;
     dropRootNode?: boolean;
-    namingStrategy?: string
+    schemaResolver?: string;
+    autoDiscoverSchemaResolver?: boolean;
+    namingStrategy?: string;
+    contentTypeHeader?: boolean;
+    id?: string
     public constructor(init?: Partial<JsonDataFormat>) {
         super('JsonDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class LZFDataFormat extends CamelElement {
     dataFormatName?: string = 'lzf';
-    id?: string;
-    usingParallelCompression?: boolean
+    usingParallelCompression?: boolean;
+    id?: string
     public constructor(init?: Partial<LZFDataFormat>) {
         super('LZFDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class MimeMultipartDataFormat extends CamelElement {
-    headersInline?: boolean;
+    dataFormatName?: string = 'mimeMultipart';
     multipartSubType?: string;
     multipartWithoutAttachment?: boolean;
-    dataFormatName?: string = 'mimeMultipart';
-    id?: string;
+    headersInline?: boolean;
     includeHeaders?: string;
-    binaryContent?: boolean
+    binaryContent?: boolean;
+    id?: string
     public constructor(init?: Partial<MimeMultipartDataFormat>) {
         super('MimeMultipartDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class PGPDataFormat extends CamelElement {
     dataFormatName?: string = 'pgp';
-    armored?: boolean;
+    keyUserid?: string;
+    signatureKeyUserid?: string;
+    password?: string;
     signaturePassword?: string;
-    signatureKeyRing?: string;
     keyFileName?: string;
-    signatureVerificationOption?: string;
-    signatureKeyUserid?: string;
+    signatureKeyFileName?: string;
+    signatureKeyRing?: string;
+    armored?: boolean;
     integrity?: boolean;
-    password?: string;
     provider?: string;
+    algorithm?: number;
     compressionAlgorithm?: number;
-    keyUserid?: string;
-    signatureKeyFileName?: string;
-    id?: string;
     hashAlgorithm?: number;
-    algorithm?: number
+    signatureVerificationOption?: string;
+    id?: string
     public constructor(init?: Partial<PGPDataFormat>) {
         super('PGPDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class ProtobufDataFormat extends CamelElement {
-    allowUnmarshallType?: boolean;
-    include?: string;
-    contentTypeHeader?: boolean;
-    contentTypeFormat?: string;
-    jsonView?: string;
     dataFormatName?: string = 'protobuf';
-    autoDiscoverSchemaResolver?: boolean;
-    timezone?: string;
-    moduleClassNames?: string;
-    allowJmsType?: boolean;
     instanceClass?: string;
-    enableFeatures?: string;
+    objectMapper?: string;
+    useDefaultObjectMapper?: boolean;
+    autoDiscoverObjectMapper?: boolean;
+    library?: string;
     unmarshalType?: string;
+    jsonView?: string;
+    include?: string;
+    allowJmsType?: boolean;
+    collectionType?: string;
     useList?: boolean;
-    disableFeatures?: string;
+    moduleClassNames?: string;
     moduleRefs?: string;
+    enableFeatures?: string;
+    disableFeatures?: string;
+    allowUnmarshallType?: boolean;
+    timezone?: string;
     schemaResolver?: string;
-    collectionType?: string;
-    useDefaultObjectMapper?: boolean;
-    library?: string;
-    objectMapper?: string;
-    autoDiscoverObjectMapper?: boolean;
+    autoDiscoverSchemaResolver?: boolean;
+    contentTypeFormat?: string;
+    contentTypeHeader?: boolean;
     id?: string
     public constructor(init?: Partial<ProtobufDataFormat>) {
         super('ProtobufDataFormat')
+        
         Object.assign(this, init)
     }
 }
@@ -2539,21 +2691,23 @@ export class RssDataFormat extends CamelElement {
     id?: string
     public constructor(init?: Partial<RssDataFormat>) {
         super('RssDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class SoapDataFormat extends CamelElement {
-    schema?: string;
-    namespacePrefixRef?: string;
     dataFormatName?: string = 'soap';
-    elementNameStrategyRef?: string;
     contextPath: string = '';
-    id?: string;
     encoding?: string;
-    version?: string
+    elementNameStrategyRef?: string;
+    version?: string;
+    namespacePrefixRef?: string;
+    schema?: string;
+    id?: string
     public constructor(init?: Partial<SoapDataFormat>) {
         super('SoapDataFormat')
+        
         Object.assign(this, init)
     }
 }
@@ -2564,19 +2718,21 @@ export class SwiftMtDataFormat extends CamelElement {
     id?: string
     public constructor(init?: Partial<SwiftMtDataFormat>) {
         super('SwiftMtDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class SwiftMxDataFormat extends CamelElement {
     dataFormatName?: string = 'swiftMx';
-    readMessageId?: string;
-    writeInJson?: boolean;
     writeConfigRef?: string;
-    id?: string;
-    readConfigRef?: string
+    writeInJson?: boolean;
+    readMessageId?: string;
+    readConfigRef?: string;
+    id?: string
     public constructor(init?: Partial<SwiftMxDataFormat>) {
         super('SwiftMxDataFormat')
+        
         Object.assign(this, init)
     }
 }
@@ -2586,95 +2742,101 @@ export class SyslogDataFormat extends CamelElement {
     id?: string
     public constructor(init?: Partial<SyslogDataFormat>) {
         super('SyslogDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class TarFileDataFormat extends CamelElement {
-    maxDecompressedSize?: number;
     dataFormatName?: string = 'tarFile';
     usingIterator?: boolean;
-    id?: string;
+    allowEmptyDirectory?: boolean;
     preservePathElements?: boolean;
-    allowEmptyDirectory?: boolean
+    maxDecompressedSize?: number;
+    id?: string
     public constructor(init?: Partial<TarFileDataFormat>) {
         super('TarFileDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class ThriftDataFormat extends CamelElement {
-    contentTypeHeader?: boolean;
-    contentTypeFormat?: string;
     dataFormatName?: string = 'thrift';
     instanceClass?: string;
+    contentTypeFormat?: string;
+    contentTypeHeader?: boolean;
     id?: string
     public constructor(init?: Partial<ThriftDataFormat>) {
         super('ThriftDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class TidyMarkupDataFormat extends CamelElement {
-    omitXmlDeclaration?: boolean;
-    dataObjectType?: string;
     dataFormatName?: string = 'tidyMarkup';
+    dataObjectType?: string;
+    omitXmlDeclaration?: boolean;
     id?: string
     public constructor(init?: Partial<TidyMarkupDataFormat>) {
         super('TidyMarkupDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class UniVocityCsvDataFormat extends CamelElement {
-    headerExtractionEnabled?: boolean;
-    skipEmptyLines?: boolean;
     dataFormatName?: string = 'univocityCsv';
-    asMap?: boolean;
-    ignoreLeadingWhitespaces?: boolean;
-    univocityHeader?: UniVocityHeader[] = [];
-    ignoreTrailingWhitespaces?: boolean;
-    lineSeparator?: string;
-    lazyLoad?: boolean;
-    nullValue?: string;
+    delimiter?: string;
     quoteAllFields?: boolean;
-    normalizedLineSeparator?: string;
-    emptyValue?: string;
     quote?: string;
     quoteEscape?: string;
-    delimiter?: string;
+    nullValue?: string;
+    skipEmptyLines?: boolean;
+    ignoreTrailingWhitespaces?: boolean;
+    ignoreLeadingWhitespaces?: boolean;
     headersDisabled?: boolean;
+    headerExtractionEnabled?: boolean;
+    numberOfRecordsToRead?: number;
+    emptyValue?: string;
+    lineSeparator?: string;
+    normalizedLineSeparator?: string;
     comment?: string;
+    lazyLoad?: boolean;
+    asMap?: boolean;
     id?: string;
-    numberOfRecordsToRead?: number
+    univocityHeader?: UniVocityHeader[] = []
     public constructor(init?: Partial<UniVocityCsvDataFormat>) {
         super('UniVocityCsvDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class UniVocityFixedDataFormat extends CamelElement {
-    headerExtractionEnabled?: boolean;
+    dataFormatName?: string = 'univocityFixed';
     padding?: string;
+    skipTrailingCharsUntilNewline?: boolean;
     recordEndsOnNewline?: boolean;
+    nullValue?: string;
     skipEmptyLines?: boolean;
-    dataFormatName?: string = 'univocityFixed';
-    asMap?: boolean;
-    ignoreLeadingWhitespaces?: boolean;
-    univocityHeader?: UniVocityHeader[] = [];
     ignoreTrailingWhitespaces?: boolean;
+    ignoreLeadingWhitespaces?: boolean;
+    headersDisabled?: boolean;
+    headerExtractionEnabled?: boolean;
+    numberOfRecordsToRead?: number;
+    emptyValue?: string;
     lineSeparator?: string;
-    lazyLoad?: boolean;
-    nullValue?: string;
     normalizedLineSeparator?: string;
-    emptyValue?: string;
-    headersDisabled?: boolean;
     comment?: string;
+    lazyLoad?: boolean;
+    asMap?: boolean;
     id?: string;
-    numberOfRecordsToRead?: number;
-    skipTrailingCharsUntilNewline?: boolean
+    univocityHeader?: UniVocityHeader[] = []
     public constructor(init?: Partial<UniVocityFixedDataFormat>) {
         super('UniVocityFixedDataFormat')
+        
         Object.assign(this, init)
     }
 }
@@ -2684,91 +2846,96 @@ export class UniVocityHeader extends CamelElement {
     name?: string
     public constructor(init?: Partial<UniVocityHeader>) {
         super('UniVocityHeader')
+        
         Object.assign(this, init)
     }
 }
 
 export class UniVocityTsvDataFormat extends CamelElement {
+    dataFormatName?: string = 'univocityTsv';
     escapeChar?: string;
-    headerExtractionEnabled?: boolean;
+    nullValue?: string;
     skipEmptyLines?: boolean;
-    dataFormatName?: string = 'univocityTsv';
-    asMap?: boolean;
-    ignoreLeadingWhitespaces?: boolean;
-    univocityHeader?: UniVocityHeader[] = [];
     ignoreTrailingWhitespaces?: boolean;
+    ignoreLeadingWhitespaces?: boolean;
+    headersDisabled?: boolean;
+    headerExtractionEnabled?: boolean;
+    numberOfRecordsToRead?: number;
+    emptyValue?: string;
     lineSeparator?: string;
-    lazyLoad?: boolean;
-    nullValue?: string;
     normalizedLineSeparator?: string;
-    emptyValue?: string;
-    headersDisabled?: boolean;
     comment?: string;
+    lazyLoad?: boolean;
+    asMap?: boolean;
     id?: string;
-    numberOfRecordsToRead?: number
+    univocityHeader?: UniVocityHeader[] = []
     public constructor(init?: Partial<UniVocityTsvDataFormat>) {
         super('UniVocityTsvDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class XMLSecurityDataFormat extends CamelElement {
-    addKeyValueForEncryptedKey?: boolean;
-    keyCipherAlgorithm?: string;
     dataFormatName?: string = 'xmlSecurity';
+    xmlCipherAlgorithm?: string;
+    passPhrase?: string;
+    passPhraseByte?: string;
+    secureTag?: string;
+    secureTagContents?: boolean;
+    keyCipherAlgorithm?: string;
     recipientKeyAlias?: string;
     keyOrTrustStoreParametersRef?: string;
+    keyPassword?: string;
     digestAlgorithm?: string;
     mgfAlgorithm?: string;
-    secureTagContents?: boolean;
-    passPhraseByte?: string;
-    keyPassword?: string;
-    secureTag?: string;
-    id?: string;
-    xmlCipherAlgorithm?: string;
-    passPhrase?: string
+    addKeyValueForEncryptedKey?: boolean;
+    id?: string
     public constructor(init?: Partial<XMLSecurityDataFormat>) {
         super('XMLSecurityDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class XStreamDataFormat extends CamelElement {
-    mode?: string;
-    omitFields?: PropertyDefinition[] = [];
-    aliases?: PropertyDefinition[] = [];
-    contentTypeHeader?: boolean;
-    driver?: string;
-    driverRef?: string;
-    implicitCollections?: PropertyDefinition[] = [];
     dataFormatName?: string = 'xstream';
     permissions?: string;
+    encoding?: string;
+    driver?: string;
+    driverRef?: string;
+    mode?: string;
+    contentTypeHeader?: boolean;
     converters?: PropertyDefinition[] = [];
-    id?: string;
-    encoding?: string
+    aliases?: PropertyDefinition[] = [];
+    omitFields?: PropertyDefinition[] = [];
+    implicitCollections?: PropertyDefinition[] = [];
+    id?: string
     public constructor(init?: Partial<XStreamDataFormat>) {
         super('XStreamDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class YAMLDataFormat extends CamelElement {
-    resolver?: string;
+    dataFormatName?: string = 'yaml';
+    library?: string;
+    unmarshalType?: string;
     _constructor?: string;
+    representer?: string;
+    dumperOptions?: string;
+    resolver?: string;
+    useApplicationContextClassLoader?: boolean;
     prettyFlow?: boolean;
-    dataFormatName?: string = 'yaml';
     allowAnyType?: boolean;
-    representer?: string;
-    unmarshalType?: string;
-    library?: string;
     typeFilter?: YAMLTypeFilterDefinition[] = [];
     maxAliasesForCollections?: number;
-    dumperOptions?: string;
-    id?: string;
-    useApplicationContextClassLoader?: boolean;
-    allowRecursiveKeys?: boolean
+    allowRecursiveKeys?: boolean;
+    id?: string
     public constructor(init?: Partial<YAMLDataFormat>) {
         super('YAMLDataFormat')
+        
         Object.assign(this, init)
     }
 }
@@ -2779,96 +2946,102 @@ export class YAMLTypeFilterDefinition extends CamelElement {
     value?: string
     public constructor(init?: Partial<YAMLTypeFilterDefinition>) {
         super('YAMLTypeFilterDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ZipDeflaterDataFormat extends CamelElement {
     dataFormatName?: string = 'zipDeflater';
-    id?: string;
-    compressionLevel?: string
+    compressionLevel?: string;
+    id?: string
     public constructor(init?: Partial<ZipDeflaterDataFormat>) {
         super('ZipDeflaterDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class ZipFileDataFormat extends CamelElement {
-    maxDecompressedSize?: number;
     dataFormatName?: string = 'zipFile';
     usingIterator?: boolean;
-    id?: string;
+    allowEmptyDirectory?: boolean;
     preservePathElements?: boolean;
-    allowEmptyDirectory?: boolean
+    maxDecompressedSize?: number;
+    id?: string
     public constructor(init?: Partial<ZipFileDataFormat>) {
         super('ZipFileDataFormat')
+        
         Object.assign(this, init)
     }
 }
 
 export class DeadLetterChannelDefinition extends CamelElement {
-    executorServiceRef?: string;
-    redeliveryPolicy?: RedeliveryPolicyDefinition;
-    level?: string;
-    loggerRef?: string;
-    useOriginalMessage?: boolean;
-    deadLetterHandleNewException?: boolean;
+    stepName?: string = 'deadLetterChannel';
     deadLetterUri: string = '';
-    onRedeliveryRef?: string;
-    retryWhileRef?: string;
+    deadLetterHandleNewException?: boolean;
+    loggerRef?: string;
+    level?: string;
     logName?: string;
-    stepName?: string = 'deadLetterChannel';
+    useOriginalMessage?: boolean;
     useOriginalBody?: boolean;
-    id?: string;
-    onPrepareFailureRef?: string;
+    onRedeliveryRef?: string;
     onExceptionOccurredRef?: string;
-    redeliveryPolicyRef?: string
+    onPrepareFailureRef?: string;
+    retryWhileRef?: string;
+    redeliveryPolicyRef?: string;
+    executorServiceRef?: string;
+    redeliveryPolicy?: RedeliveryPolicyDefinition;
+    id?: string
     public constructor(init?: Partial<DeadLetterChannelDefinition>) {
         super('DeadLetterChannelDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class DefaultErrorHandlerDefinition extends CamelElement {
-    executorServiceRef?: string;
-    redeliveryPolicy?: RedeliveryPolicyDefinition;
-    level?: string;
+    stepName?: string = 'defaultErrorHandler';
     loggerRef?: string;
-    useOriginalMessage?: boolean;
-    onRedeliveryRef?: string;
-    retryWhileRef?: string;
+    level?: string;
     logName?: string;
-    stepName?: string = 'defaultErrorHandler';
+    useOriginalMessage?: boolean;
     useOriginalBody?: boolean;
-    id?: string;
-    onPrepareFailureRef?: string;
+    onRedeliveryRef?: string;
     onExceptionOccurredRef?: string;
-    redeliveryPolicyRef?: string
+    onPrepareFailureRef?: string;
+    retryWhileRef?: string;
+    redeliveryPolicyRef?: string;
+    executorServiceRef?: string;
+    redeliveryPolicy?: RedeliveryPolicyDefinition;
+    id?: string
     public constructor(init?: Partial<DefaultErrorHandlerDefinition>) {
         super('DefaultErrorHandlerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class JtaTransactionErrorHandlerDefinition extends CamelElement {
-    executorServiceRef?: string;
-    redeliveryPolicy?: RedeliveryPolicyDefinition;
-    level?: string;
+    stepName?: string = 'jtaTransactionErrorHandler';
+    transactedPolicyRef?: string;
+    rollbackLoggingLevel?: string;
     loggerRef?: string;
-    useOriginalMessage?: boolean;
-    onRedeliveryRef?: string;
-    retryWhileRef?: string;
+    level?: string;
     logName?: string;
-    stepName?: string = 'jtaTransactionErrorHandler';
+    useOriginalMessage?: boolean;
     useOriginalBody?: boolean;
-    rollbackLoggingLevel?: string;
-    id?: string;
-    onPrepareFailureRef?: string;
-    transactedPolicyRef?: string;
+    onRedeliveryRef?: string;
     onExceptionOccurredRef?: string;
-    redeliveryPolicyRef?: string
+    onPrepareFailureRef?: string;
+    retryWhileRef?: string;
+    redeliveryPolicyRef?: string;
+    executorServiceRef?: string;
+    redeliveryPolicy?: RedeliveryPolicyDefinition;
+    id?: string
     public constructor(init?: Partial<JtaTransactionErrorHandlerDefinition>) {
         super('JtaTransactionErrorHandlerDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -2878,413 +3051,442 @@ export class NoErrorHandlerDefinition extends CamelElement {
     id?: string
     public constructor(init?: Partial<NoErrorHandlerDefinition>) {
         super('NoErrorHandlerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RefErrorHandlerDefinition extends CamelElement {
-    ref: string = '';
     stepName?: string = 'refErrorHandler';
+    ref: string = '';
     id?: string
     public constructor(init?: Partial<RefErrorHandlerDefinition>) {
         super('RefErrorHandlerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SpringTransactionErrorHandlerDefinition extends CamelElement {
-    executorServiceRef?: string;
-    redeliveryPolicy?: RedeliveryPolicyDefinition;
-    level?: string;
+    stepName?: string = 'springTransactionErrorHandler';
+    transactedPolicyRef?: string;
+    rollbackLoggingLevel?: string;
     loggerRef?: string;
-    useOriginalMessage?: boolean;
-    onRedeliveryRef?: string;
-    retryWhileRef?: string;
+    level?: string;
     logName?: string;
-    stepName?: string = 'springTransactionErrorHandler';
+    useOriginalMessage?: boolean;
     useOriginalBody?: boolean;
-    rollbackLoggingLevel?: string;
-    id?: string;
-    onPrepareFailureRef?: string;
-    transactedPolicyRef?: string;
+    onRedeliveryRef?: string;
     onExceptionOccurredRef?: string;
-    redeliveryPolicyRef?: string
+    onPrepareFailureRef?: string;
+    retryWhileRef?: string;
+    redeliveryPolicyRef?: string;
+    executorServiceRef?: string;
+    redeliveryPolicy?: RedeliveryPolicyDefinition;
+    id?: string
     public constructor(init?: Partial<SpringTransactionErrorHandlerDefinition>) {
         super('SpringTransactionErrorHandlerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class CSimpleExpression extends CamelElement {
+    expressionName?: string = 'csimple';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'csimple';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<CSimpleExpression>) {
         super('CSimpleExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class ConstantExpression extends CamelElement {
+    expressionName?: string = 'constant';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'constant';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<ConstantExpression>) {
         super('ConstantExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class DatasonnetExpression extends CamelElement {
-    expression: string = '';
-    trim?: boolean;
     expressionName?: string = 'datasonnet';
+    expression: string = '';
+    bodyMediaType?: string;
     outputMediaType?: string;
-    id?: string;
     resultType?: string;
-    bodyMediaType?: string
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<DatasonnetExpression>) {
         super('DatasonnetExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class ExchangePropertyExpression extends CamelElement {
+    expressionName?: string = 'exchangeProperty';
     expression: string = '';
     trim?: boolean;
-    expressionName?: string = 'exchangeProperty';
     id?: string
     public constructor(init?: Partial<ExchangePropertyExpression>) {
         super('ExchangePropertyExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class ExpressionDefinition extends CamelElement {
-    ognl?: OgnlExpression | string;
-    python?: PythonExpression | string;
+    stepName?: string = 'expression';
     constant?: ConstantExpression | string;
-    mvel?: MvelExpression | string;
-    method?: MethodCallExpression | string;
-    xquery?: XQueryExpression | string;
+    csimple?: CSimpleExpression | string;
     datasonnet?: DatasonnetExpression | string;
+    exchangeProperty?: ExchangePropertyExpression | string;
+    groovy?: GroovyExpression | string;
+    header?: HeaderExpression | string;
+    hl7terser?: Hl7TerserExpression | string;
+    joor?: JoorExpression | string;
     jq?: JqExpression | string;
     js?: JavaScriptExpression | string;
+    jsonpath?: JsonPathExpression | string;
     language?: LanguageExpression;
+    method?: MethodCallExpression | string;
+    mvel?: MvelExpression | string;
+    ognl?: OgnlExpression | string;
+    python?: PythonExpression | string;
+    ref?: RefExpression | string;
     simple?: SimpleExpression | string;
-    hl7terser?: Hl7TerserExpression | string;
-    tokenize?: TokenizerExpression | string;
     spel?: SpELExpression | string;
-    ref?: RefExpression | string;
+    tokenize?: TokenizerExpression | string;
     xpath?: XPathExpression | string;
-    groovy?: GroovyExpression | string;
-    csimple?: CSimpleExpression | string;
-    stepName?: string = 'expression';
-    exchangeProperty?: ExchangePropertyExpression | string;
-    jsonpath?: JsonPathExpression | string;
-    header?: HeaderExpression | string;
-    joor?: JoorExpression | string;
+    xquery?: XQueryExpression | string;
     xtokenize?: XMLTokenizerExpression | string
     public constructor(init?: Partial<ExpressionDefinition>) {
         super('ExpressionDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class GroovyExpression extends CamelElement {
+    expressionName?: string = 'groovy';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'groovy';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<GroovyExpression>) {
         super('GroovyExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class HeaderExpression extends CamelElement {
+    expressionName?: string = 'header';
     expression: string = '';
     trim?: boolean;
-    expressionName?: string = 'header';
     id?: string
     public constructor(init?: Partial<HeaderExpression>) {
         super('HeaderExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class Hl7TerserExpression extends CamelElement {
+    expressionName?: string = 'hl7terser';
     expression: string = '';
     headerName?: string;
-    trim?: boolean;
     propertyName?: string;
-    expressionName?: string = 'hl7terser';
-    id?: string;
-    resultType?: string
+    resultType?: string;
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<Hl7TerserExpression>) {
         super('Hl7TerserExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class JavaScriptExpression extends CamelElement {
+    expressionName?: string = 'js';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'js';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<JavaScriptExpression>) {
         super('JavaScriptExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class JoorExpression extends CamelElement {
-    preCompile?: boolean;
-    expression: string = '';
-    trim?: boolean;
     expressionName?: string = 'joor';
-    id?: string;
+    expression: string = '';
+    preCompile?: boolean;
     singleQuotes?: boolean;
-    resultType?: string
+    resultType?: string;
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<JoorExpression>) {
         super('JoorExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class JqExpression extends CamelElement {
+    expressionName?: string = 'jq';
     expression: string = '';
     headerName?: string;
-    trim?: boolean;
     propertyName?: string;
-    expressionName?: string = 'jq';
-    id?: string;
-    resultType?: string
+    resultType?: string;
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<JqExpression>) {
         super('JqExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class JsonPathExpression extends CamelElement {
-    expression: string = '';
-    headerName?: string;
     expressionName?: string = 'jsonpath';
-    writeAsString?: boolean;
+    expression: string = '';
     suppressExceptions?: boolean;
+    allowSimple?: boolean;
     allowEasyPredicate?: boolean;
-    trim?: boolean;
-    propertyName?: string;
+    writeAsString?: boolean;
     unpackArray?: boolean;
-    id?: string;
-    allowSimple?: boolean;
+    option?: string;
+    headerName?: string;
+    propertyName?: string;
     resultType?: string;
-    option?: string
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<JsonPathExpression>) {
         super('JsonPathExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class LanguageExpression extends CamelElement {
-    expression: string = '';
-    trim?: boolean;
     expressionName?: string = 'language';
     language: string = '';
+    expression: string = '';
+    trim?: boolean;
     id?: string
     public constructor(init?: Partial<LanguageExpression>) {
         super('LanguageExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class MethodCallExpression extends CamelElement {
+    expressionName?: string = 'method';
     ref?: string;
     method?: string;
-    trim?: boolean;
-    expressionName?: string = 'method';
+    beanType?: string;
     scope?: string;
-    id?: string;
     resultType?: string;
-    beanType?: string
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<MethodCallExpression>) {
         super('MethodCallExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class MvelExpression extends CamelElement {
+    expressionName?: string = 'mvel';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'mvel';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<MvelExpression>) {
         super('MvelExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class OgnlExpression extends CamelElement {
+    expressionName?: string = 'ognl';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'ognl';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<OgnlExpression>) {
         super('OgnlExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class PythonExpression extends CamelElement {
+    expressionName?: string = 'python';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'python';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<PythonExpression>) {
         super('PythonExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class RefExpression extends CamelElement {
+    expressionName?: string = 'ref';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'ref';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<RefExpression>) {
         super('RefExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class SimpleExpression extends CamelElement {
+    expressionName?: string = 'simple';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'simple';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<SimpleExpression>) {
         super('SimpleExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class SpELExpression extends CamelElement {
+    expressionName?: string = 'spel';
     expression: string = '';
+    resultType?: string;
     trim?: boolean;
-    expressionName?: string = 'spel';
-    id?: string;
-    resultType?: string
+    id?: string
     public constructor(init?: Partial<SpELExpression>) {
         super('SpELExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class TokenizerExpression extends CamelElement {
-    endToken?: string;
-    headerName?: string;
-    skipFirst?: boolean;
     expressionName?: string = 'tokenize';
-    inheritNamespaceTagName?: string;
-    groupDelimiter?: string;
     token: string = '';
+    endToken?: string;
+    inheritNamespaceTagName?: string;
     regex?: boolean;
+    xml?: boolean;
     includeTokens?: boolean;
-    trim?: boolean;
+    group?: string;
+    groupDelimiter?: string;
+    skipFirst?: boolean;
+    headerName?: string;
     propertyName?: string;
-    xml?: boolean;
-    id?: string;
-    group?: string
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<TokenizerExpression>) {
         super('TokenizerExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class XMLTokenizerExpression extends CamelElement {
+    expressionName?: string = 'xtokenize';
     mode?: string;
+    group?: number;
+    namespace?: PropertyDefinition[] = [];
     headerName?: string;
-    trim?: boolean;
     propertyName?: string;
-    expressionName?: string = 'xtokenize';
-    namespace?: PropertyDefinition[] = [];
-    id?: string;
-    group?: number
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<XMLTokenizerExpression>) {
         super('XMLTokenizerExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class XPathExpression extends CamelElement {
-    preCompile?: boolean;
+    expressionName?: string = 'xpath';
     expression: string = '';
-    headerName?: string;
     documentType?: string;
-    expressionName?: string = 'xpath';
-    factoryRef?: string;
+    resultType?: string;
     saxon?: boolean;
-    trim?: boolean;
+    factoryRef?: string;
     objectModel?: string;
-    propertyName?: string;
     logNamespaces?: boolean;
-    namespace?: PropertyDefinition[] = [];
     threadSafety?: boolean;
-    id?: string;
-    resultType?: string
+    preCompile?: boolean;
+    namespace?: PropertyDefinition[] = [];
+    headerName?: string;
+    propertyName?: string;
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<XPathExpression>) {
         super('XPathExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class XQueryExpression extends CamelElement {
+    expressionName?: string = 'xquery';
     expression: string = '';
-    headerName?: string;
+    resultType?: string;
+    type?: string;
     configurationRef?: string;
-    trim?: boolean;
-    propertyName?: string;
-    expressionName?: string = 'xquery';
     namespace?: PropertyDefinition[] = [];
-    id?: string;
-    type?: string;
-    resultType?: string
+    headerName?: string;
+    propertyName?: string;
+    trim?: boolean;
+    id?: string
     public constructor(init?: Partial<XQueryExpression>) {
         super('XQueryExpression')
+        
         Object.assign(this, init)
     }
 }
 
 export class CustomLoadBalancerDefinition extends CamelElement {
-    ref: string = '';
     stepName?: string = 'customLoadBalancer';
+    ref: string = '';
     id?: string
     public constructor(init?: Partial<CustomLoadBalancerDefinition>) {
         super('CustomLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class FailoverLoadBalancerDefinition extends CamelElement {
-    exception?: string[] = [];
     stepName?: string = 'failoverLoadBalancer';
-    sticky?: string;
+    exception?: string[] = [];
     id?: string;
     maximumFailoverAttempts?: string;
-    roundRobin?: string
+    roundRobin?: string;
+    sticky?: string
     public constructor(init?: Partial<FailoverLoadBalancerDefinition>) {
         super('FailoverLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -3294,6 +3496,7 @@ export class RandomLoadBalancerDefinition extends CamelElement {
     id?: string
     public constructor(init?: Partial<RandomLoadBalancerDefinition>) {
         super('RandomLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -3303,6 +3506,7 @@ export class RoundRobinLoadBalancerDefinition extends CamelElement {
     id?: string
     public constructor(init?: Partial<RoundRobinLoadBalancerDefinition>) {
         super('RoundRobinLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -3313,6 +3517,7 @@ export class StickyLoadBalancerDefinition extends CamelElement {
     id?: string
     public constructor(init?: Partial<StickyLoadBalancerDefinition>) {
         super('StickyLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
@@ -3322,558 +3527,590 @@ export class TopicLoadBalancerDefinition extends CamelElement {
     id?: string
     public constructor(init?: Partial<TopicLoadBalancerDefinition>) {
         super('TopicLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class WeightedLoadBalancerDefinition extends CamelElement {
-    distributionRatioDelimiter?: string;
     stepName?: string = 'weightedLoadBalancer';
-    id?: string;
     distributionRatio: string = '';
+    distributionRatioDelimiter?: string;
+    id?: string;
     roundRobin?: boolean
     public constructor(init?: Partial<WeightedLoadBalancerDefinition>) {
         super('WeightedLoadBalancerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ApiKeyDefinition extends CamelElement {
-    inHeader?: boolean;
-    inCookie?: boolean;
     stepName?: string = 'apiKey';
     name: string = '';
-    description?: string;
+    key: string = '';
+    inHeader?: boolean;
     inQuery?: boolean;
-    key: string = ''
+    inCookie?: boolean;
+    description?: string
     public constructor(init?: Partial<ApiKeyDefinition>) {
         super('ApiKeyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class BasicAuthDefinition extends CamelElement {
     stepName?: string = 'basicAuth';
-    description?: string;
-    key: string = ''
+    key: string = '';
+    description?: string
     public constructor(init?: Partial<BasicAuthDefinition>) {
         super('BasicAuthDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class BearerTokenDefinition extends CamelElement {
     stepName?: string = 'bearerToken';
+    key: string = '';
     format?: string;
-    description?: string;
-    key: string = ''
+    description?: string
     public constructor(init?: Partial<BearerTokenDefinition>) {
         super('BearerTokenDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class DeleteDefinition extends CamelElement {
-    enableCors?: boolean;
-    deprecated?: boolean;
-    description?: string;
+    stepName?: string = 'delete';
+    path?: string;
+    to?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
     type?: string;
     outType?: string;
-    path?: string;
-    security?: SecurityDefinition[] = [];
-    routeId?: string;
     bindingMode?: string;
-    stepName?: string = 'delete';
-    param?: ParamDefinition[] = [];
-    apiDocs?: boolean;
     skipBindingOnErrorCode?: boolean;
     clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
+    enableCors?: boolean;
+    apiDocs?: boolean;
+    deprecated?: boolean;
+    routeId?: string;
     id?: string;
-    to?: string;
+    description?: string;
+    param?: ParamDefinition[] = [];
     responseMessage?: ResponseMessageDefinition[] = [];
-    consumes?: string
+    security?: SecurityDefinition[] = []
     public constructor(init?: Partial<DeleteDefinition>) {
         super('DeleteDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class GetDefinition extends CamelElement {
-    enableCors?: boolean;
-    deprecated?: boolean;
-    description?: string;
+    stepName?: string = 'get';
+    path?: string;
+    to?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
     type?: string;
     outType?: string;
-    path?: string;
-    security?: SecurityDefinition[] = [];
-    routeId?: string;
     bindingMode?: string;
-    stepName?: string = 'get';
-    param?: ParamDefinition[] = [];
-    apiDocs?: boolean;
     skipBindingOnErrorCode?: boolean;
     clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
+    enableCors?: boolean;
+    apiDocs?: boolean;
+    deprecated?: boolean;
+    routeId?: string;
     id?: string;
-    to?: string;
+    description?: string;
+    param?: ParamDefinition[] = [];
     responseMessage?: ResponseMessageDefinition[] = [];
-    consumes?: string
+    security?: SecurityDefinition[] = []
     public constructor(init?: Partial<GetDefinition>) {
         super('GetDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class HeadDefinition extends CamelElement {
-    enableCors?: boolean;
-    deprecated?: boolean;
-    description?: string;
+    stepName?: string = 'head';
+    path?: string;
+    to?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
     type?: string;
     outType?: string;
-    path?: string;
-    security?: SecurityDefinition[] = [];
-    routeId?: string;
     bindingMode?: string;
-    stepName?: string = 'head';
-    param?: ParamDefinition[] = [];
-    apiDocs?: boolean;
     skipBindingOnErrorCode?: boolean;
     clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
+    enableCors?: boolean;
+    apiDocs?: boolean;
+    deprecated?: boolean;
+    routeId?: string;
     id?: string;
-    to?: string;
+    description?: string;
+    param?: ParamDefinition[] = [];
     responseMessage?: ResponseMessageDefinition[] = [];
-    consumes?: string
+    security?: SecurityDefinition[] = []
     public constructor(init?: Partial<HeadDefinition>) {
         super('HeadDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class MutualTLSDefinition extends CamelElement {
     stepName?: string = 'mutualTLS';
-    description?: string;
-    key: string = ''
+    key: string = '';
+    description?: string
     public constructor(init?: Partial<MutualTLSDefinition>) {
         super('MutualTLSDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OAuth2Definition extends CamelElement {
-    tokenUrl?: string;
-    authorizationUrl?: string;
     stepName?: string = 'oAuth2';
-    refreshUrl?: string;
+    authorizationUrl?: string;
     description?: string;
-    scopes?: RestPropertyDefinition[] = [];
     flow?: string;
-    key: string = ''
+    key: string = '';
+    refreshUrl?: string;
+    scopes?: RestPropertyDefinition[] = [];
+    tokenUrl?: string
     public constructor(init?: Partial<OAuth2Definition>) {
         super('OAuth2Definition')
+        
         Object.assign(this, init)
     }
 }
 
 export class OpenIdConnectDefinition extends CamelElement {
     stepName?: string = 'openIdConnect';
-    description?: string;
     key: string = '';
-    url: string = ''
+    url: string = '';
+    description?: string
     public constructor(init?: Partial<OpenIdConnectDefinition>) {
         super('OpenIdConnectDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ParamDefinition extends CamelElement {
-    arrayType?: string;
-    examples?: RestPropertyDefinition[] = [];
     stepName?: string = 'param';
-    dataFormat?: string;
-    defaultValue?: string;
-    dataType?: string;
     name: string = '';
-    description?: string;
     type: string = '';
+    defaultValue?: string;
+    required?: boolean;
     collectionFormat?: string;
+    arrayType?: string;
+    dataType?: string;
+    dataFormat?: string;
     value?: string[] = [];
-    required?: boolean
+    examples?: RestPropertyDefinition[] = [];
+    description?: string
     public constructor(init?: Partial<ParamDefinition>) {
         super('ParamDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PatchDefinition extends CamelElement {
-    enableCors?: boolean;
-    deprecated?: boolean;
-    description?: string;
+    stepName?: string = 'patch';
+    path?: string;
+    to?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
     type?: string;
     outType?: string;
-    path?: string;
-    security?: SecurityDefinition[] = [];
-    routeId?: string;
     bindingMode?: string;
-    stepName?: string = 'patch';
-    param?: ParamDefinition[] = [];
-    apiDocs?: boolean;
     skipBindingOnErrorCode?: boolean;
     clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
+    enableCors?: boolean;
+    apiDocs?: boolean;
+    deprecated?: boolean;
+    routeId?: string;
     id?: string;
-    to?: string;
+    description?: string;
+    param?: ParamDefinition[] = [];
     responseMessage?: ResponseMessageDefinition[] = [];
-    consumes?: string
+    security?: SecurityDefinition[] = []
     public constructor(init?: Partial<PatchDefinition>) {
         super('PatchDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PostDefinition extends CamelElement {
-    enableCors?: boolean;
-    deprecated?: boolean;
-    description?: string;
+    stepName?: string = 'post';
+    path?: string;
+    to?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
     type?: string;
     outType?: string;
-    path?: string;
-    security?: SecurityDefinition[] = [];
-    routeId?: string;
     bindingMode?: string;
-    stepName?: string = 'post';
-    param?: ParamDefinition[] = [];
-    apiDocs?: boolean;
     skipBindingOnErrorCode?: boolean;
     clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
+    enableCors?: boolean;
+    apiDocs?: boolean;
+    deprecated?: boolean;
+    routeId?: string;
     id?: string;
-    to?: string;
+    description?: string;
+    param?: ParamDefinition[] = [];
     responseMessage?: ResponseMessageDefinition[] = [];
-    consumes?: string
+    security?: SecurityDefinition[] = []
     public constructor(init?: Partial<PostDefinition>) {
         super('PostDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PutDefinition extends CamelElement {
-    enableCors?: boolean;
-    deprecated?: boolean;
-    description?: string;
+    stepName?: string = 'put';
+    path?: string;
+    to?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
     type?: string;
     outType?: string;
-    path?: string;
-    security?: SecurityDefinition[] = [];
-    routeId?: string;
     bindingMode?: string;
-    stepName?: string = 'put';
-    param?: ParamDefinition[] = [];
-    apiDocs?: boolean;
     skipBindingOnErrorCode?: boolean;
     clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
+    enableCors?: boolean;
+    apiDocs?: boolean;
+    deprecated?: boolean;
+    routeId?: string;
     id?: string;
-    to?: string;
+    description?: string;
+    param?: ParamDefinition[] = [];
     responseMessage?: ResponseMessageDefinition[] = [];
-    consumes?: string
+    security?: SecurityDefinition[] = []
     public constructor(init?: Partial<PutDefinition>) {
         super('PutDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ResponseHeaderDefinition extends CamelElement {
-    arrayType?: string;
     stepName?: string = 'responseHeader';
-    dataFormat?: string;
-    dataType?: string;
     name: string = '';
-    description?: string;
     collectionFormat?: string;
+    arrayType?: string;
+    dataType?: string;
+    dataFormat?: string;
     value?: string[] = [];
-    example?: string
+    example?: string;
+    description?: string
     public constructor(init?: Partial<ResponseHeaderDefinition>) {
         super('ResponseHeaderDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ResponseMessageDefinition extends CamelElement {
-    code?: string;
-    examples?: RestPropertyDefinition[] = [];
     stepName?: string = 'responseMessage';
-    header?: ResponseHeaderDefinition[] = [];
+    code?: string;
+    message: string = '';
     responseModel?: string;
-    message: string = ''
+    header?: ResponseHeaderDefinition[] = [];
+    examples?: RestPropertyDefinition[] = []
     public constructor(init?: Partial<ResponseMessageDefinition>) {
         super('ResponseMessageDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestBindingDefinition extends CamelElement {
-    enableCors?: boolean;
-    component?: string;
-    bindingMode?: string;
     stepName?: string = 'restBinding';
-    skipBindingOnErrorCode?: boolean;
-    clientRequestValidation?: boolean;
+    consumes?: string;
     produces?: string;
-    description?: string;
-    id?: string;
+    bindingMode?: string;
     type?: string;
     outType?: string;
-    consumes?: string
+    skipBindingOnErrorCode?: boolean;
+    clientRequestValidation?: boolean;
+    enableCors?: boolean;
+    component?: string;
+    id?: string;
+    description?: string
     public constructor(init?: Partial<RestBindingDefinition>) {
         super('RestBindingDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestConfigurationDefinition extends CamelElement {
-    enableCors?: boolean;
-    scheme?: string;
-    apiContextPath?: string;
-    inlineRoutes?: boolean;
-    consumerProperty?: RestPropertyDefinition[] = [];
-    apiProperty?: RestPropertyDefinition[] = [];
-    hostNameResolver?: string;
-    componentProperty?: RestPropertyDefinition[] = [];
-    corsHeaders?: RestPropertyDefinition[] = [];
     stepName?: string = 'restConfiguration';
-    skipBindingOnErrorCode?: boolean;
-    clientRequestValidation?: boolean;
-    host?: string;
-    producerApiDoc?: string;
+    component?: string;
+    apiComponent?: string;
     producerComponent?: string;
-    endpointProperty?: RestPropertyDefinition[] = [];
-    useXForwardHeaders?: boolean;
+    scheme?: string;
+    host?: string;
+    port?: string;
     apiHost?: string;
+    useXForwardHeaders?: boolean;
+    producerApiDoc?: string;
     contextPath?: string;
+    apiContextPath?: string;
     apiContextRouteId?: string;
-    component?: string;
-    dataFormatProperty?: RestPropertyDefinition[] = [];
+    apiVendorExtension?: boolean;
+    hostNameResolver?: string;
     bindingMode?: string;
-    port?: string;
+    skipBindingOnErrorCode?: boolean;
+    clientRequestValidation?: boolean;
+    enableCors?: boolean;
+    inlineRoutes?: boolean;
+    jsonDataFormat?: string;
     xmlDataFormat?: string;
-    apiComponent?: string;
-    apiVendorExtension?: boolean;
-    jsonDataFormat?: string
+    componentProperty?: RestPropertyDefinition[] = [];
+    endpointProperty?: RestPropertyDefinition[] = [];
+    consumerProperty?: RestPropertyDefinition[] = [];
+    dataFormatProperty?: RestPropertyDefinition[] = [];
+    apiProperty?: RestPropertyDefinition[] = [];
+    corsHeaders?: RestPropertyDefinition[] = []
     public constructor(init?: Partial<RestConfigurationDefinition>) {
         super('RestConfigurationDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestDefinition extends CamelElement {
+    stepName?: string = 'rest';
+    path?: string;
+    consumes?: string;
+    produces?: string;
+    disabled?: boolean;
+    bindingMode?: string;
+    skipBindingOnErrorCode?: boolean;
+    clientRequestValidation?: boolean;
     enableCors?: boolean;
+    apiDocs?: boolean;
+    tag?: string;
+    securityDefinitions?: RestSecuritiesDefinition;
     securityRequirements?: SecurityDefinition[] = [];
+    id?: string;
     description?: string;
     delete?: DeleteDefinition[] = [];
-    put?: PutDefinition[] = [];
+    get?: GetDefinition[] = [];
     head?: HeadDefinition[] = [];
     patch?: PatchDefinition[] = [];
-    path?: string;
-    bindingMode?: string;
     post?: PostDefinition[] = [];
-    stepName?: string = 'rest';
-    apiDocs?: boolean;
-    skipBindingOnErrorCode?: boolean;
-    get?: GetDefinition[] = [];
-    clientRequestValidation?: boolean;
-    produces?: string;
-    disabled?: boolean;
-    id?: string;
-    tag?: string;
-    securityDefinitions?: RestSecuritiesDefinition;
-    consumes?: string
+    put?: PutDefinition[] = []
     public constructor(init?: Partial<RestDefinition>) {
         super('RestDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestPropertyDefinition extends CamelElement {
     stepName?: string = 'restProperty';
-    value: string = '';
-    key: string = ''
+    key: string = '';
+    value: string = ''
     public constructor(init?: Partial<RestPropertyDefinition>) {
         super('RestPropertyDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestSecuritiesDefinition extends CamelElement {
-    openIdConnect?: OpenIdConnectDefinition;
-    apiKey?: ApiKeyDefinition;
     stepName?: string = 'restSecurities';
+    apiKey?: ApiKeyDefinition;
     basicAuth?: BasicAuthDefinition;
-    mutualTls?: MutualTLSDefinition;
     bearer?: BearerTokenDefinition;
-    oauth2?: OAuth2Definition
+    mutualTls?: MutualTLSDefinition;
+    oauth2?: OAuth2Definition;
+    openIdConnect?: OpenIdConnectDefinition
     public constructor(init?: Partial<RestSecuritiesDefinition>) {
         super('RestSecuritiesDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class RestsDefinition extends CamelElement {
-    rest?: RestDefinition[] = [];
     stepName?: string = 'rests';
+    id?: string;
     description?: string;
-    id?: string
+    rest?: RestDefinition[] = []
     public constructor(init?: Partial<RestsDefinition>) {
         super('RestsDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class SecurityDefinition extends CamelElement {
     stepName?: string = 'security';
-    scopes?: string;
-    key: string = ''
+    key: string = '';
+    scopes?: string
     public constructor(init?: Partial<SecurityDefinition>) {
         super('SecurityDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class CustomTransformerDefinition extends CamelElement {
-    ref?: string;
-    toType?: string;
+    stepName?: string = 'customTransformer';
+    className?: string;
     fromType?: string;
+    ref?: string;
     scheme?: string;
-    stepName?: string = 'customTransformer';
-    className?: string
+    toType?: string
     public constructor(init?: Partial<CustomTransformerDefinition>) {
         super('CustomTransformerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class DataFormatTransformerDefinition extends CamelElement {
-    univocityCsv?: UniVocityCsvDataFormat;
-    protobuf?: ProtobufDataFormat | string;
-    tarFile?: TarFileDataFormat;
-    tidyMarkup?: TidyMarkupDataFormat;
-    scheme?: string;
-    csv?: CsvDataFormat | string;
+    stepName?: string = 'dataFormatTransformer';
+    any23?: Any23DataFormat | string;
+    asn1?: ASN1DataFormat | string;
+    avro?: AvroDataFormat | string;
+    barcode?: BarcodeDataFormat;
     base64?: Base64DataFormat;
-    zipDeflater?: ZipDeflaterDataFormat;
     bindy?: BindyDataFormat;
-    syslog?: SyslogDataFormat;
-    zipFile?: ZipFileDataFormat;
-    jaxb?: JaxbDataFormat;
-    rss?: RssDataFormat;
+    cbor?: CBORDataFormat;
+    crypto?: CryptoDataFormat;
+    csv?: CsvDataFormat | string;
+    custom?: CustomDataFormat | string;
+    fhirJson?: FhirJsonDataFormat;
+    fhirXml?: FhirXmlDataFormat;
+    flatpack?: FlatpackDataFormat;
     fromType?: string;
-    stepName?: string = 'dataFormatTransformer';
+    grok?: GrokDataFormat;
+    gzipDeflater?: GzipDeflaterDataFormat;
+    hl7?: HL7DataFormat;
+    ical?: IcalDataFormat;
+    jacksonXml?: JacksonXMLDataFormat;
+    jaxb?: JaxbDataFormat;
+    json?: JsonDataFormat;
+    jsonApi?: JsonApiDataFormat;
+    lzf?: LZFDataFormat;
     mimeMultipart?: MimeMultipartDataFormat;
-    asn1?: ASN1DataFormat | string;
     pgp?: PGPDataFormat;
+    protobuf?: ProtobufDataFormat | string;
+    rss?: RssDataFormat;
+    scheme?: string;
+    soap?: SoapDataFormat | string;
+    swiftMt?: SwiftMtDataFormat | string;
+    swiftMx?: SwiftMxDataFormat;
+    syslog?: SyslogDataFormat;
+    tarFile?: TarFileDataFormat;
     thrift?: ThriftDataFormat | string;
-    json?: JsonDataFormat;
-    lzf?: LZFDataFormat;
-    fhirXml?: FhirXmlDataFormat;
-    barcode?: BarcodeDataFormat;
-    avro?: AvroDataFormat | string;
-    yaml?: YAMLDataFormat;
+    tidyMarkup?: TidyMarkupDataFormat;
     toType?: string;
-    fhirJson?: FhirJsonDataFormat;
-    any23?: Any23DataFormat | string;
-    custom?: CustomDataFormat | string;
-    flatpack?: FlatpackDataFormat;
-    swiftMx?: SwiftMxDataFormat;
-    cbor?: CBORDataFormat;
-    crypto?: CryptoDataFormat;
-    swiftMt?: SwiftMtDataFormat | string;
+    univocityCsv?: UniVocityCsvDataFormat;
+    univocityFixed?: UniVocityFixedDataFormat;
     univocityTsv?: UniVocityTsvDataFormat;
-    hl7?: HL7DataFormat;
-    jsonApi?: JsonApiDataFormat;
     xmlSecurity?: XMLSecurityDataFormat;
-    ical?: IcalDataFormat;
-    univocityFixed?: UniVocityFixedDataFormat;
-    jacksonXml?: JacksonXMLDataFormat;
-    grok?: GrokDataFormat;
     xstream?: XStreamDataFormat | string;
-    gzipDeflater?: GzipDeflaterDataFormat;
-    soap?: SoapDataFormat | string
+    yaml?: YAMLDataFormat;
+    zipDeflater?: ZipDeflaterDataFormat;
+    zipFile?: ZipFileDataFormat
     public constructor(init?: Partial<DataFormatTransformerDefinition>) {
         super('DataFormatTransformerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class EndpointTransformerDefinition extends CamelElement {
-    ref?: string;
-    toType?: string;
+    stepName?: string = 'endpointTransformer';
     fromType?: string;
+    ref?: string;
     scheme?: string;
-    stepName?: string = 'endpointTransformer';
+    toType?: string;
     uri?: string
     public constructor(init?: Partial<EndpointTransformerDefinition>) {
         super('EndpointTransformerDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class TransformersDefinition extends CamelElement {
-    endpointTransformer?: EndpointTransformerDefinition;
-    customTransformer?: CustomTransformerDefinition;
     stepName?: string = 'transformers';
-    dataFormatTransformer?: DataFormatTransformerDefinition
+    customTransformer?: CustomTransformerDefinition;
+    dataFormatTransformer?: DataFormatTransformerDefinition;
+    endpointTransformer?: EndpointTransformerDefinition
     public constructor(init?: Partial<TransformersDefinition>) {
         super('TransformersDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class CustomValidatorDefinition extends CamelElement {
-    ref?: string;
     stepName?: string = 'customValidator';
     className?: string;
+    ref?: string;
     type?: string
     public constructor(init?: Partial<CustomValidatorDefinition>) {
         super('CustomValidatorDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class EndpointValidatorDefinition extends CamelElement {
-    ref?: string;
     stepName?: string = 'endpointValidator';
+    ref?: string;
     type?: string;
     uri?: string
     public constructor(init?: Partial<EndpointValidatorDefinition>) {
         super('EndpointValidatorDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class PredicateValidatorDefinition extends CamelElement {
-    expression?: ExpressionDefinition;
     stepName?: string = 'predicateValidator';
+    expression?: ExpressionDefinition;
     type?: string
     public constructor(init?: Partial<PredicateValidatorDefinition>) {
         super('PredicateValidatorDefinition')
+        
         Object.assign(this, init)
     }
 }
 
 export class ValidatorsDefinition extends CamelElement {
     stepName?: string = 'validators';
-    predicateValidator?: PredicateValidatorDefinition;
+    customValidator?: CustomValidatorDefinition;
     endpointValidator?: EndpointValidatorDefinition;
-    customValidator?: CustomValidatorDefinition
+    predicateValidator?: PredicateValidatorDefinition
     public constructor(init?: Partial<ValidatorsDefinition>) {
         super('ValidatorsDefinition')
+        
         Object.assign(this, init)
     }
 }
diff --git a/karavan-core/src/core/model/IntegrationDefinition.ts b/karavan-core/src/core/model/IntegrationDefinition.ts
index 03fb89c..2739f4f 100644
--- a/karavan-core/src/core/model/IntegrationDefinition.ts
+++ b/karavan-core/src/core/model/IntegrationDefinition.ts
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 import {v4 as uuidv4} from 'uuid';
-import {ErrorHandlerDefinition, NamedBeanDefinition} from "./CamelDefinition";
+import {NamedBeanDefinition} from "./CamelDefinition";
 
 
 export class Spec {
@@ -60,6 +60,10 @@ export class CamelElement {
         this.dslName = dslName
     }
 
+    hasId(): boolean {
+        return this.hasOwnProperty('id');
+    }
+
     hasSteps(): boolean {
         return this.hasOwnProperty('steps');
     }
diff --git a/karavan-core/test/checkRequired.spec.ts b/karavan-core/test/checkRequired.spec.ts
index cdd7cb6..69974d2 100644
--- a/karavan-core/test/checkRequired.spec.ts
+++ b/karavan-core/test/checkRequired.spec.ts
@@ -35,6 +35,8 @@ describe('Check required properties', () => {
         split.expression = new ExpressionDefinition({simple: new SimpleExpression()})
         expect(CamelUtil.checkRequired(split)[0]).to.equal(false);
         split.expression = new ExpressionDefinition({simple: new SimpleExpression({expression: "${body} !== null"})})
+        console.log((split))
+        console.log(CamelUtil.checkRequired(split))
         expect(CamelUtil.checkRequired(split)[0]).to.equal(true);
     });
 
diff --git a/karavan-core/test/multiObjectProperties1.yaml b/karavan-core/test/multiObjectProperties1.yaml
index 9c26246..46123a4 100644
--- a/karavan-core/test/multiObjectProperties1.yaml
+++ b/karavan-core/test/multiObjectProperties1.yaml
@@ -9,9 +9,6 @@ spec:
           uri: direct1
           steps:
             - saga:
-                steps:
-                  - to:
-                      uri: direct:direct2
                 option:
                   - key: key1
                     expression:
@@ -19,3 +16,6 @@ spec:
                   - key: key2
                     expression:
                       simple: ${headers}
+                steps:
+                  - to:
+                      uri: direct:direct2
diff --git a/karavan-core/test/plain-try-catch.yaml b/karavan-core/test/plain-try-catch.yaml
index a487f70..376c53b 100644
--- a/karavan-core/test/plain-try-catch.yaml
+++ b/karavan-core/test/plain-try-catch.yaml
@@ -3,18 +3,18 @@
       uri: timer:demo
       steps:
         - doTry:
-            steps:
-              - setBody:
-                  expression:
-                    groovy:
-                      expression: 1000 / 0
             doCatch:
-              - steps:
+              - exception:
+                  - java.lang.ArithmeticException
+                steps:
                   - log:
                       message: Exception
-                exception:
-                  - java.lang.ArithmeticException
             doFinally:
               steps:
                 - log:
                     message: ${body}
+            steps:
+              - setBody:
+                  expression:
+                    groovy:
+                      expression: 1000 / 0
diff --git a/karavan-core/test/plain.spec.ts b/karavan-core/test/plain.spec.ts
index 88ea56b..c6dafc4 100644
--- a/karavan-core/test/plain.spec.ts
+++ b/karavan-core/test/plain.spec.ts
@@ -57,8 +57,9 @@ describe('Plain YAML to integration', () => {
         expect(i.kind).to.equal('Integration');
         expect(i.spec.flows?.length).to.equal(1);
         expect(i.type).to.equal('plain');
-        const f: FinallyDefinition = i.spec.flows?.[0].from?.steps[0].doFinally;
         const yaml2 = CamelDefinitionYaml.integrationToYaml(i);
+        console.log(i.spec.flows?.[0].from)
+        console.log(yaml2)
         expect(yaml).to.equal(yaml2);
     });
 
diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml
index 692b07a..c470588 100644
--- a/karavan-generator/pom.xml
+++ b/karavan-generator/pom.xml
@@ -31,7 +31,7 @@
         <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
         <quarkus.platform.version>2.14.0.Final</quarkus.platform.version>
         <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
-        <version.camel-core>3.20.0-SNAPSHOT</version.camel-core>
+        <version.camel-core>3.20.0</version.camel-core>
         <version.camel-kamelet>0.10.0</version.camel-kamelet>
     </properties>
     <dependencyManagement>
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java
index 9995fac..c940f4d 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java
@@ -45,6 +45,65 @@ public class AbstractGenerator {
         return new JsonObject(buffer).getJsonObject("items").getJsonObject("definitions");
     }
 
+    protected JsonObject getDefinitions(){
+        String camelYamlDSL = getCamelYamlDSL();
+        return new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("definitions");
+    }
+
+    protected Map<String, String> getStepNames(){
+        // Prepare stepNames map
+        JsonObject definitions = getDefinitions();
+        Map<String, String> stepNames = getProcessorStepName(new JsonObject(getCamelYamlDSL()).getJsonObject("items").getJsonObject("properties"));
+        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.ProcessorDefinition").getJsonObject("properties")));
+        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties")));
+        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties")));
+        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.dataformat.DataFormatsDefinition").getJsonObject("properties")));
+        return stepNames;
+    }
+
+    protected Map<String, JsonObject> getDslMetadata(){
+        // Generate DSL Metadata
+        String camelYamlDSL = getCamelYamlDSL();
+        JsonObject definitions = new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("definitions");
+
+        // Prepare stepNames map
+        Map<String, String> stepNames = getStepNames();
+
+        Map<String, JsonObject> classProps = new HashMap<>();
+        Map<String, Object> defsMap = new HashMap<>();
+        defsMap.putAll(definitions.getJsonObject("org.apache.camel.model.ProcessorDefinition").getJsonObject("properties").getMap());
+        defsMap.putAll(new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("properties").getMap());
+
+        classProps.clear();
+        defsMap.forEach((s, o) -> {
+            String ref = ((Map) o).get("$ref").toString();
+            String name = classSimple(ref);
+            JsonObject obj = getDefinition(definitions, ref);
+            JsonObject props = obj.containsKey("oneOf") ? obj.getJsonArray("oneOf").getJsonObject(1).getJsonObject("properties") : obj.getJsonObject("properties");
+            classProps.put(name, props);
+        });
+
+        // add additional classes
+        getClasses(definitions, "org.apache.camel.model").forEach(s -> {
+            String className = classSimple(s);
+            if (!stepNames.containsKey(className)) {
+                String stepName = deCapitalize(className.replace("Definition", ""));
+                stepNames.put(className, stepName);
+            }
+        });
+
+        definitions.getMap().forEach((s, o) -> {
+            if (s.startsWith("org.apache.camel.model.") && s.endsWith("Definition")) {
+                String name = classSimple(s);
+                JsonObject obj = getDefinition(definitions, s);
+                JsonObject props = obj.containsKey("oneOf") ? obj.getJsonArray("oneOf").getJsonObject(1).getJsonObject("properties") : obj.getJsonObject("properties");
+                classProps.put(name, props);
+            }
+        });
+
+        return classProps;
+    }
+
     protected String getCamelYamlDSL() {
         try {
             InputStream inputStream = YamlRoutesBuilderLoader.class.getResourceAsStream("/schema/camelYamlDsl.json");
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java
index 1890c60..1bf40df 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java
@@ -45,7 +45,7 @@ public final class CamelDefinitionGenerator extends AbstractGenerator {
         JsonObject definitions = new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("definitions");
 
         // Prepare stepNames map
-        Map<String, String> stepNames  = getProcessorStepName(new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("properties"));
+        Map<String, String> stepNames = getProcessorStepName(new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("properties"));
         stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.ProcessorDefinition").getJsonObject("properties")));
         stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties")));
         stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.dataformat.DataFormatsDefinition").getJsonObject("properties")));
@@ -61,30 +61,31 @@ public final class CamelDefinitionGenerator extends AbstractGenerator {
 
         List<String> modelList = getClasses(definitions, "org.apache.camel");
         modelList.forEach(className -> {
-            String model = generateModel(className, definitions.getJsonObject(className), definitions, stepNames);
+            String model = generateModel(className, definitions.getJsonObject(className), definitions, stepNames, getDslMetadata());
             camelModel.append(model).append(System.lineSeparator());
         });
 
         writeFileText(targetModel, camelModel.toString());
     }
 
-    private String generateModel(String classFullName, JsonObject obj, JsonObject definitions, Map<String, String> stepNames) {
+    private String generateModel(String classFullName, JsonObject obj, JsonObject definitions, Map<String, String> stepNames, Map<String, JsonObject> dslMetadata) {
         String className = classSimple(classFullName);
         JsonObject properties = obj.containsKey("oneOf")
                 ? obj.getJsonArray("oneOf").getJsonObject(1).getJsonObject("properties")
                 : obj.getJsonObject("properties");
 
         List<String> required = obj.containsKey("required") ? obj.getJsonArray("required").getList() : List.of();
-        Map<String, String> attrs = new HashMap<>();
-        if (className.endsWith("Definition") && stepNames.containsKey(className)){
-            attrs.put("stepName", "    stepName?: string = '" + stepNames.get(className) + "'");
-        } else if (className.endsWith("Expression") && stepNames.containsKey(className)){
-            attrs.put("expressionName", "    expressionName?: string = '" + stepNames.get(className) + "'");
-        } else if (className.endsWith("DataFormat") && stepNames.containsKey(className)){
-            attrs.put("dataFormatName", "    dataFormatName?: string = '" + stepNames.get(className) + "'");
+        List<String> attrs = new ArrayList<>();
+        String stepName = stepNames.get(className);
+        if (className.endsWith("Definition") && stepNames.containsKey(className)) {
+            attrs.add("    stepName?: string = '" + stepName + "'");
+        } else if (className.endsWith("Expression") && stepNames.containsKey(className)) {
+            attrs.add("    expressionName?: string = '" + stepNames.get(className) + "'");
+        } else if (className.endsWith("DataFormat") && stepNames.containsKey(className)) {
+            attrs.add("    dataFormatName?: string = '" + stepNames.get(className) + "'");
         }
         if (properties != null) {
-            properties.getMap().keySet().forEach(name -> {
+            properties.getMap().keySet().stream().sorted(getComparator(stepName)).forEach(name -> {
                 JsonObject attributeValue = properties.getJsonObject(name);
                 boolean req = required.contains(name);
                 String attributeType = getAttributeType(attributeValue, req, definitions);
@@ -92,31 +93,48 @@ public final class CamelDefinitionGenerator extends AbstractGenerator {
                 name = name.equals("constructor") ? "_constructor" : name; // exception for YAMLDataFormat
                 if (className.equals("ChoiceDefinition") && name.equals("steps")) { // exception for ChoiceDefinition
                 } else if (className.equals("SwitchDefinition") && name.equals("steps")) { // exception for SwitchDefinition
-                } else if (className.equals("KameletDefinition") && name.equals("steps")){ // exception for KameletDefinition
+                } else if (className.equals("KameletDefinition") && name.equals("steps")) { // exception for KameletDefinition
                 } else {
-                    attrs.put(name, "    " + name + r + ": " + attributeType);
+                    attrs.add("    " + name + r + ": " + attributeType);
                 }
             });
         }
-        return String.format(readFileText(modelTemplate), className, attrs.values().stream().collect(Collectors.joining(";\n")));
+        String idCode = "";
+        return String.format(readFileText(modelTemplate), className, attrs.stream().collect(Collectors.joining(";\n")), idCode);
+    }
+
+    private Comparator<String> getComparator(String stepName) {
+        String json =  getMetaModel(stepName);
+        if (json != null) {
+            JsonObject model = new JsonObject(json).getJsonObject("model");
+            JsonObject props = new JsonObject(json).getJsonObject("properties");
+            List propsLowerCase = props.getMap().keySet().stream().map(s -> s.toLowerCase()).collect(Collectors.toList());
+//            if (stepName.equals("from")) System.out.println("metadata: " + props.fieldNames());
+
+            return Comparator.comparing(e -> {
+                if (propsLowerCase.contains(e.toLowerCase())) return propsLowerCase.indexOf(e.toLowerCase());
+                else return propsLowerCase.size() + 1;
+            });
+        }
+        return Comparator.comparing(s -> 0);
     }
 
     private String getAttributeType(JsonObject attribute, boolean required, JsonObject definitions) {
         if (attribute.containsKey("$ref")) {
-            String classFullName =  attribute.getString("$ref");
+            String classFullName = attribute.getString("$ref");
             JsonObject clazz = getDefinition(definitions, classFullName);
             String oneOfString = (clazz.containsKey("oneOf") && clazz.getJsonArray("oneOf").getJsonObject(0).getString("type").equals("string")) ? " | string" : "";
-            String className =  classSimple(classFullName);
+            String className = classSimple(classFullName);
             if (className.equals("SagaActionUriDefinition")) return "string" + (required ? " = ''" : ""); // exception for SagaActionUriDefinition
             if (className.equals("ToDefinition")) return "string" + (required ? " = ''" : ""); // exception for ToDefinition (in REST Methods)
             if (className.equals("ToDynamicDefinition")) return "string" + (required ? " = ''" : ""); // exception for ToDynamicDefinition (in REST Methods)
-            return className + (required ? " = new " + className + "()": oneOfString);
+            return className + (required ? " = new " + className + "()" : oneOfString);
         } else if (attribute.containsKey("type") && attribute.getString("type").equals("array")) {
             JsonObject items = attribute.getJsonObject("items");
             if (items.containsKey("$ref") && items.getString("$ref").equals("#/items/definitions/org.apache.camel.model.ProcessorDefinition")) {
                 return "CamelElement[] = []";
             } else if (items.containsKey("$ref")) {
-                String className =  classSimple(items.getString("$ref"));
+                String className = classSimple(items.getString("$ref"));
                 return className + "[] = []";
             } else {
                 return items.getString("type") + "[] = []";
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
index ed1c062..ba7c0cb 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
@@ -57,12 +57,7 @@ public final class CamelMetadataGenerator extends AbstractGenerator {
         camelModel.append("]\n\n");
 
         // Prepare stepNames map
-        Map<String, String> stepNames = getProcessorStepName(new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("properties"));
-        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.ProcessorDefinition").getJsonObject("properties")));
-        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties")));
-        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties")));
-        stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.dataformat.DataFormatsDefinition").getJsonObject("properties")));
-
+        Map<String, String> stepNames = getStepNames();
 
         Map<String, JsonObject> classProps = new HashMap<>();
         // Generate DataFormatMetadata
diff --git a/karavan-generator/src/main/resources/CamelDefinition.header.ts b/karavan-generator/src/main/resources/CamelDefinition.header.ts
index a302b8b..bd25602 100644
--- a/karavan-generator/src/main/resources/CamelDefinition.header.ts
+++ b/karavan-generator/src/main/resources/CamelDefinition.header.ts
@@ -1,4 +1,5 @@
 /**
  * Generated by karavan build tools - do NOT edit this file!
  */
+import {v4 as uuidv4} from 'uuid';
 import {CamelElement} from "./IntegrationDefinition";
diff --git a/karavan-generator/src/main/resources/CamelDefinition.ts b/karavan-generator/src/main/resources/CamelDefinition.ts
index 5369eb1..6a040e7 100644
--- a/karavan-generator/src/main/resources/CamelDefinition.ts
+++ b/karavan-generator/src/main/resources/CamelDefinition.ts
@@ -2,6 +2,7 @@ export class %1$s extends CamelElement {
 %2$s
     public constructor(init?: Partial<%1$s>) {
         super('%1$s')
+        %3$s
         Object.assign(this, init)
     }
 }