**Description**

        Asynchronously creates an MQTT subscription to a jobs related topic based on the provided arguments

        **Syntax**

        .. code:: python

          #Subscribe to notify-next topic to monitor change in job referred to by $next
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_NOTIFY_NEXT_TOPIC)
          #Subscribe to notify topic to monitor changes to jobs in pending list
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_NOTIFY_TOPIC)
          #Subscribe to receive messages for job execution updates
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_UPDATE_TOPIC, jobExecutionTopicReplyType.JOB_ACCEPTED_REPLY_TYPE)
          #Subscribe to receive messages for describing a job execution
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_DESCRIBE_TOPIC, jobExecutionTopicReplyType.JOB_ACCEPTED_REPLY_TYPE, jobId)

        **Parameters**

        *ackCallback* - Callback to be invoked when the client receives a SUBACK. Should be in form
        :code:`customCallback(mid, data)`, where :code:`mid` is the packet id for the disconnect request and
        :code:`data` is the granted QoS for this subscription.

        *callback* - Function to be called when a new message for the subscribed job topic
        comes in. Should be in form :code:`customCallback(client, userdata, message)`, where
        :code:`message` contains :code:`topic` and :code:`payload`. Note that :code:`client` and :code:`userdata` are
        here just to be aligned with the underneath Paho callback function signature. These fields are pending to be
        deprecated and should not be depended on.

        *jobExecutionType* - Member of the jobExecutionTopicType class specifying the jobs topic to subscribe to
        Defaults to jobExecutionTopicType.JOB_WILDCARD_TOPIC

        *jobReplyType* - Member of the jobExecutionTopicReplyType class specifying the (optional) reply sub-topic to subscribe to
        Defaults to jobExecutionTopicReplyType.JOB_REQUEST_TYPE which indicates the subscription isn't intended for a jobs reply topic

        *jobId* - JobId of the topic if the topic type requires one.
        Defaults to None

        **Returns**

        Subscribe request packet id, for tracking purpose in the corresponding callback.

def createJobSubscriptionAsync(self, ackCallback, callback, jobExecutionType=jobExecutionTopicType.JOB_WILDCARD_TOPIC, jobReplyType=jobExecutionTopicReplyType.JOB_REQUEST_TYPE, jobId=None):
        """
        **Description**

        Asynchronously creates an MQTT subscription to a jobs related topic based on the provided arguments

        **Syntax**

        .. code:: python

          #Subscribe to notify-next topic to monitor change in job referred to by $next
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_NOTIFY_NEXT_TOPIC)
          #Subscribe to notify topic to monitor changes to jobs in pending list
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_NOTIFY_TOPIC)
          #Subscribe to receive messages for job execution updates
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_UPDATE_TOPIC, jobExecutionTopicReplyType.JOB_ACCEPTED_REPLY_TYPE)
          #Subscribe to receive messages for describing a job execution
          myAWSIoTMQTTJobsClient.createJobSubscriptionAsync(callback, jobExecutionTopicType.JOB_DESCRIBE_TOPIC, jobExecutionTopicReplyType.JOB_ACCEPTED_REPLY_TYPE, jobId)

        **Parameters**

        *ackCallback* - Callback to be invoked when the client receives a SUBACK. Should be in form
        :code:`customCallback(mid, data)`, where :code:`mid` is the packet id for the disconnect request and
        :code:`data` is the granted QoS for this subscription.

        *callback* - Function to be called when a new message for the subscribed job topic
        comes in. Should be in form :code:`customCallback(client, userdata, message)`, where
        :code:`message` contains :code:`topic` and :code:`payload`. Note that :code:`client` and :code:`userdata` are
        here just to be aligned with the underneath Paho callback function signature. These fields are pending to be
        deprecated and should not be depended on.

        *jobExecutionType* - Member of the jobExecutionTopicType class specifying the jobs topic to subscribe to
        Defaults to jobExecutionTopicType.JOB_WILDCARD_TOPIC

        *jobReplyType* - Member of the jobExecutionTopicReplyType class specifying the (optional) reply sub-topic to subscribe to
        Defaults to jobExecutionTopicReplyType.JOB_REQUEST_TYPE which indicates the subscription isn't intended for a jobs reply topic

        *jobId* - JobId of the topic if the topic type requires one.
        Defaults to None

        **Returns**

        Subscribe request packet id, for tracking purpose in the corresponding callback.

        """
        topic = self._thingJobManager.getJobTopic(jobExecutionType, jobReplyType, jobId)
        return self._AWSIoTMQTTClient.subscribeAsync(topic, self._QoS, ackCallback, callback)