def METHOD_NAME(plan_id: Optional[str] = None,
             tags: Optional[Mapping[str, str]] = None,
             opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPlanResult:
    """
    Use this data source to get information on an existing backup plan.
    ## Example Usage
    ```python
    import pulumi
    import pulumi_aws as aws
    example = aws.backup.get_plan(plan_id="my_example_backup_plan_id")
    ```
    :param str plan_id: Backup plan ID.
    :param Mapping[str, str] tags: Metadata that you can assign to help organize the plans you create.
    """
    __args__ = dict()
    __args__['planId'] = plan_id
    __args__['tags'] = tags
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('aws:backup/getPlan:getPlan', __args__, opts=opts, typ=GetPlanResult).value
    return AwaitableGetPlanResult(
        arn=pulumi.get(__ret__, 'arn'),
        id=pulumi.get(__ret__, 'id'),
        name=pulumi.get(__ret__, 'name'),
        plan_id=pulumi.get(__ret__, 'plan_id'),
        tags=pulumi.get(__ret__, 'tags'),
        version=pulumi.get(__ret__, 'version'))