You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/02/23 07:15:01 UTC

[camel] 01/05: CAMEL-16115 - Remove Camel-AWS-* components - AWS-IAM

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

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

commit 4a315ee796f17ca8b3eeecaa4aae29196775ad4a
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Feb 23 07:49:37 2021 +0100

    CAMEL-16115 - Remove Camel-AWS-* components - AWS-IAM
---
 components/camel-aws-iam/pom.xml                   |   72 --
 .../component/aws/iam/IAMComponentConfigurer.java  |  113 --
 .../component/aws/iam/IAMEndpointConfigurer.java   |   97 --
 .../component/aws/iam/IAMEndpointUriFactory.java   |   74 --
 .../services/org/apache/camel/component.properties |    7 -
 .../services/org/apache/camel/component/aws-iam    |    2 -
 .../org/apache/camel/configurer/aws-iam-component  |    2 -
 .../org/apache/camel/configurer/aws-iam-endpoint   |    2 -
 .../org/apache/camel/urifactory/aws-iam-endpoint   |    2 -
 .../apache/camel/component/aws/iam/aws-iam.json    |   52 -
 .../src/main/docs/aws-iam-component.adoc           |  187 ----
 .../camel/component/aws/iam/IAMComponent.java      |   81 --
 .../aws/iam/IAMComponentVerifierExtension.java     |   92 --
 .../camel/component/aws/iam/IAMConfiguration.java  |  165 ---
 .../camel/component/aws/iam/IAMConstants.java      |   29 -
 .../camel/component/aws/iam/IAMEndpoint.java       |  123 ---
 .../camel/component/aws/iam/IAMOperations.java     |   34 -
 .../camel/component/aws/iam/IAMProducer.java       |  395 -------
 .../component/aws/iam/AmazonIAMClientMock.java     | 1107 --------------------
 .../aws/iam/IAMComponentClientRegistryTest.java    |   70 --
 .../aws/iam/IAMComponentConfigurationTest.java     |   69 --
 .../aws/iam/IAMComponentVerifierExtensionTest.java |   76 --
 .../component/aws/iam/IAMProducerSpringTest.java   |  292 ------
 .../camel/component/aws/iam/IAMProducerTest.java   |  325 ------
 .../src/test/resources/log4j2.properties           |   28 -
 .../aws/iam/IAMComponentSpringTest-context.xml     |   95 --
 components/pom.xml                                 |    1 -
 27 files changed, 3592 deletions(-)

