AppConfigClient

AppConfig helps you safely change application behavior in production without redeploying code. Using feature flags and dynamic free-form configurations, you can control how your application runs in real time. This approach reduces risk, accelerates releases, and enables faster responses to issues. You can gradually roll out new features to specific users, monitor their impact, and expand availability with confidence. You can also update block lists, allow lists, throttling limits, and logging levels instantly, allowing you to mitigate issues and fine-tune performance without a deployment.

AppConfig supports a broad spectrum of use cases:

  • Feature flags and toggles – Gradually release new capabilities to targeted users, monitor impact, and instantly roll back changes if issues occur.

  • Application tuning – Introduce changes safely in production, measure their effects, and refine behavior without redeploying code.

  • Allow list or block list – Control access to features or restrict specific users in real time, without modifying application code.

  • Centralized configuration storage – Manage configuration data consistently across workloads. AppConfig can deploy configuration from the AppConfig hosted configuration store, Secrets Manager, Systems Manager, Systems Manager Parameter Store, or Amazon S3.

How AppConfig works

This section provides a high-level description of how AppConfig works and how you get started.

1. Identify configuration data to manage in AppConfig

Before creating a configuration profile, identify the configuration data in your code that you want to manage dynamically using AppConfig. Common examples include feature flags, allow and block lists, logging levels, service limits, and throttling rules. These values tend to change frequently and can cause issues if misconfigured.

If your configuration data already exists in cloud services such as Systems Manager Parameter Store or Amazon S3, you can use AppConfig to validate, deploy, and manage that data more effectively.

2. Create a configuration profile in AppConfig

A configuration profile defines how AppConfig locates and manages your configuration data. It includes a URI that points to the data source and a profile type.

AppConfig supports two profile types

  • Feature flags – Enable controlled feature releases, gradual rollouts, and testing in production.

  • Free-form configurations – Store and retrieve configuration data from external sources and update it without redeploying code. Both profile types help decouple configuration from code, support continuous delivery, and reduce deployment risk.

You can also add optional validators to ensure that configuration data is syntactically and semantically correct. During deployment, AppConfig evaluates these validators and automatically rolls back changes if validation fails.

Each configuration profile is associated with an application, which acts as a logical container for your configuration resources. For more information about creating a configuration profile, see Creating a configuration profile in AppConfig in the the AppConfig User Guide.

3. Deploy configuration data

When you start a deployment, AppConfig:

  • Retrieves configuration data from the source defined in the configuration profile

  • Validates the data using the configured validators

  • Delivers the validated configuration to AppConfig Agent The delivered configuration becomes the deployed version used by your application. For more information about deploying a configuration, see Deploying feature flags and configuration data in AppConfig.

4. Retrieve configuration data

Your application retrieves configuration data by calling a local endpoint exposed by AppConfig Agent, which caches the deployed configuration. Retrieving data is a metered event. AppConfig Agent supports a variety of use cases, as described in How to use AppConfig Agent to retrieve configuration data.

If the agent is not suitable for your use case, your application can retrieve configuration data directly from AppConfig by calling the StartConfigurationSession and GetLatestConfiguration API actions.

For more information about retrieving a configuration, see Retrieving feature flags and configuration data in AppConfig.

This reference is intended to be used with the AppConfig User Guide.

Properties

Link copied to clipboard
abstract override val config: AppConfigClient.Config

AppConfigClient's configuration

Functions

Link copied to clipboard

Creates an application. In AppConfig, an application is simply an organizational construct like a folder. This organizational construct has a relationship with some unit of executable code. For example, you could create an application called MyMobileApp to organize and manage configuration data for a mobile application installed by your users.

Link copied to clipboard

Creates a configuration profile, which is information that enables AppConfig to access the configuration source. Valid configuration sources include the following:

Link copied to clipboard

Creates a deployment strategy that defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

Link copied to clipboard

Creates an environment. For each application, you define one or more environments. An environment is a deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

Link copied to clipboard

Creates an experiment definition in AppConfig. An experiment definition describes the purpose, scope, and operational configuration of an experiment, including the target audience, feature flag, and treatment configurations.

