parameters: (self, *args, **kwargs)
return_statement: return self._makeTopicExchange(ref, *args, **kwargs)
docstring: Task Completed Messages
  
          When a task is successfully completed by a worker a message is posted
          this exchange.
          This message is routed using the `runId`, `workerGroup` and `workerId`
          that completed the task. But information about additional runs is also
          available from the task status structure.
  
          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. (required)
  
           * workerId: `workerId` of latest run for the task, `_` if no run is exists for the task. (required)
  
           * 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.
docstring_summary: Task Completed Messages
docstring_tokens: Task Completed Messages
function: def taskCompleted(self, *args, **kwargs):
          """
          Task Completed Messages
  
          When a task is successfully completed by a worker a message is posted
          this exchange.
          This message is routed using the `runId`, `workerGroup` and `workerId`
          that completed the task. But information about additional runs is also
          available from the task status structure.
  
          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. (required)
  
           * workerId: `workerId` of latest run for the task, `_` if no run is exists for the task. (required)
  
           * 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-completed',
              'name': 'taskCompleted',
              '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-completed-message.json#',
          }
          return self._makeTopicExchange(ref, *args, **kwargs)
function_tokens: def taskCompleted ( self , * args , * * kwargs ) : ref = { 'exchange' : 'task-completed' , 'name' : 'taskCompleted' , '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-completed-message.json#' , } return self . _makeTopicExchange ( ref , * args , * * kwargs )