getCommandInvocation method
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);
}