diff --git a/CHANGELOG.md b/src/CHANGELOG.md
similarity index 100%
rename from CHANGELOG.md
rename to src/CHANGELOG.md
diff --git a/src/README.md b/src/README.md
new file mode 100644
index 0000000..7e67cdd
--- /dev/null
+++ b/src/README.md
@@ -0,0 +1,196 @@
+---
+tags:
+ - component/datadog-lambda-forwarder
+ - layer/datadog
+ - provider/aws
+ - provider/datadog
+---
+
+# Component: `datadog`
+
+This component is responsible for provision all the necessary infrastructure to deploy
+[Datadog Lambda forwarders](https://github.com/DataDog/datadog-serverless-functions/tree/master/aws/logs_monitoring). It
+depends on the `datadog-configuration` component to get the Datadog API keys.
+
+## Usage
+
+**Stack Level**: Regional
+
+Here's an example snippet for how to use this component:
+
+```yaml
+components:
+ terraform:
+ datadog-lambda-forwarder:
+ settings:
+ spacelift:
+ workspace_enabled: true
+ vars:
+ enabled: true
+ name: datadog-lambda-forwarder
+ # Set `forwarder_rds_enabled` to `true` and configure `rds-enhanced-monitoring` Log Group when:
+ # 1. The account has RDS instances provisioned
+ # 2. RDS Enhanced Monitoring is enabled
+ # 3. CloudWatch Log Group `RDSOSMetrics` exists (it will be created by AWS automatically when RDS Enhanced Monitoring is enabled)
+ forwarder_rds_enabled: true
+ forwarder_log_enabled: true
+ forwarder_vpc_logs_enabled: true
+ cloudwatch_forwarder_log_groups:
+ rds-enhanced-monitoring:
+ name: "RDSOSMetrics"
+ filter_pattern: ""
+ eks-cluster:
+ # Use either `name` or `name_prefix` with `name_suffix`
+ # If `name_prefix` with `name_suffix` are used, the final `name` will be constructed using `name_prefix` + context + `name_suffix`,
+ # e.g. "/aws/eks/eg-ue2-prod-eks-cluster/cluster"
+ name_prefix: "/aws/eks/"
+ name_suffix: "eks-cluster/cluster"
+ filter_pattern: ""
+ transfer-sftp:
+ name: "/aws/transfer/s-xxxxxxxxxxxx"
+ filter_pattern: ""
+```
+
+Note for other regions, you need to deploy the `datadog-configuration` component in the respective region - the datadog
+configuration will be moving to a regional implementation.
+
+For example if you usually deploy to us-west-2 (and DD Configuration is `gbl`), deploy it to the new region and then
+deploy the lambda forwarder.
+
+```yaml
+import:
+ - orgs/acme/plat/dev/_defaults
+ - mixins/region/us-east-1
+ - catalog/datadog/configuration
+ - catalog/datadog/lambda-forwarder
+
+components:
+ terraform:
+ datadog-configuration:
+ vars:
+ datadog_secrets_store_type: SSM
+ datadog_secrets_source_store_account_stage: auto
+ datadog_secrets_source_store_account_region: "us-west-2"
+
+ datadog-lambda-forwarder:
+ vars:
+ datadog_configuration_environment: "use1"
+```
+
+
+
+## Requirements
+
+| Name | Version |
+|------|---------|
+| [terraform](#requirement\_terraform) | >= 1.0.0 |
+| [aws](#requirement\_aws) | >= 4.0 |
+| [datadog](#requirement\_datadog) | >= 3.3.0 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| [datadog](#provider\_datadog) | >= 3.3.0 |
+
+## Modules
+
+| Name | Source | Version |
+|------|--------|---------|
+| [datadog-integration](#module\_datadog-integration) | cloudposse/stack-config/yaml//modules/remote-state | 1.5.0 |
+| [datadog\_configuration](#module\_datadog\_configuration) | ../datadog-configuration/modules/datadog_keys | n/a |
+| [datadog\_lambda\_forwarder](#module\_datadog\_lambda\_forwarder) | cloudposse/datadog-lambda-forwarder/aws | 1.5.3 |
+| [iam\_roles](#module\_iam\_roles) | ../account-map/modules/iam-roles | n/a |
+| [log\_group\_prefix](#module\_log\_group\_prefix) | cloudposse/label/null | 0.25.0 |
+| [this](#module\_this) | cloudposse/label/null | 0.25.0 |
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [datadog_integration_aws_lambda_arn.log_collector](https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/integration_aws_lambda_arn) | resource |
+| [datadog_integration_aws_lambda_arn.rds_collector](https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/integration_aws_lambda_arn) | resource |
+| [datadog_integration_aws_lambda_arn.vpc_logs_collector](https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/integration_aws_lambda_arn) | resource |
+| [datadog_integration_aws_log_collection.main](https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/integration_aws_log_collection) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| [additional\_tag\_map](#input\_additional\_tag\_map) | Additional key-value pairs to add to each map in `tags_as_list_of_maps`. Not added to `tags` or `id`.
This is for some rare cases where resources want additional configuration of tags
and therefore take a list of maps with tag key, value, and additional configuration. | `map(string)` | `{}` | no |
+| [attributes](#input\_attributes) | ID element. Additional attributes (e.g. `workers` or `cluster`) to add to `id`,
in the order they appear in the list. New attributes are appended to the
end of the list. The elements of the list are joined by the `delimiter`
and treated as a single ID element. | `list(string)` | `[]` | no |
+| [cloudwatch\_forwarder\_event\_patterns](#input\_cloudwatch\_forwarder\_event\_patterns) | Map of title to CloudWatch Event patterns to forward to Datadog. Event structure from here: https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html#CloudWatchEventsPatterns
Example:
hcl|
cloudwatch_forwarder_event_rules = {
"guardduty" = {
source = ["aws.guardduty"]
detail-type = ["GuardDuty Finding"]
}
"ec2-terminated" = {
source = ["aws.ec2"]
detail-type = ["EC2 Instance State-change Notification"]
detail = {
state = ["terminated"]
}
}
}
map(object({
version = optional(list(string))
id = optional(list(string))
detail-type = optional(list(string))
source = optional(list(string))
account = optional(list(string))
time = optional(list(string))
region = optional(list(string))
resources = optional(list(string))
detail = optional(map(list(string)))
})) | `{}` | no |
+| [cloudwatch\_forwarder\_log\_groups](#input\_cloudwatch\_forwarder\_log\_groups) | Map of CloudWatch Log Groups with a filter pattern that the Lambda forwarder will send logs from. For example: { mysql1 = { name = "/aws/rds/maincluster", filter\_pattern = "" } | `map(map(string))` | `{}` | no |
+| [context](#input\_context) | Single object for setting entire context at once.{
"additional_tag_map": {},
"attributes": [],
"delimiter": null,
"descriptor_formats": {},
"enabled": true,
"environment": null,
"id_length_limit": null,
"label_key_case": null,
"label_order": [],
"label_value_case": null,
"labels_as_tags": [
"unset"
],
"name": null,
"namespace": null,
"regex_replace_chars": null,
"stage": null,
"tags": {},
"tenant": null
} | no |
+| [context\_tags](#input\_context\_tags) | List of context tags to add to each monitor | `set(string)` | [| no | +| [context\_tags\_enabled](#input\_context\_tags\_enabled) | Whether to add context tags to add to each monitor | `bool` | `true` | no | +| [datadog\_configuration\_environment](#input\_datadog\_configuration\_environment) | AWS region where the Datadog configuration is deployed, useful for multi region setups, null uses default (gbl) | `string` | `null` | no | +| [datadog\_forwarder\_lambda\_environment\_variables](#input\_datadog\_forwarder\_lambda\_environment\_variables) | Map of environment variables to pass to the Lambda Function | `map(string)` | `{}` | no | +| [dd\_api\_key\_kms\_ciphertext\_blob](#input\_dd\_api\_key\_kms\_ciphertext\_blob) | CiphertextBlob stored in environment variable DD\_KMS\_API\_KEY used by the lambda function, along with the KMS key, to decrypt Datadog API key | `string` | `""` | no | +| [dd\_artifact\_filename](#input\_dd\_artifact\_filename) | The Datadog artifact filename minus extension | `string` | `"aws-dd-forwarder"` | no | +| [dd\_forwarder\_version](#input\_dd\_forwarder\_version) | Version tag of Datadog lambdas to use. https://github.com/DataDog/datadog-serverless-functions/releases | `string` | `"3.66.0"` | no | +| [dd\_module\_name](#input\_dd\_module\_name) | The Datadog GitHub repository name | `string` | `"datadog-serverless-functions"` | no | +| [dd\_tags\_map](#input\_dd\_tags\_map) | A map of Datadog tags to apply to all logs forwarded to Datadog | `map(string)` | `{}` | no | +| [delimiter](#input\_delimiter) | Delimiter to be used between ID elements.
"namespace",
"tenant",
"environment",
"stage"
]
[| no | +| [lambda\_arn\_enabled](#input\_lambda\_arn\_enabled) | Enable adding the Lambda Arn to this account integration | `bool` | `true` | no | +| [lambda\_policy\_source\_json](#input\_lambda\_policy\_source\_json) | Additional IAM policy document that can optionally be passed and merged with the created policy document | `string` | `""` | no | +| [lambda\_reserved\_concurrent\_executions](#input\_lambda\_reserved\_concurrent\_executions) | Amount of reserved concurrent executions for the lambda function. A value of 0 disables Lambda from being triggered and -1 removes any concurrency limitations. Defaults to Unreserved Concurrency Limits -1 | `number` | `-1` | no | +| [lambda\_runtime](#input\_lambda\_runtime) | Runtime environment for Datadog Lambda | `string` | `"python3.8"` | no | +| [log\_collection\_services](#input\_log\_collection\_services) | List of log collection services to enable | `list(string)` |
"default"
]
[| no | +| [name](#input\_name) | ID element. Usually the component or solution name, e.g. 'app' or 'jenkins'.
"apigw-access-logs",
"apigw-execution-logs",
"elbv2",
"elb",
"cloudfront",
"lambda",
"redshift",
"s3"
]