diff --git a/components/camel-aws-iam/pom.xml b/components/camel-aws-iam/pom.xml
deleted file mode 100644
index b3b0ed4..0000000
--- a/components/camel-aws-iam/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>components</artifactId>
-        <version>3.9.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-aws-iam</artifactId>
-    <packaging>jar</packaging>
-
-    <name>Camel :: AWS IAM (deprecated)</name>
-    <description>A Camel Amazon IAM Web Service Component</description>
-
-    <properties>
-        <deprecatedSince>3.8.0</deprecatedSince>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-iam</artifactId>
-            <version>${aws-java-sdk-version}</version>
-        </dependency>
-
-        <!-- for testing -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core-catalog</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java b/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java
deleted file mode 100644
index 01d5ad9..0000000
--- a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.iam;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
-import org.apache.camel.spi.PropertyConfigurerGetter;
-import org.apache.camel.spi.ConfigurerStrategy;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.util.CaseInsensitiveMap;
-import org.apache.camel.support.component.PropertyConfigurerSupport;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class IAMComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
-
-    private org.apache.camel.component.aws.iam.IAMConfiguration getOrCreateConfiguration(IAMComponent target) {
-        if (target.getConfiguration() == null) {
-            target.setConfiguration(new org.apache.camel.component.aws.iam.IAMConfiguration());
-        }
-        return target.getConfiguration();
-    }
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        IAMComponent target = (IAMComponent) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": getOrCreateConfiguration(target).setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
-        case "autowiredenabled":
-        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.iam.IAMConfiguration.class, value)); return true;
-        case "iamclient":
-        case "iamClient": getOrCreateConfiguration(target).setIamClient(property(camelContext, com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class, value)); return true;
-        case "lazystartproducer":
-        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.iam.IAMOperations.class, value)); return true;
-        case "proxyhost":
-        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
-        case "proxyport":
-        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "proxyprotocol":
-        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
-        case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "secretkey":
-        case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return java.lang.String.class;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return boolean.class;
-        case "autowiredenabled":
-        case "autowiredEnabled": return boolean.class;
-        case "configuration": return org.apache.camel.component.aws.iam.IAMConfiguration.class;
-        case "iamclient":
-        case "iamClient": return com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class;
-        case "lazystartproducer":
-        case "lazyStartProducer": return boolean.class;
-        case "operation": return org.apache.camel.component.aws.iam.IAMOperations.class;
-        case "proxyhost":
-        case "proxyHost": return java.lang.String.class;
-        case "proxyport":
-        case "proxyPort": return java.lang.Integer.class;
-        case "proxyprotocol":
-        case "proxyProtocol": return com.amazonaws.Protocol.class;
-        case "region": return java.lang.String.class;
-        case "secretkey":
-        case "secretKey": return java.lang.String.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        IAMComponent target = (IAMComponent) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return getOrCreateConfiguration(target).isAutoDiscoverClient();
-        case "autowiredenabled":
-        case "autowiredEnabled": return target.isAutowiredEnabled();
-        case "configuration": return target.getConfiguration();
-        case "iamclient":
-        case "iamClient": return getOrCreateConfiguration(target).getIamClient();
-        case "lazystartproducer":
-        case "lazyStartProducer": return target.isLazyStartProducer();
-        case "operation": return getOrCreateConfiguration(target).getOperation();
-        case "proxyhost":
-        case "proxyHost": return getOrCreateConfiguration(target).getProxyHost();
-        case "proxyport":
-        case "proxyPort": return getOrCreateConfiguration(target).getProxyPort();
-        case "proxyprotocol":
-        case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol();
-        case "region": return getOrCreateConfiguration(target).getRegion();
-        case "secretkey":
-        case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMEndpointConfigurer.java b/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMEndpointConfigurer.java
deleted file mode 100644
index 917df03..0000000
--- a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMEndpointConfigurer.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.iam;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
-import org.apache.camel.spi.PropertyConfigurerGetter;
-import org.apache.camel.spi.ConfigurerStrategy;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.util.CaseInsensitiveMap;
-import org.apache.camel.support.component.PropertyConfigurerSupport;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class IAMEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        IAMEndpoint target = (IAMEndpoint) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": target.getConfiguration().setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
-        case "iamclient":
-        case "iamClient": target.getConfiguration().setIamClient(property(camelContext, com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class, value)); return true;
-        case "lazystartproducer":
-        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws.iam.IAMOperations.class, value)); return true;
-        case "proxyhost":
-        case "proxyHost": target.getConfiguration().setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
-        case "proxyport":
-        case "proxyPort": target.getConfiguration().setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "proxyprotocol":
-        case "proxyProtocol": target.getConfiguration().setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
-        case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "secretkey":
-        case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return java.lang.String.class;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return boolean.class;
-        case "iamclient":
-        case "iamClient": return com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class;
-        case "lazystartproducer":
-        case "lazyStartProducer": return boolean.class;
-        case "operation": return org.apache.camel.component.aws.iam.IAMOperations.class;
-        case "proxyhost":
-        case "proxyHost": return java.lang.String.class;
-        case "proxyport":
-        case "proxyPort": return java.lang.Integer.class;
-        case "proxyprotocol":
-        case "proxyProtocol": return com.amazonaws.Protocol.class;
-        case "region": return java.lang.String.class;
-        case "secretkey":
-        case "secretKey": return java.lang.String.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        IAMEndpoint target = (IAMEndpoint) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return target.getConfiguration().getAccessKey();
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return target.getConfiguration().isAutoDiscoverClient();
-        case "iamclient":
-        case "iamClient": return target.getConfiguration().getIamClient();
-        case "lazystartproducer":
-        case "lazyStartProducer": return target.isLazyStartProducer();
-        case "operation": return target.getConfiguration().getOperation();
-        case "proxyhost":
-        case "proxyHost": return target.getConfiguration().getProxyHost();
-        case "proxyport":
-        case "proxyPort": return target.getConfiguration().getProxyPort();
-        case "proxyprotocol":
-        case "proxyProtocol": return target.getConfiguration().getProxyProtocol();
-        case "region": return target.getConfiguration().getRegion();
-        case "secretkey":
-        case "secretKey": return target.getConfiguration().getSecretKey();
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMEndpointUriFactory.java b/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMEndpointUriFactory.java
deleted file mode 100644
index bb81f02..0000000
--- a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMEndpointUriFactory.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.iam;
-
-import java.net.URISyntaxException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.camel.spi.EndpointUriFactory;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-public class IAMEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
-
-    private static final String BASE = ":label";
-
-    private static final Set<String> PROPERTY_NAMES;
-    private static final Set<String> SECRET_PROPERTY_NAMES;
-    static {
-        Set<String> props = new HashSet<>(11);
-        props.add("autoDiscoverClient");
-        props.add("proxyPort");
-        props.add("iamClient");
-        props.add("lazyStartProducer");
-        props.add("proxyProtocol");
-        props.add("secretKey");
-        props.add("accessKey");
-        props.add("label");
-        props.add("region");
-        props.add("operation");
-        props.add("proxyHost");
-        PROPERTY_NAMES = Collections.unmodifiableSet(props);
-        Set<String> secretProps = new HashSet<>(2);
-        secretProps.add("secretKey");
-        secretProps.add("accessKey");
-        SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
-    }
-
-    @Override
-    public boolean isEnabled(String scheme) {
-        return "aws-iam".equals(scheme);
-    }
-
-    @Override
-    public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
-        String syntax = scheme + BASE;
-        String uri = syntax;
-
-        Map<String, Object> copy = new HashMap<>(properties);
-
-        uri = buildPathParameter(syntax, uri, "label", null, true, copy);
-        uri = buildQueryParameters(uri, copy, encode);
-        return uri;
-    }
-
-    @Override
-    public Set<String> propertyNames() {
-        return PROPERTY_NAMES;
-    }
-
-    @Override
-    public Set<String> secretPropertyNames() {
-        return SECRET_PROPERTY_NAMES;
-    }
-
-    @Override
-    public boolean isLenientProperties() {
-        return false;
-    }
-}
-
diff --git a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/component.properties
deleted file mode 100644
index 2ef6e9d..0000000
--- a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-components=aws-iam
-groupId=org.apache.camel
-artifactId=camel-aws-iam
-version=3.9.0-SNAPSHOT
-projectName=Camel :: AWS IAM (deprecated)
-projectDescription=A Camel Amazon IAM Web Service Component
diff --git a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/component/aws-iam b/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/component/aws-iam
deleted file mode 100644
index f00b73d..0000000
--- a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/component/aws-iam
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.iam.IAMComponent
diff --git a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-iam-component b/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-iam-component
deleted file mode 100644
index 4c5f00d..0000000
--- a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-iam-component
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.iam.IAMComponentConfigurer
diff --git a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-iam-endpoint b/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-iam-endpoint
deleted file mode 100644
index 9eae1ef..0000000
--- a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-iam-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.iam.IAMEndpointConfigurer
diff --git a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-iam-endpoint b/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-iam-endpoint
deleted file mode 100644
index d5cea95..0000000
--- a/components/camel-aws-iam/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-iam-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.iam.IAMEndpointUriFactory
diff --git a/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json b/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json
deleted file mode 100644
index 4acf39f..0000000
--- a/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "component": {
-    "kind": "component",
-    "name": "aws-iam",
-    "title": "AWS Identity and Access Management (IAM)",
-    "description": "Manage AWS IAM instances.",
-    "deprecated": true,
-    "deprecatedSince": "3.8.0",
-    "firstVersion": "2.23.0",
-    "label": "cloud,management",
-    "javaType": "org.apache.camel.component.aws.iam.IAMComponent",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-aws-iam",
-    "version": "3.9.0-SNAPSHOT",
-    "scheme": "aws-iam",
-    "extendsScheme": "",
-    "syntax": "aws-iam:label",
-    "async": false,
-    "api": false,
-    "consumerOnly": false,
-    "producerOnly": true,
-    "lenientProperties": false
-  },
-  "componentProperties": {
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instan [...]
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.iam.IAMConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
-    "iamClient": { "kind": "property", "displayName": "Iam Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.identitymanagement.AmazonIdentityManagement", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS IAM as client" },
-    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.iam.IAMOperations", "enum": [ "listAccessKeys", "createUser", "deleteUser", "getUser", "listUsers", "createAccessKey", "deleteAccessKey", "updateAccessKey", "createGroup", "deleteGroup", "listGroups", "addUserToGroup", "removeUserFromGroup" ], "deprecated": false, "deprecationNote": "", "autowired": fa [...]
-    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the IAM client" },
-    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the IAM client" },
-    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the IAM client" },
-    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "The region in which IAM client needs to work. When using this parameter, the configuration will expect the capitalized name of the region  [...]
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
-  },
-  "properties": {
-    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Logical name" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client insta [...]
-    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "iamClient": { "kind": "parameter", "displayName": "Iam Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.identitymanagement.AmazonIdentityManagement", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS IAM as client" },
-    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.iam.IAMOperations", "enum": [ "listAccessKeys", "createUser", "deleteUser", "getUser", "listUsers", "createAccessKey", "deleteAccessKey", "updateAccessKey", "createGroup", "deleteGroup", "listGroups", "addUserToGroup", "removeUserFromGroup" ], "deprecated": false, "deprecationNote": "", "autowired": f [...]
-    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the IAM client" },
-    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the IAM client" },
-    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the IAM client" },
-    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "The region in which IAM client needs to work. When using this parameter, the configuration will expect the capitalized name of the region [...]
-    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
-  }
-}
diff --git a/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc b/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
deleted file mode 100644
index 4c897e1..0000000
--- a/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
+++ /dev/null
@@ -1,187 +0,0 @@
-[[aws-iam-component]]
-= AWS Identity and Access Management (IAM) Component (deprecated)
-:docTitle: AWS Identity and Access Management (IAM)
-:artifactId: camel-aws-iam
-:description: Manage AWS IAM instances.
-:since: 2.23
-:supportLevel: Stable-deprecated
-:deprecated: *deprecated*
-:component-header: Only producer is supported
-include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws-iam.adoc[opts=optional]
-//Manually maintained attributes
-:group: AWS
-
-*Since Camel {since}*
-
-*{component-header}*
-
-The KMS component supports create, run, start, stop and terminate
-https://aws.amazon.com/iam/[AWS IAM] instances.
-
-Prerequisites
-
-You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon IAM. More information is available at
-https://aws.amazon.com/iam/[Amazon IAM].
-
-== URI Format
-
-[source,java]
--------------------------
-aws-iam://label[?options]
--------------------------
-
-You can append query options to the URI in the following format,
-?options=value&option2=value&...
-
-== URI Options
-
-
-// component options: START
-The AWS Identity and Access Management (IAM) component supports 12 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *accessKey* (producer) | Amazon AWS Access Key |  | String
-| *configuration* (producer) | The component configuration |  | IAMConfiguration
-| *iamClient* (producer) | To use a existing configured AWS IAM as client |  | AmazonIdentityManagement
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 13 enums and the value can be one of: listAccessKeys, createUser, deleteUser, getUser, listUsers, createAccessKey, deleteAccessKey, updateAccessKey, createGroup, deleteGroup, listGroups, addUserToGroup, removeUserFromGroup |  | IAMOperations
-| *proxyHost* (producer) | To define a proxy host when instantiating the IAM client |  | String
-| *proxyPort* (producer) | To define a proxy port when instantiating the IAM client |  | Integer
-| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the IAM client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
-| *region* (producer) | The region in which IAM client needs to work. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name() |  | String
-| *secretKey* (producer) | Amazon AWS Secret Key |  | String
-| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
-|===
-// component options: END
-
-
-
-
-// endpoint options: START
-The AWS Identity and Access Management (IAM) endpoint is configured using URI syntax:
-
-----
-aws-iam:label
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *label* | *Required* Logical name |  | String
-|===
-
-
-=== Query Parameters (10 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *accessKey* (producer) | Amazon AWS Access Key |  | String
-| *iamClient* (producer) | To use a existing configured AWS IAM as client |  | AmazonIdentityManagement
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 13 enums and the value can be one of: listAccessKeys, createUser, deleteUser, getUser, listUsers, createAccessKey, deleteAccessKey, updateAccessKey, createGroup, deleteGroup, listGroups, addUserToGroup, removeUserFromGroup |  | IAMOperations
-| *proxyHost* (producer) | To define a proxy host when instantiating the IAM client |  | String
-| *proxyPort* (producer) | To define a proxy port when instantiating the IAM client |  | Integer
-| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the IAM client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
-| *region* (producer) | The region in which IAM client needs to work. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name() |  | String
-| *secretKey* (producer) | Amazon AWS Secret Key |  | String
-|===
-// endpoint options: END
-
-
-
-
-Required IAM component options
-
-You have to provide the amazonKmsClient in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/iam/[Amazon IAM] service.
-
-== Usage
-
-=== Message headers evaluated by the IAM producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsIAMOperation` |`String` |The operation we want to perform
-
-|`CamelAwsIAMUsername` |`String` |The username for the user you want to manage
-
-|`CamelAwsIAMAccessKeyID` |`String` |The accessKey you want to manage
-
-|`CamelAwsIAMAccessKeyStatus` |`String` |The Status of the AccessKey you want to set, possible value are active and inactive
-
-|`CamelAwsIAMGroupName` |`String` |The name of an AWS IAM Group
-
-|`CamelAwsIAMGroupPath` |`String` |The path of an AWS IAM Group
-|=======================================================================
-
-=== IAM Producer operations
-
-Camel-AWS IAM component provides the following operation on the producer side:
-
-- listAccessKeys
-- createUser
-- deleteUser
-- listUsers
-- getUser
-- createAccessKey
-- deleteAccessKey
-- updateAccessKey
-- createGroup
-- deleteGroup
-- listGroups
-- addUserToGroup
-- removeUserFromGroup
-
-== Producer Examples
-
-- createUser: this operation will create a user in IAM
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:createUser")
-    .setHeader(IAMConstants.GROUP_NAME, constant("camel"))
-    .to("aws-iam://test?iamClient=#amazonIAMClient&operation=createUser")
---------------------------------------------------------------------------------
-
-== Automatic detection of AmazonIdentityManagement client in registry
-
-The component is capable of detecting the presence of an AmazonIdentityManagement bean into the registry.
-If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
-This may be really useful for smarter configuration of the endpoint.
-
-Dependencies
-
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
-
-[source,xml]
----------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws-iam</artifactId>
-    <version>${camel-version}</version>
-</dependency>
----------------------------------------
-
-where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-
-include::camel-spring-boot::page$aws-iam-starter.adoc[]
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMComponent.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMComponent.java
deleted file mode 100644
index bc173be..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMComponent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import java.util.Map;
-import java.util.Set;
-
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.annotations.Component;
-import org.apache.camel.support.DefaultComponent;
-
-/**
- * For working with Amazon IAM.
- */
-@Component("aws-iam")
-public class IAMComponent extends DefaultComponent {
-
-    @Metadata
-    private IAMConfiguration configuration = new IAMConfiguration();
-
-    public IAMComponent() {
-        this(null);
-    }
-
-    public IAMComponent(CamelContext context) {
-        super(context);
-
-        registerExtension(new IAMComponentVerifierExtension());
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        IAMConfiguration configuration = this.configuration != null ? this.configuration.copy() : new IAMConfiguration();
-        IAMEndpoint endpoint = new IAMEndpoint(uri, this, configuration);
-        setProperties(endpoint, parameters);
-        if (endpoint.getConfiguration().isAutoDiscoverClient()) {
-            checkAndSetRegistryClient(configuration);
-        }
-        if (configuration.getIamClient() == null
-                && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
-            throw new IllegalArgumentException("Amazon IAM client or accessKey and secretKey must be specified");
-        }
-
-        return endpoint;
-    }
-
-    public IAMConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    /**
-     * The component configuration
-     */
-    public void setConfiguration(IAMConfiguration configuration) {
-        this.configuration = configuration;
-    }
-
-    private void checkAndSetRegistryClient(IAMConfiguration configuration) {
-        Set<AmazonIdentityManagement> clients = getCamelContext().getRegistry().findByType(AmazonIdentityManagement.class);
-        if (clients.size() == 1) {
-            configuration.setIamClient(clients.stream().findFirst().get());
-        }
-    }
-}
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMComponentVerifierExtension.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMComponentVerifierExtension.java
deleted file mode 100644
index ddde79c..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMComponentVerifierExtension.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import java.util.Map;
-
-import com.amazonaws.SdkClientException;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder;
-import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
-import org.apache.camel.component.extension.verifier.ResultBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorHelper;
-
-public class IAMComponentVerifierExtension extends DefaultComponentVerifierExtension {
-
-    public IAMComponentVerifierExtension() {
-        this("aws-iam");
-    }
-
-    public IAMComponentVerifierExtension(String scheme) {
-        super(scheme);
-    }
-
-    // *********************************
-    // Parameters validation
-    // *********************************
-
-    @Override
-    protected Result verifyParameters(Map<String, Object> parameters) {
-
-        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.PARAMETERS)
-                .error(ResultErrorHelper.requiresOption("accessKey", parameters))
-                .error(ResultErrorHelper.requiresOption("secretKey", parameters))
-                .error(ResultErrorHelper.requiresOption("region", parameters));
-
-        // Validate using the catalog
-
-        super.verifyParametersAgainstCatalog(builder, parameters);
-
-        return builder.build();
-    }
-
-    // *********************************
-    // Connectivity validation
-    // *********************************
-
-    @Override
-    protected Result verifyConnectivity(Map<String, Object> parameters) {
-        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.CONNECTIVITY);
-
-        try {
-            IAMConfiguration configuration = setProperties(new IAMConfiguration(), parameters);
-            AWSCredentials credentials = new BasicAWSCredentials(configuration.getAccessKey(), configuration.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            AmazonIdentityManagement client
-                    = AmazonIdentityManagementClientBuilder.standard().withCredentials(credentialsProvider)
-                            .withRegion(Regions.valueOf(configuration.getRegion())).build();
-            client.listAccessKeys();
-        } catch (SdkClientException e) {
-            ResultErrorBuilder errorBuilder
-                    = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.AUTHENTICATION, e.getMessage())
-                            .detail("aws_iam_exception_message", e.getMessage())
-                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_CLASS, e.getClass().getName())
-                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE, e);
-
-            builder.error(errorBuilder.build());
-        } catch (Exception e) {
-            builder.error(ResultErrorBuilder.withException(e).build());
-        }
-        return builder.build();
-    }
-}
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMConfiguration.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMConfiguration.java
deleted file mode 100644
index ae4412f..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMConfiguration.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import com.amazonaws.Protocol;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
-import org.apache.camel.spi.UriPath;
-
-@UriParams
-public class IAMConfiguration implements Cloneable {
-
-    @UriPath(description = "Logical name")
-    @Metadata(required = true)
-    private String label;
-    @UriParam(label = "producer")
-    private AmazonIdentityManagement iamClient;
-    @UriParam(label = "producer", secret = true)
-    private String accessKey;
-    @UriParam(label = "producer", secret = true)
-    private String secretKey;
-    @UriParam(label = "producer")
-    @Metadata(required = true)
-    private IAMOperations operation;
-    @UriParam(enums = "HTTP,HTTPS", defaultValue = "HTTPS")
-    private Protocol proxyProtocol = Protocol.HTTPS;
-    @UriParam(label = "producer")
-    private String proxyHost;
-    @UriParam(label = "producer")
-    private Integer proxyPort;
-    @UriParam
-    private String region;
-    @UriParam(label = "common", defaultValue = "true")
-    private boolean autoDiscoverClient = true;
-
-    public AmazonIdentityManagement getIamClient() {
-        return iamClient;
-    }
-
-    /**
-     * To use a existing configured AWS IAM as client
-     */
-    public void setIamClient(AmazonIdentityManagement iamClient) {
-        this.iamClient = iamClient;
-    }
-
-    public String getAccessKey() {
-        return accessKey;
-    }
-
-    /**
-     * Amazon AWS Access Key
-     */
-    public void setAccessKey(String accessKey) {
-        this.accessKey = accessKey;
-    }
-
-    public String getSecretKey() {
-        return secretKey;
-    }
-
-    /**
-     * Amazon AWS Secret Key
-     */
-    public void setSecretKey(String secretKey) {
-        this.secretKey = secretKey;
-    }
-
-    public IAMOperations getOperation() {
-        return operation;
-    }
-
-    /**
-     * The operation to perform
-     */
-    public void setOperation(IAMOperations operation) {
-        this.operation = operation;
-    }
-
-    public Protocol getProxyProtocol() {
-        return proxyProtocol;
-    }
-
-    /**
-     * To define a proxy protocol when instantiating the IAM client
-     */
-    public void setProxyProtocol(Protocol proxyProtocol) {
-        this.proxyProtocol = proxyProtocol;
-    }
-
-    public String getProxyHost() {
-        return proxyHost;
-    }
-
-    /**
-     * To define a proxy host when instantiating the IAM client
-     */
-    public void setProxyHost(String proxyHost) {
-        this.proxyHost = proxyHost;
-    }
-
-    public Integer getProxyPort() {
-        return proxyPort;
-    }
-
-    /**
-     * To define a proxy port when instantiating the IAM client
-     */
-    public void setProxyPort(Integer proxyPort) {
-        this.proxyPort = proxyPort;
-    }
-
-    public String getRegion() {
-        return region;
-    }
-
-    /**
-     * The region in which IAM client needs to work. When using this parameter, the configuration will expect the
-     * capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name()
-     */
-    public void setRegion(String region) {
-        this.region = region;
-    }
-
-    public boolean isAutoDiscoverClient() {
-        return autoDiscoverClient;
-    }
-
-    /**
-     * Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry
-     * automatically otherwise it will skip that checking.
-     */
-    public void setAutoDiscoverClient(boolean autoDiscoverClient) {
-        this.autoDiscoverClient = autoDiscoverClient;
-    }
-
-    // *************************************************
-    //
-    // *************************************************
-
-    public IAMConfiguration copy() {
-        try {
-            return (IAMConfiguration) super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new RuntimeCamelException(e);
-        }
-    }
-}
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java
deleted file mode 100644
index b31e096..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-/**
- * Constants used in Camel AWS IAM module
- */
-public interface IAMConstants {
-    String OPERATION = "CamelAwsIAMOperation";
-    String USERNAME = "CamelAwsIAMUsername";
-    String ACCESS_KEY_ID = "CamelAwsIAMAccessKeyID";
-    String ACCESS_KEY_STATUS = "CamelAwsIAMAccessKeyStatus";
-    String GROUP_NAME = "CamelAwsIAMGroupName";
-    String GROUP_PATH = "CamelAwsIAMGroupPath";
-}
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMEndpoint.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMEndpoint.java
deleted file mode 100644
index 1e8b9c4..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMEndpoint.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder;
-import org.apache.camel.Category;
-import org.apache.camel.Component;
-import org.apache.camel.Consumer;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.spi.UriEndpoint;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.support.ScheduledPollEndpoint;
-import org.apache.camel.util.ObjectHelper;
-
-/**
- * Manage AWS IAM instances.
- */
-@UriEndpoint(firstVersion = "2.23.0", scheme = "aws-iam", title = "AWS Identity and Access Management (IAM)",
-             syntax = "aws-iam:label", producerOnly = true, category = { Category.CLOUD, Category.MANAGEMENT })
-public class IAMEndpoint extends ScheduledPollEndpoint {
-
-    private AmazonIdentityManagement iamClient;
-
-    @UriParam
-    private IAMConfiguration configuration;
-
-    public IAMEndpoint(String uri, Component component, IAMConfiguration configuration) {
-        super(uri, component);
-        this.configuration = configuration;
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        throw new UnsupportedOperationException("You cannot receive messages from this endpoint");
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        return new IAMProducer(this);
-    }
-
-    @Override
-    public void doStart() throws Exception {
-        super.doStart();
-
-        iamClient = configuration.getIamClient() != null ? configuration.getIamClient() : createIAMClient();
-    }
-
-    @Override
-    public void doStop() throws Exception {
-        if (ObjectHelper.isEmpty(configuration.getIamClient())) {
-            if (iamClient != null) {
-                iamClient.shutdown();
-            }
-        }
-        super.doStop();
-    }
-
-    public IAMConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    public AmazonIdentityManagement getIamClient() {
-        return iamClient;
-    }
-
-    AmazonIdentityManagement createIAMClient() {
-        AmazonIdentityManagement client = null;
-        ClientConfiguration clientConfiguration = null;
-        AmazonIdentityManagementClientBuilder clientBuilder = null;
-        boolean isClientConfigFound = false;
-        if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
-            clientConfiguration = new ClientConfiguration();
-            clientConfiguration.setProxyProtocol(configuration.getProxyProtocol());
-            clientConfiguration.setProxyHost(configuration.getProxyHost());
-            clientConfiguration.setProxyPort(configuration.getProxyPort());
-            isClientConfigFound = true;
-        }
-        if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) {
-            AWSCredentials credentials = new BasicAWSCredentials(configuration.getAccessKey(), configuration.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            if (isClientConfigFound) {
-                clientBuilder = AmazonIdentityManagementClientBuilder.standard().withClientConfiguration(clientConfiguration)
-                        .withCredentials(credentialsProvider);
-            } else {
-                clientBuilder = AmazonIdentityManagementClientBuilder.standard().withCredentials(credentialsProvider);
-            }
-        } else {
-            if (isClientConfigFound) {
-                clientBuilder = AmazonIdentityManagementClientBuilder.standard();
-            } else {
-                clientBuilder = AmazonIdentityManagementClientBuilder.standard().withClientConfiguration(clientConfiguration);
-            }
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
-            clientBuilder = clientBuilder.withRegion(Regions.valueOf(configuration.getRegion()));
-        }
-        client = clientBuilder.build();
-        return client;
-    }
-}
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
deleted file mode 100644
index ade9f2b..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-public enum IAMOperations {
-
-    listAccessKeys,
-    createUser,
-    deleteUser,
-    getUser,
-    listUsers,
-    createAccessKey,
-    deleteAccessKey,
-    updateAccessKey,
-    createGroup,
-    deleteGroup,
-    listGroups,
-    addUserToGroup,
-    removeUserFromGroup
-}
diff --git a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java b/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
deleted file mode 100644
index d6cb288..0000000
--- a/components/camel-aws-iam/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
-import com.amazonaws.services.identitymanagement.model.AddUserToGroupRequest;
-import com.amazonaws.services.identitymanagement.model.AddUserToGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateAccessKeyRequest;
-import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.CreateGroupRequest;
-import com.amazonaws.services.identitymanagement.model.CreateGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateUserRequest;
-import com.amazonaws.services.identitymanagement.model.CreateUserResult;
-import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupResult;
-import com.amazonaws.services.identitymanagement.model.DeleteUserRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
-import com.amazonaws.services.identitymanagement.model.GetUserRequest;
-import com.amazonaws.services.identitymanagement.model.GetUserResult;
-import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
-import com.amazonaws.services.identitymanagement.model.ListGroupsResult;
-import com.amazonaws.services.identitymanagement.model.ListUsersResult;
-import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupRequest;
-import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupResult;
-import com.amazonaws.services.identitymanagement.model.StatusType;
-import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.support.DefaultProducer;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.URISupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A Producer which sends messages to the Amazon IAM Service <a href="http://aws.amazon.com/iam/">AWS IAM</a>
- */
-public class IAMProducer extends DefaultProducer {
-
-    private static final Logger LOG = LoggerFactory.getLogger(IAMProducer.class);
-    private transient String iamProducerToString;
-
-    public IAMProducer(Endpoint endpoint) {
-        super(endpoint);
-    }
-
-    @Override
-    public void process(Exchange exchange) throws Exception {
-        switch (determineOperation(exchange)) {
-            case listAccessKeys:
-                listAccessKeys(getEndpoint().getIamClient(), exchange);
-                break;
-            case createAccessKey:
-                createAccessKey(getEndpoint().getIamClient(), exchange);
-                break;
-            case deleteAccessKey:
-                deleteAccessKey(getEndpoint().getIamClient(), exchange);
-                break;
-            case updateAccessKey:
-                updateAccessKey(getEndpoint().getIamClient(), exchange);
-                break;
-            case createUser:
-                createUser(getEndpoint().getIamClient(), exchange);
-                break;
-            case deleteUser:
-                deleteUser(getEndpoint().getIamClient(), exchange);
-                break;
-            case getUser:
-                getUser(getEndpoint().getIamClient(), exchange);
-                break;
-            case listUsers:
-                listUsers(getEndpoint().getIamClient(), exchange);
-                break;
-            case createGroup:
-                createGroup(getEndpoint().getIamClient(), exchange);
-                break;
-            case deleteGroup:
-                deleteGroup(getEndpoint().getIamClient(), exchange);
-                break;
-            case listGroups:
-                listGroups(getEndpoint().getIamClient(), exchange);
-                break;
-            case addUserToGroup:
-                addUserToGroup(getEndpoint().getIamClient(), exchange);
-                break;
-            case removeUserFromGroup:
-                removeUserFromGroup(getEndpoint().getIamClient(), exchange);
-                break;
-            default:
-                throw new IllegalArgumentException("Unsupported operation");
-        }
-    }
-
-    private IAMOperations determineOperation(Exchange exchange) {
-        IAMOperations operation = exchange.getIn().getHeader(IAMConstants.OPERATION, IAMOperations.class);
-        if (operation == null) {
-            operation = getConfiguration().getOperation();
-        }
-        return operation;
-    }
-
-    protected IAMConfiguration getConfiguration() {
-        return getEndpoint().getConfiguration();
-    }
-
-    @Override
-    public String toString() {
-        if (iamProducerToString == null) {
-            iamProducerToString = "IAMProducer[" + URISupport.sanitizeUri(getEndpoint().getEndpointUri()) + "]";
-        }
-        return iamProducerToString;
-    }
-
-    @Override
-    public IAMEndpoint getEndpoint() {
-        return (IAMEndpoint) super.getEndpoint();
-    }
-
-    private void listAccessKeys(AmazonIdentityManagement iamClient, Exchange exchange) {
-        ListAccessKeysResult result;
-        try {
-            result = iamClient.listAccessKeys();
-        } catch (AmazonServiceException ase) {
-            LOG.trace("List Access Keys command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void createUser(AmazonIdentityManagement iamClient, Exchange exchange) {
-        CreateUserRequest request = new CreateUserRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        } else {
-            throw new IllegalArgumentException("User Name must be specified");
-        }
-        CreateUserResult result;
-        try {
-            result = iamClient.createUser(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Create user command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void deleteUser(AmazonIdentityManagement iamClient, Exchange exchange) {
-        DeleteUserRequest request = new DeleteUserRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        } else {
-            throw new IllegalArgumentException("User Name must be specified");
-        }
-        DeleteUserResult result;
-        try {
-            result = iamClient.deleteUser(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Delete user command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void getUser(AmazonIdentityManagement iamClient, Exchange exchange) {
-        GetUserRequest request = new GetUserRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        } else {
-            throw new IllegalArgumentException("User Name must be specified");
-        }
-        GetUserResult result;
-        try {
-            result = iamClient.getUser(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("get user command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void listUsers(AmazonIdentityManagement iamClient, Exchange exchange) {
-        ListUsersResult result;
-        try {
-            result = iamClient.listUsers();
-        } catch (AmazonServiceException ase) {
-            LOG.trace("List users command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void createAccessKey(AmazonIdentityManagement iamClient, Exchange exchange) {
-        CreateAccessKeyRequest request = new CreateAccessKeyRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        }
-        CreateAccessKeyResult result;
-        try {
-            result = iamClient.createAccessKey(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Create Access Key command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void deleteAccessKey(AmazonIdentityManagement iamClient, Exchange exchange) {
-        DeleteAccessKeyRequest request = new DeleteAccessKeyRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.ACCESS_KEY_ID))) {
-            String accessKeyId = exchange.getIn().getHeader(IAMConstants.ACCESS_KEY_ID, String.class);
-            request.withAccessKeyId(accessKeyId);
-        } else {
-            throw new IllegalArgumentException("Key Id must be specified");
-        }
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        }
-        DeleteAccessKeyResult result;
-        try {
-            result = iamClient.deleteAccessKey(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Delete Access Key command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void updateAccessKey(AmazonIdentityManagement iamClient, Exchange exchange) {
-        UpdateAccessKeyRequest request = new UpdateAccessKeyRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.ACCESS_KEY_ID))) {
-            String accessKeyId = exchange.getIn().getHeader(IAMConstants.ACCESS_KEY_ID, String.class);
-            request.withAccessKeyId(accessKeyId);
-        } else {
-            throw new IllegalArgumentException("Key Id must be specified");
-        }
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.ACCESS_KEY_STATUS))) {
-            String status = exchange.getIn().getHeader(IAMConstants.ACCESS_KEY_STATUS, String.class);
-            request.withStatus(StatusType.fromValue(status));
-        } else {
-            throw new IllegalArgumentException("Access Key status must be specified");
-        }
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        }
-        UpdateAccessKeyResult result;
-        try {
-            result = iamClient.updateAccessKey(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Update Access Key command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void createGroup(AmazonIdentityManagement iamClient, Exchange exchange) {
-        CreateGroupRequest request = new CreateGroupRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.GROUP_NAME))) {
-            String groupName = exchange.getIn().getHeader(IAMConstants.GROUP_NAME, String.class);
-            request.withGroupName(groupName);
-        } else {
-            throw new IllegalArgumentException("Group Name must be specified");
-        }
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.GROUP_PATH))) {
-            String groupPath = exchange.getIn().getHeader(IAMConstants.GROUP_PATH, String.class);
-            request.withPath(groupPath);
-        }
-        CreateGroupResult result;
-        try {
-            result = iamClient.createGroup(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Create Group command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void deleteGroup(AmazonIdentityManagement iamClient, Exchange exchange) {
-        DeleteGroupRequest request = new DeleteGroupRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.GROUP_NAME))) {
-            String groupName = exchange.getIn().getHeader(IAMConstants.GROUP_NAME, String.class);
-            request.withGroupName(groupName);
-        } else {
-            throw new IllegalArgumentException("Group Name must be specified");
-        }
-        DeleteGroupResult result;
-        try {
-            result = iamClient.deleteGroup(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Delete Group command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void listGroups(AmazonIdentityManagement iamClient, Exchange exchange) {
-        ListGroupsResult result;
-        try {
-            result = iamClient.listGroups();
-        } catch (AmazonServiceException ase) {
-            LOG.trace("List Groups command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void addUserToGroup(AmazonIdentityManagement iamClient, Exchange exchange) {
-        AddUserToGroupRequest request = new AddUserToGroupRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.GROUP_NAME))) {
-            String groupName = exchange.getIn().getHeader(IAMConstants.GROUP_NAME, String.class);
-            request.withGroupName(groupName);
-        } else {
-            throw new IllegalArgumentException("Group Name must be specified");
-        }
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        } else {
-            throw new IllegalArgumentException("User Name must be specified");
-        }
-        AddUserToGroupResult result;
-        try {
-            result = iamClient.addUserToGroup(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Add User To Group command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    private void removeUserFromGroup(AmazonIdentityManagement iamClient, Exchange exchange) {
-        RemoveUserFromGroupRequest request = new RemoveUserFromGroupRequest();
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.GROUP_NAME))) {
-            String groupName = exchange.getIn().getHeader(IAMConstants.GROUP_NAME, String.class);
-            request.withGroupName(groupName);
-        } else {
-            throw new IllegalArgumentException("Group Name must be specified");
-        }
-        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(IAMConstants.USERNAME))) {
-            String userName = exchange.getIn().getHeader(IAMConstants.USERNAME, String.class);
-            request.withUserName(userName);
-        } else {
-            throw new IllegalArgumentException("User Name must be specified");
-        }
-        RemoveUserFromGroupResult result;
-        try {
-            result = iamClient.removeUserFromGroup(request);
-        } catch (AmazonServiceException ase) {
-            LOG.trace("Remove User From Group command returned the error code {}", ase.getErrorCode());
-            throw ase;
-        }
-        Message message = getMessageForResponse(exchange);
-        message.setBody(result);
-    }
-
-    public static Message getMessageForResponse(final Exchange exchange) {
-        return exchange.getMessage();
-    }
-}
diff --git a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java b/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
deleted file mode 100644
index 4865d7d..0000000
--- a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
+++ /dev/null
@@ -1,1107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import com.amazonaws.AmazonWebServiceRequest;
-import com.amazonaws.ResponseMetadata;
-import com.amazonaws.regions.Region;
-import com.amazonaws.services.identitymanagement.AbstractAmazonIdentityManagement;
-import com.amazonaws.services.identitymanagement.model.AccessKey;
-import com.amazonaws.services.identitymanagement.model.AccessKeyMetadata;
-import com.amazonaws.services.identitymanagement.model.AddClientIDToOpenIDConnectProviderRequest;
-import com.amazonaws.services.identitymanagement.model.AddClientIDToOpenIDConnectProviderResult;
-import com.amazonaws.services.identitymanagement.model.AddRoleToInstanceProfileRequest;
-import com.amazonaws.services.identitymanagement.model.AddRoleToInstanceProfileResult;
-import com.amazonaws.services.identitymanagement.model.AddUserToGroupRequest;
-import com.amazonaws.services.identitymanagement.model.AddUserToGroupResult;
-import com.amazonaws.services.identitymanagement.model.AttachGroupPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.AttachGroupPolicyResult;
-import com.amazonaws.services.identitymanagement.model.AttachRolePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.AttachRolePolicyResult;
-import com.amazonaws.services.identitymanagement.model.AttachUserPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.AttachUserPolicyResult;
-import com.amazonaws.services.identitymanagement.model.ChangePasswordRequest;
-import com.amazonaws.services.identitymanagement.model.ChangePasswordResult;
-import com.amazonaws.services.identitymanagement.model.CreateAccessKeyRequest;
-import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.CreateAccountAliasRequest;
-import com.amazonaws.services.identitymanagement.model.CreateAccountAliasResult;
-import com.amazonaws.services.identitymanagement.model.CreateGroupRequest;
-import com.amazonaws.services.identitymanagement.model.CreateGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateInstanceProfileRequest;
-import com.amazonaws.services.identitymanagement.model.CreateInstanceProfileResult;
-import com.amazonaws.services.identitymanagement.model.CreateLoginProfileRequest;
-import com.amazonaws.services.identitymanagement.model.CreateLoginProfileResult;
-import com.amazonaws.services.identitymanagement.model.CreateOpenIDConnectProviderRequest;
-import com.amazonaws.services.identitymanagement.model.CreateOpenIDConnectProviderResult;
-import com.amazonaws.services.identitymanagement.model.CreatePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.CreatePolicyResult;
-import com.amazonaws.services.identitymanagement.model.CreatePolicyVersionRequest;
-import com.amazonaws.services.identitymanagement.model.CreatePolicyVersionResult;
-import com.amazonaws.services.identitymanagement.model.CreateRoleRequest;
-import com.amazonaws.services.identitymanagement.model.CreateRoleResult;
-import com.amazonaws.services.identitymanagement.model.CreateSAMLProviderRequest;
-import com.amazonaws.services.identitymanagement.model.CreateSAMLProviderResult;
-import com.amazonaws.services.identitymanagement.model.CreateServiceLinkedRoleRequest;
-import com.amazonaws.services.identitymanagement.model.CreateServiceLinkedRoleResult;
-import com.amazonaws.services.identitymanagement.model.CreateServiceSpecificCredentialRequest;
-import com.amazonaws.services.identitymanagement.model.CreateServiceSpecificCredentialResult;
-import com.amazonaws.services.identitymanagement.model.CreateUserRequest;
-import com.amazonaws.services.identitymanagement.model.CreateUserResult;
-import com.amazonaws.services.identitymanagement.model.CreateVirtualMFADeviceRequest;
-import com.amazonaws.services.identitymanagement.model.CreateVirtualMFADeviceResult;
-import com.amazonaws.services.identitymanagement.model.DeactivateMFADeviceRequest;
-import com.amazonaws.services.identitymanagement.model.DeactivateMFADeviceResult;
-import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteAccountAliasRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteAccountAliasResult;
-import com.amazonaws.services.identitymanagement.model.DeleteAccountPasswordPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteAccountPasswordPolicyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupPolicyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupResult;
-import com.amazonaws.services.identitymanagement.model.DeleteInstanceProfileRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteInstanceProfileResult;
-import com.amazonaws.services.identitymanagement.model.DeleteLoginProfileRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteLoginProfileResult;
-import com.amazonaws.services.identitymanagement.model.DeleteOpenIDConnectProviderRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteOpenIDConnectProviderResult;
-import com.amazonaws.services.identitymanagement.model.DeletePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DeletePolicyResult;
-import com.amazonaws.services.identitymanagement.model.DeletePolicyVersionRequest;
-import com.amazonaws.services.identitymanagement.model.DeletePolicyVersionResult;
-import com.amazonaws.services.identitymanagement.model.DeleteRolePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteRolePolicyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteRoleRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteRoleResult;
-import com.amazonaws.services.identitymanagement.model.DeleteSAMLProviderRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteSAMLProviderResult;
-import com.amazonaws.services.identitymanagement.model.DeleteSSHPublicKeyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteSSHPublicKeyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteServerCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteServerCertificateResult;
-import com.amazonaws.services.identitymanagement.model.DeleteServiceLinkedRoleRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteServiceLinkedRoleResult;
-import com.amazonaws.services.identitymanagement.model.DeleteServiceSpecificCredentialRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteServiceSpecificCredentialResult;
-import com.amazonaws.services.identitymanagement.model.DeleteSigningCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteSigningCertificateResult;
-import com.amazonaws.services.identitymanagement.model.DeleteUserPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteUserPolicyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteUserRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
-import com.amazonaws.services.identitymanagement.model.DeleteVirtualMFADeviceRequest;
-import com.amazonaws.services.identitymanagement.model.DeleteVirtualMFADeviceResult;
-import com.amazonaws.services.identitymanagement.model.DetachGroupPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DetachGroupPolicyResult;
-import com.amazonaws.services.identitymanagement.model.DetachRolePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DetachRolePolicyResult;
-import com.amazonaws.services.identitymanagement.model.DetachUserPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.DetachUserPolicyResult;
-import com.amazonaws.services.identitymanagement.model.EnableMFADeviceRequest;
-import com.amazonaws.services.identitymanagement.model.EnableMFADeviceResult;
-import com.amazonaws.services.identitymanagement.model.GenerateCredentialReportRequest;
-import com.amazonaws.services.identitymanagement.model.GenerateCredentialReportResult;
-import com.amazonaws.services.identitymanagement.model.GetAccessKeyLastUsedRequest;
-import com.amazonaws.services.identitymanagement.model.GetAccessKeyLastUsedResult;
-import com.amazonaws.services.identitymanagement.model.GetAccountAuthorizationDetailsRequest;
-import com.amazonaws.services.identitymanagement.model.GetAccountAuthorizationDetailsResult;
-import com.amazonaws.services.identitymanagement.model.GetAccountPasswordPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetAccountPasswordPolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetAccountSummaryRequest;
-import com.amazonaws.services.identitymanagement.model.GetAccountSummaryResult;
-import com.amazonaws.services.identitymanagement.model.GetContextKeysForCustomPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetContextKeysForCustomPolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetContextKeysForPrincipalPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetContextKeysForPrincipalPolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetCredentialReportRequest;
-import com.amazonaws.services.identitymanagement.model.GetCredentialReportResult;
-import com.amazonaws.services.identitymanagement.model.GetGroupPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetGroupPolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetGroupRequest;
-import com.amazonaws.services.identitymanagement.model.GetGroupResult;
-import com.amazonaws.services.identitymanagement.model.GetInstanceProfileRequest;
-import com.amazonaws.services.identitymanagement.model.GetInstanceProfileResult;
-import com.amazonaws.services.identitymanagement.model.GetLoginProfileRequest;
-import com.amazonaws.services.identitymanagement.model.GetLoginProfileResult;
-import com.amazonaws.services.identitymanagement.model.GetOpenIDConnectProviderRequest;
-import com.amazonaws.services.identitymanagement.model.GetOpenIDConnectProviderResult;
-import com.amazonaws.services.identitymanagement.model.GetPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetPolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetPolicyVersionRequest;
-import com.amazonaws.services.identitymanagement.model.GetPolicyVersionResult;
-import com.amazonaws.services.identitymanagement.model.GetRolePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetRolePolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetRoleRequest;
-import com.amazonaws.services.identitymanagement.model.GetRoleResult;
-import com.amazonaws.services.identitymanagement.model.GetSAMLProviderRequest;
-import com.amazonaws.services.identitymanagement.model.GetSAMLProviderResult;
-import com.amazonaws.services.identitymanagement.model.GetSSHPublicKeyRequest;
-import com.amazonaws.services.identitymanagement.model.GetSSHPublicKeyResult;
-import com.amazonaws.services.identitymanagement.model.GetServerCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.GetServerCertificateResult;
-import com.amazonaws.services.identitymanagement.model.GetServiceLinkedRoleDeletionStatusRequest;
-import com.amazonaws.services.identitymanagement.model.GetServiceLinkedRoleDeletionStatusResult;
-import com.amazonaws.services.identitymanagement.model.GetUserPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.GetUserPolicyResult;
-import com.amazonaws.services.identitymanagement.model.GetUserRequest;
-import com.amazonaws.services.identitymanagement.model.GetUserResult;
-import com.amazonaws.services.identitymanagement.model.Group;
-import com.amazonaws.services.identitymanagement.model.ListAccessKeysRequest;
-import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
-import com.amazonaws.services.identitymanagement.model.ListAccountAliasesRequest;
-import com.amazonaws.services.identitymanagement.model.ListAccountAliasesResult;
-import com.amazonaws.services.identitymanagement.model.ListAttachedGroupPoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListAttachedGroupPoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListAttachedRolePoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListAttachedRolePoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListAttachedUserPoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListAttachedUserPoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListEntitiesForPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.ListEntitiesForPolicyResult;
-import com.amazonaws.services.identitymanagement.model.ListGroupPoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListGroupPoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListGroupsForUserRequest;
-import com.amazonaws.services.identitymanagement.model.ListGroupsForUserResult;
-import com.amazonaws.services.identitymanagement.model.ListGroupsRequest;
-import com.amazonaws.services.identitymanagement.model.ListGroupsResult;
-import com.amazonaws.services.identitymanagement.model.ListInstanceProfilesForRoleRequest;
-import com.amazonaws.services.identitymanagement.model.ListInstanceProfilesForRoleResult;
-import com.amazonaws.services.identitymanagement.model.ListInstanceProfilesRequest;
-import com.amazonaws.services.identitymanagement.model.ListInstanceProfilesResult;
-import com.amazonaws.services.identitymanagement.model.ListMFADevicesRequest;
-import com.amazonaws.services.identitymanagement.model.ListMFADevicesResult;
-import com.amazonaws.services.identitymanagement.model.ListOpenIDConnectProvidersRequest;
-import com.amazonaws.services.identitymanagement.model.ListOpenIDConnectProvidersResult;
-import com.amazonaws.services.identitymanagement.model.ListPoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListPoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListPolicyVersionsRequest;
-import com.amazonaws.services.identitymanagement.model.ListPolicyVersionsResult;
-import com.amazonaws.services.identitymanagement.model.ListRolePoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListRolePoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListRolesRequest;
-import com.amazonaws.services.identitymanagement.model.ListRolesResult;
-import com.amazonaws.services.identitymanagement.model.ListSAMLProvidersRequest;
-import com.amazonaws.services.identitymanagement.model.ListSAMLProvidersResult;
-import com.amazonaws.services.identitymanagement.model.ListSSHPublicKeysRequest;
-import com.amazonaws.services.identitymanagement.model.ListSSHPublicKeysResult;
-import com.amazonaws.services.identitymanagement.model.ListServerCertificatesRequest;
-import com.amazonaws.services.identitymanagement.model.ListServerCertificatesResult;
-import com.amazonaws.services.identitymanagement.model.ListServiceSpecificCredentialsRequest;
-import com.amazonaws.services.identitymanagement.model.ListServiceSpecificCredentialsResult;
-import com.amazonaws.services.identitymanagement.model.ListSigningCertificatesRequest;
-import com.amazonaws.services.identitymanagement.model.ListSigningCertificatesResult;
-import com.amazonaws.services.identitymanagement.model.ListUserPoliciesRequest;
-import com.amazonaws.services.identitymanagement.model.ListUserPoliciesResult;
-import com.amazonaws.services.identitymanagement.model.ListUsersRequest;
-import com.amazonaws.services.identitymanagement.model.ListUsersResult;
-import com.amazonaws.services.identitymanagement.model.ListVirtualMFADevicesRequest;
-import com.amazonaws.services.identitymanagement.model.ListVirtualMFADevicesResult;
-import com.amazonaws.services.identitymanagement.model.PutGroupPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.PutGroupPolicyResult;
-import com.amazonaws.services.identitymanagement.model.PutRolePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.PutRolePolicyResult;
-import com.amazonaws.services.identitymanagement.model.PutUserPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.PutUserPolicyResult;
-import com.amazonaws.services.identitymanagement.model.RemoveClientIDFromOpenIDConnectProviderRequest;
-import com.amazonaws.services.identitymanagement.model.RemoveClientIDFromOpenIDConnectProviderResult;
-import com.amazonaws.services.identitymanagement.model.RemoveRoleFromInstanceProfileRequest;
-import com.amazonaws.services.identitymanagement.model.RemoveRoleFromInstanceProfileResult;
-import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupRequest;
-import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupResult;
-import com.amazonaws.services.identitymanagement.model.ResetServiceSpecificCredentialRequest;
-import com.amazonaws.services.identitymanagement.model.ResetServiceSpecificCredentialResult;
-import com.amazonaws.services.identitymanagement.model.ResyncMFADeviceRequest;
-import com.amazonaws.services.identitymanagement.model.ResyncMFADeviceResult;
-import com.amazonaws.services.identitymanagement.model.SetDefaultPolicyVersionRequest;
-import com.amazonaws.services.identitymanagement.model.SetDefaultPolicyVersionResult;
-import com.amazonaws.services.identitymanagement.model.SimulateCustomPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.SimulateCustomPolicyResult;
-import com.amazonaws.services.identitymanagement.model.SimulatePrincipalPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.SimulatePrincipalPolicyResult;
-import com.amazonaws.services.identitymanagement.model.StatusType;
-import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.UpdateAccountPasswordPolicyRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateAccountPasswordPolicyResult;
-import com.amazonaws.services.identitymanagement.model.UpdateAssumeRolePolicyRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateAssumeRolePolicyResult;
-import com.amazonaws.services.identitymanagement.model.UpdateGroupRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateGroupResult;
-import com.amazonaws.services.identitymanagement.model.UpdateLoginProfileRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateLoginProfileResult;
-import com.amazonaws.services.identitymanagement.model.UpdateOpenIDConnectProviderThumbprintRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateOpenIDConnectProviderThumbprintResult;
-import com.amazonaws.services.identitymanagement.model.UpdateRoleDescriptionRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateRoleDescriptionResult;
-import com.amazonaws.services.identitymanagement.model.UpdateSAMLProviderRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateSAMLProviderResult;
-import com.amazonaws.services.identitymanagement.model.UpdateSSHPublicKeyRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateSSHPublicKeyResult;
-import com.amazonaws.services.identitymanagement.model.UpdateServerCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateServerCertificateResult;
-import com.amazonaws.services.identitymanagement.model.UpdateServiceSpecificCredentialRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateServiceSpecificCredentialResult;
-import com.amazonaws.services.identitymanagement.model.UpdateSigningCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateSigningCertificateResult;
-import com.amazonaws.services.identitymanagement.model.UpdateUserRequest;
-import com.amazonaws.services.identitymanagement.model.UpdateUserResult;
-import com.amazonaws.services.identitymanagement.model.UploadSSHPublicKeyRequest;
-import com.amazonaws.services.identitymanagement.model.UploadSSHPublicKeyResult;
-import com.amazonaws.services.identitymanagement.model.UploadServerCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.UploadServerCertificateResult;
-import com.amazonaws.services.identitymanagement.model.UploadSigningCertificateRequest;
-import com.amazonaws.services.identitymanagement.model.UploadSigningCertificateResult;
-import com.amazonaws.services.identitymanagement.model.User;
-import com.amazonaws.services.identitymanagement.waiters.AmazonIdentityManagementWaiters;
-
-public class AmazonIAMClientMock extends AbstractAmazonIdentityManagement {
-
-    @Override
-    public void setEndpoint(String endpoint) {
-    }
-
-    @Override
-    public void setRegion(Region region) {
-    }
-
-    @Override
-    public AddClientIDToOpenIDConnectProviderResult addClientIDToOpenIDConnectProvider(
-            AddClientIDToOpenIDConnectProviderRequest addClientIDToOpenIDConnectProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public AddRoleToInstanceProfileResult addRoleToInstanceProfile(
-            AddRoleToInstanceProfileRequest addRoleToInstanceProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public AddUserToGroupResult addUserToGroup(AddUserToGroupRequest addUserToGroupRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public AttachGroupPolicyResult attachGroupPolicy(AttachGroupPolicyRequest attachGroupPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public AttachRolePolicyResult attachRolePolicy(AttachRolePolicyRequest attachRolePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public AttachUserPolicyResult attachUserPolicy(AttachUserPolicyRequest attachUserPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ChangePasswordResult changePassword(ChangePasswordRequest changePasswordRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateAccessKeyResult createAccessKey(CreateAccessKeyRequest createAccessKeyRequest) {
-        CreateAccessKeyResult res = new CreateAccessKeyResult();
-        AccessKey key = new AccessKey();
-        key.setAccessKeyId("test");
-        key.setSecretAccessKey("testSecret");
-        res.setAccessKey(key);
-        return res;
-    }
-
-    @Override
-    public CreateAccessKeyResult createAccessKey() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateAccountAliasResult createAccountAlias(CreateAccountAliasRequest createAccountAliasRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateGroupResult createGroup(CreateGroupRequest createGroupRequest) {
-        CreateGroupResult result = new CreateGroupResult();
-        Group group = new Group();
-        group.setGroupName(createGroupRequest.getGroupName());
-        if (createGroupRequest.getPath() != null) {
-            group.setPath(createGroupRequest.getPath());
-        }
-        group.setGroupId("TestGroup");
-        result.setGroup(group);
-        return result;
-    }
-
-    @Override
-    public CreateInstanceProfileResult createInstanceProfile(CreateInstanceProfileRequest createInstanceProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateLoginProfileResult createLoginProfile(CreateLoginProfileRequest createLoginProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateOpenIDConnectProviderResult createOpenIDConnectProvider(
-            CreateOpenIDConnectProviderRequest createOpenIDConnectProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreatePolicyResult createPolicy(CreatePolicyRequest createPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreatePolicyVersionResult createPolicyVersion(CreatePolicyVersionRequest createPolicyVersionRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateRoleResult createRole(CreateRoleRequest createRoleRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateSAMLProviderResult createSAMLProvider(CreateSAMLProviderRequest createSAMLProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateServiceLinkedRoleResult createServiceLinkedRole(
-            CreateServiceLinkedRoleRequest createServiceLinkedRoleRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateServiceSpecificCredentialResult createServiceSpecificCredential(
-            CreateServiceSpecificCredentialRequest createServiceSpecificCredentialRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public CreateUserResult createUser(CreateUserRequest createUserRequest) {
-        CreateUserResult result = new CreateUserResult();
-        User user = new User();
-        user.setUserName("test");
-        result.setUser(user);
-        return result;
-    }
-
-    @Override
-    public CreateVirtualMFADeviceResult createVirtualMFADevice(CreateVirtualMFADeviceRequest createVirtualMFADeviceRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeactivateMFADeviceResult deactivateMFADevice(DeactivateMFADeviceRequest deactivateMFADeviceRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteAccessKeyResult deleteAccessKey(DeleteAccessKeyRequest deleteAccessKeyRequest) {
-        DeleteAccessKeyResult res = new DeleteAccessKeyResult();
-        return res;
-    }
-
-    @Override
-    public DeleteAccountAliasResult deleteAccountAlias(DeleteAccountAliasRequest deleteAccountAliasRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteAccountPasswordPolicyResult deleteAccountPasswordPolicy(
-            DeleteAccountPasswordPolicyRequest deleteAccountPasswordPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteAccountPasswordPolicyResult deleteAccountPasswordPolicy() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteGroupResult deleteGroup(DeleteGroupRequest deleteGroupRequest) {
-        DeleteGroupResult result = new DeleteGroupResult();
-        return result;
-    }
-
-    @Override
-    public DeleteGroupPolicyResult deleteGroupPolicy(DeleteGroupPolicyRequest deleteGroupPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteInstanceProfileResult deleteInstanceProfile(DeleteInstanceProfileRequest deleteInstanceProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteLoginProfileResult deleteLoginProfile(DeleteLoginProfileRequest deleteLoginProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteOpenIDConnectProviderResult deleteOpenIDConnectProvider(
-            DeleteOpenIDConnectProviderRequest deleteOpenIDConnectProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeletePolicyResult deletePolicy(DeletePolicyRequest deletePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeletePolicyVersionResult deletePolicyVersion(DeletePolicyVersionRequest deletePolicyVersionRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteRoleResult deleteRole(DeleteRoleRequest deleteRoleRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteRolePolicyResult deleteRolePolicy(DeleteRolePolicyRequest deleteRolePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteSAMLProviderResult deleteSAMLProvider(DeleteSAMLProviderRequest deleteSAMLProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteSSHPublicKeyResult deleteSSHPublicKey(DeleteSSHPublicKeyRequest deleteSSHPublicKeyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteServerCertificateResult deleteServerCertificate(
-            DeleteServerCertificateRequest deleteServerCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteServiceLinkedRoleResult deleteServiceLinkedRole(
-            DeleteServiceLinkedRoleRequest deleteServiceLinkedRoleRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteServiceSpecificCredentialResult deleteServiceSpecificCredential(
-            DeleteServiceSpecificCredentialRequest deleteServiceSpecificCredentialRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteSigningCertificateResult deleteSigningCertificate(
-            DeleteSigningCertificateRequest deleteSigningCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteUserResult deleteUser(DeleteUserRequest deleteUserRequest) {
-        DeleteUserResult res = new DeleteUserResult();
-        return res;
-    }
-
-    @Override
-    public DeleteUserPolicyResult deleteUserPolicy(DeleteUserPolicyRequest deleteUserPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DeleteVirtualMFADeviceResult deleteVirtualMFADevice(DeleteVirtualMFADeviceRequest deleteVirtualMFADeviceRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DetachGroupPolicyResult detachGroupPolicy(DetachGroupPolicyRequest detachGroupPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DetachRolePolicyResult detachRolePolicy(DetachRolePolicyRequest detachRolePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public DetachUserPolicyResult detachUserPolicy(DetachUserPolicyRequest detachUserPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public EnableMFADeviceResult enableMFADevice(EnableMFADeviceRequest enableMFADeviceRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GenerateCredentialReportResult generateCredentialReport(
-            GenerateCredentialReportRequest generateCredentialReportRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GenerateCredentialReportResult generateCredentialReport() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccessKeyLastUsedResult getAccessKeyLastUsed(GetAccessKeyLastUsedRequest getAccessKeyLastUsedRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccountAuthorizationDetailsResult getAccountAuthorizationDetails(
-            GetAccountAuthorizationDetailsRequest getAccountAuthorizationDetailsRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccountAuthorizationDetailsResult getAccountAuthorizationDetails() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccountPasswordPolicyResult getAccountPasswordPolicy(
-            GetAccountPasswordPolicyRequest getAccountPasswordPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccountPasswordPolicyResult getAccountPasswordPolicy() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccountSummaryResult getAccountSummary(GetAccountSummaryRequest getAccountSummaryRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetAccountSummaryResult getAccountSummary() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetContextKeysForCustomPolicyResult getContextKeysForCustomPolicy(
-            GetContextKeysForCustomPolicyRequest getContextKeysForCustomPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetContextKeysForPrincipalPolicyResult getContextKeysForPrincipalPolicy(
-            GetContextKeysForPrincipalPolicyRequest getContextKeysForPrincipalPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetCredentialReportResult getCredentialReport(GetCredentialReportRequest getCredentialReportRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetCredentialReportResult getCredentialReport() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetGroupResult getGroup(GetGroupRequest getGroupRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetGroupPolicyResult getGroupPolicy(GetGroupPolicyRequest getGroupPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetInstanceProfileResult getInstanceProfile(GetInstanceProfileRequest getInstanceProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetLoginProfileResult getLoginProfile(GetLoginProfileRequest getLoginProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetOpenIDConnectProviderResult getOpenIDConnectProvider(
-            GetOpenIDConnectProviderRequest getOpenIDConnectProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetPolicyResult getPolicy(GetPolicyRequest getPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetPolicyVersionResult getPolicyVersion(GetPolicyVersionRequest getPolicyVersionRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetRoleResult getRole(GetRoleRequest getRoleRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetRolePolicyResult getRolePolicy(GetRolePolicyRequest getRolePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetSAMLProviderResult getSAMLProvider(GetSAMLProviderRequest getSAMLProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetSSHPublicKeyResult getSSHPublicKey(GetSSHPublicKeyRequest getSSHPublicKeyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetServerCertificateResult getServerCertificate(GetServerCertificateRequest getServerCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetServiceLinkedRoleDeletionStatusResult getServiceLinkedRoleDeletionStatus(
-            GetServiceLinkedRoleDeletionStatusRequest getServiceLinkedRoleDeletionStatusRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetUserResult getUser(GetUserRequest getUserRequest) {
-        GetUserResult result = new GetUserResult();
-        User user = new User();
-        user.setUserName("test");
-        result.setUser(user);
-        return result;
-    }
-
-    @Override
-    public GetUserResult getUser() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public GetUserPolicyResult getUserPolicy(GetUserPolicyRequest getUserPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListAccessKeysResult listAccessKeys(ListAccessKeysRequest listAccessKeysRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListAccessKeysResult listAccessKeys() {
-        ListAccessKeysResult result = new ListAccessKeysResult();
-        Collection<AccessKeyMetadata> accessKeyMetadata = new ArrayList<>();
-        AccessKeyMetadata meta = new AccessKeyMetadata();
-        meta.setAccessKeyId("1");
-        meta.setCreateDate(new Date());
-        meta.setStatus(StatusType.Active);
-        meta.setUserName("test");
-        accessKeyMetadata.add(meta);
-        result.setAccessKeyMetadata(accessKeyMetadata);
-        return result;
-    }
-
-    @Override
-    public ListAccountAliasesResult listAccountAliases(ListAccountAliasesRequest listAccountAliasesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListAccountAliasesResult listAccountAliases() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListAttachedGroupPoliciesResult listAttachedGroupPolicies(
-            ListAttachedGroupPoliciesRequest listAttachedGroupPoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListAttachedRolePoliciesResult listAttachedRolePolicies(
-            ListAttachedRolePoliciesRequest listAttachedRolePoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListAttachedUserPoliciesResult listAttachedUserPolicies(
-            ListAttachedUserPoliciesRequest listAttachedUserPoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListEntitiesForPolicyResult listEntitiesForPolicy(ListEntitiesForPolicyRequest listEntitiesForPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListGroupPoliciesResult listGroupPolicies(ListGroupPoliciesRequest listGroupPoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListGroupsResult listGroups(ListGroupsRequest listGroupsRequest) {
-        Group group = new Group();
-        group.setGroupId("TestGroup");
-        group.setGroupName("Test");
-        ListGroupsResult res = new ListGroupsResult();
-        res.setGroups(Collections.singleton(group));
-        return res;
-    }
-
-    @Override
-    public ListGroupsResult listGroups() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListGroupsForUserResult listGroupsForUser(ListGroupsForUserRequest listGroupsForUserRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListInstanceProfilesResult listInstanceProfiles(ListInstanceProfilesRequest listInstanceProfilesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListInstanceProfilesResult listInstanceProfiles() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListInstanceProfilesForRoleResult listInstanceProfilesForRole(
-            ListInstanceProfilesForRoleRequest listInstanceProfilesForRoleRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListMFADevicesResult listMFADevices(ListMFADevicesRequest listMFADevicesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListMFADevicesResult listMFADevices() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListOpenIDConnectProvidersResult listOpenIDConnectProviders(
-            ListOpenIDConnectProvidersRequest listOpenIDConnectProvidersRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListOpenIDConnectProvidersResult listOpenIDConnectProviders() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListPoliciesResult listPolicies(ListPoliciesRequest listPoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListPoliciesResult listPolicies() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListPolicyVersionsResult listPolicyVersions(ListPolicyVersionsRequest listPolicyVersionsRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListRolePoliciesResult listRolePolicies(ListRolePoliciesRequest listRolePoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListRolesResult listRoles(ListRolesRequest listRolesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListRolesResult listRoles() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListSAMLProvidersResult listSAMLProviders(ListSAMLProvidersRequest listSAMLProvidersRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListSAMLProvidersResult listSAMLProviders() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListSSHPublicKeysResult listSSHPublicKeys(ListSSHPublicKeysRequest listSSHPublicKeysRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListSSHPublicKeysResult listSSHPublicKeys() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListServerCertificatesResult listServerCertificates(ListServerCertificatesRequest listServerCertificatesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListServerCertificatesResult listServerCertificates() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListServiceSpecificCredentialsResult listServiceSpecificCredentials(
-            ListServiceSpecificCredentialsRequest listServiceSpecificCredentialsRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListSigningCertificatesResult listSigningCertificates(
-            ListSigningCertificatesRequest listSigningCertificatesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListSigningCertificatesResult listSigningCertificates() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListUserPoliciesResult listUserPolicies(ListUserPoliciesRequest listUserPoliciesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListUsersResult listUsers(ListUsersRequest listUsersRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListUsersResult listUsers() {
-        ListUsersResult res = new ListUsersResult();
-        List<User> list = new ArrayList<>();
-        User user = new User();
-        user.setUserName("test");
-        list.add(user);
-        res.setUsers(list);
-        return res;
-    }
-
-    @Override
-    public ListVirtualMFADevicesResult listVirtualMFADevices(ListVirtualMFADevicesRequest listVirtualMFADevicesRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ListVirtualMFADevicesResult listVirtualMFADevices() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public PutGroupPolicyResult putGroupPolicy(PutGroupPolicyRequest putGroupPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public PutRolePolicyResult putRolePolicy(PutRolePolicyRequest putRolePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public PutUserPolicyResult putUserPolicy(PutUserPolicyRequest putUserPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public RemoveClientIDFromOpenIDConnectProviderResult removeClientIDFromOpenIDConnectProvider(
-            RemoveClientIDFromOpenIDConnectProviderRequest removeClientIDFromOpenIDConnectProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public RemoveRoleFromInstanceProfileResult removeRoleFromInstanceProfile(
-            RemoveRoleFromInstanceProfileRequest removeRoleFromInstanceProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public RemoveUserFromGroupResult removeUserFromGroup(RemoveUserFromGroupRequest removeUserFromGroupRequest) {
-        RemoveUserFromGroupResult res = new RemoveUserFromGroupResult();
-        return res;
-    }
-
-    @Override
-    public ResetServiceSpecificCredentialResult resetServiceSpecificCredential(
-            ResetServiceSpecificCredentialRequest resetServiceSpecificCredentialRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ResyncMFADeviceResult resyncMFADevice(ResyncMFADeviceRequest resyncMFADeviceRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public SetDefaultPolicyVersionResult setDefaultPolicyVersion(
-            SetDefaultPolicyVersionRequest setDefaultPolicyVersionRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public SimulateCustomPolicyResult simulateCustomPolicy(SimulateCustomPolicyRequest simulateCustomPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public SimulatePrincipalPolicyResult simulatePrincipalPolicy(
-            SimulatePrincipalPolicyRequest simulatePrincipalPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateAccessKeyResult updateAccessKey(UpdateAccessKeyRequest updateAccessKeyRequest) {
-        UpdateAccessKeyResult result = new UpdateAccessKeyResult();
-        return result;
-    }
-
-    @Override
-    public UpdateAccountPasswordPolicyResult updateAccountPasswordPolicy(
-            UpdateAccountPasswordPolicyRequest updateAccountPasswordPolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateAssumeRolePolicyResult updateAssumeRolePolicy(UpdateAssumeRolePolicyRequest updateAssumeRolePolicyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateGroupResult updateGroup(UpdateGroupRequest updateGroupRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateLoginProfileResult updateLoginProfile(UpdateLoginProfileRequest updateLoginProfileRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateOpenIDConnectProviderThumbprintResult updateOpenIDConnectProviderThumbprint(
-            UpdateOpenIDConnectProviderThumbprintRequest updateOpenIDConnectProviderThumbprintRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateRoleDescriptionResult updateRoleDescription(UpdateRoleDescriptionRequest updateRoleDescriptionRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateSAMLProviderResult updateSAMLProvider(UpdateSAMLProviderRequest updateSAMLProviderRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateSSHPublicKeyResult updateSSHPublicKey(UpdateSSHPublicKeyRequest updateSSHPublicKeyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateServerCertificateResult updateServerCertificate(
-            UpdateServerCertificateRequest updateServerCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateServiceSpecificCredentialResult updateServiceSpecificCredential(
-            UpdateServiceSpecificCredentialRequest updateServiceSpecificCredentialRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateSigningCertificateResult updateSigningCertificate(
-            UpdateSigningCertificateRequest updateSigningCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UpdateUserResult updateUser(UpdateUserRequest updateUserRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UploadSSHPublicKeyResult uploadSSHPublicKey(UploadSSHPublicKeyRequest uploadSSHPublicKeyRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UploadServerCertificateResult uploadServerCertificate(
-            UploadServerCertificateRequest uploadServerCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public UploadSigningCertificateResult uploadSigningCertificate(
-            UploadSigningCertificateRequest uploadSigningCertificateRequest) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void shutdown() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public AmazonIdentityManagementWaiters waiters() {
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentClientRegistryTest.java b/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentClientRegistryTest.java
deleted file mode 100644
index 38ed7e7..0000000
--- a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentClientRegistryTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-public class IAMComponentClientRegistryTest extends CamelTestSupport {
-
-    @Test
-    public void createEndpointWithMinimalECSClientConfiguration() throws Exception {
-
-        AmazonIAMClientMock clientMock = new AmazonIAMClientMock();
-        context.getRegistry().bind("amazonIamClient", clientMock);
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        IAMEndpoint endpoint = (IAMEndpoint) component.createEndpoint("aws-iam://TestDomain");
-
-        assertNotNull(endpoint.getConfiguration().getIamClient());
-    }
-
-    @Test
-    public void createEndpointWithMinimalECSClientMisconfiguration() throws Exception {
-
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        assertThrows(IllegalArgumentException.class,
-                () -> component.createEndpoint("aws-iam://TestDomain"));
-    }
-
-    @Test
-    public void createEndpointWithAutoDiscoverClientFalse() throws Exception {
-
-        AmazonIAMClientMock clientMock = new AmazonIAMClientMock();
-        context.getRegistry().bind("amazonIamClient", clientMock);
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        IAMEndpoint endpoint = (IAMEndpoint) component
-                .createEndpoint("aws-iam://TestDomain?accessKey=xxx&secretKey=yyy&autoDiscoverClient=false");
-
-        assertNotSame(clientMock, endpoint.getConfiguration().getIamClient());
-    }
-
-    @Test
-    public void createEndpointWithAutoDiscoverClientTrue() throws Exception {
-
-        AmazonIAMClientMock clientMock = new AmazonIAMClientMock();
-        context.getRegistry().bind("amazonIamClient", clientMock);
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        IAMEndpoint endpoint = (IAMEndpoint) component.createEndpoint("aws-iam://TestDomain?accessKey=xxx&secretKey=yyy");
-
-        assertSame(clientMock, endpoint.getConfiguration().getIamClient());
-    }
-}
diff --git a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentConfigurationTest.java b/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentConfigurationTest.java
deleted file mode 100644
index d923694..0000000
--- a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentConfigurationTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import com.amazonaws.Protocol;
-import com.amazonaws.regions.Regions;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class IAMComponentConfigurationTest extends CamelTestSupport {
-
-    @Test
-    public void createEndpointWithComponentElements() throws Exception {
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        IAMEndpoint endpoint = (IAMEndpoint) component.createEndpoint("aws-iam://label");
-
-        assertEquals("XXX", endpoint.getConfiguration().getAccessKey());
-        assertEquals("YYY", endpoint.getConfiguration().getSecretKey());
-    }
-
-    @Test
-    public void createEndpointWithComponentAndEndpointElements() throws Exception {
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
-        IAMEndpoint endpoint
-                = (IAMEndpoint) component.createEndpoint("aws-iam://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
-
-        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
-    }
-
-    @Test
-    public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
-        IAMComponent component = context.getComponent("aws-iam", IAMComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
-        IAMEndpoint endpoint = (IAMEndpoint) component.createEndpoint(
-                "aws-iam://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
-
-        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
-        assertEquals(Protocol.HTTP, endpoint.getConfiguration().getProxyProtocol());
-        assertEquals("localhost", endpoint.getConfiguration().getProxyHost());
-        assertEquals(Integer.valueOf(9000), endpoint.getConfiguration().getProxyPort());
-    }
-}
diff --git a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentVerifierExtensionTest.java b/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentVerifierExtensionTest.java
deleted file mode 100644
index f3755c4..0000000
--- a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMComponentVerifierExtensionTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class IAMComponentVerifierExtensionTest extends CamelTestSupport {
-
-    // *************************************************
-    // Tests (parameters)
-    // *************************************************
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    @Test
-    public void testParameters() throws Exception {
-        Component component = context().getComponent("aws-iam");
-
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "l");
-        parameters.put("label", "test");
-        parameters.put("operation", IAMOperations.listAccessKeys);
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
-    }
-
-    @Test
-    public void testConnectivity() throws Exception {
-        Component component = context().getComponent("aws-iam");
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "US_EAST_1");
-        parameters.put("label", "test");
-        parameters.put("operation", IAMOperations.listAccessKeys);
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-    }
-
-}
diff --git a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java b/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
deleted file mode 100644
index 1d0a7dd..0000000
--- a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import com.amazonaws.services.identitymanagement.model.AddUserToGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.CreateGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateUserResult;
-import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupResult;
-import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
-import com.amazonaws.services.identitymanagement.model.GetUserResult;
-import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
-import com.amazonaws.services.identitymanagement.model.ListGroupsResult;
-import com.amazonaws.services.identitymanagement.model.ListUsersResult;
-import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupResult;
-import com.amazonaws.services.identitymanagement.model.StatusType;
-import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class IAMProducerSpringTest extends CamelSpringTestSupport {
-
-    @EndpointInject("mock:result")
-    private MockEndpoint mock;
-
-    @Test
-    public void iamListAccessKeysTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:listKeys", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listAccessKeys);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        ListAccessKeysResult resultGet = (ListAccessKeysResult) exchange.getIn().getBody();
-        assertEquals(1, resultGet.getAccessKeyMetadata().size());
-        assertEquals("1", resultGet.getAccessKeyMetadata().get(0).getAccessKeyId());
-    }
-
-    @Test
-    public void iamCreateUserTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createUser", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createUser);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        CreateUserResult resultGet = (CreateUserResult) exchange.getIn().getBody();
-        assertEquals("test", resultGet.getUser().getUserName());
-    }
-
-    @Test
-    public void iamDeleteUserTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:deleteUser", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteUser);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        DeleteUserResult resultGet = (DeleteUserResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Test
-    public void iamListUsersTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:listUsers", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listUsers);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        ListUsersResult resultGet = (ListUsersResult) exchange.getIn().getBody();
-        assertEquals(1, resultGet.getUsers().size());
-        assertEquals("test", resultGet.getUsers().get(0).getUserName());
-    }
-
-    @Test
-    public void iamCreateAccessKeyTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createAccessKey", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createAccessKey);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        CreateAccessKeyResult resultGet = (CreateAccessKeyResult) exchange.getIn().getBody();
-        assertEquals("test", resultGet.getAccessKey().getAccessKeyId());
-        assertEquals("testSecret", resultGet.getAccessKey().getSecretAccessKey());
-    }
-
-    @Test
-    public void iamDeleteAccessKeyTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:deleteAccessKey", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteAccessKey);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-                exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_ID, "1");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        DeleteAccessKeyResult resultGet = (DeleteAccessKeyResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Test
-    public void iamGetUserTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:getUser", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.getUser);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        GetUserResult resultGet = (GetUserResult) exchange.getIn().getBody();
-        assertEquals("test", resultGet.getUser().getUserName());
-    }
-
-    @Test
-    public void iamUpdateAccessKeyTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:updateAccessKey", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.updateAccessKey);
-                exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_ID, "1");
-                exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_STATUS, StatusType.Inactive.toString());
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        UpdateAccessKeyResult resultGet = (UpdateAccessKeyResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Test
-    public void iamCreateGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-                exchange.getIn().setHeader(IAMConstants.GROUP_PATH, "/test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        CreateGroupResult resultGet = (CreateGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-        assertEquals("Test", resultGet.getGroup().getGroupName());
-        assertEquals("/test", resultGet.getGroup().getPath());
-    }
-
-    public void iamDeleteGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        DeleteGroupResult resultGet = (DeleteGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    public void iamListGroupsTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:listGroups", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listGroups);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        ListGroupsResult resultGet = (ListGroupsResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-        assertEquals(1, resultGet.getGroups().size());
-        assertEquals("Test", resultGet.getGroups().get(0).getGroupName());
-    }
-
-    public void iamAddUserToGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:addUserToGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.addUserToGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "Test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        AddUserToGroupResult resultGet = (AddUserToGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    public void iamRemoveUserFromGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:removeUserFromGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.removeUserFromGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "Test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        RemoveUserFromGroupResult resultGet = (RemoveUserFromGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Override
-    protected ClassPathXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml");
-    }
-}
diff --git a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java b/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
deleted file mode 100644
index 96db3fe..0000000
--- a/components/camel-aws-iam/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws.iam;
-
-import com.amazonaws.services.identitymanagement.model.AddUserToGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.CreateGroupResult;
-import com.amazonaws.services.identitymanagement.model.CreateUserResult;
-import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
-import com.amazonaws.services.identitymanagement.model.DeleteGroupResult;
-import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
-import com.amazonaws.services.identitymanagement.model.GetUserResult;
-import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
-import com.amazonaws.services.identitymanagement.model.ListGroupsResult;
-import com.amazonaws.services.identitymanagement.model.ListUsersResult;
-import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupResult;
-import com.amazonaws.services.identitymanagement.model.StatusType;
-import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
-import org.apache.camel.BindToRegistry;
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class IAMProducerTest extends CamelTestSupport {
-
-    @BindToRegistry("amazonIAMClient")
-    AmazonIAMClientMock clientMock = new AmazonIAMClientMock();
-
-    @EndpointInject("mock:result")
-    private MockEndpoint mock;
-
-    @Test
-    public void iamListKeysTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:listKeys", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listAccessKeys);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        ListAccessKeysResult resultGet = (ListAccessKeysResult) exchange.getIn().getBody();
-        assertEquals(1, resultGet.getAccessKeyMetadata().size());
-        assertEquals("1", resultGet.getAccessKeyMetadata().get(0).getAccessKeyId());
-    }
-
-    @Test
-    public void iamCreateUserTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createUser", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createUser);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        CreateUserResult resultGet = (CreateUserResult) exchange.getIn().getBody();
-        assertEquals("test", resultGet.getUser().getUserName());
-    }
-
-    @Test
-    public void iamDeleteUserTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:deleteUser", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteUser);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        DeleteUserResult resultGet = (DeleteUserResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Test
-    public void iamGetUserTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:getUser", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.getUser);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        GetUserResult resultGet = (GetUserResult) exchange.getIn().getBody();
-        assertEquals("test", resultGet.getUser().getUserName());
-    }
-
-    @Test
-    public void iamListUsersTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:listUsers", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listUsers);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        ListUsersResult resultGet = (ListUsersResult) exchange.getIn().getBody();
-        assertEquals(1, resultGet.getUsers().size());
-        assertEquals("test", resultGet.getUsers().get(0).getUserName());
-    }
-
-    @Test
-    public void iamCreateAccessKeyTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createAccessKey", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createAccessKey);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        CreateAccessKeyResult resultGet = (CreateAccessKeyResult) exchange.getIn().getBody();
-        assertEquals("test", resultGet.getAccessKey().getAccessKeyId());
-        assertEquals("testSecret", resultGet.getAccessKey().getSecretAccessKey());
-    }
-
-    @Test
-    public void iamDeleteAccessKeyTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:deleteAccessKey", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteAccessKey);
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
-                exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_ID, "1");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        DeleteAccessKeyResult resultGet = (DeleteAccessKeyResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Test
-    public void iamUpdateAccessKeyTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:updateAccessKey", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.updateAccessKey);
-                exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_ID, "1");
-                exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_STATUS, StatusType.Inactive.toString());
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        UpdateAccessKeyResult resultGet = (UpdateAccessKeyResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Test
-    public void iamCreateGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:createGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-                exchange.getIn().setHeader(IAMConstants.GROUP_PATH, "/test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        CreateGroupResult resultGet = (CreateGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-        assertEquals("Test", resultGet.getGroup().getGroupName());
-        assertEquals("/test", resultGet.getGroup().getPath());
-    }
-
-    @Test
-    public void iamDeleteGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:deleteGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        DeleteGroupResult resultGet = (DeleteGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    public void iamListGroupsTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:listGroups", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listGroups);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        ListGroupsResult resultGet = (ListGroupsResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-        assertEquals(1, resultGet.getGroups().size());
-        assertEquals("Test", resultGet.getGroups().get(0).getGroupName());
-    }
-
-    public void iamAddUserToGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:addUserToGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.addUserToGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "Test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        AddUserToGroupResult resultGet = (AddUserToGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    public void iamRemoveUserFromGroupTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:removeUserFromGroup", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.removeUserFromGroup);
-                exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
-                exchange.getIn().setHeader(IAMConstants.USERNAME, "Test");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        RemoveUserFromGroupResult resultGet = (RemoveUserFromGroupResult) exchange.getIn().getBody();
-        assertNotNull(resultGet);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:listKeys").to("aws-iam://test?iamClient=#amazonIAMClient&operation=listAccessKeys")
-                        .to("mock:result");
-                from("direct:createUser").to("aws-iam://test?iamClient=#amazonIAMClient&operation=createUser")
-                        .to("mock:result");
-                from("direct:deleteUser").to("aws-iam://test?iamClient=#amazonIAMClient&operation=deleteUser")
-                        .to("mock:result");
-                from("direct:listUsers").to("aws-iam://test?iamClient=#amazonIAMClient&operation=listUsers").to("mock:result");
-                from("direct:getUser").to("aws-iam://test?iamClient=#amazonIAMClient&operation=getUser").to("mock:result");
-                from("direct:createAccessKey").to("aws-iam://test?iamClient=#amazonIAMClient&operation=createAccessKey")
-                        .to("mock:result");
-                from("direct:deleteAccessKey").to("aws-iam://test?iamClient=#amazonIAMClient&operation=deleteAccessKey")
-                        .to("mock:result");
-                from("direct:updateAccessKey").to("aws-iam://test?iamClient=#amazonIAMClient&operation=updateAccessKey")
-                        .to("mock:result");
-                from("direct:createGroup").to("aws-iam://test?iamClient=#amazonIAMClient&operation=createGroup")
-                        .to("mock:result");
-                from("direct:deleteGroup").to("aws-iam://test?iamClient=#amazonIAMClient&operation=deleteGroup")
-                        .to("mock:result");
-                from("direct:listGroups").to("aws-iam://test?iamClient=#amazonIAMClient&operation=listGroups")
-                        .to("mock:result");
-                from("direct:addUserToGroup").to("aws-iam://test?iamClient=#amazonIAMClient&operation=addUserToGroup")
-                        .to("mock:result");
-                from("direct:removeUserFromGroup").to("aws-iam://test?iamClient=#amazonIAMClient&operation=removeUserFromGroup")
-                        .to("mock:result");
-            }
-        };
-    }
-}
diff --git a/components/camel-aws-iam/src/test/resources/log4j2.properties b/components/camel-aws-iam/src/test/resources/log4j2.properties
deleted file mode 100644
index 00bab03..0000000
--- a/components/camel-aws-iam/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-aws-iam-test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-aws-iam/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml b/components/camel-aws-iam/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
deleted file mode 100644
index 361b65a..0000000
--- a/components/camel-aws-iam/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="
-    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-    http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
-
-    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
-        <route>
-            <from uri="direct:listKeys"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=listAccessKeys"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:createUser"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=createUser"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:deleteUser"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=deleteUser"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:getUser"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=getUser"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:listUsers"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=listUsers"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:createAccessKey"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=createAccessKey"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:deleteAccessKey"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=deleteAccessKey"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:updateAccessKey"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=updateAccessKey"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:createGroup"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=createGroup"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:deleteGroup"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=deleteGroup"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:listGroups"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=listGroups"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:addUserToGroup"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=addUserToGroup"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:removeUserFromGroup"/>
-            <to uri="aws-iam://Test?iamClient=#amazonIAMClient&amp;operation=removeUserFromGroup"/>
-            <to uri="mock:result"/>
-        </route>
-    </camelContext>
-    
-    <bean id="amazonIAMClient" class="org.apache.camel.component.aws.iam.AmazonIAMClientMock"/>
-</beans>
\ No newline at end of file
diff --git a/components/pom.xml b/components/pom.xml
index d6ac25f..8a3c9e9 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -112,7 +112,6 @@
         <module>camel-aws-ec2</module>
         <module>camel-aws-ecs</module>
         <module>camel-aws-eks</module>
-        <module>camel-aws-iam</module>
         <module>camel-aws-s3</module>
         <module>camel-aws-swf</module>
         <module>camel-aws2-athena</module>