Link copied to clipboard

Creates an AppConfig extension. An extension augments your ability to inject logic or behavior at different points during the AppConfig workflow of creating or deploying a configuration.

Link copied to clipboard

When you create an extension or configure an Amazon Web Services authored extension, you associate the extension with an AppConfig application, environment, or configuration profile. For example, you can choose to run the AppConfig deployment events to Amazon SNS Amazon Web Services authored extension and receive notifications on an Amazon SNS topic anytime a configuration deployment is started for a specific application. Defining which extension to associate with an AppConfig resource is called an extension association. An extension association is a specified relationship between an extension and an AppConfig resource, such as an application or a configuration profile. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Creates a new configuration in the AppConfig hosted configuration store. If you're creating a feature flag, we recommend you familiarize yourself with the JSON schema for feature flag data. For more information, see Type reference for AWS.AppConfig.FeatureFlags in the AppConfig User Guide.

Link copied to clipboard

Deletes an application.

Link copied to clipboard

Deletes a configuration profile.

Link copied to clipboard

Deletes a deployment strategy.

Link copied to clipboard

Deletes an environment.

Link copied to clipboard

Deletes an experiment definition. You can archive the definition to hide it from the active list while preserving it for future reference, or permanently delete it along with all associated run history.

Link copied to clipboard

Deletes an AppConfig extension. You must delete all associations to an extension before you delete the extension.

Link copied to clipboard

Deletes an extension association. This action doesn't delete extensions defined in the association.

Link copied to clipboard

Deletes a version of a configuration from the AppConfig hosted configuration store.

Link copied to clipboard
abstract suspend fun getAccountSettings(input: GetAccountSettingsRequest = GetAccountSettingsRequest { }): GetAccountSettingsResponse

Returns information about the status of the DeletionProtection parameter.

Link copied to clipboard

Retrieves information about an application.

Link copied to clipboard

(Deprecated) Retrieves the latest deployed configuration.

Link copied to clipboard

Retrieves information about a configuration profile.

Link copied to clipboard

Retrieves information about a configuration deployment.

Link copied to clipboard

Retrieves information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

Link copied to clipboard

Retrieves information about an environment. An environment is a deployment group of AppConfig applications, such as applications in a Production environment or in an EU_Region environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.

Link copied to clipboard

Retrieves information about an experiment definition.

Link copied to clipboard

Retrieves information about an experiment run, including its status, start time, and exposure settings.

Link copied to clipboard

Returns information about an AppConfig extension.

Link copied to clipboard

Returns information about an AppConfig extension association. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Retrieves information about a specific configuration version.

Link copied to clipboard
abstract suspend fun listApplications(input: ListApplicationsRequest = ListApplicationsRequest { }): ListApplicationsResponse

Lists all applications in your Amazon Web Services account.

Link copied to clipboard

Lists the configuration profiles for an application.

Link copied to clipboard

Lists the deployments for an environment in descending deployment number order.

Link copied to clipboard
abstract suspend fun listDeploymentStrategies(input: ListDeploymentStrategiesRequest = ListDeploymentStrategiesRequest { }): ListDeploymentStrategiesResponse

Lists deployment strategies.

Link copied to clipboard

Lists the environments for an application.

Link copied to clipboard
abstract suspend fun listExperimentDefinitions(input: ListExperimentDefinitionsRequest = ListExperimentDefinitionsRequest { }): ListExperimentDefinitionsResponse

Lists the experiment definitions for an account. You can filter results by application, configuration profile, environment, or status.

Link copied to clipboard

Lists the events for a specified experiment run. Events provide a timeline of actions and state changes that occurred during the run.

Link copied to clipboard

Lists the experiment runs for a specified experiment definition. You can filter by status.

Link copied to clipboard
abstract suspend fun listExtensionAssociations(input: ListExtensionAssociationsRequest = ListExtensionAssociationsRequest { }): ListExtensionAssociationsResponse

Lists all AppConfig extension associations in the account. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard
abstract suspend fun listExtensions(input: ListExtensionsRequest = ListExtensionsRequest { }): ListExtensionsResponse

