docs: def taskPending(self, *args, **kwargs):
          """
          Task Pending Messages
  
          When a task becomes `pending` a message is posted to this exchange.
  
          This is useful for workers who doesn't want to constantly poll the queue
          for new tasks. The queue will also be authority for task states and
          claims. But using this exchange workers should be able to distribute work
          efficiently and they would be able to reduce their polling interval
          significantly without affecting general responsiveness.
  
          This exchange outputs: ``v1/task-pending-message.json#``This exchange takes the following keys:
  
           * routingKeyKind: Identifier for the routing-key kind. This is always `'primary'` for the formalized routing key. (required)
  
           * taskId: `taskId` for the task this message concerns (required)
  
           * runId: `runId` of latest run for the task, `_` if no run is exists for the task. (required)
  
           * workerGroup: `workerGroup` of latest run for the task, `_` if no run is exists for the task.
  
           * workerId: `workerId` of latest run for the task, `_` if no run is exists for the task.
  
           * provisionerId: `provisionerId` this task is targeted at. (required)
  
           * workerType: `workerType` this task must run on. (required)
  
           * schedulerId: `schedulerId` this task was created by. (required)
  
           * taskGroupId: `taskGroupId` this task was created in. (required)
  
           * reserved: Space reserved for future routing-key entries, you should always match this entry with `#`. As automatically done by our tooling, if not specified.
          """
  
          ref = {
              'exchange': 'task-pending',
              'name': 'taskPending',
              'routingKey': [
                  {
                      'constant': 'primary',
                      'multipleWords': False,
                      'name': 'routingKeyKind',
                  },
                  {
                      'multipleWords': False,
                      'name': 'taskId',
                  },
                  {
                      'multipleWords': False,
                      'name': 'runId',
                  },
                  {
                      'multipleWords': False,
                      'name': 'workerGroup',
                  },
                  {
                      'multipleWords': False,
                      'name': 'workerId',
                  },
                  {
                      'multipleWords': False,
                      'name': 'provisionerId',
                  },
                  {
                      'multipleWords': False,
                      'name': 'workerType',
                  },
                  {
                      'multipleWords': False,
                      'name': 'schedulerId',
                  },
                  {
                      'multipleWords': False,
                      'name': 'taskGroupId',
                  },
                  {
                      'multipleWords': True,
                      'name': 'reserved',
                  },
              ],
              'schema': 'v1/task-pending-message.json#',
          }
          return self._makeTopicExchange(ref, *args, **kwargs)