You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2023/01/10 08:07:16 UTC

[camel-k] 04/04: api: Generate apply configurations

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

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

commit b5e208942c880ef3b7316e32e4fee70058864db7
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Jan 9 14:47:50 2023 +0100

    api: Generate apply configurations
---
 .../applyconfiguration/camel/v1/addontrait.go      |  36 ++
 .../camel/applyconfiguration/camel/v1/artifact.go  |  67 ++++
 .../camel/applyconfiguration/camel/v1/basetask.go  |  40 ++
 .../camel/applyconfiguration/camel/v1/build.go     | 220 +++++++++++
 .../applyconfiguration/camel/v1/buildahtask.go     | 100 +++++
 .../applyconfiguration/camel/v1/buildcondition.go  |  91 +++++
 .../applyconfiguration/camel/v1/buildertask.go     |  98 +++++
 .../camel/applyconfiguration/camel/v1/buildspec.go |  68 ++++
 .../applyconfiguration/camel/v1/buildstatus.go     | 145 ++++++++
 .../applyconfiguration/camel/v1/camelartifact.go   | 130 +++++++
 .../camel/v1/camelartifactdependency.go            |  70 ++++
 .../camel/v1/camelartifactexclusion.go             |  49 +++
 .../applyconfiguration/camel/v1/camelcatalog.go    | 221 ++++++++++++
 .../camel/v1/camelcatalogspec.go                   |  70 ++++
 .../applyconfiguration/camel/v1/camelloader.go     |  81 +++++
 .../applyconfiguration/camel/v1/camelscheme.go     |  76 ++++
 .../camel/v1/camelschemescope.go                   |  45 +++
 .../applyconfiguration/camel/v1/capability.go      |  45 +++
 .../camel/v1/configurationspec.go                  |  49 +++
 .../camel/applyconfiguration/camel/v1/dataspec.go  | 105 ++++++
 .../camel/applyconfiguration/camel/v1/failure.go   |  62 ++++
 .../applyconfiguration/camel/v1/failurerecovery.go |  62 ++++
 .../camel/applyconfiguration/camel/v1/flow.go      |  36 ++
 .../applyconfiguration/camel/v1/integration.go     | 220 +++++++++++
 .../camel/v1/integrationcondition.go               | 100 +++++
 .../applyconfiguration/camel/v1/integrationkit.go  | 220 +++++++++++
 .../camel/v1/integrationkitcondition.go            |  91 +++++
 .../camel/v1/integrationkitspec.go                 |  98 +++++
 .../camel/v1/integrationkitstatus.go               | 153 ++++++++
 .../camel/v1/integrationkittraits.go               |  86 +++++
 .../camel/v1/integrationplatform.go                | 220 +++++++++++
 .../camel/v1/integrationplatformbuildspec.go       | 123 +++++++
 .../camel/v1/integrationplatformcondition.go       |  91 +++++
 .../v1/integrationplatformkameletrepositoryspec.go |  40 ++
 .../camel/v1/integrationplatformkameletspec.go     |  45 +++
 .../camel/v1/integrationplatformspec.go            |  94 +++++
 .../camel/v1/integrationplatformstatus.go          | 145 ++++++++
 .../applyconfiguration/camel/v1/integrationspec.go | 154 ++++++++
 .../camel/v1/integrationstatus.go                  | 218 +++++++++++
 .../applyconfiguration/camel/v1/kanikotask.go      | 100 +++++
 .../applyconfiguration/camel/v1/kanikotaskcache.go |  49 +++
 .../applyconfiguration/camel/v1/mavenartifact.go   |  58 +++
 .../applyconfiguration/camel/v1/mavenbuildspec.go  | 135 +++++++
 .../camel/applyconfiguration/camel/v1/mavenspec.go | 113 ++++++
 .../camel/applyconfiguration/camel/v1/podspec.go   | 150 ++++++++
 .../applyconfiguration/camel/v1/podspectemplate.go |  40 ++
 .../applyconfiguration/camel/v1/publishtask.go     |  67 ++++
 .../applyconfiguration/camel/v1/registryspec.go    |  76 ++++
 .../applyconfiguration/camel/v1/repository.go      |  76 ++++
 .../camel/v1/repositorypolicy.go                   |  58 +++
 .../applyconfiguration/camel/v1/runtimespec.go     | 106 ++++++
 .../camel/applyconfiguration/camel/v1/s2itask.go   |  58 +++
 .../camel/applyconfiguration/camel/v1/server.go    |  71 ++++
 .../applyconfiguration/camel/v1/sourcespec.go      | 151 ++++++++
 .../applyconfiguration/camel/v1/spectrumtask.go    |  73 ++++
 .../camel/applyconfiguration/camel/v1/task.go      |  76 ++++
 .../camel/v1/traitconfiguration.go                 |  36 ++
 .../camel/applyconfiguration/camel/v1/traits.go    | 401 +++++++++++++++++++++
 .../camel/applyconfiguration/camel/v1/traitspec.go |  40 ++
 .../applyconfiguration/camel/v1/valuesource.go     |  53 +++
 .../applyconfiguration/camel/v1alpha1/endpoint.go  |  78 ++++
 .../camel/v1alpha1/endpointproperties.go           |  36 ++
 .../camel/v1alpha1/errorhandlerspec.go             |  36 ++
 .../camel/v1alpha1/eventtypespec.go                |  49 +++
 .../camel/v1alpha1/externaldocumentation.go        |  49 +++
 .../applyconfiguration/camel/v1alpha1/json.go      |  36 ++
 .../camel/v1alpha1/jsonschemaprop.go               | 249 +++++++++++++
 .../camel/v1alpha1/jsonschemaprops.go              | 124 +++++++
 .../applyconfiguration/camel/v1alpha1/kamelet.go   | 220 +++++++++++
 .../camel/v1alpha1/kameletbinding.go               | 220 +++++++++++
 .../camel/v1alpha1/kameletbindingcondition.go      |  91 +++++
 .../camel/v1alpha1/kameletbindingspec.go           |  94 +++++
 .../camel/v1alpha1/kameletbindingstatus.go         |  85 +++++
 .../camel/v1alpha1/kameletcondition.go             |  91 +++++
 .../camel/v1alpha1/kameletproperty.go              |  49 +++
 .../camel/v1alpha1/kameletspec.go                  |  94 +++++
 .../camel/v1alpha1/kameletstatus.go                |  81 +++++
 .../applyconfiguration/camel/v1alpha1/template.go  |  36 ++
 .../camel/applyconfiguration/internal/internal.go  |  63 ++++
 pkg/client/camel/applyconfiguration/utils.go       | 196 ++++++++++
 .../clientset/versioned/typed/camel/v1/build.go    |  61 ++++
 .../versioned/typed/camel/v1/camelcatalog.go       |  61 ++++
 .../versioned/typed/camel/v1/fake/fake_build.go    |  48 +++
 .../typed/camel/v1/fake/fake_camelcatalog.go       |  48 +++
 .../typed/camel/v1/fake/fake_integration.go        |  48 +++
 .../typed/camel/v1/fake/fake_integrationkit.go     |  48 +++
 .../camel/v1/fake/fake_integrationplatform.go      |  48 +++
 .../versioned/typed/camel/v1/integration.go        |  61 ++++
 .../versioned/typed/camel/v1/integrationkit.go     |  61 ++++
 .../typed/camel/v1/integrationplatform.go          |  61 ++++
 .../typed/camel/v1alpha1/fake/fake_kamelet.go      |  48 +++
 .../camel/v1alpha1/fake/fake_kameletbinding.go     |  48 +++
 .../versioned/typed/camel/v1alpha1/kamelet.go      |  61 ++++
 .../typed/camel/v1alpha1/kameletbinding.go         |  61 ++++
 94 files changed, 8791 insertions(+)

