From 9159ba22e02156de09ece0ea98869063fa829f58 Mon Sep 17 00:00:00 2001 From: awstools Date: Thu, 7 Mar 2024 19:22:29 +0000 Subject: [PATCH] feat(client-appconfig): AWS AppConfig now supports dynamic parameters, which enhance the functionality of AppConfig Extensions by allowing you to provide parameter values to your Extensions at the time you deploy your configuration. --- clients/client-appconfig/README.md | 164 ++++++++++++++---- clients/client-appconfig/src/AppConfig.ts | 164 ++++++++++++++---- .../client-appconfig/src/AppConfigClient.ts | 164 ++++++++++++++---- .../CreateExtensionAssociationCommand.ts | 5 +- .../src/commands/CreateExtensionCommand.ts | 7 +- .../GetExtensionAssociationCommand.ts | 5 +- .../src/commands/GetExtensionCommand.ts | 1 + .../ListExtensionAssociationsCommand.ts | 5 +- .../src/commands/ListExtensionsCommand.ts | 5 +- .../src/commands/StartDeploymentCommand.ts | 3 + .../UpdateExtensionAssociationCommand.ts | 5 +- .../src/commands/UpdateExtensionCommand.ts | 7 +- clients/client-appconfig/src/index.ts | 164 ++++++++++++++---- .../client-appconfig/src/models/models_0.ts | 55 ++++-- .../src/protocols/Aws_restJson1.ts | 3 + codegen/sdk-codegen/aws-models/appconfig.json | 78 ++++++--- 16 files changed, 653 insertions(+), 182 deletions(-) diff --git a/clients/client-appconfig/README.md b/clients/client-appconfig/README.md index 3dee0acc88fd..64bce3a1b927 100644 --- a/clients/client-appconfig/README.md +++ b/clients/client-appconfig/README.md @@ -6,50 +6,154 @@ AWS SDK for JavaScript AppConfig Client for Node.js, Browser and React Native. -

Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly -deploy application configurations. AppConfig supports controlled deployments to -applications of any size and includes built-in validation checks and monitoring. You can -use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers, -mobile applications, or IoT devices.

-

To prevent errors when deploying application configurations, especially for production -systems where a simple typo could cause an unexpected outage, AppConfig includes -validators. A validator provides a syntactic or semantic check to ensure that the -configuration you want to deploy works as intended. To validate your application -configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against -the configuration. The configuration deployment or update can only proceed when the -configuration data is valid.

-

During a configuration deployment, AppConfig monitors the application to -ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can -configure a deployment strategy for each application or environment that includes -deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error -monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back -to the previous version.

-

AppConfig supports multiple use cases. Here are some examples:

+

AppConfig feature flags and dynamic configurations help software builders +quickly and securely adjust application behavior in production environments without full +code deployments. AppConfig speeds up software release frequency, improves +application resiliency, and helps you address emergent issues more quickly. With feature +flags, you can gradually release new capabilities to users and measure the impact of those +changes before fully deploying the new capabilities to all users. With operational flags +and dynamic configurations, you can update block lists, allow lists, throttling limits, +logging verbosity, and perform other operational tuning to quickly respond to issues in +production environments.

+ +

AppConfig is a capability of Amazon Web Services Systems Manager.

+
+

Despite the fact that application configuration content can vary greatly from +application to application, AppConfig supports the following use cases, which +cover a broad spectrum of customer needs:

+

+How AppConfig works +

+

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

+
+
1. Identify configuration values in code you want to manage in the cloud
+
+

Before you start creating AppConfig artifacts, we recommend you +identify configuration data in your code that you want to dynamically manage using +AppConfig. Good examples include feature flags or toggles, allow and +block lists, logging verbosity, service limits, and throttling rules, to name a +few.

+

If your configuration data already exists in the cloud, you can take advantage +of AppConfig validation, deployment, and extension features to further +streamline configuration data management.

+
+
2. Create an application namespace
+
+

To create a namespace, you create an AppConfig artifact called an +application. An application is simply an organizational construct like a +folder.

+
+
3. Create environments
+
+

For each AppConfig application, you define one or more environments. +An environment is a logical grouping of targets, such as applications in a +Beta or Production environment, Lambda functions, +or containers. You can also define environments for application subcomponents, +such as the Web, Mobile, and +Back-end.

+

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.

+
+
4. Create a configuration profile
+
+

A configuration profile includes, among other things, a URI that enables +AppConfig to locate your configuration data in its stored location +and a profile type. AppConfig supports two configuration profile types: +feature flags and freeform configurations. Feature flag configuration profiles +store their data in the AppConfig hosted configuration store and the URI +is simply hosted. For freeform configuration profiles, you can store +your data in the AppConfig hosted configuration store or any Amazon Web Services +service that integrates with AppConfig, as described in Creating +a free form configuration profile in the the AppConfig User Guide.

+

A configuration profile can also include optional validators to ensure your +configuration data is syntactically and semantically correct. AppConfig +performs a check using the validators when you start a deployment. If any errors +are detected, the deployment rolls back to the previous configuration data.

+
+
5. Deploy configuration data
+
+

When you create a new deployment, you specify the following:

+
    +
  • +

    An application ID

    +
  • +
  • +

    A configuration profile ID

    +
  • +
  • +

    A configuration version

    +
  • +
  • +

    An environment ID where you want to deploy the configuration data

    +
  • +
  • +

    A deployment strategy ID that defines how fast you want the changes to +take effect

    +
  • +
+

When you call the StartDeployment API action, AppConfig performs the following +tasks:

+
    +
  1. +

    Retrieves the configuration data from the underlying data store by using +the location URI in the configuration profile.

    +
  2. +
  3. +

    Verifies the configuration data is syntactically and semantically correct +by using the validators you specified when you created your configuration +profile.

    +
  4. +
  5. +

    Caches a copy of the data so it is ready to be retrieved by your +application. This cached copy is called the deployed +data.

    +
  6. +
+
+
6. Retrieve the configuration
+
+

You can configure AppConfig Agent as a local host and have the agent +poll AppConfig for configuration updates. The agent calls the StartConfigurationSession and GetLatestConfiguration API actions and caches your configuration data +locally. To retrieve the data, your application makes an HTTP call to the +localhost server. AppConfig Agent supports several use cases, as +described in Simplified +retrieval methods in the the AppConfig User +Guide.

+

