createOpsItem method
- required String description,
- required String source,
- required String title,
- DateTime? actualEndTime,
- DateTime? actualStartTime,
- String? category,
- List<
OpsItemNotification> ? notifications, - Map<
String, OpsItemDataValue> ? operationalData, - String? opsItemType,
- DateTime? plannedEndTime,
- DateTime? plannedStartTime,
- int? priority,
- String? severity,
- List<
Tag> ? tags,
Creates a new OpsItem. You must have permission in AWS Identity and Access Management (IAM) to create a new OpsItem. For more information, see Getting started with OpsCenter in the AWS Systems Manager User Guide.
Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see AWS Systems Manager OpsCenter in the AWS Systems Manager User Guide.
May throw InternalServerError. May throw OpsItemAlreadyExistsException. May throw OpsItemLimitExceededException. May throw OpsItemInvalidParameterException.
Parameter description
:
Information about the OpsItem.
Parameter source
:
The origin of the OpsItem, such as Amazon EC2 or Systems Manager.
Parameter title
:
A short heading that describes the nature of the OpsItem and the impacted
resource.
Parameter actualEndTime
:
The time a runbook workflow ended. Currently reported only for the OpsItem
type /aws/changerequest
.
Parameter actualStartTime
:
The time a runbook workflow started. Currently reported only for the
OpsItem type /aws/changerequest
.
Parameter category
:
Specify a category to assign to an OpsItem.
Parameter notifications
:
The Amazon Resource Name (ARN) of an SNS topic where notifications are
sent when this OpsItem is edited or changed.
Parameter 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.
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 action) can view and search on the specified
data. Operational data that is not searchable is only viewable by users
who have access to the OpsItem (as provided by the GetOpsItem API
action).
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 AWS CLI example commands that use these keys, see Creating
OpsItems manually in the AWS Systems Manager User Guide.
Parameter opsItemType
:
The type of OpsItem to create. Currently, the only valid values are
/aws/changerequest
and /aws/issue
.
Parameter plannedEndTime
:
The time specified in a change request for a runbook workflow to end.
Currently supported only for the OpsItem type
/aws/changerequest
.
Parameter plannedStartTime
:
The time specified in a change request for a runbook workflow to start.
Currently supported only for the OpsItem type
/aws/changerequest
.
Parameter priority
:
The importance of this OpsItem in relation to other OpsItems in the
system.
Parameter relatedOpsItems
:
One or more OpsItems that share something in common with the current
OpsItems. For example, related OpsItems can include OpsItems with similar
error messages, impacted resources, or statuses for the impacted resource.
Parameter severity
:
Specify a severity to assign to an OpsItem.
Parameter tags
:
Optional metadata that you assign to a resource. You can restrict access
to OpsItems by using an inline IAM policy that specifies tags. For more
information, see Getting
started with OpsCenter in the AWS Systems Manager User Guide.
Tags use a key-value pair. For example:
Key=Department,Value=Finance
Implementation
Future<CreateOpsItemResponse> createOpsItem({
required String description,
required String source,
required String title,
DateTime? actualEndTime,
DateTime? actualStartTime,
String? category,
List<OpsItemNotification>? notifications,
Map<String, OpsItemDataValue>? operationalData,
String? opsItemType,
DateTime? plannedEndTime,
DateTime? plannedStartTime,
int? priority,
List<RelatedOpsItem>? relatedOpsItems,
String? severity,
List<Tag>? tags,
}) async {
ArgumentError.checkNotNull(description, 'description');
_s.validateStringLength(
'description',
description,
1,
1024,
isRequired: true,
);
ArgumentError.checkNotNull(source, 'source');
_s.validateStringLength(
'source',
source,
1,
128,
isRequired: true,
);
ArgumentError.checkNotNull(title, 'title');
_s.validateStringLength(
'title',
title,
1,
1024,
isRequired: true,
);
_s.validateStringLength(
'category',
category,
1,
64,
);
_s.validateNumRange(
'priority',
priority,
1,
5,
);
_s.validateStringLength(
'severity',
severity,
1,
64,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonSSM.CreateOpsItem'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Description': description,
'Source': source,
'Title': title,
if (actualEndTime != null)
'ActualEndTime': unixTimestampToJson(actualEndTime),
if (actualStartTime != null)
'ActualStartTime': unixTimestampToJson(actualStartTime),
if (category != null) 'Category': category,
if (notifications != null) 'Notifications': notifications,
if (operationalData != null) 'OperationalData': operationalData,
if (opsItemType != null) 'OpsItemType': opsItemType,
if (plannedEndTime != null)
'PlannedEndTime': unixTimestampToJson(plannedEndTime),
if (plannedStartTime != null)
'PlannedStartTime': unixTimestampToJson(plannedStartTime),
if (priority != null) 'Priority': priority,
if (relatedOpsItems != null) 'RelatedOpsItems': relatedOpsItems,
if (severity != null) 'Severity': severity,
if (tags != null) 'Tags': tags,
},
);
return CreateOpsItemResponse.fromJson(jsonResponse.body);
}