Lists all custom and Amazon Web Services authored AppConfig extensions in the account. For more information about extensions, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Lists configurations stored in the AppConfig hosted configuration store by version.

Link copied to clipboard

Retrieves the list of key-value tags assigned to the resource.

Link copied to clipboard

Starts a deployment.

Link copied to clipboard

Starts an experiment run for the specified experiment definition. An experiment run delivers treatments to the target audience and collects metrics. You can start multiple experiment runs from the same experiment definition.

Link copied to clipboard

Stops a deployment. This API action works only on deployments that have a status of DEPLOYING, unless an AllowRevert parameter is supplied. If the AllowRevert parameter is supplied, the status of an in-progress deployment will be ROLLED_BACK. The status of a completed deployment will be REVERTED. AppConfig only allows a revert within 72 hours of deployment completion.

Link copied to clipboard

Stops a running experiment. Stopping an experiment run ends audience exposure and returns users to the currently deployed feature flag configuration.

Link copied to clipboard
abstract suspend fun tagResource(input: TagResourceRequest): TagResourceResponse

Assigns metadata to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource.

Link copied to clipboard

Deletes a tag key and value from an AppConfig resource.

Link copied to clipboard
abstract suspend fun updateAccountSettings(input: UpdateAccountSettingsRequest = UpdateAccountSettingsRequest { }): UpdateAccountSettingsResponse

Updates the value of the DeletionProtection parameter.

Link copied to clipboard

Updates an application.

Link copied to clipboard

Updates a configuration profile.

Link copied to clipboard

Updates a deployment strategy.

Link copied to clipboard

Updates an environment.

Link copied to clipboard

Updates an experiment definition. You can update treatments, the control, audience rules, and other properties. You cannot update an experiment definition while an experiment run is active.

Link copied to clipboard

Updates a running experiment. Use this operation to increase audience exposure, modify treatment assignment overrides, or update the description of an active experiment run. Audience exposure can only be increased, not decreased.

Link copied to clipboard

Updates an AppConfig extension. For more information about extensions, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Updates an association. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Uses the validators in a configuration profile to validate a configuration.

Inherited functions

Link copied to clipboard
expect abstract fun close()
Link copied to clipboard

Creates an application. In AppConfig, an application is simply an organizational construct like a folder. This organizational construct has a relationship with some unit of executable code. For example, you could create an application called MyMobileApp to organize and manage configuration data for a mobile application installed by your users.

Link copied to clipboard

Creates a configuration profile, which is information that enables AppConfig to access the configuration source. Valid configuration sources include the following:

Link copied to clipboard

Creates a deployment strategy that defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

Link copied to clipboard

Creates an environment. For each application, you define one or more environments. An environment is a deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

Link copied to clipboard

Creates an experiment definition in AppConfig. An experiment definition describes the purpose, scope, and operational configuration of an experiment, including the target audience, feature flag, and treatment configurations.

Link copied to clipboard

Creates an AppConfig extension. An extension augments your ability to inject logic or behavior at different points during the AppConfig workflow of creating or deploying a configuration.

Link copied to clipboard

When you create an extension or configure an Amazon Web Services authored extension, you associate the extension with an AppConfig application, environment, or configuration profile. For example, you can choose to run the AppConfig deployment events to Amazon SNS Amazon Web Services authored extension and receive notifications on an Amazon SNS topic anytime a configuration deployment is started for a specific application. Defining which extension to associate with an AppConfig resource is called an extension association. An extension association is a specified relationship between an extension and an AppConfig resource, such as an application or a configuration profile. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Creates a new configuration in the AppConfig hosted configuration store. If you're creating a feature flag, we recommend you familiarize yourself with the JSON schema for feature flag data. For more information, see Type reference for AWS.AppConfig.FeatureFlags in the AppConfig User Guide.

Link copied to clipboard

Deletes an application.

Link copied to clipboard

Deletes a configuration profile.

Link copied to clipboard

Deletes a deployment strategy.

Link copied to clipboard

Deletes an environment.

Link copied to clipboard

Deletes an experiment definition. You can archive the definition to hide it from the active list while preserving it for future reference, or permanently delete it along with all associated run history.

