/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace ResilienceHub { namespace Model { /** */ class PutDraftAppVersionTemplateRequest : public ResilienceHubRequest { public: AWS_RESILIENCEHUB_API PutDraftAppVersionTemplateRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PutDraftAppVersionTemplate"; } AWS_RESILIENCEHUB_API Aws::String SerializePayload() const override; /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline const Aws::String& GetAppArn() const{ return m_appArn; } /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline bool AppArnHasBeenSet() const { return m_appArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline void SetAppArn(const Aws::String& value) { m_appArnHasBeenSet = true; m_appArn = value; } /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline void SetAppArn(Aws::String&& value) { m_appArnHasBeenSet = true; m_appArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline void SetAppArn(const char* value) { m_appArnHasBeenSet = true; m_appArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline PutDraftAppVersionTemplateRequest& WithAppArn(const Aws::String& value) { SetAppArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline PutDraftAppVersionTemplateRequest& WithAppArn(Aws::String&& value) { SetAppArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Resilience Hub application. The format * for this ARN is: * arn:partition:resiliencehub:region:account:app/app-id. * For more information about ARNs, see * Amazon Resource Names (ARNs) in the AWS General Reference guide.

*/ inline PutDraftAppVersionTemplateRequest& WithAppArn(const char* value) { SetAppArn(value); return *this;} /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline const Aws::String& GetAppTemplateBody() const{ return m_appTemplateBody; } /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline bool AppTemplateBodyHasBeenSet() const { return m_appTemplateBodyHasBeenSet; } /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline void SetAppTemplateBody(const Aws::String& value) { m_appTemplateBodyHasBeenSet = true; m_appTemplateBody = value; } /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline void SetAppTemplateBody(Aws::String&& value) { m_appTemplateBodyHasBeenSet = true; m_appTemplateBody = std::move(value); } /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline void SetAppTemplateBody(const char* value) { m_appTemplateBodyHasBeenSet = true; m_appTemplateBody.assign(value); } /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PutDraftAppVersionTemplateRequest& WithAppTemplateBody(const Aws::String& value) { SetAppTemplateBody(value); return *this;} /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PutDraftAppVersionTemplateRequest& WithAppTemplateBody(Aws::String&& value) { SetAppTemplateBody(std::move(value)); return *this;} /** *

A JSON string that provides information about your application structure. To * learn more about the appTemplateBody template, see the sample * template provided in the Examples section.

The * appTemplateBody JSON string has the following structure:

    *
  • resources

    The list of logical resources * that must be included in the Resilience Hub application.

    Type: Array

    *

    Don't add the resources that you want to exclude.

    Each * resources array item includes the following fields:

    • *

      logicalResourceId

      The logical identifier of * the resource.

      Type: Object

      Each logicalResourceId * object includes the following fields:

      • identifier *

        The identifier of the resource.

        Type: String

      • * logicalStackName

        The name of the CloudFormation stack this * resource belongs to.

        Type: String

      • * resourceGroupName

        The name of the resource group this * resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

    • type

      The * type of resource.

      Type: string

    • name *

      The name of the resource.

      Type: String

    • * additionalInfo

      Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • appComponents

    The list of * Application Components that this resource belongs to. If an Application * Component is not part of the Resilience Hub application, it will be added.

    *

    Type: Array

    Each appComponents array item includes the * following fields:

    • name

      The name of the * Application Component.

      Type: String

    • type *

      The type of Application Component. For more information about the types * of Application Component, see Grouping * resources in an AppComponent.

      Type: String

    • * resourceNames

      The list of included resources that are * assigned to the Application Component.

      Type: Array of strings

    • *
    • additionalInfo

      Additional configuration parameters * for an Resilience Hub application. If you want to implement * additionalInfo through the Resilience Hub console rather than using * an API call, see Configure * the application configuration parameters.

      Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

      Key: "failover-regions" *

      Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

    *
  • excludedResources

    The list of * logical resource identifiers to be excluded from the application.

    Type: * Array

    Don't add the resources that you want to include.

    *

    Each excludedResources array item includes the following * fields:

    • logicalResourceIds

      The * logical identifier of the resource.

      Type: Object

      You can * configure only one of the following fields:

      • * logicalStackName

      • resourceGroupName *

      • terraformSourceName

      • * eksSourceName

      Each * logicalResourceIds object includes the following fields:

        *
      • identifier

        The identifier of the resource.

        *

        Type: String

      • logicalStackName

        The * name of the CloudFormation stack this resource belongs to.

        Type: * String

      • resourceGroupName

        The name of the * resource group this resource belongs to.

        Type: String

      • * terraformSourceName

        The name of the Terraform S3 state file * this resource belongs to.

        Type: String

      • * eksSourceName

        The name of the Amazon Elastic Kubernetes * Service cluster and namespace this resource belongs to.

        This * parameter accepts values in "eks-cluster/namespace" format.

        Type: * String

  • version *

    The Resilience Hub application version.

  • * additionalInfo

    Additional configuration parameters for an * Resilience Hub application. If you want to implement additionalInfo * through the Resilience Hub console rather than using an API call, see Configure * the application configuration parameters.

    Currently, this * parameter accepts a key-value mapping (in a string format) of only one failover * region and one associated account.

    Key: "failover-regions" *

    Value: "[{"region":"<REGION>", * "accounts":[{"id":"<ACCOUNT_ID>"}]}]"

*/ inline PutDraftAppVersionTemplateRequest& WithAppTemplateBody(const char* value) { SetAppTemplateBody(value); return *this;} private: Aws::String m_appArn; bool m_appArnHasBeenSet = false; Aws::String m_appTemplateBody; bool m_appTemplateBodyHasBeenSet = false; }; } // namespace Model } // namespace ResilienceHub } // namespace Aws