diff --git a/src/README.md b/src/README.md
new file mode 100644
index 0000000..5209aee
--- /dev/null
+++ b/src/README.md
@@ -0,0 +1,150 @@
+---
+tags:
+ - component/datadog-private-location-ecs
+ - layer/datadog
+ - provider/aws
+ - provider/datadog
+---
+
+# Component: `datadog`
+
+This component is responsible for creating a datadog private location and deploying it to ECS (EC2 / Fargate)
+
+## Usage
+
+**Note** The app key required for this component requires admin level permissions if you are using the default roles.
+Admin's have permissions to Write to private locations, which is needed for this component.
+
+**Stack Level**: Regional
+
+Here's an example snippet for how to use this component.
+
+```yaml
+# stacks/catalog/datadog/private-location.yaml
+components:
+ terraform:
+ datadog-private-location:
+ metadata:
+ component: datadog-private-location-ecs
+ settings:
+ spacelift:
+ workspace_enabled: true
+ vars:
+ enabled: true
+ name: datadog-private-location
+ task:
+ task_memory: 512
+ task_cpu: 256
+ launch_type: FARGATE
+ # capacity_provider_strategies takes precedence over launch_type
+ capacity_provider_strategies:
+ - capacity_provider: FARGATE_SPOT
+ weight: 100
+ base: null
+ network_mode: awsvpc
+ desired_count: 1
+ ignore_changes_desired_count: true
+ ignore_changes_task_definition: false
+ use_alb_security_group: false
+ assign_public_ip: false
+ propagate_tags: SERVICE
+ wait_for_steady_state: true
+ circuit_breaker_deployment_enabled: true
+ circuit_breaker_rollback_enabled: true
+ containers:
+ datadog:
+ name: datadog-private-location
+ image: public.ecr.aws/datadog/synthetics-private-location-worker:latest
+ compatibilities:
+ - EC2
+ - FARGATE
+ - FARGATE_SPOT
+ log_configuration:
+ logDriver: awslogs
+ options: {}
+ port_mappings: []
+```
+
+
+
+## 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 |
+|------|--------|---------|
+| [container\_definition](#module\_container\_definition) | cloudposse/ecs-container-definition/aws | 0.58.1 |
+| [datadog\_configuration](#module\_datadog\_configuration) | ../datadog-configuration/modules/datadog_keys | n/a |
+| [ecs\_alb\_service\_task](#module\_ecs\_alb\_service\_task) | cloudposse/ecs-alb-service-task/aws | 0.66.2 |
+| [ecs\_cluster](#module\_ecs\_cluster) | cloudposse/stack-config/yaml//modules/remote-state | 1.5.0 |
+| [iam\_roles](#module\_iam\_roles) | ../account-map/modules/iam-roles | n/a |
+| [roles\_to\_principals](#module\_roles\_to\_principals) | ../account-map/modules/roles-to-principals | n/a |
+| [this](#module\_this) | cloudposse/label/null | 0.25.0 |
+| [vpc](#module\_vpc) | cloudposse/stack-config/yaml//modules/remote-state | 1.5.0 |
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [datadog_synthetics_private_location.private_location](https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/synthetics_private_location) | 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 |
+| [alb\_configuration](#input\_alb\_configuration) | The configuration to use for the ALB, specifying which cluster alb configuration to use | `string` | `"default"` | 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 |
+| [containers](#input\_containers) | Feed inputs into container definition module | `any` | `{}` | no |
+| [context](#input\_context) | Single object for setting entire context at once.
See description of individual variables for details.
Leave string and numeric variables as `null` to use default value.
Individual variable settings (non-null) override settings in context object,
except for attributes, tags, and additional\_tag\_map, which are merged. | `any` |
{| no | +| [delimiter](#input\_delimiter) | Delimiter to be used between ID elements.
"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 | +| [name](#input\_name) | ID element. Usually the component or solution name, e.g. 'app' or 'jenkins'.
"default"
]