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 2018/10/05 08:43:00 UTC

[camel] branch master updated (80c35e1 -> 30096a8)

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

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


    from 80c35e1  CAMEL-12853 - disable SftpConsumerDisconnectTest
     new 93fa169  CAMEL-12859 - Camel-AWS: Add more operations to the AWS IAM producer, getUser Operation
     new 1419f45  CAMEL-12859 - Updated docs
     new 2af6ac6  CAMEL-12859 - Camel-AWS: Add more operations to the AWS IAM producer, updateAccessKey operation
     new 30096a8  CAMEL-12859 - Updated docs

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel-aws/src/main/docs/aws-iam-component.adoc |  6 +++
 .../camel/component/aws/iam/IAMConstants.java      |  2 +
 .../camel/component/aws/iam/IAMOperations.java     |  4 +-
 .../camel/component/aws/iam/IAMProducer.java       | 57 ++++++++++++++++++++++
 .../component/aws/iam/AmazonIAMClientMock.java     |  9 +++-
 .../component/aws/iam/IAMProducerSpringTest.java   | 40 +++++++++++++++
 .../camel/component/aws/iam/IAMProducerTest.java   | 42 ++++++++++++++++
 .../aws/iam/IAMComponentSpringTest-context.xml     | 10 ++++
 8 files changed, 166 insertions(+), 4 deletions(-)


[camel] 02/04: CAMEL-12859 - Updated docs

Posted by ac...@apache.org.
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 1419f45898aca7a21bd9d59244bbe34de527c510
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Oct 5 09:56:44 2018 +0200

    CAMEL-12859 - Updated docs
---
 components/camel-aws/src/main/docs/aws-iam-component.adoc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/components/camel-aws/src/main/docs/aws-iam-component.adoc b/components/camel-aws/src/main/docs/aws-iam-component.adoc
index 4bcb87f..26ea2e8 100644
--- a/components/camel-aws/src/main/docs/aws-iam-component.adoc
+++ b/components/camel-aws/src/main/docs/aws-iam-component.adoc
@@ -135,6 +135,7 @@ Camel-AWS IAM component provides the following operation on the producer side:
 - createUser
 - deleteUser
 - listUsers
+- getUser
 - createAccessKey
 - deleteAccessKey
 


[camel] 04/04: CAMEL-12859 - Updated docs

Posted by ac...@apache.org.
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 30096a8f9a72ba3bb17ff73aabc53bb9c6a9e26b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Oct 5 10:41:33 2018 +0200

    CAMEL-12859 - Updated docs
---
 components/camel-aws/src/main/docs/aws-iam-component.adoc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/components/camel-aws/src/main/docs/aws-iam-component.adoc b/components/camel-aws/src/main/docs/aws-iam-component.adoc
