# AWSConfigStore API

Config store backed by AWS Systems Manager Parameter Store.

---
Canonical: /handbook/api/classes/_purista_aws-config-store.AWSConfigStore/
Source: aws-config-store/src/AWSConfigStore.impl.ts
Format: Markdown for agents
---

Config store backed by AWS Systems Manager Parameter Store.

Package: `@purista/aws-config-store`

## Signature

```typescript
class AWSConfigStore
```

## Examples

```typescript
const store = new AWSConfigStore({
  client: { region: 'eu-central-1' },
  cacheTtl: 60_000,
})

await store.setConfig('/tenants/acme/prod/app/theme', 'dark')
const config = await store.getConfig('/tenants/acme/prod/app/theme')
```

## Members

### Constructors

- `new constructor(config: { cacheTtl: number; client: SSMClientConfig; enableCache: boolean; enableGet: boolean; enableRemove: boolean; enableSet: boolean; ... })` — Creates an AWS Systems Manager config store.

### Properties

- `cache: ConfigStoreCacheMap` — Optional local cache used by store implementations that opt in.
- `client: SSMClient` — AWS SDK client used for SSM requests.
- `config: { cacheTtl: number; client: SSMClientConfig; enableCache: boolean; enableGet: boolean; enableRemove: boolean; enableSet: boolean; ... }` — Store configuration including operation toggles and cache settings.
- `logger: Logger` — Child logger scoped to the store name.
- `name: string` — Store name used in logs and diagnostics.

### Methods

- `destroy(): Promise<void>` — Shutdown hook for store adapters.
- `getConfig<ConfigNames>(...configNames: ConfigNames): Promise<ObjectWithKeysFromStringArray<ConfigNames>>` — Returns the values for given config properties.
- `getConfigImpl<ConfigNames>(...configNames: ConfigNames): Promise<ObjectWithKeysFromStringArray<ConfigNames>>` — This method must be overwritten by actual store implementation.
- `removeConfig(configName: string): Promise<void>` — Removes the config item given by config name.
- `removeConfigImpl(configName: string): Promise<void>` — This method must be overwritten by actual store implementation.
- `setConfig(configName: string, configValue: unknown): Promise<void>` — Sets a config value.
- `setConfigImpl(configName: string, configValue: string): Promise<void>` — This method must be overwritten by actual store implementation.
