/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the ssm-2014-11-06.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SimpleSystemsManagement.Model
{
///
/// Describes plugin details.
///
public partial class CommandPlugin
{
private string _name;
private string _output;
private string _outputS3BucketName;
private string _outputS3KeyPrefix;
private string _outputS3Region;
private int? _responseCode;
private DateTime? _responseFinishDateTime;
private DateTime? _responseStartDateTime;
private string _standardErrorUrl;
private string _standardOutputUrl;
private CommandPluginStatus _status;
private string _statusDetails;
///
/// Gets and sets the property Name.
///
/// The name of the plugin. Must be one of the following: aws:updateAgent
,
/// aws:domainjoin
, aws:applications
, aws:runPowerShellScript
,
/// aws:psmodule
, aws:cloudWatch
, aws:runShellScript
,
/// or aws:updateSSMAgent
.
///
///
[AWSProperty(Min=4)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property Output.
///
/// Output of the plugin execution.
///
///
[AWSProperty(Max=2500)]
public string Output
{
get { return this._output; }
set { this._output = value; }
}
// Check to see if Output property is set
internal bool IsSetOutput()
{
return this._output != null;
}
///
/// Gets and sets the property OutputS3BucketName.
///
/// The S3 bucket where the responses to the command executions should be stored. This
/// was requested when issuing the command. For example, in the following response:
///
///
///
/// doc-example-bucket/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-02573cafcfEXAMPLE/awsrunShellScript
///
///
///
///
/// doc-example-bucket
is the name of the S3 bucket;
///
///
///
/// ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix
is the name of the S3 prefix;
///
///
///
/// i-02573cafcfEXAMPLE
is the managed node ID;
///
///
///
/// awsrunShellScript
is the name of the plugin.
///
///
[AWSProperty(Min=3, Max=63)]
public string OutputS3BucketName
{
get { return this._outputS3BucketName; }
set { this._outputS3BucketName = value; }
}
// Check to see if OutputS3BucketName property is set
internal bool IsSetOutputS3BucketName()
{
return this._outputS3BucketName != null;
}
///
/// Gets and sets the property OutputS3KeyPrefix.
///
/// The S3 directory path inside the bucket where the responses to the command executions
/// should be stored. This was requested when issuing the command. For example, in the
/// following response:
///
///
///
/// doc-example-bucket/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-02573cafcfEXAMPLE/awsrunShellScript
///
///
///
///
/// doc-example-bucket
is the name of the S3 bucket;
///
///
///
/// ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix
is the name of the S3 prefix;
///
///
///
/// i-02573cafcfEXAMPLE
is the managed node ID;
///
///
///
/// awsrunShellScript
is the name of the plugin.
///
///
[AWSProperty(Max=500)]
public string OutputS3KeyPrefix
{
get { return this._outputS3KeyPrefix; }
set { this._outputS3KeyPrefix = value; }
}
// Check to see if OutputS3KeyPrefix property is set
internal bool IsSetOutputS3KeyPrefix()
{
return this._outputS3KeyPrefix != null;
}
///
/// Gets and sets the property OutputS3Region.
///
/// (Deprecated) You can no longer specify this parameter. The system ignores it. Instead,
/// Amazon Web Services Systems Manager automatically determines the S3 bucket region.
///
///
[AWSProperty(Min=3, Max=20)]
public string OutputS3Region
{
get { return this._outputS3Region; }
set { this._outputS3Region = value; }
}
// Check to see if OutputS3Region property is set
internal bool IsSetOutputS3Region()
{
return this._outputS3Region != null;
}
///
/// Gets and sets the property ResponseCode.
///
/// A numeric response code generated after running the plugin.
///
///
public int ResponseCode
{
get { return this._responseCode.GetValueOrDefault(); }
set { this._responseCode = value; }
}
// Check to see if ResponseCode property is set
internal bool IsSetResponseCode()
{
return this._responseCode.HasValue;
}
///
/// Gets and sets the property ResponseFinishDateTime.
///
/// The time the plugin stopped running. Could stop prematurely if, for example, a cancel
/// command was sent.
///
///
public DateTime ResponseFinishDateTime
{
get { return this._responseFinishDateTime.GetValueOrDefault(); }
set { this._responseFinishDateTime = value; }
}
// Check to see if ResponseFinishDateTime property is set
internal bool IsSetResponseFinishDateTime()
{
return this._responseFinishDateTime.HasValue;
}
///
/// Gets and sets the property ResponseStartDateTime.
///
/// The time the plugin started running.
///
///
public DateTime ResponseStartDateTime
{
get { return this._responseStartDateTime.GetValueOrDefault(); }
set { this._responseStartDateTime = value; }
}
// Check to see if ResponseStartDateTime property is set
internal bool IsSetResponseStartDateTime()
{
return this._responseStartDateTime.HasValue;
}
///
/// Gets and sets the property StandardErrorUrl.
///
/// The URL for the complete text written by the plugin to stderr. If execution isn't
/// yet complete, then this string is empty.
///
///
public string StandardErrorUrl
{
get { return this._standardErrorUrl; }
set { this._standardErrorUrl = value; }
}
// Check to see if StandardErrorUrl property is set
internal bool IsSetStandardErrorUrl()
{
return this._standardErrorUrl != null;
}
///
/// Gets and sets the property StandardOutputUrl.
///
/// The URL for the complete text written by the plugin to stdout in Amazon S3. If the
/// S3 bucket for the command wasn't specified, then this string is empty.
///
///
public string StandardOutputUrl
{
get { return this._standardOutputUrl; }
set { this._standardOutputUrl = value; }
}
// Check to see if StandardOutputUrl property is set
internal bool IsSetStandardOutputUrl()
{
return this._standardOutputUrl != null;
}
///
/// Gets and sets the property Status.
///
/// The status of this plugin. You can run a document with multiple plugins.
///
///
public CommandPluginStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property StatusDetails.
///
/// A detailed status of the plugin execution. StatusDetails
includes more
/// information than Status because it includes states resulting from error and concurrency
/// control parameters. StatusDetails can show different results than Status. For more
/// information about these statuses, see Understanding
/// command statuses in the Amazon Web Services Systems Manager User Guide.
/// StatusDetails can be one of the following values:
///
/// -
///
/// Pending: The command hasn't been sent to the managed node.
///
///
-
///
/// In Progress: The command has been sent to the managed node but hasn't reached a terminal
/// state.
///
///
-
///
/// Success: The execution of the command or plugin was successfully completed. This is
/// a terminal state.
///
///
-
///
/// Delivery Timed Out: The command wasn't delivered to the managed node before the delivery
/// timeout expired. Delivery timeouts don't count against the parent command's
MaxErrors
/// limit, but they do contribute to whether the parent command status is Success or Incomplete.
/// This is a terminal state.
///
/// -
///
/// Execution Timed Out: Command execution started on the managed node, but the execution
/// wasn't complete before the execution timeout expired. Execution timeouts count against
/// the
MaxErrors
limit of the parent command. This is a terminal state.
///
/// -
///
/// Failed: The command wasn't successful on the managed node. For a plugin, this indicates
/// that the result code wasn't zero. For a command invocation, this indicates that the
/// result code for one or more plugins wasn't zero. Invocation failures count against
/// the MaxErrors limit of the parent command. This is a terminal state.
///
///
-
///
/// Cancelled: The command was terminated before it was completed. This is a terminal
/// state.
///
///
-
///
/// Undeliverable: The command can't be delivered to the managed node. The managed node
/// might not exist, or it might not be responding. Undeliverable invocations don't count
/// against the parent command's MaxErrors limit, and they don't contribute to whether
/// the parent command status is Success or Incomplete. This is a terminal state.
///
///
-
///
/// Terminated: The parent command exceeded its MaxErrors limit and subsequent command
/// invocations were canceled by the system. This is a terminal state.
///
///
///
[AWSProperty(Min=0, Max=100)]
public string StatusDetails
{
get { return this._statusDetails; }
set { this._statusDetails = value; }
}
// Check to see if StatusDetails property is set
internal bool IsSetStatusDetails()
{
return this._statusDetails != null;
}
}
}