<commit_before>[[aws-iam-component]]
== AWS IAM Component

*Available as of Camel version 2.23*

The KMS component supports create, run, start, stop and terminate
https://aws.amazon.com/it/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 are available at
https://aws.amazon.com/it/iam/[Amazon IAM].

### URI Format

[source,java]
-------------------------
aws-kms://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 IAM component supports 5 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *configuration* (advanced) | The AWS IAM default configuration |  | IAMConfiguration
| *accessKey* (producer) | Amazon AWS Access Key |  | String
| *secretKey* (producer) | Amazon AWS Secret Key |  | String
| *region* (producer) | The region in which IAM client needs to work |  | String
| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
|===
// component options: END




// endpoint options: START
The AWS 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 (8 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *accessKey* (producer) | Amazon AWS Access Key |  | String
| *iamClient* (producer) | To use a existing configured AWS IAM as client |  | AmazonIdentity ManagementClient
| *operation* (producer) | *Required* The operation to perform |  | IAMOperations
| *proxyHost* (producer) | To define a proxy host when instantiating the KMS client |  | String
| *proxyPort* (producer) | To define a proxy port when instantiating the KMS client |  | Integer
| *region* (producer) | The region in which KMS client needs to work |  | String
| *secretKey* (producer) | Amazon AWS Secret Key |  | String
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
|===
// endpoint options: END
// spring-boot-auto-configure options: START
=== Spring Boot Auto-Configuration


The component supports 12 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *camel.component.aws-iam.access-key* | Amazon AWS Access Key |  | String
| *camel.component.aws-iam.configuration.access-key* | Amazon AWS Access Key |  | String
| *camel.component.aws-iam.configuration.iam-client* | To use a existing configured AWS IAM as client |  | AmazonIdentity ManagementClient
| *camel.component.aws-iam.configuration.operation* | The operation to perform |  | IAMOperations
| *camel.component.aws-iam.configuration.proxy-host* | To define a proxy host when instantiating the KMS client |  | String
| *camel.component.aws-iam.configuration.proxy-port* | To define a proxy port when instantiating the KMS client |  | Integer
| *camel.component.aws-iam.configuration.region* | The region in which KMS client needs to work |  | String
| *camel.component.aws-iam.configuration.secret-key* | Amazon AWS Secret Key |  | String
| *camel.component.aws-iam.enabled* | Whether to enable auto configuration of the aws-iam component. This is
 enabled by default. |  | Boolean
| *camel.component.aws-iam.region* | The region in which IAM client needs to work |  | String
| *camel.component.aws-iam.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when
 starting. Only properties which are of String type can use property
 placeholders. | true | Boolean
| *camel.component.aws-iam.secret-key* | Amazon AWS Secret Key |  | String
|===
// spring-boot-auto-configure 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/it/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
|=======================================================================

#### IAM Producer operations

Camel-AWS IAM component provides the following operation on the producer side:

- listAccessKeys
- createUser
- deleteUser
- listUsers

Dependencies

Maven users will need to add the following dependency to their pom.xml.

*pom.xml*<commit_msg>CAMEL-12238 - Updated docs<commit_after>[[aws-iam-component]]
== AWS IAM Component

*Available as of Camel version 2.23*

The KMS component supports create, run, start, stop and terminate
https://aws.amazon.com/it/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 are available at
https://aws.amazon.com/it/iam/[Amazon IAM].

### URI Format

[source,java]
-------------------------
aws-kms://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 IAM component supports 5 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *configuration* (advanced) | The AWS IAM default configuration |  | IAMConfiguration
| *accessKey* (producer) | Amazon AWS Access Key |  | String
| *secretKey* (producer) | Amazon AWS Secret Key |  | String
| *region* (producer) | The region in which IAM client needs to work |  | String
| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
|===
// component options: END




// endpoint options: START
The AWS 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 (8 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *accessKey* (producer) | Amazon AWS Access Key |  | String
| *iamClient* (producer) | To use a existing configured AWS IAM as client |  | AmazonIdentity ManagementClient
| *operation* (producer) | *Required* The operation to perform |  | IAMOperations
| *proxyHost* (producer) | To define a proxy host when instantiating the KMS client |  | String
| *proxyPort* (producer) | To define a proxy port when instantiating the KMS client |  | Integer
| *region* (producer) | The region in which KMS client needs to work |  | String
| *secretKey* (producer) | Amazon AWS Secret Key |  | String
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
|===
// endpoint options: END
// spring-boot-auto-configure options: START
=== Spring Boot Auto-Configuration


The component supports 12 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *camel.component.aws-iam.access-key* | Amazon AWS Access Key |  | String
| *camel.component.aws-iam.configuration.access-key* | Amazon AWS Access Key |  | String
| *camel.component.aws-iam.configuration.iam-client* | To use a existing configured AWS IAM as client |  | AmazonIdentity ManagementClient
| *camel.component.aws-iam.configuration.operation* | The operation to perform |  | IAMOperations
| *camel.component.aws-iam.configuration.proxy-host* | To define a proxy host when instantiating the KMS client |  | String
| *camel.component.aws-iam.configuration.proxy-port* | To define a proxy port when instantiating the KMS client |  | Integer
| *camel.component.aws-iam.configuration.region* | The region in which KMS client needs to work |  | String
| *camel.component.aws-iam.configuration.secret-key* | Amazon AWS Secret Key |  | String
| *camel.component.aws-iam.enabled* | Whether to enable auto configuration of the aws-iam component. This is
 enabled by default. |  | Boolean
| *camel.component.aws-iam.region* | The region in which IAM client needs to work |  | String
| *camel.component.aws-iam.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when
 starting. Only properties which are of String type can use property
 placeholders. | true | Boolean
| *camel.component.aws-iam.secret-key* | Amazon AWS Secret Key |  | String
|===
// spring-boot-auto-configure 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/it/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
|=======================================================================

#### IAM Producer operations

Camel-AWS IAM component provides the following operation on the producer side:

- listAccessKeys
- createUser
- deleteUser
- listUsers
- createAccessKey
- deleteAccessKey

Dependencies

Maven users will need to add the following dependency to their pom.xml.

*pom.xml*
{'fraction_non_alphanumeric': 0.1473764694638249, 'fraction_numerical': 0.009270763643314537, 'mean_word_length': 4.472803347280335, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3831399', 'n_tokens_mistral': 3003, 'n_tokens_neox': 2873, 'n_words': 1065}