If AppConfig Agent isn't supported for your use case, you can +configure your application to poll AppConfig for configuration updates +by directly calling the StartConfigurationSession and GetLatestConfiguration API actions.

+
+

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

diff --git a/clients/client-appconfig/src/AppConfig.ts b/clients/client-appconfig/src/AppConfig.ts index ddb360c6ed49..7c1a8012200c 100644 --- a/clients/client-appconfig/src/AppConfig.ts +++ b/clients/client-appconfig/src/AppConfig.ts @@ -945,50 +945,154 @@ export interface AppConfig { /** * @public - *

Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly - * deploy application configurations. AppConfig supports controlled deployments to - * applications of any size and includes built-in validation checks and monitoring. You can - * use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers, - * mobile applications, or IoT devices.

- *

To prevent errors when deploying application configurations, especially for production - * systems where a simple typo could cause an unexpected outage, AppConfig includes - * validators. A validator provides a syntactic or semantic check to ensure that the - * configuration you want to deploy works as intended. To validate your application - * configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against - * the configuration. The configuration deployment or update can only proceed when the - * configuration data is valid.

- *

During a configuration deployment, AppConfig monitors the application to - * ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can - * configure a deployment strategy for each application or environment that includes - * deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error - * monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back - * to the previous version.

- *

AppConfig supports multiple use cases. Here are some examples:

+ *

AppConfig feature flags and dynamic configurations help software builders + * quickly and securely adjust application behavior in production environments without full + * code deployments. AppConfig speeds up software release frequency, improves + * application resiliency, and helps you address emergent issues more quickly. With feature + * flags, you can gradually release new capabilities to users and measure the impact of those + * changes before fully deploying the new capabilities to all users. With operational flags + * and dynamic configurations, you can update block lists, allow lists, throttling limits, + * logging verbosity, and perform other operational tuning to quickly respond to issues in + * production environments.

+ * + *

AppConfig is a capability of Amazon Web Services Systems Manager.

+ *
+ *

Despite the fact that application configuration content can vary greatly from + * application to application, AppConfig supports the following use cases, which + * cover a broad spectrum of customer needs:

* + *

+ * How AppConfig works + *

+ *

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

+ *
+ *
1. Identify configuration values in code you want to manage in the cloud
+ *
+ *

Before you start creating AppConfig artifacts, we recommend you + * identify configuration data in your code that you want to dynamically manage using + * AppConfig. Good examples include feature flags or toggles, allow and + * block lists, logging verbosity, service limits, and throttling rules, to name a + * few.

+ *

If your configuration data already exists in the cloud, you can take advantage + * of AppConfig validation, deployment, and extension features to further + * streamline configuration data management.

+ *
+ *
2. Create an application namespace
+ *
+ *

To create a namespace, you create an AppConfig artifact called an + * application. An application is simply an organizational construct like a + * folder.

+ *
+ *
3. Create environments
+ *
+ *

For each AppConfig application, you define one or more environments. + * An environment is a logical grouping of targets, such as applications in a + * Beta or Production environment, Lambda functions, + * or containers. You can also define environments for application subcomponents, + * such as the Web, Mobile, and + * Back-end.

+ *

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.

+ *
+ *
4. Create a configuration profile
+ *
+ *

A configuration profile includes, among other things, a URI that enables + * AppConfig to locate your configuration data in its stored location + * and a profile type. AppConfig supports two configuration profile types: + * feature flags and freeform configurations. Feature flag configuration profiles + * store their data in the AppConfig hosted configuration store and the URI + * is simply hosted. For freeform configuration profiles, you can store + * your data in the AppConfig hosted configuration store or any Amazon Web Services + * service that integrates with AppConfig, as described in Creating + * a free form configuration profile in the the AppConfig User Guide.

+ *

A configuration profile can also include optional validators to ensure your + * configuration data is syntactically and semantically correct. AppConfig + * performs a check using the validators when you start a deployment. If any errors + * are detected, the deployment rolls back to the previous configuration data.

+ *
+ *
5. Deploy configuration data
+ *
+ *

When you create a new deployment, you specify the following:

+ *
    + *
  • + *

    An application ID

    + *
  • + *
  • + *

    A configuration profile ID

    + *
  • + *
  • + *

    A configuration version

    + *
  • + *
  • + *

    An environment ID where you want to deploy the configuration data

    + *
  • + *
  • + *

    A deployment strategy ID that defines how fast you want the changes to + * take effect

    + *
  • + *
+ *

When you call the StartDeployment API action, AppConfig performs the following + * tasks:

+ *
    + *
  1. + *

    Retrieves the configuration data from the underlying data store by using + * the location URI in the configuration profile.

    + *
  2. + *
  3. + *

    Verifies the configuration data is syntactically and semantically correct + * by using the validators you specified when you created your configuration + * profile.

    + *
  4. + *
  5. + *

    Caches a copy of the data so it is ready to be retrieved by your + * application. This cached copy is called the deployed + * data.

    + *
  6. + *
+ *
+ *
6. Retrieve the configuration
+ *
+ *

You can configure AppConfig Agent as a local host and have the agent + * poll AppConfig for configuration updates. The agent calls the StartConfigurationSession and GetLatestConfiguration API actions and caches your configuration data + * locally. To retrieve the data, your application makes an HTTP call to the + * localhost server. AppConfig Agent supports several use cases, as + * described in Simplified + * retrieval methods in the the AppConfig User + * Guide.

+ *

If AppConfig Agent isn't supported for your use case, you can + * configure your application to poll AppConfig for configuration updates + * by directly calling the StartConfigurationSession and GetLatestConfiguration API actions.

+ *
+ *
*

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

*/ diff --git a/clients/client-appconfig/src/AppConfigClient.ts b/clients/client-appconfig/src/AppConfigClient.ts index 2625250c368d..cd52fb775161 100644 --- a/clients/client-appconfig/src/AppConfigClient.ts +++ b/clients/client-appconfig/src/AppConfigClient.ts @@ -439,50 +439,154 @@ export interface AppConfigClientResolvedConfig extends AppConfigClientResolvedCo /** * @public - *

Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly - * deploy application configurations. AppConfig supports controlled deployments to - * applications of any size and includes built-in validation checks and monitoring. You can - * use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers, - * mobile applications, or IoT devices.

- *

To prevent errors when deploying application configurations, especially for production - * systems where a simple typo could cause an unexpected outage, AppConfig includes - * validators. A validator provides a syntactic or semantic check to ensure that the - * configuration you want to deploy works as intended. To validate your application - * configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against - * the configuration. The configuration deployment or update can only proceed when the - * configuration data is valid.

- *

During a configuration deployment, AppConfig monitors the application to - * ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can - * configure a deployment strategy for each application or environment that includes - * deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error - * monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back - * to the previous version.

- *

AppConfig supports multiple use cases. Here are some examples:

+ *

AppConfig feature flags and dynamic configurations help software builders + * quickly and securely adjust application behavior in production environments without full + * code deployments. AppConfig speeds up software release frequency, improves + * application resiliency, and helps you address emergent issues more quickly. With feature + * flags, you can gradually release new capabilities to users and measure the impact of those + * changes before fully deploying the new capabilities to all users. With operational flags + * and dynamic configurations, you can update block lists, allow lists, throttling limits, + * logging verbosity, and perform other operational tuning to quickly respond to issues in + * production environments.

+ * + *

AppConfig is a capability of Amazon Web Services Systems Manager.

+ *
+ *

Despite the fact that application configuration content can vary greatly from + * application to application, AppConfig supports the following use cases, which + * cover a broad spectrum of customer needs:

* + *

+ * How AppConfig works + *

+ *

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

+ *
+ *
1. Identify configuration values in code you want to manage in the cloud
+ *
+ *

Before you start creating AppConfig artifacts, we recommend you + * identify configuration data in your code that you want to dynamically manage using + * AppConfig. Good examples include feature flags or toggles, allow and + * block lists, logging verbosity, service limits, and throttling rules, to name a + * few.

+ *

If your configuration data already exists in the cloud, you can take advantage + * of AppConfig validation, deployment, and extension features to further + * streamline configuration data management.

+ *
+ *
2. Create an application namespace
+ *
+ *

To create a namespace, you create an AppConfig artifact called an + * application. An application is simply an organizational construct like a + * folder.

+ *
+ *
3. Create environments
+ *
+ *

For each AppConfig application, you define one or more environments. + * An environment is a logical grouping of targets, such as applications in a + * Beta or Production environment, Lambda functions, + * or containers. You can also define environments for application subcomponents, + * such as the Web, Mobile, and + * Back-end.

+ *

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.

+ *
+ *
4. Create a configuration profile
+ *
+ *

A configuration profile includes, among other things, a URI that enables + * AppConfig to locate your configuration data in its stored location + * and a profile type. AppConfig supports two configuration profile types: + * feature flags and freeform configurations. Feature flag configuration profiles + * store their data in the AppConfig hosted configuration store and the URI + * is simply hosted. For freeform configuration profiles, you can store + * your data in the AppConfig hosted configuration store or any Amazon Web Services + * service that integrates with AppConfig, as described in Creating + * a free form configuration profile in the the AppConfig User Guide.

+ *

A configuration profile can also include optional validators to ensure your + * configuration data is syntactically and semantically correct. AppConfig + * performs a check using the validators when you start a deployment. If any errors + * are detected, the deployment rolls back to the previous configuration data.

+ *
+ *
5. Deploy configuration data
+ *
+ *

When you create a new deployment, you specify the following:

+ *
    + *
  • + *

    An application ID

    + *
  • + *
  • + *

    A configuration profile ID

    + *
  • + *
  • + *

    A configuration version

    + *
  • + *
  • + *

    An environment ID where you want to deploy the configuration data

    + *
  • + *
  • + *

    A deployment strategy ID that defines how fast you want the changes to + * take effect

    + *
  • + *
+ *

When you call the StartDeployment API action, AppConfig performs the following + * tasks:

+ *
    + *
  1. + *

    Retrieves the configuration data from the underlying data store by using + * the location URI in the configuration profile.

    + *
  2. + *
  3. + *

    Verifies the configuration data is syntactically and semantically correct + * by using the validators you specified when you created your configuration + * profile.

    + *
  4. + *
  5. + *

    Caches a copy of the data so it is ready to be retrieved by your + * application. This cached copy is called the deployed + * data.

    + *
  6. + *
+ *
+ *
6. Retrieve the configuration
+ *
+ *

You can configure AppConfig Agent as a local host and have the agent + * poll AppConfig for configuration updates. The agent calls the StartConfigurationSession and GetLatestConfiguration API actions and caches your configuration data + * locally. To retrieve the data, your application makes an HTTP call to the + * localhost server. AppConfig Agent supports several use cases, as + * described in Simplified + * retrieval methods in the the AppConfig User + * Guide.

+ *

If AppConfig Agent isn't supported for your use case, you can + * configure your application to poll AppConfig for configuration updates + * by directly calling the StartConfigurationSession and GetLatestConfiguration API actions.

+ *
+ *
*

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

*/ diff --git a/clients/client-appconfig/src/commands/CreateExtensionAssociationCommand.ts b/clients/client-appconfig/src/commands/CreateExtensionAssociationCommand.ts index c0a5b4e82cfc..f09fd8d2ec17 100644 --- a/clients/client-appconfig/src/commands/CreateExtensionAssociationCommand.ts +++ b/clients/client-appconfig/src/commands/CreateExtensionAssociationCommand.ts @@ -38,9 +38,8 @@ export interface CreateExtensionAssociationCommandOutput extends ExtensionAssoci * 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 Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * associations, see Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appconfig/src/commands/CreateExtensionCommand.ts b/clients/client-appconfig/src/commands/CreateExtensionCommand.ts index 6e2b7ef62ede..8d9542e3c690 100644 --- a/clients/client-appconfig/src/commands/CreateExtensionCommand.ts +++ b/clients/client-appconfig/src/commands/CreateExtensionCommand.ts @@ -50,9 +50,8 @@ export interface CreateExtensionCommandOutput extends Extension, __MetadataBeare * message queue in the Uri field.

* * - *

For more information about extensions, see Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ *

For more information about extensions, see Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -76,6 +75,7 @@ export interface CreateExtensionCommandOutput extends Extension, __MetadataBeare * "": { // Parameter * Description: "STRING_VALUE", * Required: true || false, + * Dynamic: true || false, * }, * }, * Tags: { // TagMap @@ -105,6 +105,7 @@ export interface CreateExtensionCommandOutput extends Extension, __MetadataBeare * // "": { // Parameter * // Description: "STRING_VALUE", * // Required: true || false, + * // Dynamic: true || false, * // }, * // }, * // }; diff --git a/clients/client-appconfig/src/commands/GetExtensionAssociationCommand.ts b/clients/client-appconfig/src/commands/GetExtensionAssociationCommand.ts index 2a2c4c1ed849..9d311e7f13de 100644 --- a/clients/client-appconfig/src/commands/GetExtensionAssociationCommand.ts +++ b/clients/client-appconfig/src/commands/GetExtensionAssociationCommand.ts @@ -29,9 +29,8 @@ export interface GetExtensionAssociationCommandOutput extends ExtensionAssociati /** * @public *

Returns information about an AppConfig extension association. For more - * information about extensions and associations, see Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * information about extensions and associations, see Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appconfig/src/commands/GetExtensionCommand.ts b/clients/client-appconfig/src/commands/GetExtensionCommand.ts index e2d6fc6a7112..8ba7b3f47e98 100644 --- a/clients/client-appconfig/src/commands/GetExtensionCommand.ts +++ b/clients/client-appconfig/src/commands/GetExtensionCommand.ts @@ -61,6 +61,7 @@ export interface GetExtensionCommandOutput extends Extension, __MetadataBearer { * // "": { // Parameter * // Description: "STRING_VALUE", * // Required: true || false, + * // Dynamic: true || false, * // }, * // }, * // }; diff --git a/clients/client-appconfig/src/commands/ListExtensionAssociationsCommand.ts b/clients/client-appconfig/src/commands/ListExtensionAssociationsCommand.ts index c53725d26826..6b76ccbcbad0 100644 --- a/clients/client-appconfig/src/commands/ListExtensionAssociationsCommand.ts +++ b/clients/client-appconfig/src/commands/ListExtensionAssociationsCommand.ts @@ -29,9 +29,8 @@ export interface ListExtensionAssociationsCommandOutput extends ExtensionAssocia /** * @public *

Lists all AppConfig extension associations in the account. For more - * information about extensions and associations, see Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * information about extensions and associations, see Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appconfig/src/commands/ListExtensionsCommand.ts b/clients/client-appconfig/src/commands/ListExtensionsCommand.ts index 7dee6521870d..42283e967c64 100644 --- a/clients/client-appconfig/src/commands/ListExtensionsCommand.ts +++ b/clients/client-appconfig/src/commands/ListExtensionsCommand.ts @@ -29,9 +29,8 @@ export interface ListExtensionsCommandOutput extends Extensions, __MetadataBeare /** * @public *

Lists all custom and Amazon Web Services authored AppConfig extensions in the - * account. For more information about extensions, see Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * account. For more information about extensions, see Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appconfig/src/commands/StartDeploymentCommand.ts b/clients/client-appconfig/src/commands/StartDeploymentCommand.ts index 72e59cd48a18..f9e1e0f38035 100644 --- a/clients/client-appconfig/src/commands/StartDeploymentCommand.ts +++ b/clients/client-appconfig/src/commands/StartDeploymentCommand.ts @@ -46,6 +46,9 @@ export interface StartDeploymentCommandOutput extends Deployment, __MetadataBear * "": "STRING_VALUE", * }, * KmsKeyIdentifier: "STRING_VALUE", + * DynamicExtensionParameters: { // DynamicParameterMap + * "": "STRING_VALUE", + * }, * }; * const command = new StartDeploymentCommand(input); * const response = await client.send(command); diff --git a/clients/client-appconfig/src/commands/UpdateExtensionAssociationCommand.ts b/clients/client-appconfig/src/commands/UpdateExtensionAssociationCommand.ts index 12c0601802c6..956bf57aaeea 100644 --- a/clients/client-appconfig/src/commands/UpdateExtensionAssociationCommand.ts +++ b/clients/client-appconfig/src/commands/UpdateExtensionAssociationCommand.ts @@ -29,9 +29,8 @@ export interface UpdateExtensionAssociationCommandOutput extends ExtensionAssoci /** * @public *

Updates an association. For more information about extensions and associations, see - * Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appconfig/src/commands/UpdateExtensionCommand.ts b/clients/client-appconfig/src/commands/UpdateExtensionCommand.ts index 7af04ebdf597..bac48123ec58 100644 --- a/clients/client-appconfig/src/commands/UpdateExtensionCommand.ts +++ b/clients/client-appconfig/src/commands/UpdateExtensionCommand.ts @@ -29,9 +29,8 @@ export interface UpdateExtensionCommandOutput extends Extension, __MetadataBeare /** * @public *

Updates an AppConfig extension. For more information about extensions, see - * Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * Extending + * workflows in the AppConfig User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -55,6 +54,7 @@ export interface UpdateExtensionCommandOutput extends Extension, __MetadataBeare * "": { // Parameter * Description: "STRING_VALUE", * Required: true || false, + * Dynamic: true || false, * }, * }, * VersionNumber: Number("int"), @@ -81,6 +81,7 @@ export interface UpdateExtensionCommandOutput extends Extension, __MetadataBeare * // "": { // Parameter * // Description: "STRING_VALUE", * // Required: true || false, + * // Dynamic: true || false, * // }, * // }, * // }; diff --git a/clients/client-appconfig/src/index.ts b/clients/client-appconfig/src/index.ts index 23ce1d6d6047..d9650d903170 100644 --- a/clients/client-appconfig/src/index.ts +++ b/clients/client-appconfig/src/index.ts @@ -1,50 +1,154 @@ // smithy-typescript generated code /* eslint-disable */ /** - *

Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly - * deploy application configurations. AppConfig supports controlled deployments to - * applications of any size and includes built-in validation checks and monitoring. You can - * use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers, - * mobile applications, or IoT devices.

- *

To prevent errors when deploying application configurations, especially for production - * systems where a simple typo could cause an unexpected outage, AppConfig includes - * validators. A validator provides a syntactic or semantic check to ensure that the - * configuration you want to deploy works as intended. To validate your application - * configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against - * the configuration. The configuration deployment or update can only proceed when the - * configuration data is valid.

- *

During a configuration deployment, AppConfig monitors the application to - * ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can - * configure a deployment strategy for each application or environment that includes - * deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error - * monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back - * to the previous version.

- *

AppConfig supports multiple use cases. Here are some examples:

+ *

AppConfig feature flags and dynamic configurations help software builders + * quickly and securely adjust application behavior in production environments without full + * code deployments. AppConfig speeds up software release frequency, improves + * application resiliency, and helps you address emergent issues more quickly. With feature + * flags, you can gradually release new capabilities to users and measure the impact of those + * changes before fully deploying the new capabilities to all users. With operational flags + * and dynamic configurations, you can update block lists, allow lists, throttling limits, + * logging verbosity, and perform other operational tuning to quickly respond to issues in + * production environments.

+ * + *

AppConfig is a capability of Amazon Web Services Systems Manager.

+ *
+ *

Despite the fact that application configuration content can vary greatly from + * application to application, AppConfig supports the following use cases, which + * cover a broad spectrum of customer needs:

*
    *
  • *

    - * Feature flags: Use AppConfig to turn on - * new features that require a timely deployment, such as a product launch or - * announcement.

    + * Feature flags and toggles - Safely release new + * capabilities to your customers in a controlled environment. Instantly roll back + * changes if you experience a problem.

    *
  • *
  • *

    - * Application tuning: Use AppConfig to - * carefully introduce changes to your application that can only be tested with - * production traffic.

    + * Application tuning - Carefully introduce + * application changes while testing the impact of those changes with users in + * production environments.

    *
  • *
  • *

    - * Allow list: Use AppConfig to allow - * premium subscribers to access paid content.

    + * Allow list or block list - Control access to + * premium features or instantly block specific users without deploying new code. + *

    *
  • *
  • *

    - * Operational issues: Use AppConfig to - * reduce stress on your application when a dependency or other external factor impacts - * the system.

    + * Centralized configuration storage - Keep your + * configuration data organized and consistent across all of your workloads. You can use + * AppConfig to deploy configuration data stored in the AppConfig + * hosted configuration store, Secrets 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 values in code you want to manage in the cloud
+ *
+ *

Before you start creating AppConfig artifacts, we recommend you + * identify configuration data in your code that you want to dynamically manage using + * AppConfig. Good examples include feature flags or toggles, allow and + * block lists, logging verbosity, service limits, and throttling rules, to name a + * few.

+ *

If your configuration data already exists in the cloud, you can take advantage + * of AppConfig validation, deployment, and extension features to further + * streamline configuration data management.

+ *
+ *
2. Create an application namespace
+ *
+ *

To create a namespace, you create an AppConfig artifact called an + * application. An application is simply an organizational construct like a + * folder.

+ *
+ *
3. Create environments
+ *
+ *

For each AppConfig application, you define one or more environments. + * An environment is a logical grouping of targets, such as applications in a + * Beta or Production environment, Lambda functions, + * or containers. You can also define environments for application subcomponents, + * such as the Web, Mobile, and + * Back-end.

+ *

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.

+ *
+ *
4. Create a configuration profile
+ *
+ *

A configuration profile includes, among other things, a URI that enables + * AppConfig to locate your configuration data in its stored location + * and a profile type. AppConfig supports two configuration profile types: + * feature flags and freeform configurations. Feature flag configuration profiles + * store their data in the AppConfig hosted configuration store and the URI + * is simply hosted. For freeform configuration profiles, you can store + * your data in the AppConfig hosted configuration store or any Amazon Web Services + * service that integrates with AppConfig, as described in Creating + * a free form configuration profile in the the AppConfig User Guide.

+ *

A configuration profile can also include optional validators to ensure your + * configuration data is syntactically and semantically correct. AppConfig + * performs a check using the validators when you start a deployment. If any errors + * are detected, the deployment rolls back to the previous configuration data.

+ *
+ *
5. Deploy configuration data
+ *
+ *

When you create a new deployment, you specify the following:

+ *
    + *
  • + *

    An application ID

    + *
  • + *
  • + *

    A configuration profile ID

    + *
  • + *
  • + *

    A configuration version

    + *
  • + *
  • + *

    An environment ID where you want to deploy the configuration data

    + *
  • + *
  • + *

    A deployment strategy ID that defines how fast you want the changes to + * take effect

    + *
  • + *
+ *

When you call the StartDeployment API action, AppConfig performs the following + * tasks:

+ *
    + *
  1. + *

    Retrieves the configuration data from the underlying data store by using + * the location URI in the configuration profile.

    + *
  2. + *
  3. + *

    Verifies the configuration data is syntactically and semantically correct + * by using the validators you specified when you created your configuration + * profile.

    + *
  4. + *
  5. + *

    Caches a copy of the data so it is ready to be retrieved by your + * application. This cached copy is called the deployed + * data.

    + *
  6. + *
+ *
+ *
6. Retrieve the configuration
+ *
+ *

You can configure AppConfig Agent as a local host and have the agent + * poll AppConfig for configuration updates. The agent calls the StartConfigurationSession and GetLatestConfiguration API actions and caches your configuration data + * locally. To retrieve the data, your application makes an HTTP call to the + * localhost server. AppConfig Agent supports several use cases, as + * described in Simplified + * retrieval methods in the the AppConfig User + * Guide.

+ *

If AppConfig Agent isn't supported for your use case, you can + * configure your application to poll AppConfig for configuration updates + * by directly calling the StartConfigurationSession and GetLatestConfiguration API actions.

+ *
+ *
*

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

* diff --git a/clients/client-appconfig/src/models/models_0.ts b/clients/client-appconfig/src/models/models_0.ts index 5caa7f68e26e..9ef07c8b5334 100644 --- a/clients/client-appconfig/src/models/models_0.ts +++ b/clients/client-appconfig/src/models/models_0.ts @@ -473,16 +473,18 @@ export interface ConfigurationProfile { /** * @public - *

The Amazon Resource Name of the Key Management Service key to encrypt new configuration data - * versions in the AppConfig hosted configuration store. This - * attribute is only used for hosted configuration types. To encrypt data managed - * in other configuration stores, see the documentation for how to specify an KMS key for that particular service.

+ *

The Amazon Resource Name of the Key Management Service key to encrypt new configuration + * data versions in the AppConfig hosted configuration store. This attribute is only + * used for hosted configuration types. To encrypt data managed in other + * configuration stores, see the documentation for how to specify an KMS key + * for that particular service.

*/ KmsKeyArn?: string; /** * @public - *

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.

+ *

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when + * the resource was created or updated.

*/ KmsKeyIdentifier?: string; } @@ -588,11 +590,11 @@ export interface CreateConfigurationProfileRequest { /** * @public - *

The identifier for an Key Management Service key to encrypt new configuration - * data versions in the AppConfig hosted configuration store. This attribute is only - * used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias. - * To encrypt data managed in other configuration stores, see the documentation for how to - * specify an KMS key for that particular service.

+ *

The identifier for an Key Management Service key to encrypt new configuration data + * versions in the AppConfig hosted configuration store. This attribute is only used + * for hosted configuration types. The identifier can be an KMS + * key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias. To encrypt data + * managed in other configuration stores, see the documentation for how to specify an KMS key for that particular service.

*/ KmsKeyIdentifier?: string; } @@ -935,9 +937,8 @@ export class ConflictException extends __BaseException { * @public *

A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered * in an extension when invoked. Parameter values are specified in an extension association. - * For more information about extensions, see Working with - * AppConfig extensions in the - * AppConfig User Guide.

+ * For more information about extensions, see Extending + * workflows in the AppConfig User Guide.

*/ export interface Parameter { /** @@ -951,6 +952,14 @@ export interface Parameter { *

A parameter value must be specified in the extension association.

*/ Required?: boolean; + + /** + * @public + *

Indicates whether this parameter's value can be supplied at the extension's action point + * instead of during extension association. Dynamic parameters can't be marked + * Required.

+ */ + Dynamic?: boolean; } /** @@ -1778,7 +1787,8 @@ export interface Deployment { /** * @public - *

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.

+ *

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when + * the resource was created or updated.

*/ KmsKeyIdentifier?: string; @@ -2592,6 +2602,13 @@ export interface StartDeploymentRequest { *

The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this ID to encrypt the configuration data using a customer managed key.

*/ KmsKeyIdentifier?: string; + + /** + * @public + *

A map of dynamic extension parameter names to values to pass to associated extensions + * with PRE_START_DEPLOYMENT actions.

+ */ + DynamicExtensionParameters?: Record; } /** @@ -2719,11 +2736,11 @@ export interface UpdateConfigurationProfileRequest { /** * @public - *

The identifier for a Key Management Service key to encrypt new configuration - * data versions in the AppConfig hosted configuration store. This attribute is only - * used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias. - * To encrypt data managed in other configuration stores, see the documentation for how to - * specify an KMS key for that particular service.

+ *

The identifier for a Key Management Service key to encrypt new configuration data + * versions in the AppConfig hosted configuration store. This attribute is only used + * for hosted configuration types. The identifier can be an KMS + * key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias. To encrypt data + * managed in other configuration stores, see the documentation for how to specify an KMS key for that particular service.

*/ KmsKeyIdentifier?: string; } diff --git a/clients/client-appconfig/src/protocols/Aws_restJson1.ts b/clients/client-appconfig/src/protocols/Aws_restJson1.ts index 72e4d8561041..329b8bf0833c 100644 --- a/clients/client-appconfig/src/protocols/Aws_restJson1.ts +++ b/clients/client-appconfig/src/protocols/Aws_restJson1.ts @@ -825,6 +825,7 @@ export const se_StartDeploymentCommand = async ( ConfigurationVersion: [], DeploymentStrategyId: [], Description: [], + DynamicExtensionParameters: (_) => _json(_), KmsKeyIdentifier: [], Tags: (_) => _json(_), }) @@ -2278,6 +2279,8 @@ const de_ServiceQuotaExceededExceptionRes = async ( // se_ActionsMap omitted. +// se_DynamicParameterMap omitted. + // se_Monitor omitted. // se_MonitorList omitted. diff --git a/codegen/sdk-codegen/aws-models/appconfig.json b/codegen/sdk-codegen/aws-models/appconfig.json index bd4b9af30c11..d01b4b0aa7bd 100644 --- a/codegen/sdk-codegen/aws-models/appconfig.json +++ b/codegen/sdk-codegen/aws-models/appconfig.json @@ -337,7 +337,7 @@ "name": "appconfig" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly\n deploy application configurations. AppConfig supports controlled deployments to\n applications of any size and includes built-in validation checks and monitoring. You can\n use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers,\n mobile applications, or IoT devices.

\n

To prevent errors when deploying application configurations, especially for production\n systems where a simple typo could cause an unexpected outage, AppConfig includes\n validators. A validator provides a syntactic or semantic check to ensure that the\n configuration you want to deploy works as intended. To validate your application\n configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against\n the configuration. The configuration deployment or update can only proceed when the\n configuration data is valid.

\n

During a configuration deployment, AppConfig monitors the application to\n ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can\n configure a deployment strategy for each application or environment that includes\n deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error\n monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back\n to the previous version.

\n

AppConfig supports multiple use cases. Here are some examples:

\n
    \n
  • \n

    \n Feature flags: Use AppConfig to turn on\n new features that require a timely deployment, such as a product launch or\n announcement.

    \n
  • \n
  • \n

    \n Application tuning: Use AppConfig to\n carefully introduce changes to your application that can only be tested with\n production traffic.

    \n
  • \n
  • \n

    \n Allow list: Use AppConfig to allow\n premium subscribers to access paid content.

    \n
  • \n
  • \n

    \n Operational issues: Use AppConfig to\n reduce stress on your application when a dependency or other external factor impacts\n the system.

    \n
  • \n
\n

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

", + "smithy.api#documentation": "

AppConfig feature flags and dynamic configurations help software builders\n quickly and securely adjust application behavior in production environments without full\n code deployments. AppConfig speeds up software release frequency, improves\n application resiliency, and helps you address emergent issues more quickly. With feature\n flags, you can gradually release new capabilities to users and measure the impact of those\n changes before fully deploying the new capabilities to all users. With operational flags\n and dynamic configurations, you can update block lists, allow lists, throttling limits,\n logging verbosity, and perform other operational tuning to quickly respond to issues in\n production environments.

\n \n

AppConfig is a capability of Amazon Web Services Systems Manager.

\n
\n

Despite the fact that application configuration content can vary greatly from\n application to application, AppConfig supports the following use cases, which\n cover a broad spectrum of customer needs:

\n
    \n
  • \n

    \n Feature flags and toggles - Safely release new\n capabilities to your customers in a controlled environment. Instantly roll back\n changes if you experience a problem.

    \n
  • \n
  • \n

    \n Application tuning - Carefully introduce\n application changes while testing the impact of those changes with users in\n production environments.

    \n
  • \n
  • \n

    \n Allow list or block list - Control access to\n premium features or instantly block specific users without deploying new code.\n

    \n
  • \n
  • \n

    \n Centralized configuration storage - Keep your\n configuration data organized and consistent across all of your workloads. You can use\n AppConfig to deploy configuration data stored in the AppConfig\n hosted configuration store, Secrets Manager, Systems Manager, Parameter\n Store, or Amazon S3.

    \n
  • \n
\n

\n How AppConfig works\n

\n

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

\n
\n
1. Identify configuration values in code you want to manage in the cloud
\n
\n

Before you start creating AppConfig artifacts, we recommend you\n identify configuration data in your code that you want to dynamically manage using\n AppConfig. Good examples include feature flags or toggles, allow and\n block lists, logging verbosity, service limits, and throttling rules, to name a\n few.

\n

If your configuration data already exists in the cloud, you can take advantage\n of AppConfig validation, deployment, and extension features to further\n streamline configuration data management.

\n
\n
2. Create an application namespace
\n
\n

To create a namespace, you create an AppConfig artifact called an\n application. An application is simply an organizational construct like a\n folder.

\n
\n
3. Create environments
\n
\n

For each AppConfig application, you define one or more environments.\n An environment is a logical grouping of targets, such as applications in a\n Beta or Production environment, Lambda functions,\n or containers. You can also define environments for application subcomponents,\n such as the Web, Mobile, and\n Back-end.

\n

You can configure Amazon CloudWatch alarms for each environment. The system monitors\n alarms during a configuration deployment. If an alarm is triggered, the system\n rolls back the configuration.

\n
\n
4. Create a configuration profile
\n
\n

A configuration profile includes, among other things, a URI that enables\n AppConfig to locate your configuration data in its stored location\n and a profile type. AppConfig supports two configuration profile types:\n feature flags and freeform configurations. Feature flag configuration profiles\n store their data in the AppConfig hosted configuration store and the URI\n is simply hosted. For freeform configuration profiles, you can store\n your data in the AppConfig hosted configuration store or any Amazon Web Services\n service that integrates with AppConfig, as described in Creating\n a free form configuration profile in the the AppConfig User Guide.

\n

A configuration profile can also include optional validators to ensure your\n configuration data is syntactically and semantically correct. AppConfig\n performs a check using the validators when you start a deployment. If any errors\n are detected, the deployment rolls back to the previous configuration data.

\n
\n
5. Deploy configuration data
\n
\n

When you create a new deployment, you specify the following:

\n
    \n
  • \n

    An application ID

    \n
  • \n
  • \n

    A configuration profile ID

    \n
  • \n
  • \n

    A configuration version

    \n
  • \n
  • \n

    An environment ID where you want to deploy the configuration data

    \n
  • \n
  • \n

    A deployment strategy ID that defines how fast you want the changes to\n take effect

    \n
  • \n
\n

When you call the StartDeployment API action, AppConfig performs the following\n tasks:

\n
    \n
  1. \n

    Retrieves the configuration data from the underlying data store by using\n the location URI in the configuration profile.

    \n
  2. \n
  3. \n

    Verifies the configuration data is syntactically and semantically correct\n by using the validators you specified when you created your configuration\n profile.

    \n
  4. \n
  5. \n

    Caches a copy of the data so it is ready to be retrieved by your\n application. This cached copy is called the deployed\n data.

    \n
  6. \n
\n
\n
6. Retrieve the configuration
\n
\n

You can configure AppConfig Agent as a local host and have the agent\n poll AppConfig for configuration updates. The agent calls the StartConfigurationSession and GetLatestConfiguration API actions and caches your configuration data\n locally. To retrieve the data, your application makes an HTTP call to the\n localhost server. AppConfig Agent supports several use cases, as\n described in Simplified\n retrieval methods in the the AppConfig User\n Guide.

\n

If AppConfig Agent isn't supported for your use case, you can\n configure your application to poll AppConfig for configuration updates\n by directly calling the StartConfigurationSession and GetLatestConfiguration API actions.

\n
\n
\n

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

", "smithy.api#title": "Amazon AppConfig", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -1574,13 +1574,13 @@ "KmsKeyArn": { "target": "com.amazonaws.appconfig#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name of the Key Management Service key to encrypt new configuration data\n versions in the AppConfig hosted configuration store. This\n attribute is only used for hosted configuration types. To encrypt data managed\n in other configuration stores, see the documentation for how to specify an KMS key for that particular service.

" + "smithy.api#documentation": "

The Amazon Resource Name of the Key Management Service key to encrypt new configuration\n data versions in the AppConfig hosted configuration store. This attribute is only\n used for hosted configuration types. To encrypt data managed in other\n configuration stores, see the documentation for how to specify an KMS key\n for that particular service.

" } }, "KmsKeyIdentifier": { "target": "com.amazonaws.appconfig#KmsKeyIdentifier", "traits": { - "smithy.api#documentation": "

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.

" + "smithy.api#documentation": "

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when\n the resource was created or updated.

" } } } @@ -1849,7 +1849,7 @@ "KmsKeyIdentifier": { "target": "com.amazonaws.appconfig#KmsKeyIdentifier", "traits": { - "smithy.api#documentation": "

The identifier for an Key Management Service key to encrypt new configuration\n data versions in the AppConfig hosted configuration store. This attribute is only\n used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias.\n To encrypt data managed in other configuration stores, see the documentation for how to\n specify an KMS key for that particular service.

" + "smithy.api#documentation": "

The identifier for an Key Management Service key to encrypt new configuration data\n versions in the AppConfig hosted configuration store. This attribute is only used\n for hosted configuration types. The identifier can be an KMS\n key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias. To encrypt data\n managed in other configuration stores, see the documentation for how to specify an KMS key for that particular service.

" } } }, @@ -2078,7 +2078,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

You can create your own extensions or use the Amazon Web Services authored extensions provided by\n AppConfig. For an AppConfig extension that uses Lambda, you must create a Lambda function to perform any computation and processing\n defined in the extension. If you plan to create custom versions of the Amazon Web Services\n authored notification extensions, you only need to specify an Amazon Resource Name (ARN) in\n the Uri field for the new extension version.

\n
    \n
  • \n

    For a custom EventBridge notification extension, enter the ARN of the EventBridge\n default events in the Uri field.

    \n
  • \n
  • \n

    For a custom Amazon SNS notification extension, enter the ARN of an Amazon SNS\n topic in the Uri field.

    \n
  • \n
  • \n

    For a custom Amazon SQS notification extension, enter the ARN of an Amazon SQS\n message queue in the Uri field.

    \n
  • \n
\n

For more information about extensions, see Working with\n AppConfig extensions in the\n AppConfig User Guide.

", + "smithy.api#documentation": "

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

\n

You can create your own extensions or use the Amazon Web Services authored extensions provided by\n AppConfig. For an AppConfig extension that uses Lambda, you must create a Lambda function to perform any computation and processing\n defined in the extension. If you plan to create custom versions of the Amazon Web Services\n authored notification extensions, you only need to specify an Amazon Resource Name (ARN) in\n the Uri field for the new extension version.

\n
    \n
  • \n

    For a custom EventBridge notification extension, enter the ARN of the EventBridge\n default events in the Uri field.

    \n
  • \n
  • \n

    For a custom Amazon SNS notification extension, enter the ARN of an Amazon SNS\n topic in the Uri field.

    \n
  • \n
  • \n

    For a custom Amazon SQS notification extension, enter the ARN of an Amazon SQS\n message queue in the Uri field.

    \n
  • \n
\n

For more information about extensions, see Extending\n workflows in the AppConfig User Guide.

", "smithy.api#http": { "method": "POST", "uri": "/extensions", @@ -2109,7 +2109,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

", + "smithy.api#documentation": "

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

", "smithy.api#http": { "method": "POST", "uri": "/extensionassociations", @@ -2857,7 +2857,7 @@ "KmsKeyIdentifier": { "target": "com.amazonaws.appconfig#KmsKeyIdentifier", "traits": { - "smithy.api#documentation": "

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.

" + "smithy.api#documentation": "

The Key Management Service key identifier (key ID, key alias, or key ARN) provided when\n the resource was created or updated.

" } }, "VersionLabel": { @@ -3193,6 +3193,27 @@ } } }, + "com.amazonaws.appconfig#DynamicParameterKey": { + "type": "string", + "traits": { + "smithy.api#pattern": "^([^#\\n]{1,96})#([^\\/#\\n]{1,64})$" + } + }, + "com.amazonaws.appconfig#DynamicParameterMap": { + "type": "map", + "key": { + "target": "com.amazonaws.appconfig#DynamicParameterKey" + }, + "value": { + "target": "com.amazonaws.appconfig#StringWithLengthBetween1And2048" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.appconfig#Environment": { "type": "structure", "members": { @@ -3958,7 +3979,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about an AppConfig extension association. For more\n information about extensions and associations, see Working with\n AppConfig extensions in the\n AppConfig User Guide.

", + "smithy.api#documentation": "

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

", "smithy.api#http": { "method": "GET", "uri": "/extensionassociations/{ExtensionAssociationId}", @@ -4088,8 +4109,8 @@ "type": "float", "traits": { "smithy.api#range": { - "min": 1, - "max": 100 + "min": 1.0, + "max": 100.0 } } }, @@ -4754,7 +4775,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all AppConfig extension associations in the account. For more\n information about extensions and associations, see Working with\n AppConfig extensions in the\n AppConfig User Guide.

", + "smithy.api#documentation": "

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

", "smithy.api#http": { "method": "GET", "uri": "/extensionassociations", @@ -4829,7 +4850,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all custom and Amazon Web Services authored AppConfig extensions in the\n account. For more information about extensions, see Working with\n AppConfig extensions in the\n AppConfig User Guide.

", + "smithy.api#documentation": "

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

", "smithy.api#http": { "method": "GET", "uri": "/extensions", @@ -5123,10 +5144,17 @@ "smithy.api#default": false, "smithy.api#documentation": "

A parameter value must be specified in the extension association.

" } + }, + "Dynamic": { + "target": "com.amazonaws.appconfig#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether this parameter's value can be supplied at the extension's action point\n instead of during extension association. Dynamic parameters can't be marked\n Required.

" + } } }, "traits": { - "smithy.api#documentation": "

A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered\n in an extension when invoked. Parameter values are specified in an extension association.\n For more information about extensions, see Working with\n AppConfig extensions in the\n AppConfig User Guide.

" + "smithy.api#documentation": "

A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered\n in an extension when invoked. Parameter values are specified in an extension association.\n For more information about extensions, see Extending\n workflows in the AppConfig User Guide.

" } }, "com.amazonaws.appconfig#ParameterMap": { @@ -5140,7 +5168,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 5 + "max": 10 } } }, @@ -5155,7 +5183,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 5 + "max": 10 } } }, @@ -5191,8 +5219,8 @@ "type": "float", "traits": { "smithy.api#range": { - "min": 1, - "max": 100 + "min": 1.0, + "max": 100.0 } } }, @@ -5360,6 +5388,12 @@ "traits": { "smithy.api#documentation": "

The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this ID to encrypt the configuration data using a customer managed key.

" } + }, + "DynamicExtensionParameters": { + "target": "com.amazonaws.appconfig#DynamicParameterMap", + "traits": { + "smithy.api#documentation": "

A map of dynamic extension parameter names to values to pass to associated extensions\n with PRE_START_DEPLOYMENT actions.

" + } } }, "traits": { @@ -5399,9 +5433,9 @@ "output": { "DeploymentNumber": 2, "DeploymentDurationInMinutes": 15, - "GrowthFactor": 25, + "GrowthFactor": 25.0, "FinalBakeTimeInMinutes": 0, - "PercentageComplete": 1 + "PercentageComplete": 1.0 } } ], @@ -5849,7 +5883,7 @@ "KmsKeyIdentifier": { "target": "com.amazonaws.appconfig#KmsKeyIdentifierOrEmpty", "traits": { - "smithy.api#documentation": "

The identifier for a Key Management Service key to encrypt new configuration\n data versions in the AppConfig hosted configuration store. This attribute is only\n used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias.\n To encrypt data managed in other configuration stores, see the documentation for how to\n specify an KMS key for that particular service.

" + "smithy.api#documentation": "

The identifier for a Key Management Service key to encrypt new configuration data\n versions in the AppConfig hosted configuration store. This attribute is only used\n for hosted configuration types. The identifier can be an KMS\n key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias. To encrypt data\n managed in other configuration stores, see the documentation for how to specify an KMS key for that particular service.

" } } }, @@ -6063,7 +6097,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an AppConfig extension. For more information about extensions, see\n Working with\n AppConfig extensions in the\n AppConfig User Guide.

", + "smithy.api#documentation": "

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

", "smithy.api#http": { "method": "PATCH", "uri": "/extensions/{ExtensionIdentifier}", @@ -6091,7 +6125,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an association. For more information about extensions and associations, see\n Working with\n AppConfig extensions in the\n AppConfig User Guide.

", + "smithy.api#documentation": "

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

", "smithy.api#http": { "method": "PATCH", "uri": "/extensionassociations/{ExtensionAssociationId}",