/*
* 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
{
///
/// Operations engineers and IT professionals use Amazon Web Services Systems Manager
/// OpsCenter to view, investigate, and remediate operational work items (OpsItems) impacting
/// the performance and health of their Amazon Web Services resources. OpsCenter is integrated
/// with Amazon EventBridge and Amazon CloudWatch. This means you can configure these
/// services to automatically create an OpsItem in OpsCenter when a CloudWatch alarm enters
/// the ALARM state or when EventBridge processes an event from any Amazon Web Services
/// service that publishes events. Configuring Amazon CloudWatch alarms and EventBridge
/// events to automatically create OpsItems allows you to quickly diagnose and remediate
/// issues with Amazon Web Services resources from a single console.
///
///
///
/// To help you diagnose issues, each OpsItem includes contextually relevant information
/// such as the name and ID of the Amazon Web Services resource that generated the OpsItem,
/// alarm or event details, alarm history, and an alarm timeline graph. For the Amazon
/// Web Services resource, OpsCenter aggregates information from Config, CloudTrail logs,
/// and EventBridge, so you don't have to navigate across multiple console pages during
/// your investigation. For more information, see OpsCenter
/// in the Amazon Web Services Systems Manager User Guide.
///
///
public partial class OpsItem
{
private DateTime? _actualEndTime;
private DateTime? _actualStartTime;
private string _category;
private string _createdBy;
private DateTime? _createdTime;
private string _description;
private string _lastModifiedBy;
private DateTime? _lastModifiedTime;
private List _notifications = new List();
private Dictionary _operationalData = new Dictionary();
private string _opsItemArn;
private string _opsItemId;
private string _opsItemType;
private DateTime? _plannedEndTime;
private DateTime? _plannedStartTime;
private int? _priority;
private List _relatedOpsItems = new List();
private string _severity;
private string _source;
private OpsItemStatus _status;
private string _title;
private string _version;
///
/// Gets and sets the property ActualEndTime.
///
/// The time a runbook workflow ended. Currently reported only for the OpsItem type /aws/changerequest
.
///
///
public DateTime ActualEndTime
{
get { return this._actualEndTime.GetValueOrDefault(); }
set { this._actualEndTime = value; }
}
// Check to see if ActualEndTime property is set
internal bool IsSetActualEndTime()
{
return this._actualEndTime.HasValue;
}
///
/// Gets and sets the property ActualStartTime.
///
/// The time a runbook workflow started. Currently reported only for the OpsItem type
/// /aws/changerequest
.
///
///
public DateTime ActualStartTime
{
get { return this._actualStartTime.GetValueOrDefault(); }
set { this._actualStartTime = value; }
}
// Check to see if ActualStartTime property is set
internal bool IsSetActualStartTime()
{
return this._actualStartTime.HasValue;
}
///
/// Gets and sets the property Category.
///
/// An OpsItem category. Category options include: Availability, Cost, Performance, Recovery,
/// Security.
///
///
[AWSProperty(Min=1, Max=64)]
public string Category
{
get { return this._category; }
set { this._category = value; }
}
// Check to see if Category property is set
internal bool IsSetCategory()
{
return this._category != null;
}
///
/// Gets and sets the property CreatedBy.
///
/// The ARN of the Amazon Web Services account that created the OpsItem.
///
///
public string CreatedBy
{
get { return this._createdBy; }
set { this._createdBy = value; }
}
// Check to see if CreatedBy property is set
internal bool IsSetCreatedBy()
{
return this._createdBy != null;
}
///
/// Gets and sets the property CreatedTime.
///
/// The date and time the OpsItem was created.
///
///
public DateTime CreatedTime
{
get { return this._createdTime.GetValueOrDefault(); }
set { this._createdTime = value; }
}
// Check to see if CreatedTime property is set
internal bool IsSetCreatedTime()
{
return this._createdTime.HasValue;
}
///
/// Gets and sets the property Description.
///
/// The OpsItem description.
///
///
[AWSProperty(Min=1, Max=2048)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property LastModifiedBy.
///
/// The ARN of the Amazon Web Services account that last updated the OpsItem.
///
///
public string LastModifiedBy
{
get { return this._lastModifiedBy; }
set { this._lastModifiedBy = value; }
}
// Check to see if LastModifiedBy property is set
internal bool IsSetLastModifiedBy()
{
return this._lastModifiedBy != null;
}
///
/// Gets and sets the property LastModifiedTime.
///
/// The date and time the OpsItem was last updated.
///
///
public DateTime LastModifiedTime
{
get { return this._lastModifiedTime.GetValueOrDefault(); }
set { this._lastModifiedTime = value; }
}
// Check to see if LastModifiedTime property is set
internal bool IsSetLastModifiedTime()
{
return this._lastModifiedTime.HasValue;
}
///
/// Gets and sets the property Notifications.
///
/// The Amazon Resource Name (ARN) of an Amazon Simple Notification Service (Amazon SNS)
/// topic where notifications are sent when this OpsItem is edited or changed.
///
///
public List Notifications
{
get { return this._notifications; }
set { this._notifications = value; }
}
// Check to see if Notifications property is set
internal bool IsSetNotifications()
{
return this._notifications != null && this._notifications.Count > 0;
}
///
/// Gets and sets the property OperationalData.
///
/// Operational data is custom data that provides useful reference details about the OpsItem.
/// For example, you can specify log files, error strings, license keys, troubleshooting
/// tips, or other relevant data. You enter operational data as key-value pairs. The key
/// has a maximum length of 128 characters. The value has a maximum size of 20 KB.
///
///
///
/// Operational data keys can't begin with the following: amazon
,
/// aws
, amzn
, ssm
, /amazon
, /aws
,
/// /amzn
, /ssm
.
///
///
///
/// You can choose to make the data searchable by other users in the account or you can
/// restrict search access. Searchable data means that all users with access to the OpsItem
/// Overview page (as provided by the DescribeOpsItems API operation) can view
/// and search on the specified data. Operational data that isn't searchable is only viewable
/// by users who have access to the OpsItem (as provided by the GetOpsItem API
/// operation).
///
///
///
/// Use the /aws/resources
key in OperationalData to specify a related resource
/// in the request. Use the /aws/automations
key in OperationalData to associate
/// an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands
/// that use these keys, see Creating
/// OpsItems manually in the Amazon Web Services Systems Manager User Guide.
///
///
public Dictionary OperationalData
{
get { return this._operationalData; }
set { this._operationalData = value; }
}
// Check to see if OperationalData property is set
internal bool IsSetOperationalData()
{
return this._operationalData != null && this._operationalData.Count > 0;
}
///
/// Gets and sets the property OpsItemArn.
///
/// The OpsItem Amazon Resource Name (ARN).
///
///
[AWSProperty(Min=20, Max=2048)]
public string OpsItemArn
{
get { return this._opsItemArn; }
set { this._opsItemArn = value; }
}
// Check to see if OpsItemArn property is set
internal bool IsSetOpsItemArn()
{
return this._opsItemArn != null;
}
///
/// Gets and sets the property OpsItemId.
///
/// The ID of the OpsItem.
///
///
public string OpsItemId
{
get { return this._opsItemId; }
set { this._opsItemId = value; }
}
// Check to see if OpsItemId property is set
internal bool IsSetOpsItemId()
{
return this._opsItemId != null;
}
///
/// Gets and sets the property OpsItemType.
///
/// The type of OpsItem. Systems Manager supports the following types of OpsItems:
///
/// -
///
///
/aws/issue
///
///
///
/// This type of OpsItem is used for default OpsItems created by OpsCenter.
///
/// -
///
///
/aws/changerequest
///
///
///
/// This type of OpsItem is used by Change Manager for reviewing and approving or rejecting
/// change requests.
///
/// -
///
///
/aws/insights
///
///
///
/// This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate
/// OpsItems.
///
///
///
public string OpsItemType
{
get { return this._opsItemType; }
set { this._opsItemType = value; }
}
// Check to see if OpsItemType property is set
internal bool IsSetOpsItemType()
{
return this._opsItemType != null;
}
///
/// Gets and sets the property PlannedEndTime.
///
/// The time specified in a change request for a runbook workflow to end. Currently supported
/// only for the OpsItem type /aws/changerequest
.
///
///
public DateTime PlannedEndTime
{
get { return this._plannedEndTime.GetValueOrDefault(); }
set { this._plannedEndTime = value; }
}
// Check to see if PlannedEndTime property is set
internal bool IsSetPlannedEndTime()
{
return this._plannedEndTime.HasValue;
}
///
/// Gets and sets the property PlannedStartTime.
///
/// The time specified in a change request for a runbook workflow to start. Currently
/// supported only for the OpsItem type /aws/changerequest
.
///
///
public DateTime PlannedStartTime
{
get { return this._plannedStartTime.GetValueOrDefault(); }
set { this._plannedStartTime = value; }
}
// Check to see if PlannedStartTime property is set
internal bool IsSetPlannedStartTime()
{
return this._plannedStartTime.HasValue;
}
///
/// Gets and sets the property Priority.
///
/// The importance of this OpsItem in relation to other OpsItems in the system.
///
///
[AWSProperty(Min=1, Max=5)]
public int Priority
{
get { return this._priority.GetValueOrDefault(); }
set { this._priority = value; }
}
// Check to see if Priority property is set
internal bool IsSetPriority()
{
return this._priority.HasValue;
}
///
/// Gets and sets the property RelatedOpsItems.
///
/// One or more OpsItems that share something in common with the current OpsItem. For
/// example, related OpsItems can include OpsItems with similar error messages, impacted
/// resources, or statuses for the impacted resource.
///
///
public List RelatedOpsItems
{
get { return this._relatedOpsItems; }
set { this._relatedOpsItems = value; }
}
// Check to see if RelatedOpsItems property is set
internal bool IsSetRelatedOpsItems()
{
return this._relatedOpsItems != null && this._relatedOpsItems.Count > 0;
}
///
/// Gets and sets the property Severity.
///
/// The severity of the OpsItem. Severity options range from 1 to 4.
///
///
[AWSProperty(Min=1, Max=64)]
public string Severity
{
get { return this._severity; }
set { this._severity = value; }
}
// Check to see if Severity property is set
internal bool IsSetSeverity()
{
return this._severity != null;
}
///
/// Gets and sets the property Source.
///
/// The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource
/// is a subset of source.
///
///
[AWSProperty(Min=1, Max=128)]
public string Source
{
get { return this._source; }
set { this._source = value; }
}
// Check to see if Source property is set
internal bool IsSetSource()
{
return this._source != null;
}
///
/// Gets and sets the property Status.
///
/// The OpsItem status. Status can be Open
, In Progress
, or
/// Resolved
. For more information, see Editing
/// OpsItem details in the Amazon Web Services Systems Manager User Guide.
///
///
public OpsItemStatus 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 Title.
///
/// A short heading that describes the nature of the OpsItem and the impacted resource.
///
///
[AWSProperty(Min=1, Max=1024)]
public string Title
{
get { return this._title; }
set { this._title = value; }
}
// Check to see if Title property is set
internal bool IsSetTitle()
{
return this._title != null;
}
///
/// Gets and sets the property Version.
///
/// The version of this OpsItem. Each time the OpsItem is edited the version number increments
/// by one.
///
///
public string Version
{
get { return this._version; }
set { this._version = value; }
}
// Check to see if Version property is set
internal bool IsSetVersion()
{
return this._version != null;
}
}
}