ResilienceHub / Client / create_app_version_resource

create_app_version_resource#

ResilienceHub.Client.create_app_version_resource(**kwargs)#

Adds a resource to the Resilience Hub application and assigns it to the specified Application Components. If you specify a new Application Component, Resilience Hub will automatically create the Application Component.

Note

  • This action has no effect outside Resilience Hub.

  • This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

  • To update application version with new physicalResourceID, you must call ResolveAppVersionResources API.

See also: AWS API Documentation

Request Syntax

response = client.create_app_version_resource(
    additionalInfo={
        'string': [
            'string',
        ]
    },
    appArn='string',
    appComponents=[
        'string',
    ],
    awsAccountId='string',
    awsRegion='string',
    clientToken='string',
    logicalResourceId={
        'eksSourceName': 'string',
        'identifier': 'string',
        'logicalStackName': 'string',
        'resourceGroupName': 'string',
        'terraformSourceName': 'string'
    },
    physicalResourceId='string',
    resourceName='string',
    resourceType='string'
)
Parameters:
  • additionalInfo (dict) –

    Currently, there is no supported additional information for resources.

    • (string) –

      • (list) –

        • (string) –

  • appArn (string) –

    [REQUIRED]

    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.

  • appComponents (list) –

    [REQUIRED]

    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.

    • (string) –

  • awsAccountId (string) – Amazon Web Services account that owns the physical resource.

  • awsRegion (string) – Amazon Web Services region that owns the physical resource.

  • clientToken (string) –

    Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests.

    This field is autopopulated if not provided.

  • logicalResourceId (dict) –

    [REQUIRED]

    Logical identifier of the resource.

    • eksSourceName (string) –

      Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

      Note

      This parameter accepts values in “eks-cluster/namespace” format.

    • identifier (string) – [REQUIRED]

      Identifier of the resource.

    • logicalStackName (string) –

      The name of the CloudFormation stack this resource belongs to.

    • resourceGroupName (string) –

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

    • terraformSourceName (string) –

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

  • physicalResourceId (string) –

    [REQUIRED]

    Physical identifier of the resource.

  • resourceName (string) – Name of the resource.

  • resourceType (string) –

    [REQUIRED]

    Type of resource.

Return type:

dict

Returns:

Response Syntax

{
    'appArn': 'string',
    'appVersion': 'string',
    'physicalResource': {
        'additionalInfo': {
            'string': [
                'string',
            ]
        },
        'appComponents': [
            {
                'additionalInfo': {
                    'string': [
                        'string',
                    ]
                },
                'id': 'string',
                'name': 'string',
                'type': 'string'
            },
        ],
        'excluded': True|False,
        'logicalResourceId': {
            'eksSourceName': 'string',
            'identifier': 'string',
            'logicalStackName': 'string',
            'resourceGroupName': 'string',
            'terraformSourceName': 'string'
        },
        'parentResourceName': 'string',
        'physicalResourceId': {
            'awsAccountId': 'string',
            'awsRegion': 'string',
            'identifier': 'string',
            'type': 'Arn'|'Native'
        },
        'resourceName': 'string',
        'resourceType': 'string',
        'sourceType': 'AppTemplate'|'Discovered'
    }
}

Response Structure

  • (dict) –

    • appArn (string) –

      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.

    • appVersion (string) –

      Resilience Hub application version.

    • physicalResource (dict) –

      Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier.

      • additionalInfo (dict) –

        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.

        Note

        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>"}]}]"

        • (string) –

          • (list) –

            • (string) –

      • appComponents (list) –

        The application components that belong to this resource.

        • (dict) –

          Defines an Application Component.

          • additionalInfo (dict) –

            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.

            Note

            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>"}]}]"

            • (string) –

              • (list) –

                • (string) –

          • id (string) –

            Identifier of the Application Component.

          • name (string) –

            Name of the Application Component.

          • type (string) –

            The type of Application Component.

      • excluded (boolean) –

        Indicates if a resource is included or excluded from the assessment.

      • logicalResourceId (dict) –

        Logical identifier of the resource.

        • eksSourceName (string) –

          Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

          Note

          This parameter accepts values in “eks-cluster/namespace” format.

        • identifier (string) –

          Identifier of the resource.

        • logicalStackName (string) –

          The name of the CloudFormation stack this resource belongs to.

        • resourceGroupName (string) –

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

        • terraformSourceName (string) –

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

      • parentResourceName (string) –

        Name of the parent resource.

      • physicalResourceId (dict) –

        Identifier of the physical resource.

        • awsAccountId (string) –

          The Amazon Web Services account that owns the physical resource.

        • awsRegion (string) –

          The Amazon Web Services Region that the physical resource is located in.

        • identifier (string) –

          Identifier of the physical resource.

        • type (string) –

          Specifies the type of physical resource identifier.

          Arn

          The resource identifier is an Amazon Resource Name (ARN) and it can identify the following list of resources:

          • AWS::ECS::Service

          • AWS::EFS::FileSystem

          • AWS::ElasticLoadBalancingV2::LoadBalancer

          • AWS::Lambda::Function

          • AWS::SNS::Topic

            Native

          The resource identifier is an Resilience Hub-native identifier and it can identify the following list of resources:

          • AWS::ApiGateway::RestApi

          • AWS::ApiGatewayV2::Api

          • AWS::AutoScaling::AutoScalingGroup

          • AWS::DocDB::DBCluster

          • AWS::DocDB::DBGlobalCluster

          • AWS::DocDB::DBInstance

          • AWS::DynamoDB::GlobalTable

          • AWS::DynamoDB::Table

          • AWS::EC2::EC2Fleet

          • AWS::EC2::Instance

          • AWS::EC2::NatGateway

          • AWS::EC2::Volume

          • AWS::ElasticLoadBalancing::LoadBalancer

          • AWS::RDS::DBCluster

          • AWS::RDS::DBInstance

          • AWS::RDS::GlobalCluster

          • AWS::Route53::RecordSet

          • AWS::S3::Bucket

          • AWS::SQS::Queue

      • resourceName (string) –

        The name of the resource.

      • resourceType (string) –

        The type of resource.

      • sourceType (string) –

        Type of input source.

Exceptions

  • ResilienceHub.Client.exceptions.InternalServerException

  • ResilienceHub.Client.exceptions.ResourceNotFoundException

  • ResilienceHub.Client.exceptions.ConflictException

  • ResilienceHub.Client.exceptions.ServiceQuotaExceededException

  • ResilienceHub.Client.exceptions.ThrottlingException

  • ResilienceHub.Client.exceptions.ValidationException

  • ResilienceHub.Client.exceptions.AccessDeniedException