AWS Well-Architected Tool

2022/06/21 - AWS Well-Architected Tool - 4 updated api methods

Changes  Adds support for lens tagging, Adds support for multiple helpful-resource urls and multiple improvement-plan urls.

GetAnswer (updated) Link ¶
Changes (response)
{'Answer': {'Choices': {'AdditionalResources': [{'Content': [{'DisplayText': 'string',
                                                              'Url': 'string'}],
                                                 'Type': 'HELPFUL_RESOURCE | '
                                                         'IMPROVEMENT_PLAN'}]}}}

Get the answer to a specific question in a workload review.

See also: AWS API Documentation

Request Syntax

client.get_answer(
    WorkloadId='string',
    LensAlias='string',
    QuestionId='string',
    MilestoneNumber=123
)
type WorkloadId:

string

param WorkloadId:

[REQUIRED]

The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.

type LensAlias:

string

param LensAlias:

[REQUIRED]

The alias of the lens.

For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

Each lens is identified by its LensSummary$LensAlias.

type QuestionId:

string

param QuestionId:

[REQUIRED]

The ID of the question.

type MilestoneNumber:

integer

param MilestoneNumber:

The milestone number.

A workload can have a maximum of 100 milestones.

rtype:

dict

returns:

Response Syntax

{
    'WorkloadId': 'string',
    'MilestoneNumber': 123,
    'LensAlias': 'string',
    'LensArn': 'string',
    'Answer': {
        'QuestionId': 'string',
        'PillarId': 'string',
        'QuestionTitle': 'string',
        'QuestionDescription': 'string',
        'ImprovementPlanUrl': 'string',
        'HelpfulResourceUrl': 'string',
        'HelpfulResourceDisplayText': 'string',
        'Choices': [
            {
                'ChoiceId': 'string',
                'Title': 'string',
                'Description': 'string',
                'HelpfulResource': {
                    'DisplayText': 'string',
                    'Url': 'string'
                },
                'ImprovementPlan': {
                    'DisplayText': 'string',
                    'Url': 'string'
                },
                'AdditionalResources': [
                    {
                        'Type': 'HELPFUL_RESOURCE'|'IMPROVEMENT_PLAN',
                        'Content': [
                            {
                                'DisplayText': 'string',
                                'Url': 'string'
                            },
                        ]
                    },
                ]
            },
        ],
        'SelectedChoices': [
            'string',
        ],
        'ChoiceAnswers': [
            {
                'ChoiceId': 'string',
                'Status': 'SELECTED'|'NOT_APPLICABLE'|'UNSELECTED',
                'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE',
                'Notes': 'string'
            },
        ],
        'IsApplicable': True|False,
        'Risk': 'UNANSWERED'|'HIGH'|'MEDIUM'|'NONE'|'NOT_APPLICABLE',
        'Notes': 'string',
        'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE'
    }
}

