getCommandInvocation method

Future<GetCommandInvocationResult> getCommandInvocation({
  1. required String commandId,
  2. required String instanceId,
  3. String? pluginName,
})

Returns detailed information about command execution for an invocation or plugin. The Run Command API follows an eventual consistency model, due to the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your resources might not be immediately visible to all subsequent commands you run. You should keep this in mind when you carry out an API command that immediately follows a previous API command.

GetCommandInvocation only gives the execution status of a plugin in a document. To get the command execution status on a specific managed node, use ListCommandInvocations. To get the command execution status across managed nodes, use ListCommands.

May throw InternalServerError. May throw InvalidCommandId. May throw InvalidInstanceId. May throw InvalidPluginName. May throw InvocationDoesNotExist.

Parameter commandId : (Required) The parent command ID of the invocation plugin.

Parameter instanceId : (Required) The ID of the managed node targeted by the command. A managed node can be an Amazon Elastic Compute Cloud (Amazon EC2) instance, edge device, and on-premises server or VM in your hybrid environment that is configured for Amazon Web Services Systems Manager.

Parameter pluginName : The name of the step for which you want detailed results. If the document contains only one step, you can omit the name and details for that step. If the document contains more than one step, you must specify the name of the step for which you want to view details. Be sure to specify the name of the step, not the name of a plugin like aws:RunShellScript.

To find the PluginName, check the document content and find the name of the step you want details for. Alternatively, use ListCommandInvocations with the CommandId and Details parameters. The PluginName is the Name attribute of the CommandPlugin object in the CommandPlugins list.

Implementation

Future<GetCommandInvocationResult> getCommandInvocation({
  required String commandId,
  required String instanceId,
  String? pluginName,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonSSM.GetCommandInvocation'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'CommandId': commandId,
      'InstanceId': instanceId,
      if (pluginName != null) 'PluginName': pluginName,
    },
  );

  return GetCommandInvocationResult.fromJson(jsonResponse.body);
}