diff --git a/pkg/client/camel/applyconfiguration/camel/v1/addontrait.go b/pkg/client/camel/applyconfiguration/camel/v1/addontrait.go
new file mode 100644
index 000000000..9678c534f
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/addontrait.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// AddonTraitApplyConfiguration represents an declarative configuration of the AddonTrait type for use
+// with apply.
+type AddonTraitApplyConfiguration struct {
+	v1.RawMessage `json:",inline"`
+}
+
+// AddonTraitApplyConfiguration constructs an declarative configuration of the AddonTrait type for use with
+// apply.
+func AddonTrait() *AddonTraitApplyConfiguration {
+	return &AddonTraitApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/artifact.go b/pkg/client/camel/applyconfiguration/camel/v1/artifact.go
new file mode 100644
index 000000000..007ff6d66
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/artifact.go
@@ -0,0 +1,67 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// ArtifactApplyConfiguration represents an declarative configuration of the Artifact type for use
+// with apply.
+type ArtifactApplyConfiguration struct {
+	ID       *string `json:"id,omitempty"`
+	Location *string `json:"location,omitempty"`
+	Target   *string `json:"target,omitempty"`
+	Checksum *string `json:"checksum,omitempty"`
+}
+
+// ArtifactApplyConfiguration constructs an declarative configuration of the Artifact type for use with
+// apply.
+func Artifact() *ArtifactApplyConfiguration {
+	return &ArtifactApplyConfiguration{}
+}
+
+// WithID sets the ID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ID field is set to the value of the last call.
+func (b *ArtifactApplyConfiguration) WithID(value string) *ArtifactApplyConfiguration {
+	b.ID = &value
+	return b
+}
+
+// WithLocation sets the Location field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Location field is set to the value of the last call.
+func (b *ArtifactApplyConfiguration) WithLocation(value string) *ArtifactApplyConfiguration {
+	b.Location = &value
+	return b
+}
+
+// WithTarget sets the Target field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Target field is set to the value of the last call.
+func (b *ArtifactApplyConfiguration) WithTarget(value string) *ArtifactApplyConfiguration {
+	b.Target = &value
+	return b
+}
+
+// WithChecksum sets the Checksum field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Checksum field is set to the value of the last call.
+func (b *ArtifactApplyConfiguration) WithChecksum(value string) *ArtifactApplyConfiguration {
+	b.Checksum = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/basetask.go b/pkg/client/camel/applyconfiguration/camel/v1/basetask.go
new file mode 100644
index 000000000..72bc6c228
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/basetask.go
@@ -0,0 +1,40 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// BaseTaskApplyConfiguration represents an declarative configuration of the BaseTask type for use
+// with apply.
+type BaseTaskApplyConfiguration struct {
+	Name *string `json:"name,omitempty"`
+}
+
+// BaseTaskApplyConfiguration constructs an declarative configuration of the BaseTask type for use with
+// apply.
+func BaseTask() *BaseTaskApplyConfiguration {
+	return &BaseTaskApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *BaseTaskApplyConfiguration) WithName(value string) *BaseTaskApplyConfiguration {
+	b.Name = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/build.go b/pkg/client/camel/applyconfiguration/camel/v1/build.go
new file mode 100644
index 000000000..7f4dbc514
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/build.go
@@ -0,0 +1,220 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// BuildApplyConfiguration represents an declarative configuration of the Build type for use
+// with apply.
+type BuildApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Spec                             *BuildSpecApplyConfiguration   `json:"spec,omitempty"`
+	Status                           *BuildStatusApplyConfiguration `json:"status,omitempty"`
+}
+
+// Build constructs an declarative configuration of the Build type for use with
+// apply.
+func Build(name, namespace string) *BuildApplyConfiguration {
+	b := &BuildApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("Build")
+	b.WithAPIVersion("camel.apache.org/v1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithKind(value string) *BuildApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithAPIVersion(value string) *BuildApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithName(value string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithGenerateName(value string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithNamespace(value string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithUID(value types.UID) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithResourceVersion(value string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithGeneration(value int64) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithCreationTimestamp(value metav1.Time) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *BuildApplyConfiguration) WithLabels(entries map[string]string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *BuildApplyConfiguration) WithAnnotations(entries map[string]string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *BuildApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *BuildApplyConfiguration) WithFinalizers(values ...string) *BuildApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *BuildApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithSpec(value *BuildSpecApplyConfiguration) *BuildApplyConfiguration {
+	b.Spec = value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *BuildApplyConfiguration) WithStatus(value *BuildStatusApplyConfiguration) *BuildApplyConfiguration {
+	b.Status = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/buildahtask.go b/pkg/client/camel/applyconfiguration/camel/v1/buildahtask.go
new file mode 100644
index 000000000..3c34e512b
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/buildahtask.go
@@ -0,0 +1,100 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// BuildahTaskApplyConfiguration represents an declarative configuration of the BuildahTask type for use
+// with apply.
+type BuildahTaskApplyConfiguration struct {
+	BaseTaskApplyConfiguration    `json:",inline"`
+	PublishTaskApplyConfiguration `json:",inline"`
+	Platform                      *string `json:"platform,omitempty"`
+	Verbose                       *bool   `json:"verbose,omitempty"`
+	ExecutorImage                 *string `json:"executorImage,omitempty"`
+}
+
+// BuildahTaskApplyConfiguration constructs an declarative configuration of the BuildahTask type for use with
+// apply.
+func BuildahTask() *BuildahTaskApplyConfiguration {
+	return &BuildahTaskApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithName(value string) *BuildahTaskApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithContextDir sets the ContextDir field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContextDir field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithContextDir(value string) *BuildahTaskApplyConfiguration {
+	b.ContextDir = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithBaseImage(value string) *BuildahTaskApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithImage(value string) *BuildahTaskApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithRegistry(value *RegistrySpecApplyConfiguration) *BuildahTaskApplyConfiguration {
+	b.Registry = value
+	return b
+}
+
+// WithPlatform sets the Platform field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Platform field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithPlatform(value string) *BuildahTaskApplyConfiguration {
+	b.Platform = &value
+	return b
+}
+
+// WithVerbose sets the Verbose field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Verbose field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithVerbose(value bool) *BuildahTaskApplyConfiguration {
+	b.Verbose = &value
+	return b
+}
+
+// WithExecutorImage sets the ExecutorImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ExecutorImage field is set to the value of the last call.
+func (b *BuildahTaskApplyConfiguration) WithExecutorImage(value string) *BuildahTaskApplyConfiguration {
+	b.ExecutorImage = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/buildcondition.go b/pkg/client/camel/applyconfiguration/camel/v1/buildcondition.go
new file mode 100644
index 000000000..e2d79f6da
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/buildcondition.go
@@ -0,0 +1,91 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// BuildConditionApplyConfiguration represents an declarative configuration of the BuildCondition type for use
+// with apply.
+type BuildConditionApplyConfiguration struct {
+	Type               *v1.BuildConditionType  `json:"type,omitempty"`
+	Status             *corev1.ConditionStatus `json:"status,omitempty"`
+	LastUpdateTime     *metav1.Time            `json:"lastUpdateTime,omitempty"`
+	LastTransitionTime *metav1.Time            `json:"lastTransitionTime,omitempty"`
+	Reason             *string                 `json:"reason,omitempty"`
+	Message            *string                 `json:"message,omitempty"`
+}
+
+// BuildConditionApplyConfiguration constructs an declarative configuration of the BuildCondition type for use with
+// apply.
+func BuildCondition() *BuildConditionApplyConfiguration {
+	return &BuildConditionApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *BuildConditionApplyConfiguration) WithType(value v1.BuildConditionType) *BuildConditionApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *BuildConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *BuildConditionApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastUpdateTime field is set to the value of the last call.
+func (b *BuildConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *BuildConditionApplyConfiguration {
+	b.LastUpdateTime = &value
+	return b
+}
+
+// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastTransitionTime field is set to the value of the last call.
+func (b *BuildConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *BuildConditionApplyConfiguration {
+	b.LastTransitionTime = &value
+	return b
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *BuildConditionApplyConfiguration) WithReason(value string) *BuildConditionApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithMessage sets the Message field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Message field is set to the value of the last call.
+func (b *BuildConditionApplyConfiguration) WithMessage(value string) *BuildConditionApplyConfiguration {
+	b.Message = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/buildertask.go b/pkg/client/camel/applyconfiguration/camel/v1/buildertask.go
new file mode 100644
index 000000000..2cbaa72bd
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/buildertask.go
@@ -0,0 +1,98 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// BuilderTaskApplyConfiguration represents an declarative configuration of the BuilderTask type for use
+// with apply.
+type BuilderTaskApplyConfiguration struct {
+	BaseTaskApplyConfiguration `json:",inline"`
+	BaseImage                  *string                           `json:"baseImage,omitempty"`
+	Runtime                    *RuntimeSpecApplyConfiguration    `json:"runtime,omitempty"`
+	Dependencies               []string                          `json:"dependencies,omitempty"`
+	Steps                      []string                          `json:"steps,omitempty"`
+	Maven                      *MavenBuildSpecApplyConfiguration `json:"maven,omitempty"`
+	BuildDir                   *string                           `json:"buildDir,omitempty"`
+}
+
+// BuilderTaskApplyConfiguration constructs an declarative configuration of the BuilderTask type for use with
+// apply.
+func BuilderTask() *BuilderTaskApplyConfiguration {
+	return &BuilderTaskApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *BuilderTaskApplyConfiguration) WithName(value string) *BuilderTaskApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *BuilderTaskApplyConfiguration) WithBaseImage(value string) *BuilderTaskApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithRuntime sets the Runtime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Runtime field is set to the value of the last call.
+func (b *BuilderTaskApplyConfiguration) WithRuntime(value *RuntimeSpecApplyConfiguration) *BuilderTaskApplyConfiguration {
+	b.Runtime = value
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *BuilderTaskApplyConfiguration) WithDependencies(values ...string) *BuilderTaskApplyConfiguration {
+	for i := range values {
+		b.Dependencies = append(b.Dependencies, values[i])
+	}
+	return b
+}
+
+// WithSteps adds the given value to the Steps field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Steps field.
+func (b *BuilderTaskApplyConfiguration) WithSteps(values ...string) *BuilderTaskApplyConfiguration {
+	for i := range values {
+		b.Steps = append(b.Steps, values[i])
+	}
+	return b
+}
+
+// WithMaven sets the Maven field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Maven field is set to the value of the last call.
+func (b *BuilderTaskApplyConfiguration) WithMaven(value *MavenBuildSpecApplyConfiguration) *BuilderTaskApplyConfiguration {
+	b.Maven = value
+	return b
+}
+
+// WithBuildDir sets the BuildDir field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BuildDir field is set to the value of the last call.
+func (b *BuilderTaskApplyConfiguration) WithBuildDir(value string) *BuilderTaskApplyConfiguration {
+	b.BuildDir = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/buildspec.go b/pkg/client/camel/applyconfiguration/camel/v1/buildspec.go
new file mode 100644
index 000000000..0ab858425
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/buildspec.go
@@ -0,0 +1,68 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// BuildSpecApplyConfiguration represents an declarative configuration of the BuildSpec type for use
+// with apply.
+type BuildSpecApplyConfiguration struct {
+	Tasks    []TaskApplyConfiguration `json:"tasks,omitempty"`
+	Strategy *camelv1.BuildStrategy   `json:"strategy,omitempty"`
+	Timeout  *metav1.Duration         `json:"timeout,omitempty"`
+}
+
+// BuildSpecApplyConfiguration constructs an declarative configuration of the BuildSpec type for use with
+// apply.
+func BuildSpec() *BuildSpecApplyConfiguration {
+	return &BuildSpecApplyConfiguration{}
+}
+
+// WithTasks adds the given value to the Tasks field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Tasks field.
+func (b *BuildSpecApplyConfiguration) WithTasks(values ...*TaskApplyConfiguration) *BuildSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithTasks")
+		}
+		b.Tasks = append(b.Tasks, *values[i])
+	}
+	return b
+}
+
+// WithStrategy sets the Strategy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Strategy field is set to the value of the last call.
+func (b *BuildSpecApplyConfiguration) WithStrategy(value camelv1.BuildStrategy) *BuildSpecApplyConfiguration {
+	b.Strategy = &value
+	return b
+}
+
+// WithTimeout sets the Timeout field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Timeout field is set to the value of the last call.
+func (b *BuildSpecApplyConfiguration) WithTimeout(value metav1.Duration) *BuildSpecApplyConfiguration {
+	b.Timeout = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/buildstatus.go b/pkg/client/camel/applyconfiguration/camel/v1/buildstatus.go
new file mode 100644
index 000000000..a7df3935a
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/buildstatus.go
@@ -0,0 +1,145 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// BuildStatusApplyConfiguration represents an declarative configuration of the BuildStatus type for use
+// with apply.
+type BuildStatusApplyConfiguration struct {
+	ObservedGeneration *int64                             `json:"observedGeneration,omitempty"`
+	Phase              *v1.BuildPhase                     `json:"phase,omitempty"`
+	Image              *string                            `json:"image,omitempty"`
+	Digest             *string                            `json:"digest,omitempty"`
+	BaseImage          *string                            `json:"baseImage,omitempty"`
+	Artifacts          []ArtifactApplyConfiguration       `json:"artifacts,omitempty"`
+	Error              *string                            `json:"error,omitempty"`
+	Failure            *FailureApplyConfiguration         `json:"failure,omitempty"`
+	StartedAt          *metav1.Time                       `json:"startedAt,omitempty"`
+	Conditions         []BuildConditionApplyConfiguration `json:"conditions,omitempty"`
+	Duration           *string                            `json:"duration,omitempty"`
+}
+
+// BuildStatusApplyConfiguration constructs an declarative configuration of the BuildStatus type for use with
+// apply.
+func BuildStatus() *BuildStatusApplyConfiguration {
+	return &BuildStatusApplyConfiguration{}
+}
+
+// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ObservedGeneration field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithObservedGeneration(value int64) *BuildStatusApplyConfiguration {
+	b.ObservedGeneration = &value
+	return b
+}
+
+// WithPhase sets the Phase field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Phase field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithPhase(value v1.BuildPhase) *BuildStatusApplyConfiguration {
+	b.Phase = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithImage(value string) *BuildStatusApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithDigest sets the Digest field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Digest field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithDigest(value string) *BuildStatusApplyConfiguration {
+	b.Digest = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithBaseImage(value string) *BuildStatusApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithArtifacts adds the given value to the Artifacts field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Artifacts field.
+func (b *BuildStatusApplyConfiguration) WithArtifacts(values ...*ArtifactApplyConfiguration) *BuildStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithArtifacts")
+		}
+		b.Artifacts = append(b.Artifacts, *values[i])
+	}
+	return b
+}
+
+// WithError sets the Error field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Error field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithError(value string) *BuildStatusApplyConfiguration {
+	b.Error = &value
+	return b
+}
+
+// WithFailure sets the Failure field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Failure field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithFailure(value *FailureApplyConfiguration) *BuildStatusApplyConfiguration {
+	b.Failure = value
+	return b
+}
+
+// WithStartedAt sets the StartedAt field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the StartedAt field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithStartedAt(value metav1.Time) *BuildStatusApplyConfiguration {
+	b.StartedAt = &value
+	return b
+}
+
+// WithConditions adds the given value to the Conditions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Conditions field.
+func (b *BuildStatusApplyConfiguration) WithConditions(values ...*BuildConditionApplyConfiguration) *BuildStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConditions")
+		}
+		b.Conditions = append(b.Conditions, *values[i])
+	}
+	return b
+}
+
+// WithDuration sets the Duration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Duration field is set to the value of the last call.
+func (b *BuildStatusApplyConfiguration) WithDuration(value string) *BuildStatusApplyConfiguration {
+	b.Duration = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelartifact.go b/pkg/client/camel/applyconfiguration/camel/v1/camelartifact.go
new file mode 100644
index 000000000..5adc2bb89
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelartifact.go
@@ -0,0 +1,130 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelArtifactApplyConfiguration represents an declarative configuration of the CamelArtifact type for use
+// with apply.
+type CamelArtifactApplyConfiguration struct {
+	CamelArtifactDependencyApplyConfiguration `json:",inline"`
+	Schemes                                   []CamelSchemeApplyConfiguration             `json:"schemes,omitempty"`
+	Languages                                 []string                                    `json:"languages,omitempty"`
+	DataFormats                               []string                                    `json:"dataformats,omitempty"`
+	Dependencies                              []CamelArtifactDependencyApplyConfiguration `json:"dependencies,omitempty"`
+	JavaTypes                                 []string                                    `json:"javaTypes,omitempty"`
+}
+
+// CamelArtifactApplyConfiguration constructs an declarative configuration of the CamelArtifact type for use with
+// apply.
+func CamelArtifact() *CamelArtifactApplyConfiguration {
+	return &CamelArtifactApplyConfiguration{}
+}
+
+// WithGroupID sets the GroupID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GroupID field is set to the value of the last call.
+func (b *CamelArtifactApplyConfiguration) WithGroupID(value string) *CamelArtifactApplyConfiguration {
+	b.GroupID = &value
+	return b
+}
+
+// WithArtifactID sets the ArtifactID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ArtifactID field is set to the value of the last call.
+func (b *CamelArtifactApplyConfiguration) WithArtifactID(value string) *CamelArtifactApplyConfiguration {
+	b.ArtifactID = &value
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *CamelArtifactApplyConfiguration) WithVersion(value string) *CamelArtifactApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithExclusions adds the given value to the Exclusions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Exclusions field.
+func (b *CamelArtifactApplyConfiguration) WithExclusions(values ...*CamelArtifactExclusionApplyConfiguration) *CamelArtifactApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithExclusions")
+		}
+		b.Exclusions = append(b.Exclusions, *values[i])
+	}
+	return b
+}
+
+// WithSchemes adds the given value to the Schemes field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Schemes field.
+func (b *CamelArtifactApplyConfiguration) WithSchemes(values ...*CamelSchemeApplyConfiguration) *CamelArtifactApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithSchemes")
+		}
+		b.Schemes = append(b.Schemes, *values[i])
+	}
+	return b
+}
+
+// WithLanguages adds the given value to the Languages field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Languages field.
+func (b *CamelArtifactApplyConfiguration) WithLanguages(values ...string) *CamelArtifactApplyConfiguration {
+	for i := range values {
+		b.Languages = append(b.Languages, values[i])
+	}
+	return b
+}
+
+// WithDataFormats adds the given value to the DataFormats field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the DataFormats field.
+func (b *CamelArtifactApplyConfiguration) WithDataFormats(values ...string) *CamelArtifactApplyConfiguration {
+	for i := range values {
+		b.DataFormats = append(b.DataFormats, values[i])
+	}
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *CamelArtifactApplyConfiguration) WithDependencies(values ...*CamelArtifactDependencyApplyConfiguration) *CamelArtifactApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithDependencies")
+		}
+		b.Dependencies = append(b.Dependencies, *values[i])
+	}
+	return b
+}
+
+// WithJavaTypes adds the given value to the JavaTypes field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the JavaTypes field.
+func (b *CamelArtifactApplyConfiguration) WithJavaTypes(values ...string) *CamelArtifactApplyConfiguration {
+	for i := range values {
+		b.JavaTypes = append(b.JavaTypes, values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelartifactdependency.go b/pkg/client/camel/applyconfiguration/camel/v1/camelartifactdependency.go
new file mode 100644
index 000000000..2d38809af
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelartifactdependency.go
@@ -0,0 +1,70 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelArtifactDependencyApplyConfiguration represents an declarative configuration of the CamelArtifactDependency type for use
+// with apply.
+type CamelArtifactDependencyApplyConfiguration struct {
+	MavenArtifactApplyConfiguration `json:",inline"`
+	Exclusions                      []CamelArtifactExclusionApplyConfiguration `json:"exclusions,omitempty"`
+}
+
+// CamelArtifactDependencyApplyConfiguration constructs an declarative configuration of the CamelArtifactDependency type for use with
+// apply.
+func CamelArtifactDependency() *CamelArtifactDependencyApplyConfiguration {
+	return &CamelArtifactDependencyApplyConfiguration{}
+}
+
+// WithGroupID sets the GroupID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GroupID field is set to the value of the last call.
+func (b *CamelArtifactDependencyApplyConfiguration) WithGroupID(value string) *CamelArtifactDependencyApplyConfiguration {
+	b.GroupID = &value
+	return b
+}
+
+// WithArtifactID sets the ArtifactID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ArtifactID field is set to the value of the last call.
+func (b *CamelArtifactDependencyApplyConfiguration) WithArtifactID(value string) *CamelArtifactDependencyApplyConfiguration {
+	b.ArtifactID = &value
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *CamelArtifactDependencyApplyConfiguration) WithVersion(value string) *CamelArtifactDependencyApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithExclusions adds the given value to the Exclusions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Exclusions field.
+func (b *CamelArtifactDependencyApplyConfiguration) WithExclusions(values ...*CamelArtifactExclusionApplyConfiguration) *CamelArtifactDependencyApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithExclusions")
+		}
+		b.Exclusions = append(b.Exclusions, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelartifactexclusion.go b/pkg/client/camel/applyconfiguration/camel/v1/camelartifactexclusion.go
new file mode 100644
index 000000000..90914de78
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelartifactexclusion.go
@@ -0,0 +1,49 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelArtifactExclusionApplyConfiguration represents an declarative configuration of the CamelArtifactExclusion type for use
+// with apply.
+type CamelArtifactExclusionApplyConfiguration struct {
+	GroupID    *string `json:"groupId,omitempty"`
+	ArtifactID *string `json:"artifactId,omitempty"`
+}
+
+// CamelArtifactExclusionApplyConfiguration constructs an declarative configuration of the CamelArtifactExclusion type for use with
+// apply.
+func CamelArtifactExclusion() *CamelArtifactExclusionApplyConfiguration {
+	return &CamelArtifactExclusionApplyConfiguration{}
+}
+
+// WithGroupID sets the GroupID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GroupID field is set to the value of the last call.
+func (b *CamelArtifactExclusionApplyConfiguration) WithGroupID(value string) *CamelArtifactExclusionApplyConfiguration {
+	b.GroupID = &value
+	return b
+}
+
+// WithArtifactID sets the ArtifactID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ArtifactID field is set to the value of the last call.
+func (b *CamelArtifactExclusionApplyConfiguration) WithArtifactID(value string) *CamelArtifactExclusionApplyConfiguration {
+	b.ArtifactID = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelcatalog.go b/pkg/client/camel/applyconfiguration/camel/v1/camelcatalog.go
new file mode 100644
index 000000000..ddfdfeafd
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelcatalog.go
@@ -0,0 +1,221 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// CamelCatalogApplyConfiguration represents an declarative configuration of the CamelCatalog type for use
+// with apply.
+type CamelCatalogApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Status                           *camelv1.CamelCatalogStatus         `json:"status,omitempty"`
+	Spec                             *CamelCatalogSpecApplyConfiguration `json:"spec,omitempty"`
+}
+
+// CamelCatalog constructs an declarative configuration of the CamelCatalog type for use with
+// apply.
+func CamelCatalog(name, namespace string) *CamelCatalogApplyConfiguration {
+	b := &CamelCatalogApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("CamelCatalog")
+	b.WithAPIVersion("camel.apache.org/v1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithKind(value string) *CamelCatalogApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithAPIVersion(value string) *CamelCatalogApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithName(value string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithGenerateName(value string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithNamespace(value string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithUID(value types.UID) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithResourceVersion(value string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithGeneration(value int64) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *CamelCatalogApplyConfiguration) WithLabels(entries map[string]string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *CamelCatalogApplyConfiguration) WithAnnotations(entries map[string]string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *CamelCatalogApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *CamelCatalogApplyConfiguration) WithFinalizers(values ...string) *CamelCatalogApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *CamelCatalogApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithStatus(value camelv1.CamelCatalogStatus) *CamelCatalogApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *CamelCatalogApplyConfiguration) WithSpec(value *CamelCatalogSpecApplyConfiguration) *CamelCatalogApplyConfiguration {
+	b.Spec = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelcatalogspec.go b/pkg/client/camel/applyconfiguration/camel/v1/camelcatalogspec.go
new file mode 100644
index 000000000..a8ab3e35e
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelcatalogspec.go
@@ -0,0 +1,70 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelCatalogSpecApplyConfiguration represents an declarative configuration of the CamelCatalogSpec type for use
+// with apply.
+type CamelCatalogSpecApplyConfiguration struct {
+	Runtime   *RuntimeSpecApplyConfiguration             `json:"runtime,omitempty"`
+	Artifacts map[string]CamelArtifactApplyConfiguration `json:"artifacts,omitempty"`
+	Loaders   map[string]CamelLoaderApplyConfiguration   `json:"loaders,omitempty"`
+}
+
+// CamelCatalogSpecApplyConfiguration constructs an declarative configuration of the CamelCatalogSpec type for use with
+// apply.
+func CamelCatalogSpec() *CamelCatalogSpecApplyConfiguration {
+	return &CamelCatalogSpecApplyConfiguration{}
+}
+
+// WithRuntime sets the Runtime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Runtime field is set to the value of the last call.
+func (b *CamelCatalogSpecApplyConfiguration) WithRuntime(value *RuntimeSpecApplyConfiguration) *CamelCatalogSpecApplyConfiguration {
+	b.Runtime = value
+	return b
+}
+
+// WithArtifacts puts the entries into the Artifacts field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Artifacts field,
+// overwriting an existing map entries in Artifacts field with the same key.
+func (b *CamelCatalogSpecApplyConfiguration) WithArtifacts(entries map[string]CamelArtifactApplyConfiguration) *CamelCatalogSpecApplyConfiguration {
+	if b.Artifacts == nil && len(entries) > 0 {
+		b.Artifacts = make(map[string]CamelArtifactApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Artifacts[k] = v
+	}
+	return b
+}
+
+// WithLoaders puts the entries into the Loaders field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Loaders field,
+// overwriting an existing map entries in Loaders field with the same key.
+func (b *CamelCatalogSpecApplyConfiguration) WithLoaders(entries map[string]CamelLoaderApplyConfiguration) *CamelCatalogSpecApplyConfiguration {
+	if b.Loaders == nil && len(entries) > 0 {
+		b.Loaders = make(map[string]CamelLoaderApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Loaders[k] = v
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelloader.go b/pkg/client/camel/applyconfiguration/camel/v1/camelloader.go
new file mode 100644
index 000000000..2867b58d4
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelloader.go
@@ -0,0 +1,81 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelLoaderApplyConfiguration represents an declarative configuration of the CamelLoader type for use
+// with apply.
+type CamelLoaderApplyConfiguration struct {
+	MavenArtifactApplyConfiguration `json:",inline"`
+	Languages                       []string                          `json:"languages,omitempty"`
+	Dependencies                    []MavenArtifactApplyConfiguration `json:"dependencies,omitempty"`
+}
+
+// CamelLoaderApplyConfiguration constructs an declarative configuration of the CamelLoader type for use with
+// apply.
+func CamelLoader() *CamelLoaderApplyConfiguration {
+	return &CamelLoaderApplyConfiguration{}
+}
+
+// WithGroupID sets the GroupID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GroupID field is set to the value of the last call.
+func (b *CamelLoaderApplyConfiguration) WithGroupID(value string) *CamelLoaderApplyConfiguration {
+	b.GroupID = &value
+	return b
+}
+
+// WithArtifactID sets the ArtifactID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ArtifactID field is set to the value of the last call.
+func (b *CamelLoaderApplyConfiguration) WithArtifactID(value string) *CamelLoaderApplyConfiguration {
+	b.ArtifactID = &value
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *CamelLoaderApplyConfiguration) WithVersion(value string) *CamelLoaderApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithLanguages adds the given value to the Languages field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Languages field.
+func (b *CamelLoaderApplyConfiguration) WithLanguages(values ...string) *CamelLoaderApplyConfiguration {
+	for i := range values {
+		b.Languages = append(b.Languages, values[i])
+	}
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *CamelLoaderApplyConfiguration) WithDependencies(values ...*MavenArtifactApplyConfiguration) *CamelLoaderApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithDependencies")
+		}
+		b.Dependencies = append(b.Dependencies, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelscheme.go b/pkg/client/camel/applyconfiguration/camel/v1/camelscheme.go
new file mode 100644
index 000000000..f26c77823
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelscheme.go
@@ -0,0 +1,76 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelSchemeApplyConfiguration represents an declarative configuration of the CamelScheme type for use
+// with apply.
+type CamelSchemeApplyConfiguration struct {
+	ID       *string                             `json:"id,omitempty"`
+	Passive  *bool                               `json:"passive,omitempty"`
+	HTTP     *bool                               `json:"http,omitempty"`
+	Consumer *CamelSchemeScopeApplyConfiguration `json:"consumer,omitempty"`
+	Producer *CamelSchemeScopeApplyConfiguration `json:"producer,omitempty"`
+}
+
+// CamelSchemeApplyConfiguration constructs an declarative configuration of the CamelScheme type for use with
+// apply.
+func CamelScheme() *CamelSchemeApplyConfiguration {
+	return &CamelSchemeApplyConfiguration{}
+}
+
+// WithID sets the ID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ID field is set to the value of the last call.
+func (b *CamelSchemeApplyConfiguration) WithID(value string) *CamelSchemeApplyConfiguration {
+	b.ID = &value
+	return b
+}
+
+// WithPassive sets the Passive field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Passive field is set to the value of the last call.
+func (b *CamelSchemeApplyConfiguration) WithPassive(value bool) *CamelSchemeApplyConfiguration {
+	b.Passive = &value
+	return b
+}
+
+// WithHTTP sets the HTTP field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the HTTP field is set to the value of the last call.
+func (b *CamelSchemeApplyConfiguration) WithHTTP(value bool) *CamelSchemeApplyConfiguration {
+	b.HTTP = &value
+	return b
+}
+
+// WithConsumer sets the Consumer field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Consumer field is set to the value of the last call.
+func (b *CamelSchemeApplyConfiguration) WithConsumer(value *CamelSchemeScopeApplyConfiguration) *CamelSchemeApplyConfiguration {
+	b.Consumer = value
+	return b
+}
+
+// WithProducer sets the Producer field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Producer field is set to the value of the last call.
+func (b *CamelSchemeApplyConfiguration) WithProducer(value *CamelSchemeScopeApplyConfiguration) *CamelSchemeApplyConfiguration {
+	b.Producer = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/camelschemescope.go b/pkg/client/camel/applyconfiguration/camel/v1/camelschemescope.go
new file mode 100644
index 000000000..d1be40564
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/camelschemescope.go
@@ -0,0 +1,45 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CamelSchemeScopeApplyConfiguration represents an declarative configuration of the CamelSchemeScope type for use
+// with apply.
+type CamelSchemeScopeApplyConfiguration struct {
+	Dependencies []CamelArtifactDependencyApplyConfiguration `json:"dependencies,omitempty"`
+}
+
+// CamelSchemeScopeApplyConfiguration constructs an declarative configuration of the CamelSchemeScope type for use with
+// apply.
+func CamelSchemeScope() *CamelSchemeScopeApplyConfiguration {
+	return &CamelSchemeScopeApplyConfiguration{}
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *CamelSchemeScopeApplyConfiguration) WithDependencies(values ...*CamelArtifactDependencyApplyConfiguration) *CamelSchemeScopeApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithDependencies")
+		}
+		b.Dependencies = append(b.Dependencies, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/capability.go b/pkg/client/camel/applyconfiguration/camel/v1/capability.go
new file mode 100644
index 000000000..7d49027fa
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/capability.go
@@ -0,0 +1,45 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// CapabilityApplyConfiguration represents an declarative configuration of the Capability type for use
+// with apply.
+type CapabilityApplyConfiguration struct {
+	Dependencies []MavenArtifactApplyConfiguration `json:"dependencies,omitempty"`
+}
+
+// CapabilityApplyConfiguration constructs an declarative configuration of the Capability type for use with
+// apply.
+func Capability() *CapabilityApplyConfiguration {
+	return &CapabilityApplyConfiguration{}
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *CapabilityApplyConfiguration) WithDependencies(values ...*MavenArtifactApplyConfiguration) *CapabilityApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithDependencies")
+		}
+		b.Dependencies = append(b.Dependencies, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/configurationspec.go b/pkg/client/camel/applyconfiguration/camel/v1/configurationspec.go
new file mode 100644
index 000000000..870ce383e
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/configurationspec.go
@@ -0,0 +1,49 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// ConfigurationSpecApplyConfiguration represents an declarative configuration of the ConfigurationSpec type for use
+// with apply.
+type ConfigurationSpecApplyConfiguration struct {
+	Type  *string `json:"type,omitempty"`
+	Value *string `json:"value,omitempty"`
+}
+
+// ConfigurationSpecApplyConfiguration constructs an declarative configuration of the ConfigurationSpec type for use with
+// apply.
+func ConfigurationSpec() *ConfigurationSpecApplyConfiguration {
+	return &ConfigurationSpecApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *ConfigurationSpecApplyConfiguration) WithType(value string) *ConfigurationSpecApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithValue sets the Value field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Value field is set to the value of the last call.
+func (b *ConfigurationSpecApplyConfiguration) WithValue(value string) *ConfigurationSpecApplyConfiguration {
+	b.Value = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/dataspec.go b/pkg/client/camel/applyconfiguration/camel/v1/dataspec.go
new file mode 100644
index 000000000..02b08324c
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/dataspec.go
@@ -0,0 +1,105 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// DataSpecApplyConfiguration represents an declarative configuration of the DataSpec type for use
+// with apply.
+type DataSpecApplyConfiguration struct {
+	Name        *string `json:"name,omitempty"`
+	Path        *string `json:"path,omitempty"`
+	Content     *string `json:"content,omitempty"`
+	RawContent  []byte  `json:"rawContent,omitempty"`
+	ContentRef  *string `json:"contentRef,omitempty"`
+	ContentKey  *string `json:"contentKey,omitempty"`
+	ContentType *string `json:"contentType,omitempty"`
+	Compression *bool   `json:"compression,omitempty"`
+}
+
+// DataSpecApplyConfiguration constructs an declarative configuration of the DataSpec type for use with
+// apply.
+func DataSpec() *DataSpecApplyConfiguration {
+	return &DataSpecApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithName(value string) *DataSpecApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithPath sets the Path field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Path field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithPath(value string) *DataSpecApplyConfiguration {
+	b.Path = &value
+	return b
+}
+
+// WithContent sets the Content field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Content field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithContent(value string) *DataSpecApplyConfiguration {
+	b.Content = &value
+	return b
+}
+
+// WithRawContent adds the given value to the RawContent field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the RawContent field.
+func (b *DataSpecApplyConfiguration) WithRawContent(values ...byte) *DataSpecApplyConfiguration {
+	for i := range values {
+		b.RawContent = append(b.RawContent, values[i])
+	}
+	return b
+}
+
+// WithContentRef sets the ContentRef field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContentRef field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithContentRef(value string) *DataSpecApplyConfiguration {
+	b.ContentRef = &value
+	return b
+}
+
+// WithContentKey sets the ContentKey field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContentKey field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithContentKey(value string) *DataSpecApplyConfiguration {
+	b.ContentKey = &value
+	return b
+}
+
+// WithContentType sets the ContentType field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContentType field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithContentType(value string) *DataSpecApplyConfiguration {
+	b.ContentType = &value
+	return b
+}
+
+// WithCompression sets the Compression field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Compression field is set to the value of the last call.
+func (b *DataSpecApplyConfiguration) WithCompression(value bool) *DataSpecApplyConfiguration {
+	b.Compression = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/failure.go b/pkg/client/camel/applyconfiguration/camel/v1/failure.go
new file mode 100644
index 000000000..06a7f9e5f
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/failure.go
@@ -0,0 +1,62 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// FailureApplyConfiguration represents an declarative configuration of the Failure type for use
+// with apply.
+type FailureApplyConfiguration struct {
+	Reason   *string                            `json:"reason,omitempty"`
+	Time     *v1.Time                           `json:"time,omitempty"`
+	Recovery *FailureRecoveryApplyConfiguration `json:"recovery,omitempty"`
+}
+
+// FailureApplyConfiguration constructs an declarative configuration of the Failure type for use with
+// apply.
+func Failure() *FailureApplyConfiguration {
+	return &FailureApplyConfiguration{}
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *FailureApplyConfiguration) WithReason(value string) *FailureApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithTime sets the Time field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Time field is set to the value of the last call.
+func (b *FailureApplyConfiguration) WithTime(value v1.Time) *FailureApplyConfiguration {
+	b.Time = &value
+	return b
+}
+
+// WithRecovery sets the Recovery field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Recovery field is set to the value of the last call.
+func (b *FailureApplyConfiguration) WithRecovery(value *FailureRecoveryApplyConfiguration) *FailureApplyConfiguration {
+	b.Recovery = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/failurerecovery.go b/pkg/client/camel/applyconfiguration/camel/v1/failurerecovery.go
new file mode 100644
index 000000000..2af11568a
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/failurerecovery.go
@@ -0,0 +1,62 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// FailureRecoveryApplyConfiguration represents an declarative configuration of the FailureRecovery type for use
+// with apply.
+type FailureRecoveryApplyConfiguration struct {
+	Attempt     *int     `json:"attempt,omitempty"`
+	AttemptMax  *int     `json:"attemptMax,omitempty"`
+	AttemptTime *v1.Time `json:"attemptTime,omitempty"`
+}
+
+// FailureRecoveryApplyConfiguration constructs an declarative configuration of the FailureRecovery type for use with
+// apply.
+func FailureRecovery() *FailureRecoveryApplyConfiguration {
+	return &FailureRecoveryApplyConfiguration{}
+}
+
+// WithAttempt sets the Attempt field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Attempt field is set to the value of the last call.
+func (b *FailureRecoveryApplyConfiguration) WithAttempt(value int) *FailureRecoveryApplyConfiguration {
+	b.Attempt = &value
+	return b
+}
+
+// WithAttemptMax sets the AttemptMax field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the AttemptMax field is set to the value of the last call.
+func (b *FailureRecoveryApplyConfiguration) WithAttemptMax(value int) *FailureRecoveryApplyConfiguration {
+	b.AttemptMax = &value
+	return b
+}
+
+// WithAttemptTime sets the AttemptTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the AttemptTime field is set to the value of the last call.
+func (b *FailureRecoveryApplyConfiguration) WithAttemptTime(value v1.Time) *FailureRecoveryApplyConfiguration {
+	b.AttemptTime = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/flow.go b/pkg/client/camel/applyconfiguration/camel/v1/flow.go
new file mode 100644
index 000000000..962355641
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/flow.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// FlowApplyConfiguration represents an declarative configuration of the Flow type for use
+// with apply.
+type FlowApplyConfiguration struct {
+	v1.RawMessage `json:",inline"`
+}
+
+// FlowApplyConfiguration constructs an declarative configuration of the Flow type for use with
+// apply.
+func Flow() *FlowApplyConfiguration {
+	return &FlowApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integration.go b/pkg/client/camel/applyconfiguration/camel/v1/integration.go
new file mode 100644
index 000000000..5cf1edb0d
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integration.go
@@ -0,0 +1,220 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// IntegrationApplyConfiguration represents an declarative configuration of the Integration type for use
+// with apply.
+type IntegrationApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Spec                             *IntegrationSpecApplyConfiguration   `json:"spec,omitempty"`
+	Status                           *IntegrationStatusApplyConfiguration `json:"status,omitempty"`
+}
+
+// Integration constructs an declarative configuration of the Integration type for use with
+// apply.
+func Integration(name, namespace string) *IntegrationApplyConfiguration {
+	b := &IntegrationApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("Integration")
+	b.WithAPIVersion("camel.apache.org/v1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithKind(value string) *IntegrationApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithAPIVersion(value string) *IntegrationApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithName(value string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithGenerateName(value string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithNamespace(value string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithUID(value types.UID) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithResourceVersion(value string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithGeneration(value int64) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *IntegrationApplyConfiguration) WithLabels(entries map[string]string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *IntegrationApplyConfiguration) WithAnnotations(entries map[string]string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *IntegrationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *IntegrationApplyConfiguration) WithFinalizers(values ...string) *IntegrationApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *IntegrationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithSpec(value *IntegrationSpecApplyConfiguration) *IntegrationApplyConfiguration {
+	b.Spec = value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *IntegrationApplyConfiguration) WithStatus(value *IntegrationStatusApplyConfiguration) *IntegrationApplyConfiguration {
+	b.Status = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go
new file mode 100644
index 000000000..f2519a818
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go
@@ -0,0 +1,100 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// IntegrationConditionApplyConfiguration represents an declarative configuration of the IntegrationCondition type for use
+// with apply.
+type IntegrationConditionApplyConfiguration struct {
+	Type               *v1.IntegrationConditionType `json:"type,omitempty"`
+	Status             *corev1.ConditionStatus      `json:"status,omitempty"`
+	LastUpdateTime     *metav1.Time                 `json:"lastUpdateTime,omitempty"`
+	LastTransitionTime *metav1.Time                 `json:"lastTransitionTime,omitempty"`
+	FirstTruthyTime    *metav1.Time                 `json:"firstTruthyTime,omitempty"`
+	Reason             *string                      `json:"reason,omitempty"`
+	Message            *string                      `json:"message,omitempty"`
+}
+
+// IntegrationConditionApplyConfiguration constructs an declarative configuration of the IntegrationCondition type for use with
+// apply.
+func IntegrationCondition() *IntegrationConditionApplyConfiguration {
+	return &IntegrationConditionApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithType(value v1.IntegrationConditionType) *IntegrationConditionApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *IntegrationConditionApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastUpdateTime field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *IntegrationConditionApplyConfiguration {
+	b.LastUpdateTime = &value
+	return b
+}
+
+// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastTransitionTime field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *IntegrationConditionApplyConfiguration {
+	b.LastTransitionTime = &value
+	return b
+}
+
+// WithFirstTruthyTime sets the FirstTruthyTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the FirstTruthyTime field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithFirstTruthyTime(value metav1.Time) *IntegrationConditionApplyConfiguration {
+	b.FirstTruthyTime = &value
+	return b
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithReason(value string) *IntegrationConditionApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithMessage sets the Message field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Message field is set to the value of the last call.
+func (b *IntegrationConditionApplyConfiguration) WithMessage(value string) *IntegrationConditionApplyConfiguration {
+	b.Message = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationkit.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationkit.go
new file mode 100644
index 000000000..0ea2e903c
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationkit.go
@@ -0,0 +1,220 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// IntegrationKitApplyConfiguration represents an declarative configuration of the IntegrationKit type for use
+// with apply.
+type IntegrationKitApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Spec                             *IntegrationKitSpecApplyConfiguration   `json:"spec,omitempty"`
+	Status                           *IntegrationKitStatusApplyConfiguration `json:"status,omitempty"`
+}
+
+// IntegrationKit constructs an declarative configuration of the IntegrationKit type for use with
+// apply.
+func IntegrationKit(name, namespace string) *IntegrationKitApplyConfiguration {
+	b := &IntegrationKitApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("IntegrationKit")
+	b.WithAPIVersion("camel.apache.org/v1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithKind(value string) *IntegrationKitApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithAPIVersion(value string) *IntegrationKitApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithName(value string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithGenerateName(value string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithNamespace(value string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithUID(value types.UID) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithResourceVersion(value string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithGeneration(value int64) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *IntegrationKitApplyConfiguration) WithLabels(entries map[string]string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *IntegrationKitApplyConfiguration) WithAnnotations(entries map[string]string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *IntegrationKitApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *IntegrationKitApplyConfiguration) WithFinalizers(values ...string) *IntegrationKitApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *IntegrationKitApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithSpec(value *IntegrationKitSpecApplyConfiguration) *IntegrationKitApplyConfiguration {
+	b.Spec = value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *IntegrationKitApplyConfiguration) WithStatus(value *IntegrationKitStatusApplyConfiguration) *IntegrationKitApplyConfiguration {
+	b.Status = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationkitcondition.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationkitcondition.go
new file mode 100644
index 000000000..2493c89bb
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationkitcondition.go
@@ -0,0 +1,91 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// IntegrationKitConditionApplyConfiguration represents an declarative configuration of the IntegrationKitCondition type for use
+// with apply.
+type IntegrationKitConditionApplyConfiguration struct {
+	Type               *v1.IntegrationKitConditionType `json:"type,omitempty"`
+	Status             *corev1.ConditionStatus         `json:"status,omitempty"`
+	LastUpdateTime     *metav1.Time                    `json:"lastUpdateTime,omitempty"`
+	LastTransitionTime *metav1.Time                    `json:"lastTransitionTime,omitempty"`
+	Reason             *string                         `json:"reason,omitempty"`
+	Message            *string                         `json:"message,omitempty"`
+}
+
+// IntegrationKitConditionApplyConfiguration constructs an declarative configuration of the IntegrationKitCondition type for use with
+// apply.
+func IntegrationKitCondition() *IntegrationKitConditionApplyConfiguration {
+	return &IntegrationKitConditionApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *IntegrationKitConditionApplyConfiguration) WithType(value v1.IntegrationKitConditionType) *IntegrationKitConditionApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *IntegrationKitConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *IntegrationKitConditionApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastUpdateTime field is set to the value of the last call.
+func (b *IntegrationKitConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *IntegrationKitConditionApplyConfiguration {
+	b.LastUpdateTime = &value
+	return b
+}
+
+// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastTransitionTime field is set to the value of the last call.
+func (b *IntegrationKitConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *IntegrationKitConditionApplyConfiguration {
+	b.LastTransitionTime = &value
+	return b
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *IntegrationKitConditionApplyConfiguration) WithReason(value string) *IntegrationKitConditionApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithMessage sets the Message field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Message field is set to the value of the last call.
+func (b *IntegrationKitConditionApplyConfiguration) WithMessage(value string) *IntegrationKitConditionApplyConfiguration {
+	b.Message = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationkitspec.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationkitspec.go
new file mode 100644
index 000000000..08d6ae153
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationkitspec.go
@@ -0,0 +1,98 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// IntegrationKitSpecApplyConfiguration represents an declarative configuration of the IntegrationKitSpec type for use
+// with apply.
+type IntegrationKitSpecApplyConfiguration struct {
+	Image         *string                                 `json:"image,omitempty"`
+	Dependencies  []string                                `json:"dependencies,omitempty"`
+	Profile       *v1.TraitProfile                        `json:"profile,omitempty"`
+	Traits        *IntegrationKitTraitsApplyConfiguration `json:"traits,omitempty"`
+	Configuration []ConfigurationSpecApplyConfiguration   `json:"configuration,omitempty"`
+	Repositories  []string                                `json:"repositories,omitempty"`
+}
+
+// IntegrationKitSpecApplyConfiguration constructs an declarative configuration of the IntegrationKitSpec type for use with
+// apply.
+func IntegrationKitSpec() *IntegrationKitSpecApplyConfiguration {
+	return &IntegrationKitSpecApplyConfiguration{}
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *IntegrationKitSpecApplyConfiguration) WithImage(value string) *IntegrationKitSpecApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *IntegrationKitSpecApplyConfiguration) WithDependencies(values ...string) *IntegrationKitSpecApplyConfiguration {
+	for i := range values {
+		b.Dependencies = append(b.Dependencies, values[i])
+	}
+	return b
+}
+
+// WithProfile sets the Profile field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Profile field is set to the value of the last call.
+func (b *IntegrationKitSpecApplyConfiguration) WithProfile(value v1.TraitProfile) *IntegrationKitSpecApplyConfiguration {
+	b.Profile = &value
+	return b
+}
+
+// WithTraits sets the Traits field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Traits field is set to the value of the last call.
+func (b *IntegrationKitSpecApplyConfiguration) WithTraits(value *IntegrationKitTraitsApplyConfiguration) *IntegrationKitSpecApplyConfiguration {
+	b.Traits = value
+	return b
+}
+
+// WithConfiguration adds the given value to the Configuration field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Configuration field.
+func (b *IntegrationKitSpecApplyConfiguration) WithConfiguration(values ...*ConfigurationSpecApplyConfiguration) *IntegrationKitSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConfiguration")
+		}
+		b.Configuration = append(b.Configuration, *values[i])
+	}
+	return b
+}
+
+// WithRepositories adds the given value to the Repositories field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Repositories field.
+func (b *IntegrationKitSpecApplyConfiguration) WithRepositories(values ...string) *IntegrationKitSpecApplyConfiguration {
+	for i := range values {
+		b.Repositories = append(b.Repositories, values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationkitstatus.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationkitstatus.go
new file mode 100644
index 000000000..588eb0054
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationkitstatus.go
@@ -0,0 +1,153 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// IntegrationKitStatusApplyConfiguration represents an declarative configuration of the IntegrationKitStatus type for use
+// with apply.
+type IntegrationKitStatusApplyConfiguration struct {
+	ObservedGeneration *int64                                      `json:"observedGeneration,omitempty"`
+	Phase              *v1.IntegrationKitPhase                     `json:"phase,omitempty"`
+	BaseImage          *string                                     `json:"baseImage,omitempty"`
+	Image              *string                                     `json:"image,omitempty"`
+	Digest             *string                                     `json:"digest,omitempty"`
+	Artifacts          []ArtifactApplyConfiguration                `json:"artifacts,omitempty"`
+	Failure            *FailureApplyConfiguration                  `json:"failure,omitempty"`
+	RuntimeVersion     *string                                     `json:"runtimeVersion,omitempty"`
+	RuntimeProvider    *v1.RuntimeProvider                         `json:"runtimeProvider,omitempty"`
+	Platform           *string                                     `json:"platform,omitempty"`
+	Version            *string                                     `json:"version,omitempty"`
+	Conditions         []IntegrationKitConditionApplyConfiguration `json:"conditions,omitempty"`
+}
+
+// IntegrationKitStatusApplyConfiguration constructs an declarative configuration of the IntegrationKitStatus type for use with
+// apply.
+func IntegrationKitStatus() *IntegrationKitStatusApplyConfiguration {
+	return &IntegrationKitStatusApplyConfiguration{}
+}
+
+// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ObservedGeneration field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithObservedGeneration(value int64) *IntegrationKitStatusApplyConfiguration {
+	b.ObservedGeneration = &value
+	return b
+}
+
+// WithPhase sets the Phase field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Phase field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithPhase(value v1.IntegrationKitPhase) *IntegrationKitStatusApplyConfiguration {
+	b.Phase = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithBaseImage(value string) *IntegrationKitStatusApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithImage(value string) *IntegrationKitStatusApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithDigest sets the Digest field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Digest field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithDigest(value string) *IntegrationKitStatusApplyConfiguration {
+	b.Digest = &value
+	return b
+}
+
+// WithArtifacts adds the given value to the Artifacts field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Artifacts field.
+func (b *IntegrationKitStatusApplyConfiguration) WithArtifacts(values ...*ArtifactApplyConfiguration) *IntegrationKitStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithArtifacts")
+		}
+		b.Artifacts = append(b.Artifacts, *values[i])
+	}
+	return b
+}
+
+// WithFailure sets the Failure field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Failure field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithFailure(value *FailureApplyConfiguration) *IntegrationKitStatusApplyConfiguration {
+	b.Failure = value
+	return b
+}
+
+// WithRuntimeVersion sets the RuntimeVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RuntimeVersion field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithRuntimeVersion(value string) *IntegrationKitStatusApplyConfiguration {
+	b.RuntimeVersion = &value
+	return b
+}
+
+// WithRuntimeProvider sets the RuntimeProvider field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RuntimeProvider field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithRuntimeProvider(value v1.RuntimeProvider) *IntegrationKitStatusApplyConfiguration {
+	b.RuntimeProvider = &value
+	return b
+}
+
+// WithPlatform sets the Platform field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Platform field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithPlatform(value string) *IntegrationKitStatusApplyConfiguration {
+	b.Platform = &value
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *IntegrationKitStatusApplyConfiguration) WithVersion(value string) *IntegrationKitStatusApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithConditions adds the given value to the Conditions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Conditions field.
+func (b *IntegrationKitStatusApplyConfiguration) WithConditions(values ...*IntegrationKitConditionApplyConfiguration) *IntegrationKitStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConditions")
+		}
+		b.Conditions = append(b.Conditions, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationkittraits.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationkittraits.go
new file mode 100644
index 000000000..3143991d3
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationkittraits.go
@@ -0,0 +1,86 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	trait "github.com/apache/camel-k/pkg/apis/camel/v1/trait"
+)
+
+// IntegrationKitTraitsApplyConfiguration represents an declarative configuration of the IntegrationKitTraits type for use
+// with apply.
+type IntegrationKitTraitsApplyConfiguration struct {
+	Builder  *trait.BuilderTrait                     `json:"builder,omitempty"`
+	Camel    *trait.CamelTrait                       `json:"camel,omitempty"`
+	Quarkus  *trait.QuarkusTrait                     `json:"quarkus,omitempty"`
+	Registry *trait.RegistryTrait                    `json:"registry,omitempty"`
+	Addons   map[string]AddonTraitApplyConfiguration `json:"addons,omitempty"`
+}
+
+// IntegrationKitTraitsApplyConfiguration constructs an declarative configuration of the IntegrationKitTraits type for use with
+// apply.
+func IntegrationKitTraits() *IntegrationKitTraitsApplyConfiguration {
+	return &IntegrationKitTraitsApplyConfiguration{}
+}
+
+// WithBuilder sets the Builder field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Builder field is set to the value of the last call.
+func (b *IntegrationKitTraitsApplyConfiguration) WithBuilder(value trait.BuilderTrait) *IntegrationKitTraitsApplyConfiguration {
+	b.Builder = &value
+	return b
+}
+
+// WithCamel sets the Camel field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Camel field is set to the value of the last call.
+func (b *IntegrationKitTraitsApplyConfiguration) WithCamel(value trait.CamelTrait) *IntegrationKitTraitsApplyConfiguration {
+	b.Camel = &value
+	return b
+}
+
+// WithQuarkus sets the Quarkus field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Quarkus field is set to the value of the last call.
+func (b *IntegrationKitTraitsApplyConfiguration) WithQuarkus(value trait.QuarkusTrait) *IntegrationKitTraitsApplyConfiguration {
+	b.Quarkus = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *IntegrationKitTraitsApplyConfiguration) WithRegistry(value trait.RegistryTrait) *IntegrationKitTraitsApplyConfiguration {
+	b.Registry = &value
+	return b
+}
+
+// WithAddons puts the entries into the Addons field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Addons field,
+// overwriting an existing map entries in Addons field with the same key.
+func (b *IntegrationKitTraitsApplyConfiguration) WithAddons(entries map[string]AddonTraitApplyConfiguration) *IntegrationKitTraitsApplyConfiguration {
+	if b.Addons == nil && len(entries) > 0 {
+		b.Addons = make(map[string]AddonTraitApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Addons[k] = v
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatform.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatform.go
new file mode 100644
index 000000000..e5eb66992
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatform.go
@@ -0,0 +1,220 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// IntegrationPlatformApplyConfiguration represents an declarative configuration of the IntegrationPlatform type for use
+// with apply.
+type IntegrationPlatformApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Spec                             *IntegrationPlatformSpecApplyConfiguration   `json:"spec,omitempty"`
+	Status                           *IntegrationPlatformStatusApplyConfiguration `json:"status,omitempty"`
+}
+
+// IntegrationPlatform constructs an declarative configuration of the IntegrationPlatform type for use with
+// apply.
+func IntegrationPlatform(name, namespace string) *IntegrationPlatformApplyConfiguration {
+	b := &IntegrationPlatformApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("IntegrationPlatform")
+	b.WithAPIVersion("camel.apache.org/v1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithKind(value string) *IntegrationPlatformApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithAPIVersion(value string) *IntegrationPlatformApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithName(value string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithGenerateName(value string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithNamespace(value string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithUID(value types.UID) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithResourceVersion(value string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithGeneration(value int64) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *IntegrationPlatformApplyConfiguration) WithLabels(entries map[string]string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *IntegrationPlatformApplyConfiguration) WithAnnotations(entries map[string]string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *IntegrationPlatformApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *IntegrationPlatformApplyConfiguration) WithFinalizers(values ...string) *IntegrationPlatformApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *IntegrationPlatformApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithSpec(value *IntegrationPlatformSpecApplyConfiguration) *IntegrationPlatformApplyConfiguration {
+	b.Spec = value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *IntegrationPlatformApplyConfiguration) WithStatus(value *IntegrationPlatformStatusApplyConfiguration) *IntegrationPlatformApplyConfiguration {
+	b.Status = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformbuildspec.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformbuildspec.go
new file mode 100644
index 000000000..554abda90
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformbuildspec.go
@@ -0,0 +1,123 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// IntegrationPlatformBuildSpecApplyConfiguration represents an declarative configuration of the IntegrationPlatformBuildSpec type for use
+// with apply.
+type IntegrationPlatformBuildSpecApplyConfiguration struct {
+	BuildStrategy          *v1.BuildStrategy                           `json:"buildStrategy,omitempty"`
+	PublishStrategy        *v1.IntegrationPlatformBuildPublishStrategy `json:"publishStrategy,omitempty"`
+	RuntimeVersion         *string                                     `json:"runtimeVersion,omitempty"`
+	RuntimeProvider        *v1.RuntimeProvider                         `json:"runtimeProvider,omitempty"`
+	BaseImage              *string                                     `json:"baseImage,omitempty"`
+	Registry               *RegistrySpecApplyConfiguration             `json:"registry,omitempty"`
+	Timeout                *metav1.Duration                            `json:"timeout,omitempty"`
+	Maven                  *MavenSpecApplyConfiguration                `json:"maven,omitempty"`
+	PublishStrategyOptions map[string]string                           `json:"PublishStrategyOptions,omitempty"`
+}
+
+// IntegrationPlatformBuildSpecApplyConfiguration constructs an declarative configuration of the IntegrationPlatformBuildSpec type for use with
+// apply.
+func IntegrationPlatformBuildSpec() *IntegrationPlatformBuildSpecApplyConfiguration {
+	return &IntegrationPlatformBuildSpecApplyConfiguration{}
+}
+
+// WithBuildStrategy sets the BuildStrategy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BuildStrategy field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithBuildStrategy(value v1.BuildStrategy) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.BuildStrategy = &value
+	return b
+}
+
+// WithPublishStrategy sets the PublishStrategy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the PublishStrategy field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithPublishStrategy(value v1.IntegrationPlatformBuildPublishStrategy) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.PublishStrategy = &value
+	return b
+}
+
+// WithRuntimeVersion sets the RuntimeVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RuntimeVersion field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithRuntimeVersion(value string) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.RuntimeVersion = &value
+	return b
+}
+
+// WithRuntimeProvider sets the RuntimeProvider field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RuntimeProvider field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithRuntimeProvider(value v1.RuntimeProvider) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.RuntimeProvider = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithBaseImage(value string) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithRegistry(value *RegistrySpecApplyConfiguration) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.Registry = value
+	return b
+}
+
+// WithTimeout sets the Timeout field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Timeout field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithTimeout(value metav1.Duration) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.Timeout = &value
+	return b
+}
+
+// WithMaven sets the Maven field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Maven field is set to the value of the last call.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithMaven(value *MavenSpecApplyConfiguration) *IntegrationPlatformBuildSpecApplyConfiguration {
+	b.Maven = value
+	return b
+}
+
+// WithPublishStrategyOptions puts the entries into the PublishStrategyOptions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the PublishStrategyOptions field,
+// overwriting an existing map entries in PublishStrategyOptions field with the same key.
+func (b *IntegrationPlatformBuildSpecApplyConfiguration) WithPublishStrategyOptions(entries map[string]string) *IntegrationPlatformBuildSpecApplyConfiguration {
+	if b.PublishStrategyOptions == nil && len(entries) > 0 {
+		b.PublishStrategyOptions = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.PublishStrategyOptions[k] = v
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformcondition.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformcondition.go
new file mode 100644
index 000000000..2879f8141
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformcondition.go
@@ -0,0 +1,91 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// IntegrationPlatformConditionApplyConfiguration represents an declarative configuration of the IntegrationPlatformCondition type for use
+// with apply.
+type IntegrationPlatformConditionApplyConfiguration struct {
+	Type               *v1.IntegrationPlatformConditionType `json:"type,omitempty"`
+	Status             *corev1.ConditionStatus              `json:"status,omitempty"`
+	LastUpdateTime     *metav1.Time                         `json:"lastUpdateTime,omitempty"`
+	LastTransitionTime *metav1.Time                         `json:"lastTransitionTime,omitempty"`
+	Reason             *string                              `json:"reason,omitempty"`
+	Message            *string                              `json:"message,omitempty"`
+}
+
+// IntegrationPlatformConditionApplyConfiguration constructs an declarative configuration of the IntegrationPlatformCondition type for use with
+// apply.
+func IntegrationPlatformCondition() *IntegrationPlatformConditionApplyConfiguration {
+	return &IntegrationPlatformConditionApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *IntegrationPlatformConditionApplyConfiguration) WithType(value v1.IntegrationPlatformConditionType) *IntegrationPlatformConditionApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *IntegrationPlatformConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *IntegrationPlatformConditionApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastUpdateTime field is set to the value of the last call.
+func (b *IntegrationPlatformConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *IntegrationPlatformConditionApplyConfiguration {
+	b.LastUpdateTime = &value
+	return b
+}
+
+// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastTransitionTime field is set to the value of the last call.
+func (b *IntegrationPlatformConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *IntegrationPlatformConditionApplyConfiguration {
+	b.LastTransitionTime = &value
+	return b
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *IntegrationPlatformConditionApplyConfiguration) WithReason(value string) *IntegrationPlatformConditionApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithMessage sets the Message field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Message field is set to the value of the last call.
+func (b *IntegrationPlatformConditionApplyConfiguration) WithMessage(value string) *IntegrationPlatformConditionApplyConfiguration {
+	b.Message = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletrepositoryspec.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletrepositoryspec.go
new file mode 100644
index 000000000..e82bf3ed9
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletrepositoryspec.go
@@ -0,0 +1,40 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// IntegrationPlatformKameletRepositorySpecApplyConfiguration represents an declarative configuration of the IntegrationPlatformKameletRepositorySpec type for use
+// with apply.
+type IntegrationPlatformKameletRepositorySpecApplyConfiguration struct {
+	URI *string `json:"uri,omitempty"`
+}
+
+// IntegrationPlatformKameletRepositorySpecApplyConfiguration constructs an declarative configuration of the IntegrationPlatformKameletRepositorySpec type for use with
+// apply.
+func IntegrationPlatformKameletRepositorySpec() *IntegrationPlatformKameletRepositorySpecApplyConfiguration {
+	return &IntegrationPlatformKameletRepositorySpecApplyConfiguration{}
+}
+
+// WithURI sets the URI field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the URI field is set to the value of the last call.
+func (b *IntegrationPlatformKameletRepositorySpecApplyConfiguration) WithURI(value string) *IntegrationPlatformKameletRepositorySpecApplyConfiguration {
+	b.URI = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletspec.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletspec.go
new file mode 100644
index 000000000..9f02ea351
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletspec.go
@@ -0,0 +1,45 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// IntegrationPlatformKameletSpecApplyConfiguration represents an declarative configuration of the IntegrationPlatformKameletSpec type for use
+// with apply.
+type IntegrationPlatformKameletSpecApplyConfiguration struct {
+	Repositories []IntegrationPlatformKameletRepositorySpecApplyConfiguration `json:"repositories,omitempty"`
+}
+
+// IntegrationPlatformKameletSpecApplyConfiguration constructs an declarative configuration of the IntegrationPlatformKameletSpec type for use with
+// apply.
+func IntegrationPlatformKameletSpec() *IntegrationPlatformKameletSpecApplyConfiguration {
+	return &IntegrationPlatformKameletSpecApplyConfiguration{}
+}
+
+// WithRepositories adds the given value to the Repositories field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Repositories field.
+func (b *IntegrationPlatformKameletSpecApplyConfiguration) WithRepositories(values ...*IntegrationPlatformKameletRepositorySpecApplyConfiguration) *IntegrationPlatformKameletSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithRepositories")
+		}
+		b.Repositories = append(b.Repositories, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformspec.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformspec.go
new file mode 100644
index 000000000..16577ea06
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformspec.go
@@ -0,0 +1,94 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// IntegrationPlatformSpecApplyConfiguration represents an declarative configuration of the IntegrationPlatformSpec type for use
+// with apply.
+type IntegrationPlatformSpecApplyConfiguration struct {
+	Cluster       *v1.IntegrationPlatformCluster                    `json:"cluster,omitempty"`
+	Profile       *v1.TraitProfile                                  `json:"profile,omitempty"`
+	Build         *IntegrationPlatformBuildSpecApplyConfiguration   `json:"build,omitempty"`
+	Traits        *TraitsApplyConfiguration                         `json:"traits,omitempty"`
+	Configuration []ConfigurationSpecApplyConfiguration             `json:"configuration,omitempty"`
+	Kamelet       *IntegrationPlatformKameletSpecApplyConfiguration `json:"kamelet,omitempty"`
+}
+
+// IntegrationPlatformSpecApplyConfiguration constructs an declarative configuration of the IntegrationPlatformSpec type for use with
+// apply.
+func IntegrationPlatformSpec() *IntegrationPlatformSpecApplyConfiguration {
+	return &IntegrationPlatformSpecApplyConfiguration{}
+}
+
+// WithCluster sets the Cluster field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Cluster field is set to the value of the last call.
+func (b *IntegrationPlatformSpecApplyConfiguration) WithCluster(value v1.IntegrationPlatformCluster) *IntegrationPlatformSpecApplyConfiguration {
+	b.Cluster = &value
+	return b
+}
+
+// WithProfile sets the Profile field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Profile field is set to the value of the last call.
+func (b *IntegrationPlatformSpecApplyConfiguration) WithProfile(value v1.TraitProfile) *IntegrationPlatformSpecApplyConfiguration {
+	b.Profile = &value
+	return b
+}
+
+// WithBuild sets the Build field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Build field is set to the value of the last call.
+func (b *IntegrationPlatformSpecApplyConfiguration) WithBuild(value *IntegrationPlatformBuildSpecApplyConfiguration) *IntegrationPlatformSpecApplyConfiguration {
+	b.Build = value
+	return b
+}
+
+// WithTraits sets the Traits field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Traits field is set to the value of the last call.
+func (b *IntegrationPlatformSpecApplyConfiguration) WithTraits(value *TraitsApplyConfiguration) *IntegrationPlatformSpecApplyConfiguration {
+	b.Traits = value
+	return b
+}
+
+// WithConfiguration adds the given value to the Configuration field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Configuration field.
+func (b *IntegrationPlatformSpecApplyConfiguration) WithConfiguration(values ...*ConfigurationSpecApplyConfiguration) *IntegrationPlatformSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConfiguration")
+		}
+		b.Configuration = append(b.Configuration, *values[i])
+	}
+	return b
+}
+
+// WithKamelet sets the Kamelet field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kamelet field is set to the value of the last call.
+func (b *IntegrationPlatformSpecApplyConfiguration) WithKamelet(value *IntegrationPlatformKameletSpecApplyConfiguration) *IntegrationPlatformSpecApplyConfiguration {
+	b.Kamelet = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformstatus.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformstatus.go
new file mode 100644
index 000000000..da0284e82
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationplatformstatus.go
@@ -0,0 +1,145 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// IntegrationPlatformStatusApplyConfiguration represents an declarative configuration of the IntegrationPlatformStatus type for use
+// with apply.
+type IntegrationPlatformStatusApplyConfiguration struct {
+	IntegrationPlatformSpecApplyConfiguration `json:",inline"`
+	ObservedGeneration                        *int64                                           `json:"observedGeneration,omitempty"`
+	Phase                                     *camelv1.IntegrationPlatformPhase                `json:"phase,omitempty"`
+	Conditions                                []IntegrationPlatformConditionApplyConfiguration `json:"conditions,omitempty"`
+	Version                                   *string                                          `json:"version,omitempty"`
+	Info                                      map[string]string                                `json:"info,omitempty"`
+}
+
+// IntegrationPlatformStatusApplyConfiguration constructs an declarative configuration of the IntegrationPlatformStatus type for use with
+// apply.
+func IntegrationPlatformStatus() *IntegrationPlatformStatusApplyConfiguration {
+	return &IntegrationPlatformStatusApplyConfiguration{}
+}
+
+// WithCluster sets the Cluster field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Cluster field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithCluster(value camelv1.IntegrationPlatformCluster) *IntegrationPlatformStatusApplyConfiguration {
+	b.Cluster = &value
+	return b
+}
+
+// WithProfile sets the Profile field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Profile field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithProfile(value camelv1.TraitProfile) *IntegrationPlatformStatusApplyConfiguration {
+	b.Profile = &value
+	return b
+}
+
+// WithBuild sets the Build field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Build field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithBuild(value *IntegrationPlatformBuildSpecApplyConfiguration) *IntegrationPlatformStatusApplyConfiguration {
+	b.Build = value
+	return b
+}
+
+// WithTraits sets the Traits field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Traits field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithTraits(value *TraitsApplyConfiguration) *IntegrationPlatformStatusApplyConfiguration {
+	b.Traits = value
+	return b
+}
+
+// WithConfiguration adds the given value to the Configuration field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Configuration field.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithConfiguration(values ...*ConfigurationSpecApplyConfiguration) *IntegrationPlatformStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConfiguration")
+		}
+		b.Configuration = append(b.Configuration, *values[i])
+	}
+	return b
+}
+
+// WithKamelet sets the Kamelet field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kamelet field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithKamelet(value *IntegrationPlatformKameletSpecApplyConfiguration) *IntegrationPlatformStatusApplyConfiguration {
+	b.Kamelet = value
+	return b
+}
+
+// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ObservedGeneration field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithObservedGeneration(value int64) *IntegrationPlatformStatusApplyConfiguration {
+	b.ObservedGeneration = &value
+	return b
+}
+
+// WithPhase sets the Phase field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Phase field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithPhase(value camelv1.IntegrationPlatformPhase) *IntegrationPlatformStatusApplyConfiguration {
+	b.Phase = &value
+	return b
+}
+
+// WithConditions adds the given value to the Conditions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Conditions field.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithConditions(values ...*IntegrationPlatformConditionApplyConfiguration) *IntegrationPlatformStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConditions")
+		}
+		b.Conditions = append(b.Conditions, *values[i])
+	}
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithVersion(value string) *IntegrationPlatformStatusApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithInfo puts the entries into the Info field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Info field,
+// overwriting an existing map entries in Info field with the same key.
+func (b *IntegrationPlatformStatusApplyConfiguration) WithInfo(entries map[string]string) *IntegrationPlatformStatusApplyConfiguration {
+	if b.Info == nil && len(entries) > 0 {
+		b.Info = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Info[k] = v
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationspec.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationspec.go
new file mode 100644
index 000000000..afa204a31
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationspec.go
@@ -0,0 +1,154 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	corev1 "k8s.io/api/core/v1"
+)
+
+// IntegrationSpecApplyConfiguration represents an declarative configuration of the IntegrationSpec type for use
+// with apply.
+type IntegrationSpecApplyConfiguration struct {
+	Replicas           *int32                                `json:"replicas,omitempty"`
+	Sources            []SourceSpecApplyConfiguration        `json:"sources,omitempty"`
+	Flows              []FlowApplyConfiguration              `json:"flows,omitempty"`
+	IntegrationKit     *corev1.ObjectReference               `json:"integrationKit,omitempty"`
+	Dependencies       []string                              `json:"dependencies,omitempty"`
+	Profile            *camelv1.TraitProfile                 `json:"profile,omitempty"`
+	Traits             *TraitsApplyConfiguration             `json:"traits,omitempty"`
+	PodTemplate        *PodSpecTemplateApplyConfiguration    `json:"template,omitempty"`
+	Configuration      []ConfigurationSpecApplyConfiguration `json:"configuration,omitempty"`
+	Repositories       []string                              `json:"repositories,omitempty"`
+	ServiceAccountName *string                               `json:"serviceAccountName,omitempty"`
+}
+
+// IntegrationSpecApplyConfiguration constructs an declarative configuration of the IntegrationSpec type for use with
+// apply.
+func IntegrationSpec() *IntegrationSpecApplyConfiguration {
+	return &IntegrationSpecApplyConfiguration{}
+}
+
+// WithReplicas sets the Replicas field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Replicas field is set to the value of the last call.
+func (b *IntegrationSpecApplyConfiguration) WithReplicas(value int32) *IntegrationSpecApplyConfiguration {
+	b.Replicas = &value
+	return b
+}
+
+// WithSources adds the given value to the Sources field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Sources field.
+func (b *IntegrationSpecApplyConfiguration) WithSources(values ...*SourceSpecApplyConfiguration) *IntegrationSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithSources")
+		}
+		b.Sources = append(b.Sources, *values[i])
+	}
+	return b
+}
+
+// WithFlows adds the given value to the Flows field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Flows field.
+func (b *IntegrationSpecApplyConfiguration) WithFlows(values ...*FlowApplyConfiguration) *IntegrationSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithFlows")
+		}
+		b.Flows = append(b.Flows, *values[i])
+	}
+	return b
+}
+
+// WithIntegrationKit sets the IntegrationKit field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the IntegrationKit field is set to the value of the last call.
+func (b *IntegrationSpecApplyConfiguration) WithIntegrationKit(value corev1.ObjectReference) *IntegrationSpecApplyConfiguration {
+	b.IntegrationKit = &value
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *IntegrationSpecApplyConfiguration) WithDependencies(values ...string) *IntegrationSpecApplyConfiguration {
+	for i := range values {
+		b.Dependencies = append(b.Dependencies, values[i])
+	}
+	return b
+}
+
+// WithProfile sets the Profile field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Profile field is set to the value of the last call.
+func (b *IntegrationSpecApplyConfiguration) WithProfile(value camelv1.TraitProfile) *IntegrationSpecApplyConfiguration {
+	b.Profile = &value
+	return b
+}
+
+// WithTraits sets the Traits field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Traits field is set to the value of the last call.
+func (b *IntegrationSpecApplyConfiguration) WithTraits(value *TraitsApplyConfiguration) *IntegrationSpecApplyConfiguration {
+	b.Traits = value
+	return b
+}
+
+// WithPodTemplate sets the PodTemplate field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the PodTemplate field is set to the value of the last call.
+func (b *IntegrationSpecApplyConfiguration) WithPodTemplate(value *PodSpecTemplateApplyConfiguration) *IntegrationSpecApplyConfiguration {
+	b.PodTemplate = value
+	return b
+}
+
+// WithConfiguration adds the given value to the Configuration field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Configuration field.
+func (b *IntegrationSpecApplyConfiguration) WithConfiguration(values ...*ConfigurationSpecApplyConfiguration) *IntegrationSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConfiguration")
+		}
+		b.Configuration = append(b.Configuration, *values[i])
+	}
+	return b
+}
+
+// WithRepositories adds the given value to the Repositories field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Repositories field.
+func (b *IntegrationSpecApplyConfiguration) WithRepositories(values ...string) *IntegrationSpecApplyConfiguration {
+	for i := range values {
+		b.Repositories = append(b.Repositories, values[i])
+	}
+	return b
+}
+
+// WithServiceAccountName sets the ServiceAccountName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ServiceAccountName field is set to the value of the last call.
+func (b *IntegrationSpecApplyConfiguration) WithServiceAccountName(value string) *IntegrationSpecApplyConfiguration {
+	b.ServiceAccountName = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/integrationstatus.go b/pkg/client/camel/applyconfiguration/camel/v1/integrationstatus.go
new file mode 100644
index 000000000..5b7fbc778
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationstatus.go
@@ -0,0 +1,218 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// IntegrationStatusApplyConfiguration represents an declarative configuration of the IntegrationStatus type for use
+// with apply.
+type IntegrationStatusApplyConfiguration struct {
+	ObservedGeneration      *int64                                   `json:"observedGeneration,omitempty"`
+	Phase                   *v1.IntegrationPhase                     `json:"phase,omitempty"`
+	Digest                  *string                                  `json:"digest,omitempty"`
+	Image                   *string                                  `json:"image,omitempty"`
+	Dependencies            []string                                 `json:"dependencies,omitempty"`
+	Profile                 *v1.TraitProfile                         `json:"profile,omitempty"`
+	IntegrationKit          *corev1.ObjectReference                  `json:"integrationKit,omitempty"`
+	Platform                *string                                  `json:"platform,omitempty"`
+	GeneratedSources        []SourceSpecApplyConfiguration           `json:"generatedSources,omitempty"`
+	RuntimeVersion          *string                                  `json:"runtimeVersion,omitempty"`
+	RuntimeProvider         *v1.RuntimeProvider                      `json:"runtimeProvider,omitempty"`
+	Configuration           []ConfigurationSpecApplyConfiguration    `json:"configuration,omitempty"`
+	Conditions              []IntegrationConditionApplyConfiguration `json:"conditions,omitempty"`
+	Version                 *string                                  `json:"version,omitempty"`
+	Replicas                *int32                                   `json:"replicas,omitempty"`
+	Selector                *string                                  `json:"selector,omitempty"`
+	Capabilities            []string                                 `json:"capabilities,omitempty"`
+	InitializationTimestamp *metav1.Time                             `json:"lastInitTimestamp,omitempty"`
+}
+
+// IntegrationStatusApplyConfiguration constructs an declarative configuration of the IntegrationStatus type for use with
+// apply.
+func IntegrationStatus() *IntegrationStatusApplyConfiguration {
+	return &IntegrationStatusApplyConfiguration{}
+}
+
+// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ObservedGeneration field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithObservedGeneration(value int64) *IntegrationStatusApplyConfiguration {
+	b.ObservedGeneration = &value
+	return b
+}
+
+// WithPhase sets the Phase field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Phase field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithPhase(value v1.IntegrationPhase) *IntegrationStatusApplyConfiguration {
+	b.Phase = &value
+	return b
+}
+
+// WithDigest sets the Digest field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Digest field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithDigest(value string) *IntegrationStatusApplyConfiguration {
+	b.Digest = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithImage(value string) *IntegrationStatusApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *IntegrationStatusApplyConfiguration) WithDependencies(values ...string) *IntegrationStatusApplyConfiguration {
+	for i := range values {
+		b.Dependencies = append(b.Dependencies, values[i])
+	}
+	return b
+}
+
+// WithProfile sets the Profile field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Profile field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithProfile(value v1.TraitProfile) *IntegrationStatusApplyConfiguration {
+	b.Profile = &value
+	return b
+}
+
+// WithIntegrationKit sets the IntegrationKit field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the IntegrationKit field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithIntegrationKit(value corev1.ObjectReference) *IntegrationStatusApplyConfiguration {
+	b.IntegrationKit = &value
+	return b
+}
+
+// WithPlatform sets the Platform field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Platform field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithPlatform(value string) *IntegrationStatusApplyConfiguration {
+	b.Platform = &value
+	return b
+}
+
+// WithGeneratedSources adds the given value to the GeneratedSources field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the GeneratedSources field.
+func (b *IntegrationStatusApplyConfiguration) WithGeneratedSources(values ...*SourceSpecApplyConfiguration) *IntegrationStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithGeneratedSources")
+		}
+		b.GeneratedSources = append(b.GeneratedSources, *values[i])
+	}
+	return b
+}
+
+// WithRuntimeVersion sets the RuntimeVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RuntimeVersion field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithRuntimeVersion(value string) *IntegrationStatusApplyConfiguration {
+	b.RuntimeVersion = &value
+	return b
+}
+
+// WithRuntimeProvider sets the RuntimeProvider field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RuntimeProvider field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithRuntimeProvider(value v1.RuntimeProvider) *IntegrationStatusApplyConfiguration {
+	b.RuntimeProvider = &value
+	return b
+}
+
+// WithConfiguration adds the given value to the Configuration field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Configuration field.
+func (b *IntegrationStatusApplyConfiguration) WithConfiguration(values ...*ConfigurationSpecApplyConfiguration) *IntegrationStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConfiguration")
+		}
+		b.Configuration = append(b.Configuration, *values[i])
+	}
+	return b
+}
+
+// WithConditions adds the given value to the Conditions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Conditions field.
+func (b *IntegrationStatusApplyConfiguration) WithConditions(values ...*IntegrationConditionApplyConfiguration) *IntegrationStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConditions")
+		}
+		b.Conditions = append(b.Conditions, *values[i])
+	}
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithVersion(value string) *IntegrationStatusApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithReplicas sets the Replicas field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Replicas field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithReplicas(value int32) *IntegrationStatusApplyConfiguration {
+	b.Replicas = &value
+	return b
+}
+
+// WithSelector sets the Selector field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Selector field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithSelector(value string) *IntegrationStatusApplyConfiguration {
+	b.Selector = &value
+	return b
+}
+
+// WithCapabilities adds the given value to the Capabilities field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Capabilities field.
+func (b *IntegrationStatusApplyConfiguration) WithCapabilities(values ...string) *IntegrationStatusApplyConfiguration {
+	for i := range values {
+		b.Capabilities = append(b.Capabilities, values[i])
+	}
+	return b
+}
+
+// WithInitializationTimestamp sets the InitializationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the InitializationTimestamp field is set to the value of the last call.
+func (b *IntegrationStatusApplyConfiguration) WithInitializationTimestamp(value metav1.Time) *IntegrationStatusApplyConfiguration {
+	b.InitializationTimestamp = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/kanikotask.go b/pkg/client/camel/applyconfiguration/camel/v1/kanikotask.go
new file mode 100644
index 000000000..1b0a1e12c
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/kanikotask.go
@@ -0,0 +1,100 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// KanikoTaskApplyConfiguration represents an declarative configuration of the KanikoTask type for use
+// with apply.
+type KanikoTaskApplyConfiguration struct {
+	BaseTaskApplyConfiguration    `json:",inline"`
+	PublishTaskApplyConfiguration `json:",inline"`
+	Verbose                       *bool                              `json:"verbose,omitempty"`
+	Cache                         *KanikoTaskCacheApplyConfiguration `json:"cache,omitempty"`
+	ExecutorImage                 *string                            `json:"executorImage,omitempty"`
+}
+
+// KanikoTaskApplyConfiguration constructs an declarative configuration of the KanikoTask type for use with
+// apply.
+func KanikoTask() *KanikoTaskApplyConfiguration {
+	return &KanikoTaskApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithName(value string) *KanikoTaskApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithContextDir sets the ContextDir field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContextDir field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithContextDir(value string) *KanikoTaskApplyConfiguration {
+	b.ContextDir = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithBaseImage(value string) *KanikoTaskApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithImage(value string) *KanikoTaskApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithRegistry(value *RegistrySpecApplyConfiguration) *KanikoTaskApplyConfiguration {
+	b.Registry = value
+	return b
+}
+
+// WithVerbose sets the Verbose field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Verbose field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithVerbose(value bool) *KanikoTaskApplyConfiguration {
+	b.Verbose = &value
+	return b
+}
+
+// WithCache sets the Cache field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Cache field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithCache(value *KanikoTaskCacheApplyConfiguration) *KanikoTaskApplyConfiguration {
+	b.Cache = value
+	return b
+}
+
+// WithExecutorImage sets the ExecutorImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ExecutorImage field is set to the value of the last call.
+func (b *KanikoTaskApplyConfiguration) WithExecutorImage(value string) *KanikoTaskApplyConfiguration {
+	b.ExecutorImage = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/kanikotaskcache.go b/pkg/client/camel/applyconfiguration/camel/v1/kanikotaskcache.go
new file mode 100644
index 000000000..1c72a3f9e
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/kanikotaskcache.go
@@ -0,0 +1,49 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// KanikoTaskCacheApplyConfiguration represents an declarative configuration of the KanikoTaskCache type for use
+// with apply.
+type KanikoTaskCacheApplyConfiguration struct {
+	Enabled               *bool   `json:"enabled,omitempty"`
+	PersistentVolumeClaim *string `json:"persistentVolumeClaim,omitempty"`
+}
+
+// KanikoTaskCacheApplyConfiguration constructs an declarative configuration of the KanikoTaskCache type for use with
+// apply.
+func KanikoTaskCache() *KanikoTaskCacheApplyConfiguration {
+	return &KanikoTaskCacheApplyConfiguration{}
+}
+
+// WithEnabled sets the Enabled field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Enabled field is set to the value of the last call.
+func (b *KanikoTaskCacheApplyConfiguration) WithEnabled(value bool) *KanikoTaskCacheApplyConfiguration {
+	b.Enabled = &value
+	return b
+}
+
+// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call.
+func (b *KanikoTaskCacheApplyConfiguration) WithPersistentVolumeClaim(value string) *KanikoTaskCacheApplyConfiguration {
+	b.PersistentVolumeClaim = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/mavenartifact.go b/pkg/client/camel/applyconfiguration/camel/v1/mavenartifact.go
new file mode 100644
index 000000000..22d77c9d5
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/mavenartifact.go
@@ -0,0 +1,58 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// MavenArtifactApplyConfiguration represents an declarative configuration of the MavenArtifact type for use
+// with apply.
+type MavenArtifactApplyConfiguration struct {
+	GroupID    *string `json:"groupId,omitempty"`
+	ArtifactID *string `json:"artifactId,omitempty"`
+	Version    *string `json:"version,omitempty"`
+}
+
+// MavenArtifactApplyConfiguration constructs an declarative configuration of the MavenArtifact type for use with
+// apply.
+func MavenArtifact() *MavenArtifactApplyConfiguration {
+	return &MavenArtifactApplyConfiguration{}
+}
+
+// WithGroupID sets the GroupID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GroupID field is set to the value of the last call.
+func (b *MavenArtifactApplyConfiguration) WithGroupID(value string) *MavenArtifactApplyConfiguration {
+	b.GroupID = &value
+	return b
+}
+
+// WithArtifactID sets the ArtifactID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ArtifactID field is set to the value of the last call.
+func (b *MavenArtifactApplyConfiguration) WithArtifactID(value string) *MavenArtifactApplyConfiguration {
+	b.ArtifactID = &value
+	return b
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *MavenArtifactApplyConfiguration) WithVersion(value string) *MavenArtifactApplyConfiguration {
+	b.Version = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/mavenbuildspec.go b/pkg/client/camel/applyconfiguration/camel/v1/mavenbuildspec.go
new file mode 100644
index 000000000..8878c5f37
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/mavenbuildspec.go
@@ -0,0 +1,135 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	corev1 "k8s.io/api/core/v1"
+)
+
+// MavenBuildSpecApplyConfiguration represents an declarative configuration of the MavenBuildSpec type for use
+// with apply.
+type MavenBuildSpecApplyConfiguration struct {
+	MavenSpecApplyConfiguration `json:",inline"`
+	Repositories                []RepositoryApplyConfiguration `json:"repositories,omitempty"`
+	Servers                     []ServerApplyConfiguration     `json:"servers,omitempty"`
+}
+
+// MavenBuildSpecApplyConfiguration constructs an declarative configuration of the MavenBuildSpec type for use with
+// apply.
+func MavenBuildSpec() *MavenBuildSpecApplyConfiguration {
+	return &MavenBuildSpecApplyConfiguration{}
+}
+
+// WithLocalRepository sets the LocalRepository field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LocalRepository field is set to the value of the last call.
+func (b *MavenBuildSpecApplyConfiguration) WithLocalRepository(value string) *MavenBuildSpecApplyConfiguration {
+	b.LocalRepository = &value
+	return b
+}
+
+// WithProperties puts the entries into the Properties field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Properties field,
+// overwriting an existing map entries in Properties field with the same key.
+func (b *MavenBuildSpecApplyConfiguration) WithProperties(entries map[string]string) *MavenBuildSpecApplyConfiguration {
+	if b.Properties == nil && len(entries) > 0 {
+		b.Properties = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Properties[k] = v
+	}
+	return b
+}
+
+// WithSettings sets the Settings field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Settings field is set to the value of the last call.
+func (b *MavenBuildSpecApplyConfiguration) WithSettings(value *ValueSourceApplyConfiguration) *MavenBuildSpecApplyConfiguration {
+	b.Settings = value
+	return b
+}
+
+// WithSettingsSecurity sets the SettingsSecurity field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the SettingsSecurity field is set to the value of the last call.
+func (b *MavenBuildSpecApplyConfiguration) WithSettingsSecurity(value *ValueSourceApplyConfiguration) *MavenBuildSpecApplyConfiguration {
+	b.SettingsSecurity = value
+	return b
+}
+
+// WithCASecrets adds the given value to the CASecrets field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the CASecrets field.
+func (b *MavenBuildSpecApplyConfiguration) WithCASecrets(values ...corev1.SecretKeySelector) *MavenBuildSpecApplyConfiguration {
+	for i := range values {
+		b.CASecrets = append(b.CASecrets, values[i])
+	}
+	return b
+}
+
+// WithExtension adds the given value to the Extension field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Extension field.
+func (b *MavenBuildSpecApplyConfiguration) WithExtension(values ...*MavenArtifactApplyConfiguration) *MavenBuildSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithExtension")
+		}
+		b.Extension = append(b.Extension, *values[i])
+	}
+	return b
+}
+
+// WithCLIOptions adds the given value to the CLIOptions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the CLIOptions field.
+func (b *MavenBuildSpecApplyConfiguration) WithCLIOptions(values ...string) *MavenBuildSpecApplyConfiguration {
+	for i := range values {
+		b.CLIOptions = append(b.CLIOptions, values[i])
+	}
+	return b
+}
+
+// WithRepositories adds the given value to the Repositories field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Repositories field.
+func (b *MavenBuildSpecApplyConfiguration) WithRepositories(values ...*RepositoryApplyConfiguration) *MavenBuildSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithRepositories")
+		}
+		b.Repositories = append(b.Repositories, *values[i])
+	}
+	return b
+}
+
+// WithServers adds the given value to the Servers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Servers field.
+func (b *MavenBuildSpecApplyConfiguration) WithServers(values ...*ServerApplyConfiguration) *MavenBuildSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithServers")
+		}
+		b.Servers = append(b.Servers, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/mavenspec.go b/pkg/client/camel/applyconfiguration/camel/v1/mavenspec.go
new file mode 100644
index 000000000..b10564b40
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/mavenspec.go
@@ -0,0 +1,113 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	corev1 "k8s.io/api/core/v1"
+)
+
+// MavenSpecApplyConfiguration represents an declarative configuration of the MavenSpec type for use
+// with apply.
+type MavenSpecApplyConfiguration struct {
+	LocalRepository  *string                           `json:"localRepository,omitempty"`
+	Properties       map[string]string                 `json:"properties,omitempty"`
+	Settings         *ValueSourceApplyConfiguration    `json:"settings,omitempty"`
+	SettingsSecurity *ValueSourceApplyConfiguration    `json:"settingsSecurity,omitempty"`
+	CASecrets        []corev1.SecretKeySelector        `json:"caSecrets,omitempty"`
+	Extension        []MavenArtifactApplyConfiguration `json:"extension,omitempty"`
+	CLIOptions       []string                          `json:"cliOptions,omitempty"`
+}
+
+// MavenSpecApplyConfiguration constructs an declarative configuration of the MavenSpec type for use with
+// apply.
+func MavenSpec() *MavenSpecApplyConfiguration {
+	return &MavenSpecApplyConfiguration{}
+}
+
+// WithLocalRepository sets the LocalRepository field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LocalRepository field is set to the value of the last call.
+func (b *MavenSpecApplyConfiguration) WithLocalRepository(value string) *MavenSpecApplyConfiguration {
+	b.LocalRepository = &value
+	return b
+}
+
+// WithProperties puts the entries into the Properties field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Properties field,
+// overwriting an existing map entries in Properties field with the same key.
+func (b *MavenSpecApplyConfiguration) WithProperties(entries map[string]string) *MavenSpecApplyConfiguration {
+	if b.Properties == nil && len(entries) > 0 {
+		b.Properties = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Properties[k] = v
+	}
+	return b
+}
+
+// WithSettings sets the Settings field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Settings field is set to the value of the last call.
+func (b *MavenSpecApplyConfiguration) WithSettings(value *ValueSourceApplyConfiguration) *MavenSpecApplyConfiguration {
+	b.Settings = value
+	return b
+}
+
+// WithSettingsSecurity sets the SettingsSecurity field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the SettingsSecurity field is set to the value of the last call.
+func (b *MavenSpecApplyConfiguration) WithSettingsSecurity(value *ValueSourceApplyConfiguration) *MavenSpecApplyConfiguration {
+	b.SettingsSecurity = value
+	return b
+}
+
+// WithCASecrets adds the given value to the CASecrets field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the CASecrets field.
+func (b *MavenSpecApplyConfiguration) WithCASecrets(values ...corev1.SecretKeySelector) *MavenSpecApplyConfiguration {
+	for i := range values {
+		b.CASecrets = append(b.CASecrets, values[i])
+	}
+	return b
+}
+
+// WithExtension adds the given value to the Extension field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Extension field.
+func (b *MavenSpecApplyConfiguration) WithExtension(values ...*MavenArtifactApplyConfiguration) *MavenSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithExtension")
+		}
+		b.Extension = append(b.Extension, *values[i])
+	}
+	return b
+}
+
+// WithCLIOptions adds the given value to the CLIOptions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the CLIOptions field.
+func (b *MavenSpecApplyConfiguration) WithCLIOptions(values ...string) *MavenSpecApplyConfiguration {
+	for i := range values {
+		b.CLIOptions = append(b.CLIOptions, values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/podspec.go b/pkg/client/camel/applyconfiguration/camel/v1/podspec.go
new file mode 100644
index 000000000..12de22cf5
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/podspec.go
@@ -0,0 +1,150 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "k8s.io/api/core/v1"
+)
+
+// PodSpecApplyConfiguration represents an declarative configuration of the PodSpec type for use
+// with apply.
+type PodSpecApplyConfiguration struct {
+	Volumes                       []v1.Volume                   `json:"volumes,omitempty"`
+	InitContainers                []v1.Container                `json:"initContainers,omitempty"`
+	Containers                    []v1.Container                `json:"containers,omitempty"`
+	EphemeralContainers           []v1.EphemeralContainer       `json:"ephemeralContainers,omitempty"`
+	RestartPolicy                 *v1.RestartPolicy             `json:"restartPolicy,omitempty"`
+	TerminationGracePeriodSeconds *int64                        `json:"terminationGracePeriodSeconds,omitempty"`
+	ActiveDeadlineSeconds         *int64                        `json:"activeDeadlineSeconds,omitempty"`
+	DNSPolicy                     *v1.DNSPolicy                 `json:"dnsPolicy,omitempty"`
+	NodeSelector                  map[string]string             `json:"nodeSelector,omitempty"`
+	TopologySpreadConstraints     []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
+	SecurityContext               *v1.PodSecurityContext        `json:"securityContext,omitempty"`
+}
+
+// PodSpecApplyConfiguration constructs an declarative configuration of the PodSpec type for use with
+// apply.
+func PodSpec() *PodSpecApplyConfiguration {
+	return &PodSpecApplyConfiguration{}
+}
+
+// WithVolumes adds the given value to the Volumes field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Volumes field.
+func (b *PodSpecApplyConfiguration) WithVolumes(values ...v1.Volume) *PodSpecApplyConfiguration {
+	for i := range values {
+		b.Volumes = append(b.Volumes, values[i])
+	}
+	return b
+}
+
+// WithInitContainers adds the given value to the InitContainers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the InitContainers field.
+func (b *PodSpecApplyConfiguration) WithInitContainers(values ...v1.Container) *PodSpecApplyConfiguration {
+	for i := range values {
+		b.InitContainers = append(b.InitContainers, values[i])
+	}
+	return b
+}
+
+// WithContainers adds the given value to the Containers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Containers field.
+func (b *PodSpecApplyConfiguration) WithContainers(values ...v1.Container) *PodSpecApplyConfiguration {
+	for i := range values {
+		b.Containers = append(b.Containers, values[i])
+	}
+	return b
+}
+
+// WithEphemeralContainers adds the given value to the EphemeralContainers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the EphemeralContainers field.
+func (b *PodSpecApplyConfiguration) WithEphemeralContainers(values ...v1.EphemeralContainer) *PodSpecApplyConfiguration {
+	for i := range values {
+		b.EphemeralContainers = append(b.EphemeralContainers, values[i])
+	}
+	return b
+}
+
+// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the RestartPolicy field is set to the value of the last call.
+func (b *PodSpecApplyConfiguration) WithRestartPolicy(value v1.RestartPolicy) *PodSpecApplyConfiguration {
+	b.RestartPolicy = &value
+	return b
+}
+
+// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call.
+func (b *PodSpecApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *PodSpecApplyConfiguration {
+	b.TerminationGracePeriodSeconds = &value
+	return b
+}
+
+// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call.
+func (b *PodSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *PodSpecApplyConfiguration {
+	b.ActiveDeadlineSeconds = &value
+	return b
+}
+
+// WithDNSPolicy sets the DNSPolicy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DNSPolicy field is set to the value of the last call.
+func (b *PodSpecApplyConfiguration) WithDNSPolicy(value v1.DNSPolicy) *PodSpecApplyConfiguration {
+	b.DNSPolicy = &value
+	return b
+}
+
+// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the NodeSelector field,
+// overwriting an existing map entries in NodeSelector field with the same key.
+func (b *PodSpecApplyConfiguration) WithNodeSelector(entries map[string]string) *PodSpecApplyConfiguration {
+	if b.NodeSelector == nil && len(entries) > 0 {
+		b.NodeSelector = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.NodeSelector[k] = v
+	}
+	return b
+}
+
+// WithTopologySpreadConstraints adds the given value to the TopologySpreadConstraints field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the TopologySpreadConstraints field.
+func (b *PodSpecApplyConfiguration) WithTopologySpreadConstraints(values ...v1.TopologySpreadConstraint) *PodSpecApplyConfiguration {
+	for i := range values {
+		b.TopologySpreadConstraints = append(b.TopologySpreadConstraints, values[i])
+	}
+	return b
+}
+
+// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the SecurityContext field is set to the value of the last call.
+func (b *PodSpecApplyConfiguration) WithSecurityContext(value v1.PodSecurityContext) *PodSpecApplyConfiguration {
+	b.SecurityContext = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/podspectemplate.go b/pkg/client/camel/applyconfiguration/camel/v1/podspectemplate.go
new file mode 100644
index 000000000..83bede9ca
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/podspectemplate.go
@@ -0,0 +1,40 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// PodSpecTemplateApplyConfiguration represents an declarative configuration of the PodSpecTemplate type for use
+// with apply.
+type PodSpecTemplateApplyConfiguration struct {
+	Spec *PodSpecApplyConfiguration `json:"spec,omitempty"`
+}
+
+// PodSpecTemplateApplyConfiguration constructs an declarative configuration of the PodSpecTemplate type for use with
+// apply.
+func PodSpecTemplate() *PodSpecTemplateApplyConfiguration {
+	return &PodSpecTemplateApplyConfiguration{}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *PodSpecTemplateApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodSpecTemplateApplyConfiguration {
+	b.Spec = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/publishtask.go b/pkg/client/camel/applyconfiguration/camel/v1/publishtask.go
new file mode 100644
index 000000000..21423bbbd
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/publishtask.go
@@ -0,0 +1,67 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// PublishTaskApplyConfiguration represents an declarative configuration of the PublishTask type for use
+// with apply.
+type PublishTaskApplyConfiguration struct {
+	ContextDir *string                         `json:"contextDir,omitempty"`
+	BaseImage  *string                         `json:"baseImage,omitempty"`
+	Image      *string                         `json:"image,omitempty"`
+	Registry   *RegistrySpecApplyConfiguration `json:"registry,omitempty"`
+}
+
+// PublishTaskApplyConfiguration constructs an declarative configuration of the PublishTask type for use with
+// apply.
+func PublishTask() *PublishTaskApplyConfiguration {
+	return &PublishTaskApplyConfiguration{}
+}
+
+// WithContextDir sets the ContextDir field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContextDir field is set to the value of the last call.
+func (b *PublishTaskApplyConfiguration) WithContextDir(value string) *PublishTaskApplyConfiguration {
+	b.ContextDir = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *PublishTaskApplyConfiguration) WithBaseImage(value string) *PublishTaskApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *PublishTaskApplyConfiguration) WithImage(value string) *PublishTaskApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *PublishTaskApplyConfiguration) WithRegistry(value *RegistrySpecApplyConfiguration) *PublishTaskApplyConfiguration {
+	b.Registry = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/registryspec.go b/pkg/client/camel/applyconfiguration/camel/v1/registryspec.go
new file mode 100644
index 000000000..a4d7bc512
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/registryspec.go
@@ -0,0 +1,76 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// RegistrySpecApplyConfiguration represents an declarative configuration of the RegistrySpec type for use
+// with apply.
+type RegistrySpecApplyConfiguration struct {
+	Insecure     *bool   `json:"insecure,omitempty"`
+	Address      *string `json:"address,omitempty"`
+	Secret       *string `json:"secret,omitempty"`
+	CA           *string `json:"ca,omitempty"`
+	Organization *string `json:"organization,omitempty"`
+}
+
+// RegistrySpecApplyConfiguration constructs an declarative configuration of the RegistrySpec type for use with
+// apply.
+func RegistrySpec() *RegistrySpecApplyConfiguration {
+	return &RegistrySpecApplyConfiguration{}
+}
+
+// WithInsecure sets the Insecure field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Insecure field is set to the value of the last call.
+func (b *RegistrySpecApplyConfiguration) WithInsecure(value bool) *RegistrySpecApplyConfiguration {
+	b.Insecure = &value
+	return b
+}
+
+// WithAddress sets the Address field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Address field is set to the value of the last call.
+func (b *RegistrySpecApplyConfiguration) WithAddress(value string) *RegistrySpecApplyConfiguration {
+	b.Address = &value
+	return b
+}
+
+// WithSecret sets the Secret field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Secret field is set to the value of the last call.
+func (b *RegistrySpecApplyConfiguration) WithSecret(value string) *RegistrySpecApplyConfiguration {
+	b.Secret = &value
+	return b
+}
+
+// WithCA sets the CA field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CA field is set to the value of the last call.
+func (b *RegistrySpecApplyConfiguration) WithCA(value string) *RegistrySpecApplyConfiguration {
+	b.CA = &value
+	return b
+}
+
+// WithOrganization sets the Organization field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Organization field is set to the value of the last call.
+func (b *RegistrySpecApplyConfiguration) WithOrganization(value string) *RegistrySpecApplyConfiguration {
+	b.Organization = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/repository.go b/pkg/client/camel/applyconfiguration/camel/v1/repository.go
new file mode 100644
index 000000000..d0b82019f
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/repository.go
@@ -0,0 +1,76 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// RepositoryApplyConfiguration represents an declarative configuration of the Repository type for use
+// with apply.
+type RepositoryApplyConfiguration struct {
+	ID        *string                             `json:"id,omitempty"`
+	Name      *string                             `json:"name,omitempty"`
+	URL       *string                             `json:"url,omitempty"`
+	Snapshots *RepositoryPolicyApplyConfiguration `json:"snapshots,omitempty"`
+	Releases  *RepositoryPolicyApplyConfiguration `json:"releases,omitempty"`
+}
+
+// RepositoryApplyConfiguration constructs an declarative configuration of the Repository type for use with
+// apply.
+func Repository() *RepositoryApplyConfiguration {
+	return &RepositoryApplyConfiguration{}
+}
+
+// WithID sets the ID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ID field is set to the value of the last call.
+func (b *RepositoryApplyConfiguration) WithID(value string) *RepositoryApplyConfiguration {
+	b.ID = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *RepositoryApplyConfiguration) WithName(value string) *RepositoryApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithURL sets the URL field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the URL field is set to the value of the last call.
+func (b *RepositoryApplyConfiguration) WithURL(value string) *RepositoryApplyConfiguration {
+	b.URL = &value
+	return b
+}
+
+// WithSnapshots sets the Snapshots field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Snapshots field is set to the value of the last call.
+func (b *RepositoryApplyConfiguration) WithSnapshots(value *RepositoryPolicyApplyConfiguration) *RepositoryApplyConfiguration {
+	b.Snapshots = value
+	return b
+}
+
+// WithReleases sets the Releases field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Releases field is set to the value of the last call.
+func (b *RepositoryApplyConfiguration) WithReleases(value *RepositoryPolicyApplyConfiguration) *RepositoryApplyConfiguration {
+	b.Releases = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/repositorypolicy.go b/pkg/client/camel/applyconfiguration/camel/v1/repositorypolicy.go
new file mode 100644
index 000000000..b656c9172
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/repositorypolicy.go
@@ -0,0 +1,58 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// RepositoryPolicyApplyConfiguration represents an declarative configuration of the RepositoryPolicy type for use
+// with apply.
+type RepositoryPolicyApplyConfiguration struct {
+	Enabled        *bool   `json:"enabled,omitempty"`
+	UpdatePolicy   *string `json:"updatePolicy,omitempty"`
+	ChecksumPolicy *string `json:"checksumPolicy,omitempty"`
+}
+
+// RepositoryPolicyApplyConfiguration constructs an declarative configuration of the RepositoryPolicy type for use with
+// apply.
+func RepositoryPolicy() *RepositoryPolicyApplyConfiguration {
+	return &RepositoryPolicyApplyConfiguration{}
+}
+
+// WithEnabled sets the Enabled field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Enabled field is set to the value of the last call.
+func (b *RepositoryPolicyApplyConfiguration) WithEnabled(value bool) *RepositoryPolicyApplyConfiguration {
+	b.Enabled = &value
+	return b
+}
+
+// WithUpdatePolicy sets the UpdatePolicy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UpdatePolicy field is set to the value of the last call.
+func (b *RepositoryPolicyApplyConfiguration) WithUpdatePolicy(value string) *RepositoryPolicyApplyConfiguration {
+	b.UpdatePolicy = &value
+	return b
+}
+
+// WithChecksumPolicy sets the ChecksumPolicy field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ChecksumPolicy field is set to the value of the last call.
+func (b *RepositoryPolicyApplyConfiguration) WithChecksumPolicy(value string) *RepositoryPolicyApplyConfiguration {
+	b.ChecksumPolicy = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/runtimespec.go b/pkg/client/camel/applyconfiguration/camel/v1/runtimespec.go
new file mode 100644
index 000000000..fd7781970
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/runtimespec.go
@@ -0,0 +1,106 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// RuntimeSpecApplyConfiguration represents an declarative configuration of the RuntimeSpec type for use
+// with apply.
+type RuntimeSpecApplyConfiguration struct {
+	Version          *string                                 `json:"version,omitempty"`
+	Provider         *v1.RuntimeProvider                     `json:"provider,omitempty"`
+	ApplicationClass *string                                 `json:"applicationClass,omitempty"`
+	Dependencies     []MavenArtifactApplyConfiguration       `json:"dependencies,omitempty"`
+	Metadata         map[string]string                       `json:"metadata,omitempty"`
+	Capabilities     map[string]CapabilityApplyConfiguration `json:"capabilities,omitempty"`
+}
+
+// RuntimeSpecApplyConfiguration constructs an declarative configuration of the RuntimeSpec type for use with
+// apply.
+func RuntimeSpec() *RuntimeSpecApplyConfiguration {
+	return &RuntimeSpecApplyConfiguration{}
+}
+
+// WithVersion sets the Version field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Version field is set to the value of the last call.
+func (b *RuntimeSpecApplyConfiguration) WithVersion(value string) *RuntimeSpecApplyConfiguration {
+	b.Version = &value
+	return b
+}
+
+// WithProvider sets the Provider field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Provider field is set to the value of the last call.
+func (b *RuntimeSpecApplyConfiguration) WithProvider(value v1.RuntimeProvider) *RuntimeSpecApplyConfiguration {
+	b.Provider = &value
+	return b
+}
+
+// WithApplicationClass sets the ApplicationClass field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ApplicationClass field is set to the value of the last call.
+func (b *RuntimeSpecApplyConfiguration) WithApplicationClass(value string) *RuntimeSpecApplyConfiguration {
+	b.ApplicationClass = &value
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *RuntimeSpecApplyConfiguration) WithDependencies(values ...*MavenArtifactApplyConfiguration) *RuntimeSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithDependencies")
+		}
+		b.Dependencies = append(b.Dependencies, *values[i])
+	}
+	return b
+}
+
+// WithMetadata puts the entries into the Metadata field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Metadata field,
+// overwriting an existing map entries in Metadata field with the same key.
+func (b *RuntimeSpecApplyConfiguration) WithMetadata(entries map[string]string) *RuntimeSpecApplyConfiguration {
+	if b.Metadata == nil && len(entries) > 0 {
+		b.Metadata = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Metadata[k] = v
+	}
+	return b
+}
+
+// WithCapabilities puts the entries into the Capabilities field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Capabilities field,
+// overwriting an existing map entries in Capabilities field with the same key.
+func (b *RuntimeSpecApplyConfiguration) WithCapabilities(entries map[string]CapabilityApplyConfiguration) *RuntimeSpecApplyConfiguration {
+	if b.Capabilities == nil && len(entries) > 0 {
+		b.Capabilities = make(map[string]CapabilityApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Capabilities[k] = v
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/s2itask.go b/pkg/client/camel/applyconfiguration/camel/v1/s2itask.go
new file mode 100644
index 000000000..232e2355e
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/s2itask.go
@@ -0,0 +1,58 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// S2iTaskApplyConfiguration represents an declarative configuration of the S2iTask type for use
+// with apply.
+type S2iTaskApplyConfiguration struct {
+	BaseTaskApplyConfiguration `json:",inline"`
+	ContextDir                 *string `json:"contextDir,omitempty"`
+	Tag                        *string `json:"tag,omitempty"`
+}
+
+// S2iTaskApplyConfiguration constructs an declarative configuration of the S2iTask type for use with
+// apply.
+func S2iTask() *S2iTaskApplyConfiguration {
+	return &S2iTaskApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *S2iTaskApplyConfiguration) WithName(value string) *S2iTaskApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithContextDir sets the ContextDir field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContextDir field is set to the value of the last call.
+func (b *S2iTaskApplyConfiguration) WithContextDir(value string) *S2iTaskApplyConfiguration {
+	b.ContextDir = &value
+	return b
+}
+
+// WithTag sets the Tag field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Tag field is set to the value of the last call.
+func (b *S2iTaskApplyConfiguration) WithTag(value string) *S2iTaskApplyConfiguration {
+	b.Tag = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/server.go b/pkg/client/camel/applyconfiguration/camel/v1/server.go
new file mode 100644
index 000000000..0f35d6d7a
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/server.go
@@ -0,0 +1,71 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// ServerApplyConfiguration represents an declarative configuration of the Server type for use
+// with apply.
+type ServerApplyConfiguration struct {
+	ID            *string        `json:"id,omitempty"`
+	Username      *string        `json:"username,omitempty"`
+	Password      *string        `json:"password,omitempty"`
+	Configuration *v1.Properties `json:"configuration,omitempty"`
+}
+
+// ServerApplyConfiguration constructs an declarative configuration of the Server type for use with
+// apply.
+func Server() *ServerApplyConfiguration {
+	return &ServerApplyConfiguration{}
+}
+
+// WithID sets the ID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ID field is set to the value of the last call.
+func (b *ServerApplyConfiguration) WithID(value string) *ServerApplyConfiguration {
+	b.ID = &value
+	return b
+}
+
+// WithUsername sets the Username field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Username field is set to the value of the last call.
+func (b *ServerApplyConfiguration) WithUsername(value string) *ServerApplyConfiguration {
+	b.Username = &value
+	return b
+}
+
+// WithPassword sets the Password field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Password field is set to the value of the last call.
+func (b *ServerApplyConfiguration) WithPassword(value string) *ServerApplyConfiguration {
+	b.Password = &value
+	return b
+}
+
+// WithConfiguration sets the Configuration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Configuration field is set to the value of the last call.
+func (b *ServerApplyConfiguration) WithConfiguration(value v1.Properties) *ServerApplyConfiguration {
+	b.Configuration = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/sourcespec.go b/pkg/client/camel/applyconfiguration/camel/v1/sourcespec.go
new file mode 100644
index 000000000..85a703477
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/sourcespec.go
@@ -0,0 +1,151 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// SourceSpecApplyConfiguration represents an declarative configuration of the SourceSpec type for use
+// with apply.
+type SourceSpecApplyConfiguration struct {
+	DataSpecApplyConfiguration `json:",inline"`
+	Language                   *camelv1.Language   `json:"language,omitempty"`
+	Loader                     *string             `json:"loader,omitempty"`
+	Interceptors               []string            `json:"interceptors,omitempty"`
+	Type                       *camelv1.SourceType `json:"type,omitempty"`
+	PropertyNames              []string            `json:"property-names,omitempty"`
+}
+
+// SourceSpecApplyConfiguration constructs an declarative configuration of the SourceSpec type for use with
+// apply.
+func SourceSpec() *SourceSpecApplyConfiguration {
+	return &SourceSpecApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithName(value string) *SourceSpecApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithPath sets the Path field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Path field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithPath(value string) *SourceSpecApplyConfiguration {
+	b.Path = &value
+	return b
+}
+
+// WithContent sets the Content field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Content field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithContent(value string) *SourceSpecApplyConfiguration {
+	b.Content = &value
+	return b
+}
+
+// WithRawContent adds the given value to the RawContent field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the RawContent field.
+func (b *SourceSpecApplyConfiguration) WithRawContent(values ...byte) *SourceSpecApplyConfiguration {
+	for i := range values {
+		b.RawContent = append(b.RawContent, values[i])
+	}
+	return b
+}
+
+// WithContentRef sets the ContentRef field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContentRef field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithContentRef(value string) *SourceSpecApplyConfiguration {
+	b.ContentRef = &value
+	return b
+}
+
+// WithContentKey sets the ContentKey field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContentKey field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithContentKey(value string) *SourceSpecApplyConfiguration {
+	b.ContentKey = &value
+	return b
+}
+
+// WithContentType sets the ContentType field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContentType field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithContentType(value string) *SourceSpecApplyConfiguration {
+	b.ContentType = &value
+	return b
+}
+
+// WithCompression sets the Compression field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Compression field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithCompression(value bool) *SourceSpecApplyConfiguration {
+	b.Compression = &value
+	return b
+}
+
+// WithLanguage sets the Language field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Language field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithLanguage(value camelv1.Language) *SourceSpecApplyConfiguration {
+	b.Language = &value
+	return b
+}
+
+// WithLoader sets the Loader field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Loader field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithLoader(value string) *SourceSpecApplyConfiguration {
+	b.Loader = &value
+	return b
+}
+
+// WithInterceptors adds the given value to the Interceptors field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Interceptors field.
+func (b *SourceSpecApplyConfiguration) WithInterceptors(values ...string) *SourceSpecApplyConfiguration {
+	for i := range values {
+		b.Interceptors = append(b.Interceptors, values[i])
+	}
+	return b
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *SourceSpecApplyConfiguration) WithType(value camelv1.SourceType) *SourceSpecApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithPropertyNames adds the given value to the PropertyNames field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the PropertyNames field.
+func (b *SourceSpecApplyConfiguration) WithPropertyNames(values ...string) *SourceSpecApplyConfiguration {
+	for i := range values {
+		b.PropertyNames = append(b.PropertyNames, values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/spectrumtask.go b/pkg/client/camel/applyconfiguration/camel/v1/spectrumtask.go
new file mode 100644
index 000000000..c70d4d629
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/spectrumtask.go
@@ -0,0 +1,73 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// SpectrumTaskApplyConfiguration represents an declarative configuration of the SpectrumTask type for use
+// with apply.
+type SpectrumTaskApplyConfiguration struct {
+	BaseTaskApplyConfiguration    `json:",inline"`
+	PublishTaskApplyConfiguration `json:",inline"`
+}
+
+// SpectrumTaskApplyConfiguration constructs an declarative configuration of the SpectrumTask type for use with
+// apply.
+func SpectrumTask() *SpectrumTaskApplyConfiguration {
+	return &SpectrumTaskApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *SpectrumTaskApplyConfiguration) WithName(value string) *SpectrumTaskApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithContextDir sets the ContextDir field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ContextDir field is set to the value of the last call.
+func (b *SpectrumTaskApplyConfiguration) WithContextDir(value string) *SpectrumTaskApplyConfiguration {
+	b.ContextDir = &value
+	return b
+}
+
+// WithBaseImage sets the BaseImage field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the BaseImage field is set to the value of the last call.
+func (b *SpectrumTaskApplyConfiguration) WithBaseImage(value string) *SpectrumTaskApplyConfiguration {
+	b.BaseImage = &value
+	return b
+}
+
+// WithImage sets the Image field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Image field is set to the value of the last call.
+func (b *SpectrumTaskApplyConfiguration) WithImage(value string) *SpectrumTaskApplyConfiguration {
+	b.Image = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *SpectrumTaskApplyConfiguration) WithRegistry(value *RegistrySpecApplyConfiguration) *SpectrumTaskApplyConfiguration {
+	b.Registry = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/task.go b/pkg/client/camel/applyconfiguration/camel/v1/task.go
new file mode 100644
index 000000000..5f8266e50
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/task.go
@@ -0,0 +1,76 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// TaskApplyConfiguration represents an declarative configuration of the Task type for use
+// with apply.
+type TaskApplyConfiguration struct {
+	Builder  *BuilderTaskApplyConfiguration  `json:"builder,omitempty"`
+	Buildah  *BuildahTaskApplyConfiguration  `json:"buildah,omitempty"`
+	Kaniko   *KanikoTaskApplyConfiguration   `json:"kaniko,omitempty"`
+	Spectrum *SpectrumTaskApplyConfiguration `json:"spectrum,omitempty"`
+	S2i      *S2iTaskApplyConfiguration      `json:"s2i,omitempty"`
+}
+
+// TaskApplyConfiguration constructs an declarative configuration of the Task type for use with
+// apply.
+func Task() *TaskApplyConfiguration {
+	return &TaskApplyConfiguration{}
+}
+
+// WithBuilder sets the Builder field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Builder field is set to the value of the last call.
+func (b *TaskApplyConfiguration) WithBuilder(value *BuilderTaskApplyConfiguration) *TaskApplyConfiguration {
+	b.Builder = value
+	return b
+}
+
+// WithBuildah sets the Buildah field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Buildah field is set to the value of the last call.
+func (b *TaskApplyConfiguration) WithBuildah(value *BuildahTaskApplyConfiguration) *TaskApplyConfiguration {
+	b.Buildah = value
+	return b
+}
+
+// WithKaniko sets the Kaniko field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kaniko field is set to the value of the last call.
+func (b *TaskApplyConfiguration) WithKaniko(value *KanikoTaskApplyConfiguration) *TaskApplyConfiguration {
+	b.Kaniko = value
+	return b
+}
+
+// WithSpectrum sets the Spectrum field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spectrum field is set to the value of the last call.
+func (b *TaskApplyConfiguration) WithSpectrum(value *SpectrumTaskApplyConfiguration) *TaskApplyConfiguration {
+	b.Spectrum = value
+	return b
+}
+
+// WithS2i sets the S2i field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the S2i field is set to the value of the last call.
+func (b *TaskApplyConfiguration) WithS2i(value *S2iTaskApplyConfiguration) *TaskApplyConfiguration {
+	b.S2i = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/traitconfiguration.go b/pkg/client/camel/applyconfiguration/camel/v1/traitconfiguration.go
new file mode 100644
index 000000000..9182a3180
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/traitconfiguration.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+)
+
+// TraitConfigurationApplyConfiguration represents an declarative configuration of the TraitConfiguration type for use
+// with apply.
+type TraitConfigurationApplyConfiguration struct {
+	v1.RawMessage `json:",inline"`
+}
+
+// TraitConfigurationApplyConfiguration constructs an declarative configuration of the TraitConfiguration type for use with
+// apply.
+func TraitConfiguration() *TraitConfigurationApplyConfiguration {
+	return &TraitConfigurationApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/traits.go b/pkg/client/camel/applyconfiguration/camel/v1/traits.go
new file mode 100644
index 000000000..9fcbdf22e
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/traits.go
@@ -0,0 +1,401 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	trait "github.com/apache/camel-k/pkg/apis/camel/v1/trait"
+)
+
+// TraitsApplyConfiguration represents an declarative configuration of the Traits type for use
+// with apply.
+type TraitsApplyConfiguration struct {
+	Affinity       *trait.AffinityTrait                    `json:"affinity,omitempty"`
+	Builder        *trait.BuilderTrait                     `json:"builder,omitempty"`
+	Camel          *trait.CamelTrait                       `json:"camel,omitempty"`
+	Container      *trait.ContainerTrait                   `json:"container,omitempty"`
+	Cron           *trait.CronTrait                        `json:"cron,omitempty"`
+	Dependencies   *trait.DependenciesTrait                `json:"dependencies,omitempty"`
+	Deployer       *trait.DeployerTrait                    `json:"deployer,omitempty"`
+	Deployment     *trait.DeploymentTrait                  `json:"deployment,omitempty"`
+	Environment    *trait.EnvironmentTrait                 `json:"environment,omitempty"`
+	ErrorHandler   *trait.ErrorHandlerTrait                `json:"error-handler,omitempty"`
+	GC             *trait.GCTrait                          `json:"gc,omitempty"`
+	Health         *trait.HealthTrait                      `json:"health,omitempty"`
+	Ingress        *trait.IngressTrait                     `json:"ingress,omitempty"`
+	Istio          *trait.IstioTrait                       `json:"istio,omitempty"`
+	Jolokia        *trait.JolokiaTrait                     `json:"jolokia,omitempty"`
+	JVM            *trait.JVMTrait                         `json:"jvm,omitempty"`
+	Kamelets       *trait.KameletsTrait                    `json:"kamelets,omitempty"`
+	Knative        *trait.KnativeTrait                     `json:"knative,omitempty"`
+	KnativeService *trait.KnativeServiceTrait              `json:"knative-service,omitempty"`
+	Logging        *trait.LoggingTrait                     `json:"logging,omitempty"`
+	Mount          *trait.MountTrait                       `json:"mount,omitempty"`
+	OpenAPI        *trait.OpenAPITrait                     `json:"openapi,omitempty"`
+	Owner          *trait.OwnerTrait                       `json:"owner,omitempty"`
+	PDB            *trait.PDBTrait                         `json:"pdb,omitempty"`
+	Platform       *trait.PlatformTrait                    `json:"platform,omitempty"`
+	Pod            *trait.PodTrait                         `json:"pod,omitempty"`
+	Prometheus     *trait.PrometheusTrait                  `json:"prometheus,omitempty"`
+	PullSecret     *trait.PullSecretTrait                  `json:"pull-secret,omitempty"`
+	Quarkus        *trait.QuarkusTrait                     `json:"quarkus,omitempty"`
+	Registry       *trait.RegistryTrait                    `json:"registry,omitempty"`
+	Route          *trait.RouteTrait                       `json:"route,omitempty"`
+	Service        *trait.ServiceTrait                     `json:"service,omitempty"`
+	ServiceBinding *trait.ServiceBindingTrait              `json:"service-binding,omitempty"`
+	Toleration     *trait.TolerationTrait                  `json:"toleration,omitempty"`
+	Addons         map[string]AddonTraitApplyConfiguration `json:"addons,omitempty"`
+	Keda           *TraitSpecApplyConfiguration            `json:"keda,omitempty"`
+	Master         *TraitSpecApplyConfiguration            `json:"master,omitempty"`
+	Strimzi        *TraitSpecApplyConfiguration            `json:"strimzi,omitempty"`
+	ThreeScale     *TraitSpecApplyConfiguration            `json:"3scale,omitempty"`
+	Tracing        *TraitSpecApplyConfiguration            `json:"tracing,omitempty"`
+}
+
+// TraitsApplyConfiguration constructs an declarative configuration of the Traits type for use with
+// apply.
+func Traits() *TraitsApplyConfiguration {
+	return &TraitsApplyConfiguration{}
+}
+
+// WithAffinity sets the Affinity field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Affinity field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithAffinity(value trait.AffinityTrait) *TraitsApplyConfiguration {
+	b.Affinity = &value
+	return b
+}
+
+// WithBuilder sets the Builder field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Builder field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithBuilder(value trait.BuilderTrait) *TraitsApplyConfiguration {
+	b.Builder = &value
+	return b
+}
+
+// WithCamel sets the Camel field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Camel field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithCamel(value trait.CamelTrait) *TraitsApplyConfiguration {
+	b.Camel = &value
+	return b
+}
+
+// WithContainer sets the Container field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Container field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithContainer(value trait.ContainerTrait) *TraitsApplyConfiguration {
+	b.Container = &value
+	return b
+}
+
+// WithCron sets the Cron field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Cron field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithCron(value trait.CronTrait) *TraitsApplyConfiguration {
+	b.Cron = &value
+	return b
+}
+
+// WithDependencies sets the Dependencies field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Dependencies field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithDependencies(value trait.DependenciesTrait) *TraitsApplyConfiguration {
+	b.Dependencies = &value
+	return b
+}
+
+// WithDeployer sets the Deployer field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Deployer field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithDeployer(value trait.DeployerTrait) *TraitsApplyConfiguration {
+	b.Deployer = &value
+	return b
+}
+
+// WithDeployment sets the Deployment field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Deployment field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithDeployment(value trait.DeploymentTrait) *TraitsApplyConfiguration {
+	b.Deployment = &value
+	return b
+}
+
+// WithEnvironment sets the Environment field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Environment field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithEnvironment(value trait.EnvironmentTrait) *TraitsApplyConfiguration {
+	b.Environment = &value
+	return b
+}
+
+// WithErrorHandler sets the ErrorHandler field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ErrorHandler field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithErrorHandler(value trait.ErrorHandlerTrait) *TraitsApplyConfiguration {
+	b.ErrorHandler = &value
+	return b
+}
+
+// WithGC sets the GC field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GC field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithGC(value trait.GCTrait) *TraitsApplyConfiguration {
+	b.GC = &value
+	return b
+}
+
+// WithHealth sets the Health field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Health field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithHealth(value trait.HealthTrait) *TraitsApplyConfiguration {
+	b.Health = &value
+	return b
+}
+
+// WithIngress sets the Ingress field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Ingress field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithIngress(value trait.IngressTrait) *TraitsApplyConfiguration {
+	b.Ingress = &value
+	return b
+}
+
+// WithIstio sets the Istio field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Istio field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithIstio(value trait.IstioTrait) *TraitsApplyConfiguration {
+	b.Istio = &value
+	return b
+}
+
+// WithJolokia sets the Jolokia field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Jolokia field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithJolokia(value trait.JolokiaTrait) *TraitsApplyConfiguration {
+	b.Jolokia = &value
+	return b
+}
+
+// WithJVM sets the JVM field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the JVM field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithJVM(value trait.JVMTrait) *TraitsApplyConfiguration {
+	b.JVM = &value
+	return b
+}
+
+// WithKamelets sets the Kamelets field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kamelets field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithKamelets(value trait.KameletsTrait) *TraitsApplyConfiguration {
+	b.Kamelets = &value
+	return b
+}
+
+// WithKnative sets the Knative field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Knative field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithKnative(value trait.KnativeTrait) *TraitsApplyConfiguration {
+	b.Knative = &value
+	return b
+}
+
+// WithKnativeService sets the KnativeService field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the KnativeService field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithKnativeService(value trait.KnativeServiceTrait) *TraitsApplyConfiguration {
+	b.KnativeService = &value
+	return b
+}
+
+// WithLogging sets the Logging field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Logging field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithLogging(value trait.LoggingTrait) *TraitsApplyConfiguration {
+	b.Logging = &value
+	return b
+}
+
+// WithMount sets the Mount field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Mount field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithMount(value trait.MountTrait) *TraitsApplyConfiguration {
+	b.Mount = &value
+	return b
+}
+
+// WithOpenAPI sets the OpenAPI field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the OpenAPI field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithOpenAPI(value trait.OpenAPITrait) *TraitsApplyConfiguration {
+	b.OpenAPI = &value
+	return b
+}
+
+// WithOwner sets the Owner field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Owner field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithOwner(value trait.OwnerTrait) *TraitsApplyConfiguration {
+	b.Owner = &value
+	return b
+}
+
+// WithPDB sets the PDB field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the PDB field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithPDB(value trait.PDBTrait) *TraitsApplyConfiguration {
+	b.PDB = &value
+	return b
+}
+
+// WithPlatform sets the Platform field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Platform field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithPlatform(value trait.PlatformTrait) *TraitsApplyConfiguration {
+	b.Platform = &value
+	return b
+}
+
+// WithPod sets the Pod field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Pod field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithPod(value trait.PodTrait) *TraitsApplyConfiguration {
+	b.Pod = &value
+	return b
+}
+
+// WithPrometheus sets the Prometheus field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Prometheus field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithPrometheus(value trait.PrometheusTrait) *TraitsApplyConfiguration {
+	b.Prometheus = &value
+	return b
+}
+
+// WithPullSecret sets the PullSecret field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the PullSecret field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithPullSecret(value trait.PullSecretTrait) *TraitsApplyConfiguration {
+	b.PullSecret = &value
+	return b
+}
+
+// WithQuarkus sets the Quarkus field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Quarkus field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithQuarkus(value trait.QuarkusTrait) *TraitsApplyConfiguration {
+	b.Quarkus = &value
+	return b
+}
+
+// WithRegistry sets the Registry field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Registry field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithRegistry(value trait.RegistryTrait) *TraitsApplyConfiguration {
+	b.Registry = &value
+	return b
+}
+
+// WithRoute sets the Route field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Route field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithRoute(value trait.RouteTrait) *TraitsApplyConfiguration {
+	b.Route = &value
+	return b
+}
+
+// WithService sets the Service field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Service field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithService(value trait.ServiceTrait) *TraitsApplyConfiguration {
+	b.Service = &value
+	return b
+}
+
+// WithServiceBinding sets the ServiceBinding field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ServiceBinding field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithServiceBinding(value trait.ServiceBindingTrait) *TraitsApplyConfiguration {
+	b.ServiceBinding = &value
+	return b
+}
+
+// WithToleration sets the Toleration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Toleration field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithToleration(value trait.TolerationTrait) *TraitsApplyConfiguration {
+	b.Toleration = &value
+	return b
+}
+
+// WithAddons puts the entries into the Addons field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Addons field,
+// overwriting an existing map entries in Addons field with the same key.
+func (b *TraitsApplyConfiguration) WithAddons(entries map[string]AddonTraitApplyConfiguration) *TraitsApplyConfiguration {
+	if b.Addons == nil && len(entries) > 0 {
+		b.Addons = make(map[string]AddonTraitApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Addons[k] = v
+	}
+	return b
+}
+
+// WithKeda sets the Keda field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Keda field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithKeda(value *TraitSpecApplyConfiguration) *TraitsApplyConfiguration {
+	b.Keda = value
+	return b
+}
+
+// WithMaster sets the Master field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Master field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithMaster(value *TraitSpecApplyConfiguration) *TraitsApplyConfiguration {
+	b.Master = value
+	return b
+}
+
+// WithStrimzi sets the Strimzi field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Strimzi field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithStrimzi(value *TraitSpecApplyConfiguration) *TraitsApplyConfiguration {
+	b.Strimzi = value
+	return b
+}
+
+// WithThreeScale sets the ThreeScale field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ThreeScale field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithThreeScale(value *TraitSpecApplyConfiguration) *TraitsApplyConfiguration {
+	b.ThreeScale = value
+	return b
+}
+
+// WithTracing sets the Tracing field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Tracing field is set to the value of the last call.
+func (b *TraitsApplyConfiguration) WithTracing(value *TraitSpecApplyConfiguration) *TraitsApplyConfiguration {
+	b.Tracing = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/traitspec.go b/pkg/client/camel/applyconfiguration/camel/v1/traitspec.go
new file mode 100644
index 000000000..2c715c2a2
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/traitspec.go
@@ -0,0 +1,40 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+// TraitSpecApplyConfiguration represents an declarative configuration of the TraitSpec type for use
+// with apply.
+type TraitSpecApplyConfiguration struct {
+	Configuration *TraitConfigurationApplyConfiguration `json:"configuration,omitempty"`
+}
+
+// TraitSpecApplyConfiguration constructs an declarative configuration of the TraitSpec type for use with
+// apply.
+func TraitSpec() *TraitSpecApplyConfiguration {
+	return &TraitSpecApplyConfiguration{}
+}
+
+// WithConfiguration sets the Configuration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Configuration field is set to the value of the last call.
+func (b *TraitSpecApplyConfiguration) WithConfiguration(value *TraitConfigurationApplyConfiguration) *TraitSpecApplyConfiguration {
+	b.Configuration = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/valuesource.go b/pkg/client/camel/applyconfiguration/camel/v1/valuesource.go
new file mode 100644
index 000000000..d2b0a430d
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1/valuesource.go
@@ -0,0 +1,53 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1
+
+import (
+	v1 "k8s.io/api/core/v1"
+)
+
+// ValueSourceApplyConfiguration represents an declarative configuration of the ValueSource type for use
+// with apply.
+type ValueSourceApplyConfiguration struct {
+	ConfigMapKeyRef *v1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
+	SecretKeyRef    *v1.SecretKeySelector    `json:"secretKeyRef,omitempty"`
+}
+
+// ValueSourceApplyConfiguration constructs an declarative configuration of the ValueSource type for use with
+// apply.
+func ValueSource() *ValueSourceApplyConfiguration {
+	return &ValueSourceApplyConfiguration{}
+}
+
+// WithConfigMapKeyRef sets the ConfigMapKeyRef field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ConfigMapKeyRef field is set to the value of the last call.
+func (b *ValueSourceApplyConfiguration) WithConfigMapKeyRef(value v1.ConfigMapKeySelector) *ValueSourceApplyConfiguration {
+	b.ConfigMapKeyRef = &value
+	return b
+}
+
+// WithSecretKeyRef sets the SecretKeyRef field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the SecretKeyRef field is set to the value of the last call.
+func (b *ValueSourceApplyConfiguration) WithSecretKeyRef(value v1.SecretKeySelector) *ValueSourceApplyConfiguration {
+	b.SecretKeyRef = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpoint.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpoint.go
new file mode 100644
index 000000000..d3a5f070e
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpoint.go
@@ -0,0 +1,78 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	camelv1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	v1 "k8s.io/api/core/v1"
+)
+
+// EndpointApplyConfiguration represents an declarative configuration of the Endpoint type for use
+// with apply.
+type EndpointApplyConfiguration struct {
+	Ref        *v1.ObjectReference                                         `json:"ref,omitempty"`
+	URI        *string                                                     `json:"uri,omitempty"`
+	Properties *EndpointPropertiesApplyConfiguration                       `json:"properties,omitempty"`
+	Types      map[camelv1alpha1.EventSlot]EventTypeSpecApplyConfiguration `json:"types,omitempty"`
+}
+
+// EndpointApplyConfiguration constructs an declarative configuration of the Endpoint type for use with
+// apply.
+func Endpoint() *EndpointApplyConfiguration {
+	return &EndpointApplyConfiguration{}
+}
+
+// WithRef sets the Ref field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Ref field is set to the value of the last call.
+func (b *EndpointApplyConfiguration) WithRef(value v1.ObjectReference) *EndpointApplyConfiguration {
+	b.Ref = &value
+	return b
+}
+
+// WithURI sets the URI field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the URI field is set to the value of the last call.
+func (b *EndpointApplyConfiguration) WithURI(value string) *EndpointApplyConfiguration {
+	b.URI = &value
+	return b
+}
+
+// WithProperties sets the Properties field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Properties field is set to the value of the last call.
+func (b *EndpointApplyConfiguration) WithProperties(value *EndpointPropertiesApplyConfiguration) *EndpointApplyConfiguration {
+	b.Properties = value
+	return b
+}
+
+// WithTypes puts the entries into the Types field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Types field,
+// overwriting an existing map entries in Types field with the same key.
+func (b *EndpointApplyConfiguration) WithTypes(entries map[camelv1alpha1.EventSlot]EventTypeSpecApplyConfiguration) *EndpointApplyConfiguration {
+	if b.Types == nil && len(entries) > 0 {
+		b.Types = make(map[camelv1alpha1.EventSlot]EventTypeSpecApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Types[k] = v
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpointproperties.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpointproperties.go
new file mode 100644
index 000000000..949e8f7ea
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpointproperties.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// EndpointPropertiesApplyConfiguration represents an declarative configuration of the EndpointProperties type for use
+// with apply.
+type EndpointPropertiesApplyConfiguration struct {
+	v1alpha1.RawMessage `json:",inline"`
+}
+
+// EndpointPropertiesApplyConfiguration constructs an declarative configuration of the EndpointProperties type for use with
+// apply.
+func EndpointProperties() *EndpointPropertiesApplyConfiguration {
+	return &EndpointPropertiesApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/errorhandlerspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/errorhandlerspec.go
new file mode 100644
index 000000000..cc38710e9
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/errorhandlerspec.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// ErrorHandlerSpecApplyConfiguration represents an declarative configuration of the ErrorHandlerSpec type for use
+// with apply.
+type ErrorHandlerSpecApplyConfiguration struct {
+	v1alpha1.RawMessage `json:",omitempty,inline"`
+}
+
+// ErrorHandlerSpecApplyConfiguration constructs an declarative configuration of the ErrorHandlerSpec type for use with
+// apply.
+func ErrorHandlerSpec() *ErrorHandlerSpecApplyConfiguration {
+	return &ErrorHandlerSpecApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/eventtypespec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/eventtypespec.go
new file mode 100644
index 000000000..3255f77be
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/eventtypespec.go
@@ -0,0 +1,49 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+// EventTypeSpecApplyConfiguration represents an declarative configuration of the EventTypeSpec type for use
+// with apply.
+type EventTypeSpecApplyConfiguration struct {
+	MediaType *string                            `json:"mediaType,omitempty"`
+	Schema    *JSONSchemaPropsApplyConfiguration `json:"schema,omitempty"`
+}
+
+// EventTypeSpecApplyConfiguration constructs an declarative configuration of the EventTypeSpec type for use with
+// apply.
+func EventTypeSpec() *EventTypeSpecApplyConfiguration {
+	return &EventTypeSpecApplyConfiguration{}
+}
+
+// WithMediaType sets the MediaType field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MediaType field is set to the value of the last call.
+func (b *EventTypeSpecApplyConfiguration) WithMediaType(value string) *EventTypeSpecApplyConfiguration {
+	b.MediaType = &value
+	return b
+}
+
+// WithSchema sets the Schema field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Schema field is set to the value of the last call.
+func (b *EventTypeSpecApplyConfiguration) WithSchema(value *JSONSchemaPropsApplyConfiguration) *EventTypeSpecApplyConfiguration {
+	b.Schema = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/externaldocumentation.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/externaldocumentation.go
new file mode 100644
index 000000000..35b5f1d5d
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/externaldocumentation.go
@@ -0,0 +1,49 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+// ExternalDocumentationApplyConfiguration represents an declarative configuration of the ExternalDocumentation type for use
+// with apply.
+type ExternalDocumentationApplyConfiguration struct {
+	Description *string `json:"description,omitempty"`
+	URL         *string `json:"url,omitempty"`
+}
+
+// ExternalDocumentationApplyConfiguration constructs an declarative configuration of the ExternalDocumentation type for use with
+// apply.
+func ExternalDocumentation() *ExternalDocumentationApplyConfiguration {
+	return &ExternalDocumentationApplyConfiguration{}
+}
+
+// WithDescription sets the Description field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Description field is set to the value of the last call.
+func (b *ExternalDocumentationApplyConfiguration) WithDescription(value string) *ExternalDocumentationApplyConfiguration {
+	b.Description = &value
+	return b
+}
+
+// WithURL sets the URL field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the URL field is set to the value of the last call.
+func (b *ExternalDocumentationApplyConfiguration) WithURL(value string) *ExternalDocumentationApplyConfiguration {
+	b.URL = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/json.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/json.go
new file mode 100644
index 000000000..fd4d7ed22
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/json.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// JSONApplyConfiguration represents an declarative configuration of the JSON type for use
+// with apply.
+type JSONApplyConfiguration struct {
+	v1alpha1.RawMessage `json:",inline"`
+}
+
+// JSONApplyConfiguration constructs an declarative configuration of the JSON type for use with
+// apply.
+func JSON() *JSONApplyConfiguration {
+	return &JSONApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprop.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprop.go
new file mode 100644
index 000000000..baf451cb5
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprop.go
@@ -0,0 +1,249 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	json "encoding/json"
+)
+
+// JSONSchemaPropApplyConfiguration represents an declarative configuration of the JSONSchemaProp type for use
+// with apply.
+type JSONSchemaPropApplyConfiguration struct {
+	ID               *string                  `json:"id,omitempty"`
+	Description      *string                  `json:"description,omitempty"`
+	Type             *string                  `json:"type,omitempty"`
+	Format           *string                  `json:"format,omitempty"`
+	Title            *string                  `json:"title,omitempty"`
+	Default          *JSONApplyConfiguration  `json:"default,omitempty"`
+	Maximum          *json.Number             `json:"maximum,omitempty"`
+	ExclusiveMaximum *bool                    `json:"exclusiveMaximum,omitempty"`
+	Minimum          *json.Number             `json:"minimum,omitempty"`
+	ExclusiveMinimum *bool                    `json:"exclusiveMinimum,omitempty"`
+	MaxLength        *int64                   `json:"maxLength,omitempty"`
+	MinLength        *int64                   `json:"minLength,omitempty"`
+	Pattern          *string                  `json:"pattern,omitempty"`
+	MaxItems         *int64                   `json:"maxItems,omitempty"`
+	MinItems         *int64                   `json:"minItems,omitempty"`
+	UniqueItems      *bool                    `json:"uniqueItems,omitempty"`
+	MaxProperties    *int64                   `json:"maxProperties,omitempty"`
+	MinProperties    *int64                   `json:"minProperties,omitempty"`
+	MultipleOf       *json.Number             `json:"multipleOf,omitempty"`
+	Enum             []JSONApplyConfiguration `json:"enum,omitempty"`
+	Example          *JSONApplyConfiguration  `json:"example,omitempty"`
+	Nullable         *bool                    `json:"nullable,omitempty"`
+	XDescriptors     []string                 `json:"x-descriptors,omitempty"`
+}
+
+// JSONSchemaPropApplyConfiguration constructs an declarative configuration of the JSONSchemaProp type for use with
+// apply.
+func JSONSchemaProp() *JSONSchemaPropApplyConfiguration {
+	return &JSONSchemaPropApplyConfiguration{}
+}
+
+// WithID sets the ID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ID field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithID(value string) *JSONSchemaPropApplyConfiguration {
+	b.ID = &value
+	return b
+}
+
+// WithDescription sets the Description field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Description field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithDescription(value string) *JSONSchemaPropApplyConfiguration {
+	b.Description = &value
+	return b
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithType(value string) *JSONSchemaPropApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithFormat sets the Format field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Format field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithFormat(value string) *JSONSchemaPropApplyConfiguration {
+	b.Format = &value
+	return b
+}
+
+// WithTitle sets the Title field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Title field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithTitle(value string) *JSONSchemaPropApplyConfiguration {
+	b.Title = &value
+	return b
+}
+
+// WithDefault sets the Default field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Default field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithDefault(value *JSONApplyConfiguration) *JSONSchemaPropApplyConfiguration {
+	b.Default = value
+	return b
+}
+
+// WithMaximum sets the Maximum field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Maximum field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMaximum(value json.Number) *JSONSchemaPropApplyConfiguration {
+	b.Maximum = &value
+	return b
+}
+
+// WithExclusiveMaximum sets the ExclusiveMaximum field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ExclusiveMaximum field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithExclusiveMaximum(value bool) *JSONSchemaPropApplyConfiguration {
+	b.ExclusiveMaximum = &value
+	return b
+}
+
+// WithMinimum sets the Minimum field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Minimum field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMinimum(value json.Number) *JSONSchemaPropApplyConfiguration {
+	b.Minimum = &value
+	return b
+}
+
+// WithExclusiveMinimum sets the ExclusiveMinimum field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ExclusiveMinimum field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithExclusiveMinimum(value bool) *JSONSchemaPropApplyConfiguration {
+	b.ExclusiveMinimum = &value
+	return b
+}
+
+// WithMaxLength sets the MaxLength field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MaxLength field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMaxLength(value int64) *JSONSchemaPropApplyConfiguration {
+	b.MaxLength = &value
+	return b
+}
+
+// WithMinLength sets the MinLength field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MinLength field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMinLength(value int64) *JSONSchemaPropApplyConfiguration {
+	b.MinLength = &value
+	return b
+}
+
+// WithPattern sets the Pattern field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Pattern field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithPattern(value string) *JSONSchemaPropApplyConfiguration {
+	b.Pattern = &value
+	return b
+}
+
+// WithMaxItems sets the MaxItems field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MaxItems field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMaxItems(value int64) *JSONSchemaPropApplyConfiguration {
+	b.MaxItems = &value
+	return b
+}
+
+// WithMinItems sets the MinItems field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MinItems field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMinItems(value int64) *JSONSchemaPropApplyConfiguration {
+	b.MinItems = &value
+	return b
+}
+
+// WithUniqueItems sets the UniqueItems field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UniqueItems field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithUniqueItems(value bool) *JSONSchemaPropApplyConfiguration {
+	b.UniqueItems = &value
+	return b
+}
+
+// WithMaxProperties sets the MaxProperties field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MaxProperties field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMaxProperties(value int64) *JSONSchemaPropApplyConfiguration {
+	b.MaxProperties = &value
+	return b
+}
+
+// WithMinProperties sets the MinProperties field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MinProperties field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMinProperties(value int64) *JSONSchemaPropApplyConfiguration {
+	b.MinProperties = &value
+	return b
+}
+
+// WithMultipleOf sets the MultipleOf field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the MultipleOf field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithMultipleOf(value json.Number) *JSONSchemaPropApplyConfiguration {
+	b.MultipleOf = &value
+	return b
+}
+
+// WithEnum adds the given value to the Enum field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Enum field.
+func (b *JSONSchemaPropApplyConfiguration) WithEnum(values ...*JSONApplyConfiguration) *JSONSchemaPropApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithEnum")
+		}
+		b.Enum = append(b.Enum, *values[i])
+	}
+	return b
+}
+
+// WithExample sets the Example field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Example field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithExample(value *JSONApplyConfiguration) *JSONSchemaPropApplyConfiguration {
+	b.Example = value
+	return b
+}
+
+// WithNullable sets the Nullable field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Nullable field is set to the value of the last call.
+func (b *JSONSchemaPropApplyConfiguration) WithNullable(value bool) *JSONSchemaPropApplyConfiguration {
+	b.Nullable = &value
+	return b
+}
+
+// WithXDescriptors adds the given value to the XDescriptors field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the XDescriptors field.
+func (b *JSONSchemaPropApplyConfiguration) WithXDescriptors(values ...string) *JSONSchemaPropApplyConfiguration {
+	for i := range values {
+		b.XDescriptors = append(b.XDescriptors, values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprops.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprops.go
new file mode 100644
index 000000000..d2aa07176
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprops.go
@@ -0,0 +1,124 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	camelv1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// JSONSchemaPropsApplyConfiguration represents an declarative configuration of the JSONSchemaProps type for use
+// with apply.
+type JSONSchemaPropsApplyConfiguration struct {
+	ID           *string                                     `json:"id,omitempty"`
+	Description  *string                                     `json:"description,omitempty"`
+	Title        *string                                     `json:"title,omitempty"`
+	Properties   map[string]JSONSchemaPropApplyConfiguration `json:"properties,omitempty"`
+	Required     []string                                    `json:"required,omitempty"`
+	Example      *JSONApplyConfiguration                     `json:"example,omitempty"`
+	ExternalDocs *ExternalDocumentationApplyConfiguration    `json:"externalDocs,omitempty"`
+	Schema       *camelv1alpha1.JSONSchemaURL                `json:"$schema,omitempty"`
+	Type         *string                                     `json:"type,omitempty"`
+}
+
+// JSONSchemaPropsApplyConfiguration constructs an declarative configuration of the JSONSchemaProps type for use with
+// apply.
+func JSONSchemaProps() *JSONSchemaPropsApplyConfiguration {
+	return &JSONSchemaPropsApplyConfiguration{}
+}
+
+// WithID sets the ID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ID field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithID(value string) *JSONSchemaPropsApplyConfiguration {
+	b.ID = &value
+	return b
+}
+
+// WithDescription sets the Description field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Description field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithDescription(value string) *JSONSchemaPropsApplyConfiguration {
+	b.Description = &value
+	return b
+}
+
+// WithTitle sets the Title field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Title field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithTitle(value string) *JSONSchemaPropsApplyConfiguration {
+	b.Title = &value
+	return b
+}
+
+// WithProperties puts the entries into the Properties field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Properties field,
+// overwriting an existing map entries in Properties field with the same key.
+func (b *JSONSchemaPropsApplyConfiguration) WithProperties(entries map[string]JSONSchemaPropApplyConfiguration) *JSONSchemaPropsApplyConfiguration {
+	if b.Properties == nil && len(entries) > 0 {
+		b.Properties = make(map[string]JSONSchemaPropApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Properties[k] = v
+	}
+	return b
+}
+
+// WithRequired adds the given value to the Required field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Required field.
+func (b *JSONSchemaPropsApplyConfiguration) WithRequired(values ...string) *JSONSchemaPropsApplyConfiguration {
+	for i := range values {
+		b.Required = append(b.Required, values[i])
+	}
+	return b
+}
+
+// WithExample sets the Example field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Example field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithExample(value *JSONApplyConfiguration) *JSONSchemaPropsApplyConfiguration {
+	b.Example = value
+	return b
+}
+
+// WithExternalDocs sets the ExternalDocs field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ExternalDocs field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithExternalDocs(value *ExternalDocumentationApplyConfiguration) *JSONSchemaPropsApplyConfiguration {
+	b.ExternalDocs = value
+	return b
+}
+
+// WithSchema sets the Schema field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Schema field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithSchema(value camelv1alpha1.JSONSchemaURL) *JSONSchemaPropsApplyConfiguration {
+	b.Schema = &value
+	return b
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *JSONSchemaPropsApplyConfiguration) WithType(value string) *JSONSchemaPropsApplyConfiguration {
+	b.Type = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kamelet.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kamelet.go
new file mode 100644
index 000000000..f9870e1ca
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kamelet.go
@@ -0,0 +1,220 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// KameletApplyConfiguration represents an declarative configuration of the Kamelet type for use
+// with apply.
+type KameletApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Spec                             *KameletSpecApplyConfiguration   `json:"spec,omitempty"`
+	Status                           *KameletStatusApplyConfiguration `json:"status,omitempty"`
+}
+
+// Kamelet constructs an declarative configuration of the Kamelet type for use with
+// apply.
+func Kamelet(name, namespace string) *KameletApplyConfiguration {
+	b := &KameletApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("Kamelet")
+	b.WithAPIVersion("camel.apache.org/v1alpha1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithKind(value string) *KameletApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithAPIVersion(value string) *KameletApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithName(value string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithGenerateName(value string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithNamespace(value string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithUID(value types.UID) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithResourceVersion(value string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithGeneration(value int64) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithCreationTimestamp(value metav1.Time) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *KameletApplyConfiguration) WithLabels(entries map[string]string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *KameletApplyConfiguration) WithAnnotations(entries map[string]string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *KameletApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *KameletApplyConfiguration) WithFinalizers(values ...string) *KameletApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *KameletApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithSpec(value *KameletSpecApplyConfiguration) *KameletApplyConfiguration {
+	b.Spec = value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *KameletApplyConfiguration) WithStatus(value *KameletStatusApplyConfiguration) *KameletApplyConfiguration {
+	b.Status = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbinding.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbinding.go
new file mode 100644
index 000000000..794bed9d5
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbinding.go
@@ -0,0 +1,220 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	types "k8s.io/apimachinery/pkg/types"
+	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
+)
+
+// KameletBindingApplyConfiguration represents an declarative configuration of the KameletBinding type for use
+// with apply.
+type KameletBindingApplyConfiguration struct {
+	v1.TypeMetaApplyConfiguration    `json:",inline"`
+	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
+	Spec                             *KameletBindingSpecApplyConfiguration   `json:"spec,omitempty"`
+	Status                           *KameletBindingStatusApplyConfiguration `json:"status,omitempty"`
+}
+
+// KameletBinding constructs an declarative configuration of the KameletBinding type for use with
+// apply.
+func KameletBinding(name, namespace string) *KameletBindingApplyConfiguration {
+	b := &KameletBindingApplyConfiguration{}
+	b.WithName(name)
+	b.WithNamespace(namespace)
+	b.WithKind("KameletBinding")
+	b.WithAPIVersion("camel.apache.org/v1alpha1")
+	return b
+}
+
+// WithKind sets the Kind field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Kind field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithKind(value string) *KameletBindingApplyConfiguration {
+	b.Kind = &value
+	return b
+}
+
+// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the APIVersion field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithAPIVersion(value string) *KameletBindingApplyConfiguration {
+	b.APIVersion = &value
+	return b
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithName(value string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Name = &value
+	return b
+}
+
+// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the GenerateName field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithGenerateName(value string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.GenerateName = &value
+	return b
+}
+
+// WithNamespace sets the Namespace field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Namespace field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithNamespace(value string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Namespace = &value
+	return b
+}
+
+// WithUID sets the UID field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the UID field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithUID(value types.UID) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.UID = &value
+	return b
+}
+
+// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ResourceVersion field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithResourceVersion(value string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.ResourceVersion = &value
+	return b
+}
+
+// WithGeneration sets the Generation field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Generation field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithGeneration(value int64) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.Generation = &value
+	return b
+}
+
+// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the CreationTimestamp field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.CreationTimestamp = &value
+	return b
+}
+
+// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionTimestamp = &value
+	return b
+}
+
+// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	b.DeletionGracePeriodSeconds = &value
+	return b
+}
+
+// WithLabels puts the entries into the Labels field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Labels field,
+// overwriting an existing map entries in Labels field with the same key.
+func (b *KameletBindingApplyConfiguration) WithLabels(entries map[string]string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Labels == nil && len(entries) > 0 {
+		b.Labels = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Labels[k] = v
+	}
+	return b
+}
+
+// WithAnnotations puts the entries into the Annotations field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Annotations field,
+// overwriting an existing map entries in Annotations field with the same key.
+func (b *KameletBindingApplyConfiguration) WithAnnotations(entries map[string]string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	if b.Annotations == nil && len(entries) > 0 {
+		b.Annotations = make(map[string]string, len(entries))
+	}
+	for k, v := range entries {
+		b.Annotations[k] = v
+	}
+	return b
+}
+
+// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
+func (b *KameletBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithOwnerReferences")
+		}
+		b.OwnerReferences = append(b.OwnerReferences, *values[i])
+	}
+	return b
+}
+
+// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Finalizers field.
+func (b *KameletBindingApplyConfiguration) WithFinalizers(values ...string) *KameletBindingApplyConfiguration {
+	b.ensureObjectMetaApplyConfigurationExists()
+	for i := range values {
+		b.Finalizers = append(b.Finalizers, values[i])
+	}
+	return b
+}
+
+func (b *KameletBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
+	if b.ObjectMetaApplyConfiguration == nil {
+		b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
+	}
+}
+
+// WithSpec sets the Spec field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Spec field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithSpec(value *KameletBindingSpecApplyConfiguration) *KameletBindingApplyConfiguration {
+	b.Spec = value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *KameletBindingApplyConfiguration) WithStatus(value *KameletBindingStatusApplyConfiguration) *KameletBindingApplyConfiguration {
+	b.Status = value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingcondition.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingcondition.go
new file mode 100644
index 000000000..75fc5be08
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingcondition.go
@@ -0,0 +1,91 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	v1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// KameletBindingConditionApplyConfiguration represents an declarative configuration of the KameletBindingCondition type for use
+// with apply.
+type KameletBindingConditionApplyConfiguration struct {
+	Type               *v1alpha1.KameletBindingConditionType `json:"type,omitempty"`
+	Status             *v1.ConditionStatus                   `json:"status,omitempty"`
+	LastUpdateTime     *metav1.Time                          `json:"lastUpdateTime,omitempty"`
+	LastTransitionTime *metav1.Time                          `json:"lastTransitionTime,omitempty"`
+	Reason             *string                               `json:"reason,omitempty"`
+	Message            *string                               `json:"message,omitempty"`
+}
+
+// KameletBindingConditionApplyConfiguration constructs an declarative configuration of the KameletBindingCondition type for use with
+// apply.
+func KameletBindingCondition() *KameletBindingConditionApplyConfiguration {
+	return &KameletBindingConditionApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *KameletBindingConditionApplyConfiguration) WithType(value v1alpha1.KameletBindingConditionType) *KameletBindingConditionApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *KameletBindingConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *KameletBindingConditionApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastUpdateTime field is set to the value of the last call.
+func (b *KameletBindingConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *KameletBindingConditionApplyConfiguration {
+	b.LastUpdateTime = &value
+	return b
+}
+
+// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastTransitionTime field is set to the value of the last call.
+func (b *KameletBindingConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *KameletBindingConditionApplyConfiguration {
+	b.LastTransitionTime = &value
+	return b
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *KameletBindingConditionApplyConfiguration) WithReason(value string) *KameletBindingConditionApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithMessage sets the Message field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Message field is set to the value of the last call.
+func (b *KameletBindingConditionApplyConfiguration) WithMessage(value string) *KameletBindingConditionApplyConfiguration {
+	b.Message = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingspec.go
new file mode 100644
index 000000000..23e74bcc0
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingspec.go
@@ -0,0 +1,94 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
+)
+
+// KameletBindingSpecApplyConfiguration represents an declarative configuration of the KameletBindingSpec type for use
+// with apply.
+type KameletBindingSpecApplyConfiguration struct {
+	Integration  *v1.IntegrationSpecApplyConfiguration `json:"integration,omitempty"`
+	Source       *EndpointApplyConfiguration           `json:"source,omitempty"`
+	Sink         *EndpointApplyConfiguration           `json:"sink,omitempty"`
+	ErrorHandler *ErrorHandlerSpecApplyConfiguration   `json:"errorHandler,omitempty"`
+	Steps        []EndpointApplyConfiguration          `json:"steps,omitempty"`
+	Replicas     *int32                                `json:"replicas,omitempty"`
+}
+
+// KameletBindingSpecApplyConfiguration constructs an declarative configuration of the KameletBindingSpec type for use with
+// apply.
+func KameletBindingSpec() *KameletBindingSpecApplyConfiguration {
+	return &KameletBindingSpecApplyConfiguration{}
+}
+
+// WithIntegration sets the Integration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Integration field is set to the value of the last call.
+func (b *KameletBindingSpecApplyConfiguration) WithIntegration(value *v1.IntegrationSpecApplyConfiguration) *KameletBindingSpecApplyConfiguration {
+	b.Integration = value
+	return b
+}
+
+// WithSource sets the Source field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Source field is set to the value of the last call.
+func (b *KameletBindingSpecApplyConfiguration) WithSource(value *EndpointApplyConfiguration) *KameletBindingSpecApplyConfiguration {
+	b.Source = value
+	return b
+}
+
+// WithSink sets the Sink field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Sink field is set to the value of the last call.
+func (b *KameletBindingSpecApplyConfiguration) WithSink(value *EndpointApplyConfiguration) *KameletBindingSpecApplyConfiguration {
+	b.Sink = value
+	return b
+}
+
+// WithErrorHandler sets the ErrorHandler field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ErrorHandler field is set to the value of the last call.
+func (b *KameletBindingSpecApplyConfiguration) WithErrorHandler(value *ErrorHandlerSpecApplyConfiguration) *KameletBindingSpecApplyConfiguration {
+	b.ErrorHandler = value
+	return b
+}
+
+// WithSteps adds the given value to the Steps field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Steps field.
+func (b *KameletBindingSpecApplyConfiguration) WithSteps(values ...*EndpointApplyConfiguration) *KameletBindingSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithSteps")
+		}
+		b.Steps = append(b.Steps, *values[i])
+	}
+	return b
+}
+
+// WithReplicas sets the Replicas field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Replicas field is set to the value of the last call.
+func (b *KameletBindingSpecApplyConfiguration) WithReplicas(value int32) *KameletBindingSpecApplyConfiguration {
+	b.Replicas = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingstatus.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingstatus.go
new file mode 100644
index 000000000..44844fd5a
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingstatus.go
@@ -0,0 +1,85 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// KameletBindingStatusApplyConfiguration represents an declarative configuration of the KameletBindingStatus type for use
+// with apply.
+type KameletBindingStatusApplyConfiguration struct {
+	ObservedGeneration *int64                                      `json:"observedGeneration,omitempty"`
+	Phase              *v1alpha1.KameletBindingPhase               `json:"phase,omitempty"`
+	Conditions         []KameletBindingConditionApplyConfiguration `json:"conditions,omitempty"`
+	Replicas           *int32                                      `json:"replicas,omitempty"`
+	Selector           *string                                     `json:"selector,omitempty"`
+}
+
+// KameletBindingStatusApplyConfiguration constructs an declarative configuration of the KameletBindingStatus type for use with
+// apply.
+func KameletBindingStatus() *KameletBindingStatusApplyConfiguration {
+	return &KameletBindingStatusApplyConfiguration{}
+}
+
+// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ObservedGeneration field is set to the value of the last call.
+func (b *KameletBindingStatusApplyConfiguration) WithObservedGeneration(value int64) *KameletBindingStatusApplyConfiguration {
+	b.ObservedGeneration = &value
+	return b
+}
+
+// WithPhase sets the Phase field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Phase field is set to the value of the last call.
+func (b *KameletBindingStatusApplyConfiguration) WithPhase(value v1alpha1.KameletBindingPhase) *KameletBindingStatusApplyConfiguration {
+	b.Phase = &value
+	return b
+}
+
+// WithConditions adds the given value to the Conditions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Conditions field.
+func (b *KameletBindingStatusApplyConfiguration) WithConditions(values ...*KameletBindingConditionApplyConfiguration) *KameletBindingStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConditions")
+		}
+		b.Conditions = append(b.Conditions, *values[i])
+	}
+	return b
+}
+
+// WithReplicas sets the Replicas field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Replicas field is set to the value of the last call.
+func (b *KameletBindingStatusApplyConfiguration) WithReplicas(value int32) *KameletBindingStatusApplyConfiguration {
+	b.Replicas = &value
+	return b
+}
+
+// WithSelector sets the Selector field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Selector field is set to the value of the last call.
+func (b *KameletBindingStatusApplyConfiguration) WithSelector(value string) *KameletBindingStatusApplyConfiguration {
+	b.Selector = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletcondition.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletcondition.go
new file mode 100644
index 000000000..1e07765af
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletcondition.go
@@ -0,0 +1,91 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	v1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// KameletConditionApplyConfiguration represents an declarative configuration of the KameletCondition type for use
+// with apply.
+type KameletConditionApplyConfiguration struct {
+	Type               *v1alpha1.KameletConditionType `json:"type,omitempty"`
+	Status             *v1.ConditionStatus            `json:"status,omitempty"`
+	LastUpdateTime     *metav1.Time                   `json:"lastUpdateTime,omitempty"`
+	LastTransitionTime *metav1.Time                   `json:"lastTransitionTime,omitempty"`
+	Reason             *string                        `json:"reason,omitempty"`
+	Message            *string                        `json:"message,omitempty"`
+}
+
+// KameletConditionApplyConfiguration constructs an declarative configuration of the KameletCondition type for use with
+// apply.
+func KameletCondition() *KameletConditionApplyConfiguration {
+	return &KameletConditionApplyConfiguration{}
+}
+
+// WithType sets the Type field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Type field is set to the value of the last call.
+func (b *KameletConditionApplyConfiguration) WithType(value v1alpha1.KameletConditionType) *KameletConditionApplyConfiguration {
+	b.Type = &value
+	return b
+}
+
+// WithStatus sets the Status field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Status field is set to the value of the last call.
+func (b *KameletConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *KameletConditionApplyConfiguration {
+	b.Status = &value
+	return b
+}
+
+// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastUpdateTime field is set to the value of the last call.
+func (b *KameletConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *KameletConditionApplyConfiguration {
+	b.LastUpdateTime = &value
+	return b
+}
+
+// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the LastTransitionTime field is set to the value of the last call.
+func (b *KameletConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *KameletConditionApplyConfiguration {
+	b.LastTransitionTime = &value
+	return b
+}
+
+// WithReason sets the Reason field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Reason field is set to the value of the last call.
+func (b *KameletConditionApplyConfiguration) WithReason(value string) *KameletConditionApplyConfiguration {
+	b.Reason = &value
+	return b
+}
+
+// WithMessage sets the Message field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Message field is set to the value of the last call.
+func (b *KameletConditionApplyConfiguration) WithMessage(value string) *KameletConditionApplyConfiguration {
+	b.Message = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletproperty.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletproperty.go
new file mode 100644
index 000000000..462b45dc7
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletproperty.go
@@ -0,0 +1,49 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+// KameletPropertyApplyConfiguration represents an declarative configuration of the KameletProperty type for use
+// with apply.
+type KameletPropertyApplyConfiguration struct {
+	Name    *string `json:"name,omitempty"`
+	Default *string `json:"default,omitempty"`
+}
+
+// KameletPropertyApplyConfiguration constructs an declarative configuration of the KameletProperty type for use with
+// apply.
+func KameletProperty() *KameletPropertyApplyConfiguration {
+	return &KameletPropertyApplyConfiguration{}
+}
+
+// WithName sets the Name field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Name field is set to the value of the last call.
+func (b *KameletPropertyApplyConfiguration) WithName(value string) *KameletPropertyApplyConfiguration {
+	b.Name = &value
+	return b
+}
+
+// WithDefault sets the Default field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Default field is set to the value of the last call.
+func (b *KameletPropertyApplyConfiguration) WithDefault(value string) *KameletPropertyApplyConfiguration {
+	b.Default = &value
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletspec.go
new file mode 100644
index 000000000..dee47d660
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletspec.go
@@ -0,0 +1,94 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	camelv1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	v1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
+)
+
+// KameletSpecApplyConfiguration represents an declarative configuration of the KameletSpec type for use
+// with apply.
+type KameletSpecApplyConfiguration struct {
+	Definition   *JSONSchemaPropsApplyConfiguration                          `json:"definition,omitempty"`
+	Sources      []v1.SourceSpecApplyConfiguration                           `json:"sources,omitempty"`
+	Template     *TemplateApplyConfiguration                                 `json:"template,omitempty"`
+	Types        map[camelv1alpha1.EventSlot]EventTypeSpecApplyConfiguration `json:"types,omitempty"`
+	Dependencies []string                                                    `json:"dependencies,omitempty"`
+}
+
+// KameletSpecApplyConfiguration constructs an declarative configuration of the KameletSpec type for use with
+// apply.
+func KameletSpec() *KameletSpecApplyConfiguration {
+	return &KameletSpecApplyConfiguration{}
+}
+
+// WithDefinition sets the Definition field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Definition field is set to the value of the last call.
+func (b *KameletSpecApplyConfiguration) WithDefinition(value *JSONSchemaPropsApplyConfiguration) *KameletSpecApplyConfiguration {
+	b.Definition = value
+	return b
+}
+
+// WithSources adds the given value to the Sources field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Sources field.
+func (b *KameletSpecApplyConfiguration) WithSources(values ...*v1.SourceSpecApplyConfiguration) *KameletSpecApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithSources")
+		}
+		b.Sources = append(b.Sources, *values[i])
+	}
+	return b
+}
+
+// WithTemplate sets the Template field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Template field is set to the value of the last call.
+func (b *KameletSpecApplyConfiguration) WithTemplate(value *TemplateApplyConfiguration) *KameletSpecApplyConfiguration {
+	b.Template = value
+	return b
+}
+
+// WithTypes puts the entries into the Types field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, the entries provided by each call will be put on the Types field,
+// overwriting an existing map entries in Types field with the same key.
+func (b *KameletSpecApplyConfiguration) WithTypes(entries map[camelv1alpha1.EventSlot]EventTypeSpecApplyConfiguration) *KameletSpecApplyConfiguration {
+	if b.Types == nil && len(entries) > 0 {
+		b.Types = make(map[camelv1alpha1.EventSlot]EventTypeSpecApplyConfiguration, len(entries))
+	}
+	for k, v := range entries {
+		b.Types[k] = v
+	}
+	return b
+}
+
+// WithDependencies adds the given value to the Dependencies field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Dependencies field.
+func (b *KameletSpecApplyConfiguration) WithDependencies(values ...string) *KameletSpecApplyConfiguration {
+	for i := range values {
+		b.Dependencies = append(b.Dependencies, values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletstatus.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletstatus.go
new file mode 100644
index 000000000..546169030
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletstatus.go
@@ -0,0 +1,81 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// KameletStatusApplyConfiguration represents an declarative configuration of the KameletStatus type for use
+// with apply.
+type KameletStatusApplyConfiguration struct {
+	ObservedGeneration *int64                               `json:"observedGeneration,omitempty"`
+	Phase              *v1alpha1.KameletPhase               `json:"phase,omitempty"`
+	Conditions         []KameletConditionApplyConfiguration `json:"conditions,omitempty"`
+	Properties         []KameletPropertyApplyConfiguration  `json:"properties,omitempty"`
+}
+
+// KameletStatusApplyConfiguration constructs an declarative configuration of the KameletStatus type for use with
+// apply.
+func KameletStatus() *KameletStatusApplyConfiguration {
+	return &KameletStatusApplyConfiguration{}
+}
+
+// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the ObservedGeneration field is set to the value of the last call.
+func (b *KameletStatusApplyConfiguration) WithObservedGeneration(value int64) *KameletStatusApplyConfiguration {
+	b.ObservedGeneration = &value
+	return b
+}
+
+// WithPhase sets the Phase field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the Phase field is set to the value of the last call.
+func (b *KameletStatusApplyConfiguration) WithPhase(value v1alpha1.KameletPhase) *KameletStatusApplyConfiguration {
+	b.Phase = &value
+	return b
+}
+
+// WithConditions adds the given value to the Conditions field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Conditions field.
+func (b *KameletStatusApplyConfiguration) WithConditions(values ...*KameletConditionApplyConfiguration) *KameletStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithConditions")
+		}
+		b.Conditions = append(b.Conditions, *values[i])
+	}
+	return b
+}
+
+// WithProperties adds the given value to the Properties field in the declarative configuration
+// and returns the receiver, so that objects can be build by chaining "With" function invocations.
+// If called multiple times, values provided by each call will be appended to the Properties field.
+func (b *KameletStatusApplyConfiguration) WithProperties(values ...*KameletPropertyApplyConfiguration) *KameletStatusApplyConfiguration {
+	for i := range values {
+		if values[i] == nil {
+			panic("nil value passed to WithProperties")
+		}
+		b.Properties = append(b.Properties, *values[i])
+	}
+	return b
+}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/template.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/template.go
new file mode 100644
index 000000000..37b468338
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/camel/v1alpha1/template.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+// TemplateApplyConfiguration represents an declarative configuration of the Template type for use
+// with apply.
+type TemplateApplyConfiguration struct {
+	v1alpha1.RawMessage `json:",inline"`
+}
+
+// TemplateApplyConfiguration constructs an declarative configuration of the Template type for use with
+// apply.
+func Template() *TemplateApplyConfiguration {
+	return &TemplateApplyConfiguration{}
+}
diff --git a/pkg/client/camel/applyconfiguration/internal/internal.go b/pkg/client/camel/applyconfiguration/internal/internal.go
new file mode 100644
index 000000000..48b4ed140
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/internal/internal.go
@@ -0,0 +1,63 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package internal
+
+import (
+	"fmt"
+	"sync"
+
+	typed "sigs.k8s.io/structured-merge-diff/v4/typed"
+)
+
+func Parser() *typed.Parser {
+	parserOnce.Do(func() {
+		var err error
+		parser, err = typed.NewParser(schemaYAML)
+		if err != nil {
+			panic(fmt.Sprintf("Failed to parse schema: %v", err))
+		}
+	})
+	return parser
+}
+
+var parserOnce sync.Once
+var parser *typed.Parser
+var schemaYAML = typed.YAMLObject(`types:
+- name: __untyped_atomic_
+  scalar: untyped
+  list:
+    elementType:
+      namedType: __untyped_atomic_
+    elementRelationship: atomic
+  map:
+    elementType:
+      namedType: __untyped_atomic_
+    elementRelationship: atomic
+- name: __untyped_deduced_
+  scalar: untyped
+  list:
+    elementType:
+      namedType: __untyped_atomic_
+    elementRelationship: atomic
+  map:
+    elementType:
+      namedType: __untyped_deduced_
+    elementRelationship: separable
+`)
diff --git a/pkg/client/camel/applyconfiguration/utils.go b/pkg/client/camel/applyconfiguration/utils.go
new file mode 100644
index 000000000..e89702917
--- /dev/null
+++ b/pkg/client/camel/applyconfiguration/utils.go
@@ -0,0 +1,196 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package applyconfiguration
+
+import (
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	camelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
+	camelv1alpha1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1alpha1"
+	schema "k8s.io/apimachinery/pkg/runtime/schema"
+)
+
+// ForKind returns an apply configuration type for the given GroupVersionKind, or nil if no
+// apply configuration type exists for the given GroupVersionKind.
+func ForKind(kind schema.GroupVersionKind) interface{} {
+	switch kind {
+	// Group=camel.apache.org, Version=v1
+	case v1.SchemeGroupVersion.WithKind("AddonTrait"):
+		return &camelv1.AddonTraitApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Artifact"):
+		return &camelv1.ArtifactApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("BaseTask"):
+		return &camelv1.BaseTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Build"):
+		return &camelv1.BuildApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("BuildahTask"):
+		return &camelv1.BuildahTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("BuildCondition"):
+		return &camelv1.BuildConditionApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("BuilderTask"):
+		return &camelv1.BuilderTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("BuildSpec"):
+		return &camelv1.BuildSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("BuildStatus"):
+		return &camelv1.BuildStatusApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelArtifact"):
+		return &camelv1.CamelArtifactApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelArtifactDependency"):
+		return &camelv1.CamelArtifactDependencyApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelArtifactExclusion"):
+		return &camelv1.CamelArtifactExclusionApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelCatalog"):
+		return &camelv1.CamelCatalogApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelCatalogSpec"):
+		return &camelv1.CamelCatalogSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelLoader"):
+		return &camelv1.CamelLoaderApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelScheme"):
+		return &camelv1.CamelSchemeApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("CamelSchemeScope"):
+		return &camelv1.CamelSchemeScopeApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Capability"):
+		return &camelv1.CapabilityApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("ConfigurationSpec"):
+		return &camelv1.ConfigurationSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("DataSpec"):
+		return &camelv1.DataSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Failure"):
+		return &camelv1.FailureApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("FailureRecovery"):
+		return &camelv1.FailureRecoveryApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Flow"):
+		return &camelv1.FlowApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Integration"):
+		return &camelv1.IntegrationApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationCondition"):
+		return &camelv1.IntegrationConditionApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationKit"):
+		return &camelv1.IntegrationKitApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationKitCondition"):
+		return &camelv1.IntegrationKitConditionApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationKitSpec"):
+		return &camelv1.IntegrationKitSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationKitStatus"):
+		return &camelv1.IntegrationKitStatusApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationKitTraits"):
+		return &camelv1.IntegrationKitTraitsApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatform"):
+		return &camelv1.IntegrationPlatformApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatformBuildSpec"):
+		return &camelv1.IntegrationPlatformBuildSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatformCondition"):
+		return &camelv1.IntegrationPlatformConditionApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatformKameletRepositorySpec"):
+		return &camelv1.IntegrationPlatformKameletRepositorySpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatformKameletSpec"):
+		return &camelv1.IntegrationPlatformKameletSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatformSpec"):
+		return &camelv1.IntegrationPlatformSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationPlatformStatus"):
+		return &camelv1.IntegrationPlatformStatusApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationSpec"):
+		return &camelv1.IntegrationSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("IntegrationStatus"):
+		return &camelv1.IntegrationStatusApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("KanikoTask"):
+		return &camelv1.KanikoTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("KanikoTaskCache"):
+		return &camelv1.KanikoTaskCacheApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("MavenArtifact"):
+		return &camelv1.MavenArtifactApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("MavenBuildSpec"):
+		return &camelv1.MavenBuildSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("MavenSpec"):
+		return &camelv1.MavenSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("PodSpec"):
+		return &camelv1.PodSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("PodSpecTemplate"):
+		return &camelv1.PodSpecTemplateApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("PublishTask"):
+		return &camelv1.PublishTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("RegistrySpec"):
+		return &camelv1.RegistrySpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Repository"):
+		return &camelv1.RepositoryApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("RepositoryPolicy"):
+		return &camelv1.RepositoryPolicyApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("RuntimeSpec"):
+		return &camelv1.RuntimeSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("S2iTask"):
+		return &camelv1.S2iTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Server"):
+		return &camelv1.ServerApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("SourceSpec"):
+		return &camelv1.SourceSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("SpectrumTask"):
+		return &camelv1.SpectrumTaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Task"):
+		return &camelv1.TaskApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("TraitConfiguration"):
+		return &camelv1.TraitConfigurationApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("Traits"):
+		return &camelv1.TraitsApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("TraitSpec"):
+		return &camelv1.TraitSpecApplyConfiguration{}
+	case v1.SchemeGroupVersion.WithKind("ValueSource"):
+		return &camelv1.ValueSourceApplyConfiguration{}
+
+		// Group=camel.apache.org, Version=v1alpha1
+	case v1alpha1.SchemeGroupVersion.WithKind("Endpoint"):
+		return &camelv1alpha1.EndpointApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("EndpointProperties"):
+		return &camelv1alpha1.EndpointPropertiesApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("ErrorHandlerSpec"):
+		return &camelv1alpha1.ErrorHandlerSpecApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("EventTypeSpec"):
+		return &camelv1alpha1.EventTypeSpecApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("ExternalDocumentation"):
+		return &camelv1alpha1.ExternalDocumentationApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("JSON"):
+		return &camelv1alpha1.JSONApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("JSONSchemaProp"):
+		return &camelv1alpha1.JSONSchemaPropApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("JSONSchemaProps"):
+		return &camelv1alpha1.JSONSchemaPropsApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("Kamelet"):
+		return &camelv1alpha1.KameletApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletBinding"):
+		return &camelv1alpha1.KameletBindingApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletBindingCondition"):
+		return &camelv1alpha1.KameletBindingConditionApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletBindingSpec"):
+		return &camelv1alpha1.KameletBindingSpecApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletBindingStatus"):
+		return &camelv1alpha1.KameletBindingStatusApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletCondition"):
+		return &camelv1alpha1.KameletConditionApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletProperty"):
+		return &camelv1alpha1.KameletPropertyApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletSpec"):
+		return &camelv1alpha1.KameletSpecApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("KameletStatus"):
+		return &camelv1alpha1.KameletStatusApplyConfiguration{}
+	case v1alpha1.SchemeGroupVersion.WithKind("Template"):
+		return &camelv1alpha1.TemplateApplyConfiguration{}
+
+	}
+	return nil
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go
index 32d171e3d..07ea0a182 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go
@@ -21,9 +21,12 @@ package v1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	camelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -48,6 +51,8 @@ type BuildInterface interface {
 	List(ctx context.Context, opts metav1.ListOptions) (*v1.BuildList, error)
 	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error)
+	Apply(ctx context.Context, build *camelv1.BuildApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Build, err error)
+	ApplyStatus(ctx context.Context, build *camelv1.BuildApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Build, err error)
 	BuildExpansion
 }
 
@@ -194,3 +199,59 @@ func (c *builds) Patch(ctx context.Context, name string, pt types.PatchType, dat
 		Into(result)
 	return
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied build.
+func (c *builds) Apply(ctx context.Context, build *camelv1.BuildApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Build, err error) {
+	if build == nil {
+		return nil, fmt.Errorf("build provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(build)
+	if err != nil {
+		return nil, err
+	}
+	name := build.Name
+	if name == nil {
+		return nil, fmt.Errorf("build.Name must be provided to Apply")
+	}
+	result = &v1.Build{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("builds").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *builds) ApplyStatus(ctx context.Context, build *camelv1.BuildApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Build, err error) {
+	if build == nil {
+		return nil, fmt.Errorf("build provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(build)
+	if err != nil {
+		return nil, err
+	}
+
+	name := build.Name
+	if name == nil {
+		return nil, fmt.Errorf("build.Name must be provided to Apply")
+	}
+
+	result = &v1.Build{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("builds").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go
index 189f8eb58..1a62417a8 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go
@@ -21,9 +21,12 @@ package v1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	camelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -48,6 +51,8 @@ type CamelCatalogInterface interface {
 	List(ctx context.Context, opts metav1.ListOptions) (*v1.CamelCatalogList, error)
 	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CamelCatalog, err error)
+	Apply(ctx context.Context, camelCatalog *camelv1.CamelCatalogApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CamelCatalog, err error)
+	ApplyStatus(ctx context.Context, camelCatalog *camelv1.CamelCatalogApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CamelCatalog, err error)
 	CamelCatalogExpansion
 }
 
@@ -194,3 +199,59 @@ func (c *camelCatalogs) Patch(ctx context.Context, name string, pt types.PatchTy
 		Into(result)
 	return
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied camelCatalog.
+func (c *camelCatalogs) Apply(ctx context.Context, camelCatalog *camelv1.CamelCatalogApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CamelCatalog, err error) {
+	if camelCatalog == nil {
+		return nil, fmt.Errorf("camelCatalog provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(camelCatalog)
+	if err != nil {
+		return nil, err
+	}
+	name := camelCatalog.Name
+	if name == nil {
+		return nil, fmt.Errorf("camelCatalog.Name must be provided to Apply")
+	}
+	result = &v1.CamelCatalog{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("camelcatalogs").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *camelCatalogs) ApplyStatus(ctx context.Context, camelCatalog *camelv1.CamelCatalogApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CamelCatalog, err error) {
+	if camelCatalog == nil {
+		return nil, fmt.Errorf("camelCatalog provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(camelCatalog)
+	if err != nil {
+		return nil, err
+	}
+
+	name := camelCatalog.Name
+	if name == nil {
+		return nil, fmt.Errorf("camelCatalog.Name must be provided to Apply")
+	}
+
+	result = &v1.CamelCatalog{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("camelcatalogs").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go
index b00748a08..b877a9aaf 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	applyconfigurationcamelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -141,3 +144,48 @@ func (c *FakeBuilds) Patch(ctx context.Context, name string, pt types.PatchType,
 	}
 	return obj.(*camelv1.Build), err
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied build.
+func (c *FakeBuilds) Apply(ctx context.Context, build *applyconfigurationcamelv1.BuildApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.Build, err error) {
+	if build == nil {
+		return nil, fmt.Errorf("build provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(build)
+	if err != nil {
+		return nil, err
+	}
+	name := build.Name
+	if name == nil {
+		return nil, fmt.Errorf("build.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(buildsResource, c.ns, *name, types.ApplyPatchType, data), &camelv1.Build{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.Build), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeBuilds) ApplyStatus(ctx context.Context, build *applyconfigurationcamelv1.BuildApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.Build, err error) {
+	if build == nil {
+		return nil, fmt.Errorf("build provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(build)
+	if err != nil {
+		return nil, err
+	}
+	name := build.Name
+	if name == nil {
+		return nil, fmt.Errorf("build.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(buildsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &camelv1.Build{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.Build), err
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go
index e4408c88e..68dd3a4bb 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	applyconfigurationcamelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -141,3 +144,48 @@ func (c *FakeCamelCatalogs) Patch(ctx context.Context, name string, pt types.Pat
 	}
 	return obj.(*camelv1.CamelCatalog), err
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied camelCatalog.
+func (c *FakeCamelCatalogs) Apply(ctx context.Context, camelCatalog *applyconfigurationcamelv1.CamelCatalogApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.CamelCatalog, err error) {
+	if camelCatalog == nil {
+		return nil, fmt.Errorf("camelCatalog provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(camelCatalog)
+	if err != nil {
+		return nil, err
+	}
+	name := camelCatalog.Name
+	if name == nil {
+		return nil, fmt.Errorf("camelCatalog.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(camelcatalogsResource, c.ns, *name, types.ApplyPatchType, data), &camelv1.CamelCatalog{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.CamelCatalog), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeCamelCatalogs) ApplyStatus(ctx context.Context, camelCatalog *applyconfigurationcamelv1.CamelCatalogApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.CamelCatalog, err error) {
+	if camelCatalog == nil {
+		return nil, fmt.Errorf("camelCatalog provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(camelCatalog)
+	if err != nil {
+		return nil, err
+	}
+	name := camelCatalog.Name
+	if name == nil {
+		return nil, fmt.Errorf("camelCatalog.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(camelcatalogsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &camelv1.CamelCatalog{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.CamelCatalog), err
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go
index 0c729b36c..094317b3d 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	applyconfigurationcamelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	autoscalingv1 "k8s.io/api/autoscaling/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -143,6 +146,51 @@ func (c *FakeIntegrations) Patch(ctx context.Context, name string, pt types.Patc
 	return obj.(*camelv1.Integration), err
 }
 
+// Apply takes the given apply declarative configuration, applies it and returns the applied integration.
+func (c *FakeIntegrations) Apply(ctx context.Context, integration *applyconfigurationcamelv1.IntegrationApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.Integration, err error) {
+	if integration == nil {
+		return nil, fmt.Errorf("integration provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(integration)
+	if err != nil {
+		return nil, err
+	}
+	name := integration.Name
+	if name == nil {
+		return nil, fmt.Errorf("integration.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(integrationsResource, c.ns, *name, types.ApplyPatchType, data), &camelv1.Integration{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.Integration), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeIntegrations) ApplyStatus(ctx context.Context, integration *applyconfigurationcamelv1.IntegrationApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.Integration, err error) {
+	if integration == nil {
+		return nil, fmt.Errorf("integration provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(integration)
+	if err != nil {
+		return nil, err
+	}
+	name := integration.Name
+	if name == nil {
+		return nil, fmt.Errorf("integration.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(integrationsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &camelv1.Integration{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.Integration), err
+}
+
 // GetScale takes name of the integration, and returns the corresponding scale object, and an error if there is any.
 func (c *FakeIntegrations) GetScale(ctx context.Context, integrationName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) {
 	obj, err := c.Fake.
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go
index 4785e8cb1..20c50946e 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	applyconfigurationcamelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -141,3 +144,48 @@ func (c *FakeIntegrationKits) Patch(ctx context.Context, name string, pt types.P
 	}
 	return obj.(*camelv1.IntegrationKit), err
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied integrationKit.
+func (c *FakeIntegrationKits) Apply(ctx context.Context, integrationKit *applyconfigurationcamelv1.IntegrationKitApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.IntegrationKit, err error) {
+	if integrationKit == nil {
+		return nil, fmt.Errorf("integrationKit provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(integrationKit)
+	if err != nil {
+		return nil, err
+	}
+	name := integrationKit.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationKit.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(integrationkitsResource, c.ns, *name, types.ApplyPatchType, data), &camelv1.IntegrationKit{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.IntegrationKit), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeIntegrationKits) ApplyStatus(ctx context.Context, integrationKit *applyconfigurationcamelv1.IntegrationKitApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.IntegrationKit, err error) {
+	if integrationKit == nil {
+		return nil, fmt.Errorf("integrationKit provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(integrationKit)
+	if err != nil {
+		return nil, err
+	}
+	name := integrationKit.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationKit.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(integrationkitsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &camelv1.IntegrationKit{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.IntegrationKit), err
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go
index d9d12bb15..192043a27 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	applyconfigurationcamelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -141,3 +144,48 @@ func (c *FakeIntegrationPlatforms) Patch(ctx context.Context, name string, pt ty
 	}
 	return obj.(*camelv1.IntegrationPlatform), err
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied integrationPlatform.
+func (c *FakeIntegrationPlatforms) Apply(ctx context.Context, integrationPlatform *applyconfigurationcamelv1.IntegrationPlatformApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.IntegrationPlatform, err error) {
+	if integrationPlatform == nil {
+		return nil, fmt.Errorf("integrationPlatform provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(integrationPlatform)
+	if err != nil {
+		return nil, err
+	}
+	name := integrationPlatform.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationPlatform.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(integrationplatformsResource, c.ns, *name, types.ApplyPatchType, data), &camelv1.IntegrationPlatform{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.IntegrationPlatform), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeIntegrationPlatforms) ApplyStatus(ctx context.Context, integrationPlatform *applyconfigurationcamelv1.IntegrationPlatformApplyConfiguration, opts v1.ApplyOptions) (result *camelv1.IntegrationPlatform, err error) {
+	if integrationPlatform == nil {
+		return nil, fmt.Errorf("integrationPlatform provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(integrationPlatform)
+	if err != nil {
+		return nil, err
+	}
+	name := integrationPlatform.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationPlatform.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(integrationplatformsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &camelv1.IntegrationPlatform{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*camelv1.IntegrationPlatform), err
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go
index 47b7d98a1..a759d89f0 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go
@@ -21,9 +21,12 @@ package v1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	camelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	autoscalingv1 "k8s.io/api/autoscaling/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -49,6 +52,8 @@ type IntegrationInterface interface {
 	List(ctx context.Context, opts metav1.ListOptions) (*v1.IntegrationList, error)
 	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Integration, err error)
+	Apply(ctx context.Context, integration *camelv1.IntegrationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Integration, err error)
+	ApplyStatus(ctx context.Context, integration *camelv1.IntegrationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Integration, err error)
 	GetScale(ctx context.Context, integrationName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)
 	UpdateScale(ctx context.Context, integrationName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)
 
@@ -199,6 +204,62 @@ func (c *integrations) Patch(ctx context.Context, name string, pt types.PatchTyp
 	return
 }
 
+// Apply takes the given apply declarative configuration, applies it and returns the applied integration.
+func (c *integrations) Apply(ctx context.Context, integration *camelv1.IntegrationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Integration, err error) {
+	if integration == nil {
+		return nil, fmt.Errorf("integration provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(integration)
+	if err != nil {
+		return nil, err
+	}
+	name := integration.Name
+	if name == nil {
+		return nil, fmt.Errorf("integration.Name must be provided to Apply")
+	}
+	result = &v1.Integration{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("integrations").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *integrations) ApplyStatus(ctx context.Context, integration *camelv1.IntegrationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Integration, err error) {
+	if integration == nil {
+		return nil, fmt.Errorf("integration provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(integration)
+	if err != nil {
+		return nil, err
+	}
+
+	name := integration.Name
+	if name == nil {
+		return nil, fmt.Errorf("integration.Name must be provided to Apply")
+	}
+
+	result = &v1.Integration{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("integrations").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
 // GetScale takes name of the integration, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.
 func (c *integrations) GetScale(ctx context.Context, integrationName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {
 	result = &autoscalingv1.Scale{}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go
index 774a5ba0f..1067314dd 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go
@@ -21,9 +21,12 @@ package v1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	camelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -48,6 +51,8 @@ type IntegrationKitInterface interface {
 	List(ctx context.Context, opts metav1.ListOptions) (*v1.IntegrationKitList, error)
 	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IntegrationKit, err error)
+	Apply(ctx context.Context, integrationKit *camelv1.IntegrationKitApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationKit, err error)
+	ApplyStatus(ctx context.Context, integrationKit *camelv1.IntegrationKitApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationKit, err error)
 	IntegrationKitExpansion
 }
 
@@ -194,3 +199,59 @@ func (c *integrationKits) Patch(ctx context.Context, name string, pt types.Patch
 		Into(result)
 	return
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied integrationKit.
+func (c *integrationKits) Apply(ctx context.Context, integrationKit *camelv1.IntegrationKitApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationKit, err error) {
+	if integrationKit == nil {
+		return nil, fmt.Errorf("integrationKit provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(integrationKit)
+	if err != nil {
+		return nil, err
+	}
+	name := integrationKit.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationKit.Name must be provided to Apply")
+	}
+	result = &v1.IntegrationKit{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("integrationkits").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *integrationKits) ApplyStatus(ctx context.Context, integrationKit *camelv1.IntegrationKitApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationKit, err error) {
+	if integrationKit == nil {
+		return nil, fmt.Errorf("integrationKit provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(integrationKit)
+	if err != nil {
+		return nil, err
+	}
+
+	name := integrationKit.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationKit.Name must be provided to Apply")
+	}
+
+	result = &v1.IntegrationKit{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("integrationkits").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go
index 535b57876..0cd26b21e 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go
@@ -21,9 +21,12 @@ package v1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	camelv1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -48,6 +51,8 @@ type IntegrationPlatformInterface interface {
 	List(ctx context.Context, opts metav1.ListOptions) (*v1.IntegrationPlatformList, error)
 	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IntegrationPlatform, err error)
+	Apply(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatformApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationPlatform, err error)
+	ApplyStatus(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatformApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationPlatform, err error)
 	IntegrationPlatformExpansion
 }
 
@@ -194,3 +199,59 @@ func (c *integrationPlatforms) Patch(ctx context.Context, name string, pt types.
 		Into(result)
 	return
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied integrationPlatform.
+func (c *integrationPlatforms) Apply(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatformApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationPlatform, err error) {
+	if integrationPlatform == nil {
+		return nil, fmt.Errorf("integrationPlatform provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(integrationPlatform)
+	if err != nil {
+		return nil, err
+	}
+	name := integrationPlatform.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationPlatform.Name must be provided to Apply")
+	}
+	result = &v1.IntegrationPlatform{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("integrationplatforms").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *integrationPlatforms) ApplyStatus(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatformApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IntegrationPlatform, err error) {
+	if integrationPlatform == nil {
+		return nil, fmt.Errorf("integrationPlatform provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(integrationPlatform)
+	if err != nil {
+		return nil, err
+	}
+
+	name := integrationPlatform.Name
+	if name == nil {
+		return nil, fmt.Errorf("integrationPlatform.Name must be provided to Apply")
+	}
+
+	result = &v1.IntegrationPlatform{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("integrationplatforms").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go
index b0cd19fef..87bc20f01 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	camelv1alpha1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1alpha1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -141,3 +144,48 @@ func (c *FakeKamelets) Patch(ctx context.Context, name string, pt types.PatchTyp
 	}
 	return obj.(*v1alpha1.Kamelet), err
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied kamelet.
+func (c *FakeKamelets) Apply(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) {
+	if kamelet == nil {
+		return nil, fmt.Errorf("kamelet provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(kamelet)
+	if err != nil {
+		return nil, err
+	}
+	name := kamelet.Name
+	if name == nil {
+		return nil, fmt.Errorf("kamelet.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(kameletsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.Kamelet{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1alpha1.Kamelet), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeKamelets) ApplyStatus(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) {
+	if kamelet == nil {
+		return nil, fmt.Errorf("kamelet provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(kamelet)
+	if err != nil {
+		return nil, err
+	}
+	name := kamelet.Name
+	if name == nil {
+		return nil, fmt.Errorf("kamelet.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(kameletsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1alpha1.Kamelet{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1alpha1.Kamelet), err
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go
index 71fc98f3c..1eaf31eed 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go
@@ -21,8 +21,11 @@ package fake
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 
 	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	camelv1alpha1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1alpha1"
 	autoscalingv1 "k8s.io/api/autoscaling/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -143,6 +146,51 @@ func (c *FakeKameletBindings) Patch(ctx context.Context, name string, pt types.P
 	return obj.(*v1alpha1.KameletBinding), err
 }
 
+// Apply takes the given apply declarative configuration, applies it and returns the applied kameletBinding.
+func (c *FakeKameletBindings) Apply(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) {
+	if kameletBinding == nil {
+		return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(kameletBinding)
+	if err != nil {
+		return nil, err
+	}
+	name := kameletBinding.Name
+	if name == nil {
+		return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(kameletbindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.KameletBinding{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1alpha1.KameletBinding), err
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *FakeKameletBindings) ApplyStatus(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) {
+	if kameletBinding == nil {
+		return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil")
+	}
+	data, err := json.Marshal(kameletBinding)
+	if err != nil {
+		return nil, err
+	}
+	name := kameletBinding.Name
+	if name == nil {
+		return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply")
+	}
+	obj, err := c.Fake.
+		Invokes(testing.NewPatchSubresourceAction(kameletbindingsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1alpha1.KameletBinding{})
+
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1alpha1.KameletBinding), err
+}
+
 // GetScale takes name of the kameletBinding, and returns the corresponding scale object, and an error if there is any.
 func (c *FakeKameletBindings) GetScale(ctx context.Context, kameletBindingName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) {
 	obj, err := c.Fake.
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go
index 4de1e1ad8..01e2b335d 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go
@@ -21,9 +21,12 @@ package v1alpha1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	camelv1alpha1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1alpha1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -48,6 +51,8 @@ type KameletInterface interface {
 	List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.KameletList, error)
 	Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Kamelet, err error)
+	Apply(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error)
+	ApplyStatus(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error)
 	KameletExpansion
 }
 
@@ -194,3 +199,59 @@ func (c *kamelets) Patch(ctx context.Context, name string, pt types.PatchType, d
 		Into(result)
 	return
 }
+
+// Apply takes the given apply declarative configuration, applies it and returns the applied kamelet.
+func (c *kamelets) Apply(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) {
+	if kamelet == nil {
+		return nil, fmt.Errorf("kamelet provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(kamelet)
+	if err != nil {
+		return nil, err
+	}
+	name := kamelet.Name
+	if name == nil {
+		return nil, fmt.Errorf("kamelet.Name must be provided to Apply")
+	}
+	result = &v1alpha1.Kamelet{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("kamelets").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *kamelets) ApplyStatus(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) {
+	if kamelet == nil {
+		return nil, fmt.Errorf("kamelet provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(kamelet)
+	if err != nil {
+		return nil, err
+	}
+
+	name := kamelet.Name
+	if name == nil {
+		return nil, fmt.Errorf("kamelet.Name must be provided to Apply")
+	}
+
+	result = &v1alpha1.Kamelet{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("kamelets").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go
index 6a2f94faf..ca245c030 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go
@@ -21,9 +21,12 @@ package v1alpha1
 
 import (
 	"context"
+	json "encoding/json"
+	"fmt"
 	"time"
 
 	v1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	camelv1alpha1 "github.com/apache/camel-k/pkg/client/camel/applyconfiguration/camel/v1alpha1"
 	scheme "github.com/apache/camel-k/pkg/client/camel/clientset/versioned/scheme"
 	autoscalingv1 "k8s.io/api/autoscaling/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -49,6 +52,8 @@ type KameletBindingInterface interface {
 	List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.KameletBindingList, error)
 	Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
 	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.KameletBinding, err error)
+	Apply(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error)
+	ApplyStatus(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error)
 	GetScale(ctx context.Context, kameletBindingName string, options v1.GetOptions) (*autoscalingv1.Scale, error)
 	UpdateScale(ctx context.Context, kameletBindingName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (*autoscalingv1.Scale, error)
 
@@ -199,6 +204,62 @@ func (c *kameletBindings) Patch(ctx context.Context, name string, pt types.Patch
 	return
 }
 
+// Apply takes the given apply declarative configuration, applies it and returns the applied kameletBinding.
+func (c *kameletBindings) Apply(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) {
+	if kameletBinding == nil {
+		return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(kameletBinding)
+	if err != nil {
+		return nil, err
+	}
+	name := kameletBinding.Name
+	if name == nil {
+		return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply")
+	}
+	result = &v1alpha1.KameletBinding{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("kameletbindings").
+		Name(*name).
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
+// ApplyStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
+func (c *kameletBindings) ApplyStatus(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) {
+	if kameletBinding == nil {
+		return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil")
+	}
+	patchOpts := opts.ToPatchOptions()
+	data, err := json.Marshal(kameletBinding)
+	if err != nil {
+		return nil, err
+	}
+
+	name := kameletBinding.Name
+	if name == nil {
+		return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply")
+	}
+
+	result = &v1alpha1.KameletBinding{}
+	err = c.client.Patch(types.ApplyPatchType).
+		Namespace(c.ns).
+		Resource("kameletbindings").
+		Name(*name).
+		SubResource("status").
+		VersionedParams(&patchOpts, scheme.ParameterCodec).
+		Body(data).
+		Do(ctx).
+		Into(result)
+	return
+}
+
 // GetScale takes name of the kameletBinding, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.
 func (c *kameletBindings) GetScale(ctx context.Context, kameletBindingName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) {
 	result = &autoscalingv1.Scale{}