Response Structure

  • (dict) --

    Output of a get answer call.

    • WorkloadId (string) --

      The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.

    • MilestoneNumber (integer) --

      The milestone number.

      A workload can have a maximum of 100 milestones.

    • LensAlias (string) --

      The alias of the lens.

      For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

      For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

      Each lens is identified by its LensSummary$LensAlias.

    • LensArn (string) --

      The ARN for the lens.

    • Answer (dict) --

      An answer of the question.

      • QuestionId (string) --

        The ID of the question.

      • PillarId (string) --

        The ID used to identify a pillar, for example, security.

        A pillar is identified by its PillarReviewSummary$PillarId.

      • QuestionTitle (string) --

        The title of the question.

      • QuestionDescription (string) --

        The description of the question.

      • ImprovementPlanUrl (string) --

        The improvement plan URL for a question.

        This value is only available if the question has been answered.

      • HelpfulResourceUrl (string) --

        The helpful resource URL for a question.

      • HelpfulResourceDisplayText (string) --

        The helpful resource text to be displayed.

      • Choices (list) --

        List of choices available for a question.

        • (dict) --

          A choice available to answer question.

          • ChoiceId (string) --

            The ID of a choice.

          • Title (string) --

            The title of a choice.

          • Description (string) --

            The description of a choice.

          • HelpfulResource (dict) --

            The choice level helpful resource.

            • DisplayText (string) --

              The display text for the choice content.

            • Url (string) --

              The URL for the choice content.

          • ImprovementPlan (dict) --

            The choice level improvement plan.

            • DisplayText (string) --

              The display text for the choice content.

            • Url (string) --

              The URL for the choice content.

          • AdditionalResources (list) --

            The additional resources for a choice. A choice can have up to two additional resources: one of type HELPFUL_RESOURCE, one of type IMPROVEMENT_PLAN, or both.

            • (dict) --

              The choice level additional resources.

              • Type (string) --

                Type of additional resource.

              • Content (list) --

                The URLs for additional resources, either helpful resources or improvement plans. Up to five additional URLs can be specified.

                • (dict) --

                  The choice content.

                  • DisplayText (string) --

                    The display text for the choice content.

                  • Url (string) --

                    The URL for the choice content.

      • SelectedChoices (list) --

        List of selected choice IDs in a question answer.

        The values entered replace the previously selected choices.

        • (string) --

          The ID of a choice.

      • ChoiceAnswers (list) --

        A list of selected choices to a question in your workload.

        • (dict) --

          A choice that has been answered on a question in your workload.

          • ChoiceId (string) --

            The ID of a choice.

          • Status (string) --

            The status of a choice.

          • Reason (string) --

            The reason why a choice is non-applicable to a question in your workload.

          • Notes (string) --

            The notes associated with a choice.

      • IsApplicable (boolean) --

        Defines whether this question is applicable to a lens review.

      • Risk (string) --

        The risk for a given workload, lens review, pillar, or question.

      • Notes (string) --

        The notes associated with the workload.

      • Reason (string) --

        The reason why the question is not applicable to your workload.

GetLens (updated) Link ¶
Changes (response)
{'Lens': {'Tags': {'string': 'string'}}}

Get an existing lens.

See also: AWS API Documentation

Request Syntax

client.get_lens(
    LensAlias='string',
    LensVersion='string'
)
type LensAlias:

string

param LensAlias:

[REQUIRED]

The alias of the lens.

For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

Each lens is identified by its LensSummary$LensAlias.

type LensVersion:

string

param LensVersion:

The lens version to be retrieved.

rtype:

dict

returns:

Response Syntax