index 26ea2e8..9d6a6d5 100644
--- a/components/camel-aws/src/main/docs/aws-iam-component.adoc
+++ b/components/camel-aws/src/main/docs/aws-iam-component.adoc
@@ -125,6 +125,10 @@ the https://aws.amazon.com/it/iam/[Amazon IAM] service.
 |`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
 |=======================================================================
 
 #### IAM Producer operations
@@ -138,6 +142,7 @@ Camel-AWS IAM component provides the following operation on the producer side:
 - getUser
 - createAccessKey
 - deleteAccessKey
+- updateAccessKey
 
 Dependencies
 


[camel] 01/04: CAMEL-12859 - Camel-AWS: Add more operations to the AWS IAM producer, getUser Operation

Posted by ac...@apache.org.
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 93fa169bcce161965ed15dae0bfa6a36aebf380e
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Oct 5 09:56:00 2018 +0200

    CAMEL-12859 - Camel-AWS: Add more operations to the AWS IAM producer, getUser Operation
---
 .../camel/component/aws/iam/IAMOperations.java     |  2 +-
 .../camel/component/aws/iam/IAMProducer.java       | 22 ++++++++++++++++++++++
 .../component/aws/iam/AmazonIAMClientMock.java     |  6 +++++-
 .../component/aws/iam/IAMProducerSpringTest.java   | 19 +++++++++++++++++++
 .../camel/component/aws/iam/IAMProducerTest.java   | 20 ++++++++++++++++++++
 .../aws/iam/IAMComponentSpringTest-context.xml     |  5 +++++
 6 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
index eead44c..b0039b5 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
@@ -18,6 +18,6 @@ package org.apache.camel.component.aws.iam;
 
 public enum IAMOperations {
 
-    listAccessKeys, createUser, deleteUser, listUsers,
+    listAccessKeys, createUser, deleteUser, getUser, listUsers,
     createAccessKey, deleteAccessKey
 }
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
index 1db7864..7fd5f44 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
@@ -26,6 +26,8 @@ import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyRequest;
 import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
 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.ListUsersResult;
 
@@ -71,6 +73,9 @@ public class IAMProducer extends DefaultProducer {
         case deleteUser:
             deleteUser(getEndpoint().getIamClient(), exchange);
             break;
+        case getUser:
+            getUser(getEndpoint().getIamClient(), exchange);
+            break;
         case listUsers:
             listUsers(getEndpoint().getIamClient(), exchange);
             break;
@@ -149,6 +154,23 @@ public class IAMProducer extends DefaultProducer {
         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);
+        }
+        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;
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
index d501188..3f00d05 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
@@ -673,7 +673,11 @@ public class AmazonIAMClientMock extends AmazonIdentityManagementClient {
 
     @Override
     public GetUserResult getUser(GetUserRequest getUserRequest) {
-        throw new UnsupportedOperationException();
+        GetUserResult result = new GetUserResult();
+        User user = new User();
+        user.setUserName("test");
+        result.setUser(user);
+        return result;
     }
 
     @Override
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
index a0e5c15..da99c8b 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
@@ -20,6 +20,7 @@ import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
 import com.amazonaws.services.identitymanagement.model.CreateUserResult;
 import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
 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.ListUsersResult;
 
@@ -144,6 +145,24 @@ public class IAMProducerSpringTest extends CamelSpringTestSupport {
         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());
+    }
 
     @Override
     protected ClassPathXmlApplicationContext createApplicationContext() {
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
index 9b3d9cf..ef02509 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
@@ -20,6 +20,7 @@ import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
 import com.amazonaws.services.identitymanagement.model.CreateUserResult;
 import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
 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.ListUsersResult;
 
@@ -90,6 +91,24 @@ public class IAMProducerTest extends CamelTestSupport {
         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 {
@@ -166,6 +185,7 @@ public class IAMProducerTest extends CamelTestSupport {
                 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");
             }
diff --git a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
index dbb216d..98169f8 100644
--- a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
+++ b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
@@ -40,6 +40,11 @@
             <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"/>


[camel] 03/04: CAMEL-12859 - Camel-AWS: Add more operations to the AWS IAM producer, updateAccessKey operation

Posted by ac...@apache.org.
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 2af6ac615a04068b0cfe228170ad99f22863ed78
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Oct 5 10:35:10 2018 +0200

    CAMEL-12859 - Camel-AWS: Add more operations to the AWS IAM producer, updateAccessKey operation
---
 .../camel/component/aws/iam/IAMConstants.java      |  2 ++
 .../camel/component/aws/iam/IAMOperations.java     |  2 +-
 .../camel/component/aws/iam/IAMProducer.java       | 35 ++++++++++++++++++++++
 .../component/aws/iam/AmazonIAMClientMock.java     |  3 +-
 .../component/aws/iam/IAMProducerSpringTest.java   | 21 +++++++++++++
 .../camel/component/aws/iam/IAMProducerTest.java   | 22 ++++++++++++++
 .../aws/iam/IAMComponentSpringTest-context.xml     |  5 ++++
 7 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java
index 6fb9cfb..bcb6d6a 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMConstants.java
@@ -22,4 +22,6 @@ package org.apache.camel.component.aws.iam;
 public interface IAMConstants {
     String OPERATION = "CamelAwsIAMOperation";
     String USERNAME = "CamelAwsIAMUsername";
+    String ACCESS_KEY_ID = "CamelAwsIAMAccessKeyID";
+    String ACCESS_KEY_STATUS = "CamelAwsIAMAccessKeyStatus";
 }
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
index b0039b5..3d9b30c 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMOperations.java
@@ -19,5 +19,5 @@ package org.apache.camel.component.aws.iam;
 public enum IAMOperations {
 
     listAccessKeys, createUser, deleteUser, getUser, listUsers,
-    createAccessKey, deleteAccessKey
+    createAccessKey, deleteAccessKey, updateAccessKey
 }
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
index 7fd5f44..62b2ff2 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/iam/IAMProducer.java
@@ -30,6 +30,9 @@ 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.ListUsersResult;
+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;
@@ -67,6 +70,9 @@ public class IAMProducer extends DefaultProducer {
         case deleteAccessKey:
             deleteAccessKey(getEndpoint().getIamClient(), exchange);
             break;
+        case updateAccessKey:
+            updateAccessKey(getEndpoint().getIamClient(), exchange);
+            break;
         case createUser:
             createUser(getEndpoint().getIamClient(), exchange);
             break;
@@ -217,4 +223,33 @@ public class IAMProducer extends DefaultProducer {
         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);
+    }
 }
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
index 3f00d05..1422cb8 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/AmazonIAMClientMock.java
@@ -957,7 +957,8 @@ public class AmazonIAMClientMock extends AmazonIdentityManagementClient {
 
     @Override
     public UpdateAccessKeyResult updateAccessKey(UpdateAccessKeyRequest updateAccessKeyRequest) {
-        throw new UnsupportedOperationException();
+        UpdateAccessKeyResult result = new UpdateAccessKeyResult();
+        return result;
     }
 
     @Override
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
index da99c8b..3cc7def 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerSpringTest.java
@@ -23,6 +23,8 @@ 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.ListUsersResult;
+import com.amazonaws.services.identitymanagement.model.StatusType;
+import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
 
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
@@ -163,6 +165,25 @@ public class IAMProducerSpringTest extends CamelSpringTestSupport {
         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);
+    }
 
     @Override
     protected ClassPathXmlApplicationContext createApplicationContext() {
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
index ef02509..ecd8336 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/iam/IAMProducerTest.java
@@ -23,6 +23,8 @@ 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.ListUsersResult;
+import com.amazonaws.services.identitymanagement.model.StatusType;
+import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
 
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
@@ -164,6 +166,25 @@ public class IAMProducerTest extends CamelTestSupport {
         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);
+    }
 
     @Override
     protected JndiRegistry createRegistry() throws Exception {
@@ -188,6 +209,7 @@ public class IAMProducerTest extends CamelTestSupport {
                 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");
             }
         };
     }
diff --git a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
index 98169f8..8a96829 100644
--- a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
+++ b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml
@@ -59,6 +59,11 @@
             <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>
     </camelContext>
     
     <bean id="amazonIAMClient" class="org.apache.camel.component.aws.iam.AmazonIAMClientMock"/>