def describe_job(accountId=None, vaultName=None, jobId=None):
    """
    This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon Glacier completes the job. For more information about initiating a job, see  InitiateJob .
    A job ID will not expire for at least 24 hours after Amazon Glacier completes the job.
    An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM) .
    For information about the underlying REST API, see Working with Archives in Amazon Glacier in the Amazon Glacier Developer Guide .
    See also: AWS API Documentation
    
    Examples
    The example returns information about the previously initiated job specified by the job ID.
    Expected Output:
    
    :example: response = client.describe_job(
        vaultName='string',
        jobId='string'
    )
    
    
    :type accountId: string
    :param accountId: The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '- ' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.
            Note: this parameter is set to '-' bydefault if no value is not specified.
            

    :type vaultName: string
    :param vaultName: [REQUIRED]
            The name of the vault.
            

    :type jobId: string
    :param jobId: [REQUIRED]
            The ID of the job to describe.
            

    :rtype: dict
    :return: {
        'JobId': 'string',
        'JobDescription': 'string',
        'Action': 'ArchiveRetrieval'|'InventoryRetrieval',
        'ArchiveId': 'string',
        'VaultARN': 'string',
        'CreationDate': 'string',
        'Completed': True|False,
        'StatusCode': 'InProgress'|'Succeeded'|'Failed',
        'StatusMessage': 'string',
        'ArchiveSizeInBytes': 123,
        'InventorySizeInBytes': 123,
        'SNSTopic': 'string',
        'CompletionDate': 'string',
        'SHA256TreeHash': 'string',
        'ArchiveSHA256TreeHash': 'string',
        'RetrievalByteRange': 'string',
        'Tier': 'string',
        'InventoryRetrievalParameters': {
            'Format': 'string',
            'StartDate': 'string',
            'EndDate': 'string',
            'Limit': 'string',
            'Marker': 'string'
        }
    }
    
    
    :returns: 
    Archive retrieval jobs that specify a range that is not tree-hash aligned.
    Archival jobs that specify a range that is equal to the whole archive and the job status is InProgress.
    Inventory jobs.
    
    """
    pass