{
    'Lens': {
        'LensArn': 'string',
        'LensVersion': 'string',
        'Name': 'string',
        'Description': 'string',
        'Owner': 'string',
        'ShareInvitationId': 'string',
        'Tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • Lens (dict) --

      A lens return object.

      • LensArn (string) --

        The ARN of a lens.

      • LensVersion (string) --

        The version of a lens.

      • Name (string) --

        The full name of the lens.

      • Description (string) --

        The description of the lens.

      • Owner (string) --

        The Amazon Web Services account ID that owns the lens.

      • ShareInvitationId (string) --

        The ID assigned to the share invitation.

      • Tags (dict) --

        The tags assigned to the lens.

        • (string) --

          • (string) --

ListAnswers (updated) Link ¶
Changes (response)
{'AnswerSummaries': {'Choices': {'AdditionalResources': [{'Content': [{'DisplayText': 'string',
                                                                       'Url': 'string'}],
                                                          'Type': 'HELPFUL_RESOURCE '
                                                                  '| '
                                                                  'IMPROVEMENT_PLAN'}]}}}

List of answers.

See also: AWS API Documentation

Request Syntax

client.list_answers(
    WorkloadId='string',
    LensAlias='string',
    PillarId='string',
    MilestoneNumber=123,
    NextToken='string',
    MaxResults=123
)
type WorkloadId:

string

param WorkloadId:

[REQUIRED]

The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.

type LensAlias:

string

param LensAlias:

[REQUIRED]

The alias of the lens.

For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

Each lens is identified by its LensSummary$LensAlias.

type PillarId:

string

param PillarId:

The ID used to identify a pillar, for example, security.

A pillar is identified by its PillarReviewSummary$PillarId.

type MilestoneNumber:

integer

param MilestoneNumber:

The milestone number.

A workload can have a maximum of 100 milestones.

type NextToken:

string

param NextToken:

The token to use to retrieve the next set of results.

type MaxResults:

integer

param MaxResults:

The maximum number of results to return for this request.

rtype:

dict

returns:

Response Syntax

{
    'WorkloadId': 'string',
    'MilestoneNumber': 123,
    'LensAlias': 'string',
    'LensArn': 'string',
    'AnswerSummaries': [
        {
            'QuestionId': 'string',
            'PillarId': 'string',
            'QuestionTitle': 'string',
            'Choices': [
                {
                    'ChoiceId': 'string',
                    'Title': 'string',
                    'Description': 'string',
                    'HelpfulResource': {
                        'DisplayText': 'string',
                        'Url': 'string'
                    },
                    'ImprovementPlan': {
                        'DisplayText': 'string',
                        'Url': 'string'
                    },
                    'AdditionalResources': [
                        {
                            'Type': 'HELPFUL_RESOURCE'|'IMPROVEMENT_PLAN',
                            'Content': [
                                {
                                    'DisplayText': 'string',
                                    'Url': 'string'
                                },
                            ]
                        },
                    ]
                },
            ],
            'SelectedChoices': [
                'string',
            ],
            'ChoiceAnswerSummaries': [
                {
                    'ChoiceId': 'string',
                    'Status': 'SELECTED'|'NOT_APPLICABLE'|'UNSELECTED',
                    'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE'
                },
            ],
            'IsApplicable': True|False,
            'Risk': 'UNANSWERED'|'HIGH'|'MEDIUM'|'NONE'|'NOT_APPLICABLE',
            'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    Output of a list answers call.

    • WorkloadId (string) --

      The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.

    • MilestoneNumber (integer) --

      The milestone number.

      A workload can have a maximum of 100 milestones.

    • LensAlias (string) --

      The alias of the lens.

      For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

      For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

      Each lens is identified by its LensSummary$LensAlias.

    • LensArn (string) --

      The ARN for the lens.

    • AnswerSummaries (list) --

      List of answer summaries of lens review in a workload.

      • (dict) --

        An answer summary of a lens review in a workload.

        • QuestionId (string) --

          The ID of the question.

        • PillarId (string) --

          The ID used to identify a pillar, for example, security.

          A pillar is identified by its PillarReviewSummary$PillarId.

        • QuestionTitle (string) --

          The title of the question.

        • Choices (list) --

          List of choices available for a question.

          • (dict) --

            A choice available to answer question.

            • ChoiceId (string) --

              The ID of a choice.

            • Title (string) --

              The title of a choice.

            • Description (string) --

              The description of a choice.

            • HelpfulResource (dict) --

              The choice level helpful resource.

              • DisplayText (string) --

                The display text for the choice content.

              • Url (string) --

                The URL for the choice content.

            • ImprovementPlan (dict) --

              The choice level improvement plan.

              • DisplayText (string) --

                The display text for the choice content.

              • Url (string) --

                The URL for the choice content.

            • AdditionalResources (list) --

              The additional resources for a choice. A choice can have up to two additional resources: one of type HELPFUL_RESOURCE, one of type IMPROVEMENT_PLAN, or both.

              • (dict) --

                The choice level additional resources.

                • Type (string) --

                  Type of additional resource.

                • Content (list) --

                  The URLs for additional resources, either helpful resources or improvement plans. Up to five additional URLs can be specified.

                  • (dict) --

                    The choice content.

                    • DisplayText (string) --

                      The display text for the choice content.

                    • Url (string) --

                      The URL for the choice content.

        • SelectedChoices (list) --

          List of selected choice IDs in a question answer.

          The values entered replace the previously selected choices.

          • (string) --

            The ID of a choice.

        • ChoiceAnswerSummaries (list) --

          A list of selected choices to a question in your workload.

          • (dict) --

            A choice summary that has been answered on a question in your workload.

            • ChoiceId (string) --

              The ID of a choice.

            • Status (string) --

              The status of a choice.

            • Reason (string) --

              The reason why a choice is non-applicable to a question in your workload.

        • IsApplicable (boolean) --

          Defines whether this question is applicable to a lens review.

        • Risk (string) --

          The risk for a given workload, lens review, pillar, or question.

        • Reason (string) --

          The reason why a choice is non-applicable to a question in your workload.

    • NextToken (string) --

      The token to use to retrieve the next set of results.

UpdateAnswer (updated) Link ¶
Changes (response)
{'Answer': {'Choices': {'AdditionalResources': [{'Content': [{'DisplayText': 'string',
                                                              'Url': 'string'}],
                                                 'Type': 'HELPFUL_RESOURCE | '
                                                         'IMPROVEMENT_PLAN'}]}}}

Update the answer to a specific question in a workload review.

See also: AWS API Documentation

Request Syntax

client.update_answer(
    WorkloadId='string',
    LensAlias='string',
    QuestionId='string',
    SelectedChoices=[
        'string',
    ],
    ChoiceUpdates={
        'string': {
            'Status': 'SELECTED'|'NOT_APPLICABLE'|'UNSELECTED',
            'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE',
            'Notes': 'string'
        }
    },
    Notes='string',
    IsApplicable=True|False,
    Reason='OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE'
)
type WorkloadId:

string

param WorkloadId:

[REQUIRED]

The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.

type LensAlias:

string

param LensAlias:

[REQUIRED]

The alias of the lens.

For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

Each lens is identified by its LensSummary$LensAlias.

type QuestionId:

string

param QuestionId:

[REQUIRED]

The ID of the question.

type SelectedChoices:

list

param SelectedChoices:

List of selected choice IDs in a question answer.

The values entered replace the previously selected choices.

  • (string) --

    The ID of a choice.

type ChoiceUpdates:

dict

param ChoiceUpdates:

A list of choices to update on a question in your workload. The String key corresponds to the choice ID to be updated.

  • (string) --

    The ID of a choice.

    • (dict) --

      A list of choices to be updated.

      • Status (string) -- [REQUIRED]

        The status of a choice.

      • Reason (string) --

        The reason why a choice is non-applicable to a question in your workload.

      • Notes (string) --

        The notes associated with a choice.

type Notes:

string

param Notes:

The notes associated with the workload.

type IsApplicable:

boolean

param IsApplicable:

Defines whether this question is applicable to a lens review.

type Reason:

string

param Reason:

The reason why a question is not applicable to your workload.

rtype:

dict

returns:

Response Syntax

{
    'WorkloadId': 'string',
    'LensAlias': 'string',
    'LensArn': 'string',
    'Answer': {
        'QuestionId': 'string',
        'PillarId': 'string',
        'QuestionTitle': 'string',
        'QuestionDescription': 'string',
        'ImprovementPlanUrl': 'string',
        'HelpfulResourceUrl': 'string',
        'HelpfulResourceDisplayText': 'string',
        'Choices': [
            {
                'ChoiceId': 'string',
                'Title': 'string',
                'Description': 'string',
                'HelpfulResource': {
                    'DisplayText': 'string',
                    'Url': 'string'
                },
                'ImprovementPlan': {
                    'DisplayText': 'string',
                    'Url': 'string'
                },
                'AdditionalResources': [
                    {
                        'Type': 'HELPFUL_RESOURCE'|'IMPROVEMENT_PLAN',
                        'Content': [
                            {
                                'DisplayText': 'string',
                                'Url': 'string'
                            },
                        ]
                    },
                ]
            },
        ],
        'SelectedChoices': [
            'string',
        ],
        'ChoiceAnswers': [
            {
                'ChoiceId': 'string',
                'Status': 'SELECTED'|'NOT_APPLICABLE'|'UNSELECTED',
                'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE',
                'Notes': 'string'
            },
        ],
        'IsApplicable': True|False,
        'Risk': 'UNANSWERED'|'HIGH'|'MEDIUM'|'NONE'|'NOT_APPLICABLE',
        'Notes': 'string',
        'Reason': 'OUT_OF_SCOPE'|'BUSINESS_PRIORITIES'|'ARCHITECTURE_CONSTRAINTS'|'OTHER'|'NONE'
    }
}

Response Structure

  • (dict) --

    Output of a update answer call.

    • WorkloadId (string) --

      The ID assigned to the workload. This ID is unique within an Amazon Web Services Region.

    • LensAlias (string) --

      The alias of the lens.

      For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

      For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

      Each lens is identified by its LensSummary$LensAlias.

    • LensArn (string) --

      The ARN for the lens.

    • Answer (dict) --

      An answer of the question.

      • QuestionId (string) --

        The ID of the question.

      • PillarId (string) --

        The ID used to identify a pillar, for example, security.

        A pillar is identified by its PillarReviewSummary$PillarId.

      • QuestionTitle (string) --

        The title of the question.

      • QuestionDescription (string) --

        The description of the question.

      • ImprovementPlanUrl (string) --

        The improvement plan URL for a question.

        This value is only available if the question has been answered.

      • HelpfulResourceUrl (string) --

        The helpful resource URL for a question.

      • HelpfulResourceDisplayText (string) --

        The helpful resource text to be displayed.

      • Choices (list) --

        List of choices available for a question.

        • (dict) --

          A choice available to answer question.

          • ChoiceId (string) --

            The ID of a choice.

          • Title (string) --

            The title of a choice.

          • Description (string) --

            The description of a choice.

          • HelpfulResource (dict) --

            The choice level helpful resource.

            • DisplayText (string) --

              The display text for the choice content.

            • Url (string) --

              The URL for the choice content.

          • ImprovementPlan (dict) --

            The choice level improvement plan.

            • DisplayText (string) --

              The display text for the choice content.

            • Url (string) --

              The URL for the choice content.

          • AdditionalResources (list) --

            The additional resources for a choice. A choice can have up to two additional resources: one of type HELPFUL_RESOURCE, one of type IMPROVEMENT_PLAN, or both.

            • (dict) --

              The choice level additional resources.

              • Type (string) --

                Type of additional resource.

              • Content (list) --

                The URLs for additional resources, either helpful resources or improvement plans. Up to five additional URLs can be specified.

                • (dict) --

                  The choice content.

                  • DisplayText (string) --

                    The display text for the choice content.

                  • Url (string) --

                    The URL for the choice content.

      • SelectedChoices (list) --

        List of selected choice IDs in a question answer.

        The values entered replace the previously selected choices.

        • (string) --

          The ID of a choice.

      • ChoiceAnswers (list) --

        A list of selected choices to a question in your workload.

        • (dict) --

          A choice that has been answered on a question in your workload.

          • ChoiceId (string) --

            The ID of a choice.

          • Status (string) --

            The status of a choice.

          • Reason (string) --

            The reason why a choice is non-applicable to a question in your workload.

          • Notes (string) --

            The notes associated with a choice.

      • IsApplicable (boolean) --

        Defines whether this question is applicable to a lens review.

      • Risk (string) --

        The risk for a given workload, lens review, pillar, or question.

      • Notes (string) --

        The notes associated with the workload.

      • Reason (string) --

        The reason why the question is not applicable to your workload.