updateOpsItem method

Future<void> updateOpsItem({
  1. required String opsItemId,
  2. DateTime? actualEndTime,
  3. DateTime? actualStartTime,
  4. String? category,
  5. String? description,
  6. List<OpsItemNotification>? notifications,
  7. Map<String, OpsItemDataValue>? operationalData,
  8. List<String>? operationalDataToDelete,
  9. DateTime? plannedEndTime,
  10. DateTime? plannedStartTime,
  11. int? priority,
  12. List<RelatedOpsItem>? relatedOpsItems,
  13. String? severity,
  14. OpsItemStatus? status,
  15. String? title,
})

Edit or change an OpsItem. You must have permission in AWS Identity and Access Management (IAM) to update an 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 OpsItemNotFoundException. May throw OpsItemAlreadyExistsException. May throw OpsItemLimitExceededException. May throw OpsItemInvalidParameterException.

Parameter opsItemId : The ID of the OpsItem.

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 new category for an OpsItem.

Parameter description : Update the information about the OpsItem. Provide enough information so that users reading this OpsItem for the first time understand the issue.

Parameter notifications : The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.

Parameter operationalData : Add new keys or edit existing key-value pairs of the OperationalData map in the OpsItem object.

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 operationalDataToDelete : Keys that you want to remove from the OperationalData map.

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 new severity for an OpsItem.

Parameter status : The OpsItem status. Status can be Open, In Progress, or Resolved. For more information, see Editing OpsItem details in the AWS Systems Manager User Guide.

Parameter title : A short heading that describes the nature of the OpsItem and the impacted resource.

Implementation

Future<void> updateOpsItem({
  required String opsItemId,
  DateTime? actualEndTime,
  DateTime? actualStartTime,
  String? category,
  String? description,
  List<OpsItemNotification>? notifications,
  Map<String, OpsItemDataValue>? operationalData,
  List<String>? operationalDataToDelete,
  DateTime? plannedEndTime,
  DateTime? plannedStartTime,
  int? priority,
  List<RelatedOpsItem>? relatedOpsItems,
  String? severity,
  OpsItemStatus? status,
  String? title,
}) async {
  ArgumentError.checkNotNull(opsItemId, 'opsItemId');
  _s.validateStringLength(
    'category',
    category,
    1,
    64,
  );
  _s.validateStringLength(
    'description',
    description,
    1,
    1024,
  );
  _s.validateNumRange(
    'priority',
    priority,
    1,
    5,
  );
  _s.validateStringLength(
    'severity',
    severity,
    1,
    64,
  );
  _s.validateStringLength(
    'title',
    title,
    1,
    1024,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonSSM.UpdateOpsItem'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'OpsItemId': opsItemId,
      if (actualEndTime != null)
        'ActualEndTime': unixTimestampToJson(actualEndTime),
      if (actualStartTime != null)
        'ActualStartTime': unixTimestampToJson(actualStartTime),
      if (category != null) 'Category': category,
      if (description != null) 'Description': description,
      if (notifications != null) 'Notifications': notifications,
      if (operationalData != null) 'OperationalData': operationalData,
      if (operationalDataToDelete != null)
        'OperationalDataToDelete': operationalDataToDelete,
      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 (status != null) 'Status': status.toValue(),
      if (title != null) 'Title': title,
    },
  );
}