def METHOD_NAME(delegates: Optional[Sequence[str]] = None,
                    expires_in: Optional[int] = None,
                    payload: Optional[str] = None,
                    target_service_account: Optional[str] = None,
                    opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAccountJwtResult:
    """
    This data source provides a [self-signed JWT](https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-jwt).  Tokens issued from this data source are typically used to call external services that accept JWTs for authentication.
    ## Example Usage
    Note: in order to use the following, the caller must have _at least_ `roles/iam.serviceAccountTokenCreator` on the `target_service_account`.
    ```python
    import pulumi
    import json
    import pulumi_gcp as gcp
    foo = gcp.serviceAccount.get_account_jwt(target_service_account="impersonated-account@project.iam.gserviceaccount.com",
        payload=json.dumps({
            "foo": "bar",
            "sub": "subject",
        }),
        expires_in=60)
    pulumi.export("jwt", foo.jwt)
    ```
    :param Sequence[str] delegates: Delegate chain of approvals needed to perform full impersonation. Specify the fully qualified service account name.
    :param int expires_in: Number of seconds until the JWT expires. If set and non-zero an `exp` claim will be added to the payload derived from the current timestamp plus expires_in seconds.
    :param str payload: The JSON-encoded JWT claims set to include in the self-signed JWT.
    :param str target_service_account: The email of the service account that will sign the JWT.
    """
    __args__ = dict()
    __args__['delegates'] = delegates
    __args__['expiresIn'] = expires_in
    __args__['payload'] = payload
    __args__['targetServiceAccount'] = target_service_account
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('gcp:serviceAccount/getAccountJwt:getAccountJwt', __args__, opts=opts, typ=GetAccountJwtResult).value
    return AwaitableGetAccountJwtResult(
        delegates=pulumi.get(__ret__, 'delegates'),
        expires_in=pulumi.get(__ret__, 'expires_in'),
        id=pulumi.get(__ret__, 'id'),
        jwt=pulumi.get(__ret__, 'jwt'),
        payload=pulumi.get(__ret__, 'payload'),
        target_service_account=pulumi.get(__ret__, 'target_service_account'))