Link copied to clipboard

Deletes an AppConfig extension. You must delete all associations to an extension before you delete the extension.

Link copied to clipboard

Deletes an extension association. This action doesn't delete extensions defined in the association.

Link copied to clipboard

Deletes a version of a configuration from the AppConfig hosted configuration store.

Link copied to clipboard

Returns information about the status of the DeletionProtection parameter.

Link copied to clipboard

Retrieves information about an application.

Link copied to clipboard

(Deprecated) Retrieves the latest deployed configuration.

Link copied to clipboard

Retrieves information about a configuration profile.

Link copied to clipboard

Retrieves information about a configuration deployment.

Link copied to clipboard

Retrieves information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

Link copied to clipboard

Retrieves information about an environment. An environment is a deployment group of AppConfig applications, such as applications in a Production environment or in an EU_Region environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.

Link copied to clipboard

Retrieves information about an experiment definition.

Link copied to clipboard

Retrieves information about an experiment run, including its status, start time, and exposure settings.

Link copied to clipboard

Returns information about an AppConfig extension.

Link copied to clipboard

Returns information about an AppConfig extension association. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Retrieves information about a specific configuration version.

Link copied to clipboard

Lists all applications in your Amazon Web Services account.

Link copied to clipboard

Lists the configuration profiles for an application.

Link copied to clipboard

Lists the deployments for an environment in descending deployment number order.

Link copied to clipboard

Lists deployment strategies.

Link copied to clipboard

Lists the environments for an application.

Link copied to clipboard

Lists the experiment definitions for an account. You can filter results by application, configuration profile, environment, or status.

Link copied to clipboard

Lists the events for a specified experiment run. Events provide a timeline of actions and state changes that occurred during the run.

Link copied to clipboard

Lists the experiment runs for a specified experiment definition. You can filter by status.

Link copied to clipboard

Lists all AppConfig extension associations in the account. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Lists all custom and Amazon Web Services authored AppConfig extensions in the account. For more information about extensions, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Lists configurations stored in the AppConfig hosted configuration store by version.

Link copied to clipboard

Retrieves the list of key-value tags assigned to the resource.

Link copied to clipboard

Starts a deployment.

Link copied to clipboard

Starts an experiment run for the specified experiment definition. An experiment run delivers treatments to the target audience and collects metrics. You can start multiple experiment runs from the same experiment definition.

Link copied to clipboard

Stops a deployment. This API action works only on deployments that have a status of DEPLOYING, unless an AllowRevert parameter is supplied. If the AllowRevert parameter is supplied, the status of an in-progress deployment will be ROLLED_BACK. The status of a completed deployment will be REVERTED. AppConfig only allows a revert within 72 hours of deployment completion.

Link copied to clipboard

Stops a running experiment. Stopping an experiment run ends audience exposure and returns users to the currently deployed feature flag configuration.

Link copied to clipboard
inline suspend fun AppConfigClient.tagResource(crossinline block: TagResourceRequest.Builder.() -> Unit): TagResourceResponse

Assigns metadata to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource.

Link copied to clipboard

Deletes a tag key and value from an AppConfig resource.

Link copied to clipboard

Updates the value of the DeletionProtection parameter.

Link copied to clipboard

Updates an application.

Link copied to clipboard

Updates a configuration profile.

Link copied to clipboard

Updates a deployment strategy.

Link copied to clipboard

Updates an environment.

Link copied to clipboard

Updates an experiment definition. You can update treatments, the control, audience rules, and other properties. You cannot update an experiment definition while an experiment run is active.

Link copied to clipboard

Updates a running experiment. Use this operation to increase audience exposure, modify treatment assignment overrides, or update the description of an active experiment run. Audience exposure can only be increased, not decreased.

Link copied to clipboard

Updates an AppConfig extension. For more information about extensions, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Updates an association. For more information about extensions and associations, see Extending workflows in the AppConfig User Guide.

Link copied to clipboard

Uses the validators in a configuration profile to validate a configuration.

Link copied to clipboard

Create a copy of the client with one or more configuration values overridden. This method allows the caller to perform scoped config overrides for one or more client operations.