def METHOD_NAME(arn: Optional[str] = None,
               name: Optional[str] = None,
               path_prefix: Optional[str] = None,
               tags: Optional[Mapping[str, str]] = None,
               opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPolicyResult:
    """
    This data source can be used to fetch information about a specific
    IAM policy.
    ## Example Usage
    ### By ARN
    ```python
    import pulumi
    import pulumi_aws as aws
    example = aws.iam.get_policy(arn="arn:aws:iam::123456789012:policy/UsersManageOwnCredentials")
    ```
    ### By Name
    ```python
    import pulumi
    import pulumi_aws as aws
    example = aws.iam.get_policy(name="test_policy")
    ```
    :param str arn: ARN of the IAM policy.
           Conflicts with `name` and `path_prefix`.
    :param str name: Name of the IAM policy.
           Conflicts with `arn`.
    :param str path_prefix: Prefix of the path to the IAM policy.
           Defaults to a slash (`/`).
           Conflicts with `arn`.
    :param Mapping[str, str] tags: Key-value mapping of tags for the IAM Policy.
    """
    __args__ = dict()
    __args__['arn'] = arn
    __args__['name'] = name
    __args__['pathPrefix'] = path_prefix
    __args__['tags'] = tags
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('aws:iam/getPolicy:getPolicy', __args__, opts=opts, typ=GetPolicyResult).value
    return AwaitableGetPolicyResult(
        arn=pulumi.get(__ret__, 'arn'),
        description=pulumi.get(__ret__, 'description'),
        id=pulumi.get(__ret__, 'id'),
        name=pulumi.get(__ret__, 'name'),
        path=pulumi.get(__ret__, 'path'),
        path_prefix=pulumi.get(__ret__, 'path_prefix'),
        policy=pulumi.get(__ret__, 'policy'),
        policy_id=pulumi.get(__ret__, 'policy_id'),
        tags=pulumi.get(__ret__, 'tags'))