/* * Copyright 2018-2023 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. */ package com.amazonaws.services.simplesystemsmanagement.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* 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. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class OpsItem implements Serializable, Cloneable, StructuredPojo { /** *

* The ARN of the Amazon Web Services account that created the OpsItem. *

*/ private String createdBy; /** *

* The type of OpsItem. Systems Manager supports the following types of OpsItems: *

* */ private String opsItemType; /** *

* The date and time the OpsItem was created. *

*/ private java.util.Date createdTime; /** *

* The OpsItem description. *

*/ private String description; /** *

* The ARN of the Amazon Web Services account that last updated the OpsItem. *

*/ private String lastModifiedBy; /** *

* The date and time the OpsItem was last updated. *

*/ private java.util.Date lastModifiedTime; /** *

* 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. *

*/ private com.amazonaws.internal.SdkInternalList notifications; /** *

* The importance of this OpsItem in relation to other OpsItems in the system. *

*/ private Integer priority; /** *

* 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. *

*/ private com.amazonaws.internal.SdkInternalList relatedOpsItems; /** *

* 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. *

*/ private String status; /** *

* The ID of the OpsItem. *

*/ private String opsItemId; /** *

* The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. *

*/ private String version; /** *

* A short heading that describes the nature of the OpsItem and the impacted resource. *

*/ private String title; /** *

* The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of source. *

*/ private String source; /** *

* 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. *

*/ private java.util.Map operationalData; /** *

* An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. *

*/ private String category; /** *

* The severity of the OpsItem. Severity options range from 1 to 4. *

*/ private String severity; /** *

* The time a runbook workflow started. Currently reported only for the OpsItem type /aws/changerequest * . *

*/ private java.util.Date actualStartTime; /** *

* The time a runbook workflow ended. Currently reported only for the OpsItem type /aws/changerequest. *

*/ private java.util.Date actualEndTime; /** *

* The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem * type /aws/changerequest. *

*/ private java.util.Date plannedStartTime; /** *

* The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem * type /aws/changerequest. *

*/ private java.util.Date plannedEndTime; /** *

* The OpsItem Amazon Resource Name (ARN). *

*/ private String opsItemArn; /** *

* The ARN of the Amazon Web Services account that created the OpsItem. *

* * @param createdBy * The ARN of the Amazon Web Services account that created the OpsItem. */ public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } /** *

* The ARN of the Amazon Web Services account that created the OpsItem. *

* * @return The ARN of the Amazon Web Services account that created the OpsItem. */ public String getCreatedBy() { return this.createdBy; } /** *

* The ARN of the Amazon Web Services account that created the OpsItem. *

* * @param createdBy * The ARN of the Amazon Web Services account that created the OpsItem. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withCreatedBy(String createdBy) { setCreatedBy(createdBy); return this; } /** *

* 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. *

    *
  • *
* * @param 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 void setOpsItemType(String opsItemType) { this.opsItemType = 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. *

      *
    • *
    * * @return 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 getOpsItemType() { return this.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. *

        *
      • *
      * * @param 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. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withOpsItemType(String opsItemType) { setOpsItemType(opsItemType); return this; } /** *

        * The date and time the OpsItem was created. *

        * * @param createdTime * The date and time the OpsItem was created. */ public void setCreatedTime(java.util.Date createdTime) { this.createdTime = createdTime; } /** *

        * The date and time the OpsItem was created. *

        * * @return The date and time the OpsItem was created. */ public java.util.Date getCreatedTime() { return this.createdTime; } /** *

        * The date and time the OpsItem was created. *

        * * @param createdTime * The date and time the OpsItem was created. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withCreatedTime(java.util.Date createdTime) { setCreatedTime(createdTime); return this; } /** *

        * The OpsItem description. *

        * * @param description * The OpsItem description. */ public void setDescription(String description) { this.description = description; } /** *

        * The OpsItem description. *

        * * @return The OpsItem description. */ public String getDescription() { return this.description; } /** *

        * The OpsItem description. *

        * * @param description * The OpsItem description. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withDescription(String description) { setDescription(description); return this; } /** *

        * The ARN of the Amazon Web Services account that last updated the OpsItem. *

        * * @param lastModifiedBy * The ARN of the Amazon Web Services account that last updated the OpsItem. */ public void setLastModifiedBy(String lastModifiedBy) { this.lastModifiedBy = lastModifiedBy; } /** *

        * The ARN of the Amazon Web Services account that last updated the OpsItem. *

        * * @return The ARN of the Amazon Web Services account that last updated the OpsItem. */ public String getLastModifiedBy() { return this.lastModifiedBy; } /** *

        * The ARN of the Amazon Web Services account that last updated the OpsItem. *

        * * @param lastModifiedBy * The ARN of the Amazon Web Services account that last updated the OpsItem. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withLastModifiedBy(String lastModifiedBy) { setLastModifiedBy(lastModifiedBy); return this; } /** *

        * The date and time the OpsItem was last updated. *

        * * @param lastModifiedTime * The date and time the OpsItem was last updated. */ public void setLastModifiedTime(java.util.Date lastModifiedTime) { this.lastModifiedTime = lastModifiedTime; } /** *

        * The date and time the OpsItem was last updated. *

        * * @return The date and time the OpsItem was last updated. */ public java.util.Date getLastModifiedTime() { return this.lastModifiedTime; } /** *

        * The date and time the OpsItem was last updated. *

        * * @param lastModifiedTime * The date and time the OpsItem was last updated. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withLastModifiedTime(java.util.Date lastModifiedTime) { setLastModifiedTime(lastModifiedTime); return this; } /** *

        * 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. *

        * * @return 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 java.util.List getNotifications() { if (notifications == null) { notifications = new com.amazonaws.internal.SdkInternalList(); } return 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. *

        * * @param 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 void setNotifications(java.util.Collection notifications) { if (notifications == null) { this.notifications = null; return; } this.notifications = new com.amazonaws.internal.SdkInternalList(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. *

        *

        * NOTE: This method appends the values to the existing list (if any). Use * {@link #setNotifications(java.util.Collection)} or {@link #withNotifications(java.util.Collection)} if you want * to override the existing values. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withNotifications(OpsItemNotification... notifications) { if (this.notifications == null) { setNotifications(new com.amazonaws.internal.SdkInternalList(notifications.length)); } for (OpsItemNotification ele : notifications) { this.notifications.add(ele); } return this; } /** *

        * 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. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withNotifications(java.util.Collection notifications) { setNotifications(notifications); return this; } /** *

        * The importance of this OpsItem in relation to other OpsItems in the system. *

        * * @param priority * The importance of this OpsItem in relation to other OpsItems in the system. */ public void setPriority(Integer priority) { this.priority = priority; } /** *

        * The importance of this OpsItem in relation to other OpsItems in the system. *

        * * @return The importance of this OpsItem in relation to other OpsItems in the system. */ public Integer getPriority() { return this.priority; } /** *

        * The importance of this OpsItem in relation to other OpsItems in the system. *

        * * @param priority * The importance of this OpsItem in relation to other OpsItems in the system. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withPriority(Integer priority) { setPriority(priority); return this; } /** *

        * 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. *

        * * @return 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 java.util.List getRelatedOpsItems() { if (relatedOpsItems == null) { relatedOpsItems = new com.amazonaws.internal.SdkInternalList(); } return 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. *

        * * @param 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 void setRelatedOpsItems(java.util.Collection relatedOpsItems) { if (relatedOpsItems == null) { this.relatedOpsItems = null; return; } this.relatedOpsItems = new com.amazonaws.internal.SdkInternalList(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. *

        *

        * NOTE: This method appends the values to the existing list (if any). Use * {@link #setRelatedOpsItems(java.util.Collection)} or {@link #withRelatedOpsItems(java.util.Collection)} if you * want to override the existing values. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withRelatedOpsItems(RelatedOpsItem... relatedOpsItems) { if (this.relatedOpsItems == null) { setRelatedOpsItems(new com.amazonaws.internal.SdkInternalList(relatedOpsItems.length)); } for (RelatedOpsItem ele : relatedOpsItems) { this.relatedOpsItems.add(ele); } return this; } /** *

        * 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. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withRelatedOpsItems(java.util.Collection relatedOpsItems) { setRelatedOpsItems(relatedOpsItems); return this; } /** *

        * 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. *

        * * @param 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. * @see OpsItemStatus */ public void setStatus(String status) { this.status = 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. *

        * * @return 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. * @see OpsItemStatus */ public String getStatus() { return this.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. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see OpsItemStatus */ public OpsItem withStatus(String status) { setStatus(status); return this; } /** *

        * 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. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see OpsItemStatus */ public OpsItem withStatus(OpsItemStatus status) { this.status = status.toString(); return this; } /** *

        * The ID of the OpsItem. *

        * * @param opsItemId * The ID of the OpsItem. */ public void setOpsItemId(String opsItemId) { this.opsItemId = opsItemId; } /** *

        * The ID of the OpsItem. *

        * * @return The ID of the OpsItem. */ public String getOpsItemId() { return this.opsItemId; } /** *

        * The ID of the OpsItem. *

        * * @param opsItemId * The ID of the OpsItem. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withOpsItemId(String opsItemId) { setOpsItemId(opsItemId); return this; } /** *

        * The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. *

        * * @param version * The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. */ public void setVersion(String version) { this.version = version; } /** *

        * The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. *

        * * @return The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. */ public String getVersion() { return this.version; } /** *

        * The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. *

        * * @param version * The version of this OpsItem. Each time the OpsItem is edited the version number increments by one. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withVersion(String version) { setVersion(version); return this; } /** *

        * A short heading that describes the nature of the OpsItem and the impacted resource. *

        * * @param title * A short heading that describes the nature of the OpsItem and the impacted resource. */ public void setTitle(String title) { this.title = title; } /** *

        * A short heading that describes the nature of the OpsItem and the impacted resource. *

        * * @return A short heading that describes the nature of the OpsItem and the impacted resource. */ public String getTitle() { return this.title; } /** *

        * A short heading that describes the nature of the OpsItem and the impacted resource. *

        * * @param title * A short heading that describes the nature of the OpsItem and the impacted resource. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withTitle(String title) { setTitle(title); return this; } /** *

        * The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of source. *

        * * @param source * The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of * source. */ public void setSource(String source) { this.source = source; } /** *

        * The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of source. *

        * * @return The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of * source. */ public String getSource() { return this.source; } /** *

        * The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of source. *

        * * @param source * The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of * source. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withSource(String source) { setSource(source); return this; } /** *

        * 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. *

        * * @return 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 java.util.Map getOperationalData() { return 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. *

        * * @param 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 void setOperationalData(java.util.Map operationalData) { this.operationalData = 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. *

        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withOperationalData(java.util.Map operationalData) { setOperationalData(operationalData); return this; } /** * Add a single OperationalData entry * * @see OpsItem#withOperationalData * @returns a reference to this object so that method calls can be chained together. */ public OpsItem addOperationalDataEntry(String key, OpsItemDataValue value) { if (null == this.operationalData) { this.operationalData = new java.util.HashMap(); } if (this.operationalData.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.operationalData.put(key, value); return this; } /** * Removes all the entries added into OperationalData. * * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem clearOperationalDataEntries() { this.operationalData = null; return this; } /** *

        * An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. *

        * * @param category * An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. */ public void setCategory(String category) { this.category = category; } /** *

        * An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. *

        * * @return An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. */ public String getCategory() { return this.category; } /** *

        * An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. *

        * * @param category * An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withCategory(String category) { setCategory(category); return this; } /** *

        * The severity of the OpsItem. Severity options range from 1 to 4. *

        * * @param severity * The severity of the OpsItem. Severity options range from 1 to 4. */ public void setSeverity(String severity) { this.severity = severity; } /** *

        * The severity of the OpsItem. Severity options range from 1 to 4. *

        * * @return The severity of the OpsItem. Severity options range from 1 to 4. */ public String getSeverity() { return this.severity; } /** *

        * The severity of the OpsItem. Severity options range from 1 to 4. *

        * * @param severity * The severity of the OpsItem. Severity options range from 1 to 4. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withSeverity(String severity) { setSeverity(severity); return this; } /** *

        * The time a runbook workflow started. Currently reported only for the OpsItem type /aws/changerequest * . *

        * * @param actualStartTime * The time a runbook workflow started. Currently reported only for the OpsItem type * /aws/changerequest. */ public void setActualStartTime(java.util.Date actualStartTime) { this.actualStartTime = actualStartTime; } /** *

        * The time a runbook workflow started. Currently reported only for the OpsItem type /aws/changerequest * . *

        * * @return The time a runbook workflow started. Currently reported only for the OpsItem type * /aws/changerequest. */ public java.util.Date getActualStartTime() { return this.actualStartTime; } /** *

        * The time a runbook workflow started. Currently reported only for the OpsItem type /aws/changerequest * . *

        * * @param actualStartTime * The time a runbook workflow started. Currently reported only for the OpsItem type * /aws/changerequest. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withActualStartTime(java.util.Date actualStartTime) { setActualStartTime(actualStartTime); return this; } /** *

        * The time a runbook workflow ended. Currently reported only for the OpsItem type /aws/changerequest. *

        * * @param actualEndTime * The time a runbook workflow ended. Currently reported only for the OpsItem type * /aws/changerequest. */ public void setActualEndTime(java.util.Date actualEndTime) { this.actualEndTime = actualEndTime; } /** *

        * The time a runbook workflow ended. Currently reported only for the OpsItem type /aws/changerequest. *

        * * @return The time a runbook workflow ended. Currently reported only for the OpsItem type * /aws/changerequest. */ public java.util.Date getActualEndTime() { return this.actualEndTime; } /** *

        * The time a runbook workflow ended. Currently reported only for the OpsItem type /aws/changerequest. *

        * * @param actualEndTime * The time a runbook workflow ended. Currently reported only for the OpsItem type * /aws/changerequest. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withActualEndTime(java.util.Date actualEndTime) { setActualEndTime(actualEndTime); return this; } /** *

        * The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem * type /aws/changerequest. *

        * * @param plannedStartTime * The time specified in a change request for a runbook workflow to start. Currently supported only for the * OpsItem type /aws/changerequest. */ public void setPlannedStartTime(java.util.Date plannedStartTime) { this.plannedStartTime = plannedStartTime; } /** *

        * The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem * type /aws/changerequest. *

        * * @return The time specified in a change request for a runbook workflow to start. Currently supported only for the * OpsItem type /aws/changerequest. */ public java.util.Date getPlannedStartTime() { return this.plannedStartTime; } /** *

        * The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem * type /aws/changerequest. *

        * * @param plannedStartTime * The time specified in a change request for a runbook workflow to start. Currently supported only for the * OpsItem type /aws/changerequest. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withPlannedStartTime(java.util.Date plannedStartTime) { setPlannedStartTime(plannedStartTime); return this; } /** *

        * The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem * type /aws/changerequest. *

        * * @param plannedEndTime * The time specified in a change request for a runbook workflow to end. Currently supported only for the * OpsItem type /aws/changerequest. */ public void setPlannedEndTime(java.util.Date plannedEndTime) { this.plannedEndTime = plannedEndTime; } /** *

        * The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem * type /aws/changerequest. *

        * * @return The time specified in a change request for a runbook workflow to end. Currently supported only for the * OpsItem type /aws/changerequest. */ public java.util.Date getPlannedEndTime() { return this.plannedEndTime; } /** *

        * The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem * type /aws/changerequest. *

        * * @param plannedEndTime * The time specified in a change request for a runbook workflow to end. Currently supported only for the * OpsItem type /aws/changerequest. * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withPlannedEndTime(java.util.Date plannedEndTime) { setPlannedEndTime(plannedEndTime); return this; } /** *

        * The OpsItem Amazon Resource Name (ARN). *

        * * @param opsItemArn * The OpsItem Amazon Resource Name (ARN). */ public void setOpsItemArn(String opsItemArn) { this.opsItemArn = opsItemArn; } /** *

        * The OpsItem Amazon Resource Name (ARN). *

        * * @return The OpsItem Amazon Resource Name (ARN). */ public String getOpsItemArn() { return this.opsItemArn; } /** *

        * The OpsItem Amazon Resource Name (ARN). *

        * * @param opsItemArn * The OpsItem Amazon Resource Name (ARN). * @return Returns a reference to this object so that method calls can be chained together. */ public OpsItem withOpsItemArn(String opsItemArn) { setOpsItemArn(opsItemArn); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getCreatedBy() != null) sb.append("CreatedBy: ").append(getCreatedBy()).append(","); if (getOpsItemType() != null) sb.append("OpsItemType: ").append(getOpsItemType()).append(","); if (getCreatedTime() != null) sb.append("CreatedTime: ").append(getCreatedTime()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getLastModifiedBy() != null) sb.append("LastModifiedBy: ").append(getLastModifiedBy()).append(","); if (getLastModifiedTime() != null) sb.append("LastModifiedTime: ").append(getLastModifiedTime()).append(","); if (getNotifications() != null) sb.append("Notifications: ").append(getNotifications()).append(","); if (getPriority() != null) sb.append("Priority: ").append(getPriority()).append(","); if (getRelatedOpsItems() != null) sb.append("RelatedOpsItems: ").append(getRelatedOpsItems()).append(","); if (getStatus() != null) sb.append("Status: ").append(getStatus()).append(","); if (getOpsItemId() != null) sb.append("OpsItemId: ").append(getOpsItemId()).append(","); if (getVersion() != null) sb.append("Version: ").append(getVersion()).append(","); if (getTitle() != null) sb.append("Title: ").append(getTitle()).append(","); if (getSource() != null) sb.append("Source: ").append(getSource()).append(","); if (getOperationalData() != null) sb.append("OperationalData: ").append(getOperationalData()).append(","); if (getCategory() != null) sb.append("Category: ").append(getCategory()).append(","); if (getSeverity() != null) sb.append("Severity: ").append(getSeverity()).append(","); if (getActualStartTime() != null) sb.append("ActualStartTime: ").append(getActualStartTime()).append(","); if (getActualEndTime() != null) sb.append("ActualEndTime: ").append(getActualEndTime()).append(","); if (getPlannedStartTime() != null) sb.append("PlannedStartTime: ").append(getPlannedStartTime()).append(","); if (getPlannedEndTime() != null) sb.append("PlannedEndTime: ").append(getPlannedEndTime()).append(","); if (getOpsItemArn() != null) sb.append("OpsItemArn: ").append(getOpsItemArn()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof OpsItem == false) return false; OpsItem other = (OpsItem) obj; if (other.getCreatedBy() == null ^ this.getCreatedBy() == null) return false; if (other.getCreatedBy() != null && other.getCreatedBy().equals(this.getCreatedBy()) == false) return false; if (other.getOpsItemType() == null ^ this.getOpsItemType() == null) return false; if (other.getOpsItemType() != null && other.getOpsItemType().equals(this.getOpsItemType()) == false) return false; if (other.getCreatedTime() == null ^ this.getCreatedTime() == null) return false; if (other.getCreatedTime() != null && other.getCreatedTime().equals(this.getCreatedTime()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getLastModifiedBy() == null ^ this.getLastModifiedBy() == null) return false; if (other.getLastModifiedBy() != null && other.getLastModifiedBy().equals(this.getLastModifiedBy()) == false) return false; if (other.getLastModifiedTime() == null ^ this.getLastModifiedTime() == null) return false; if (other.getLastModifiedTime() != null && other.getLastModifiedTime().equals(this.getLastModifiedTime()) == false) return false; if (other.getNotifications() == null ^ this.getNotifications() == null) return false; if (other.getNotifications() != null && other.getNotifications().equals(this.getNotifications()) == false) return false; if (other.getPriority() == null ^ this.getPriority() == null) return false; if (other.getPriority() != null && other.getPriority().equals(this.getPriority()) == false) return false; if (other.getRelatedOpsItems() == null ^ this.getRelatedOpsItems() == null) return false; if (other.getRelatedOpsItems() != null && other.getRelatedOpsItems().equals(this.getRelatedOpsItems()) == false) return false; if (other.getStatus() == null ^ this.getStatus() == null) return false; if (other.getStatus() != null && other.getStatus().equals(this.getStatus()) == false) return false; if (other.getOpsItemId() == null ^ this.getOpsItemId() == null) return false; if (other.getOpsItemId() != null && other.getOpsItemId().equals(this.getOpsItemId()) == false) return false; if (other.getVersion() == null ^ this.getVersion() == null) return false; if (other.getVersion() != null && other.getVersion().equals(this.getVersion()) == false) return false; if (other.getTitle() == null ^ this.getTitle() == null) return false; if (other.getTitle() != null && other.getTitle().equals(this.getTitle()) == false) return false; if (other.getSource() == null ^ this.getSource() == null) return false; if (other.getSource() != null && other.getSource().equals(this.getSource()) == false) return false; if (other.getOperationalData() == null ^ this.getOperationalData() == null) return false; if (other.getOperationalData() != null && other.getOperationalData().equals(this.getOperationalData()) == false) return false; if (other.getCategory() == null ^ this.getCategory() == null) return false; if (other.getCategory() != null && other.getCategory().equals(this.getCategory()) == false) return false; if (other.getSeverity() == null ^ this.getSeverity() == null) return false; if (other.getSeverity() != null && other.getSeverity().equals(this.getSeverity()) == false) return false; if (other.getActualStartTime() == null ^ this.getActualStartTime() == null) return false; if (other.getActualStartTime() != null && other.getActualStartTime().equals(this.getActualStartTime()) == false) return false; if (other.getActualEndTime() == null ^ this.getActualEndTime() == null) return false; if (other.getActualEndTime() != null && other.getActualEndTime().equals(this.getActualEndTime()) == false) return false; if (other.getPlannedStartTime() == null ^ this.getPlannedStartTime() == null) return false; if (other.getPlannedStartTime() != null && other.getPlannedStartTime().equals(this.getPlannedStartTime()) == false) return false; if (other.getPlannedEndTime() == null ^ this.getPlannedEndTime() == null) return false; if (other.getPlannedEndTime() != null && other.getPlannedEndTime().equals(this.getPlannedEndTime()) == false) return false; if (other.getOpsItemArn() == null ^ this.getOpsItemArn() == null) return false; if (other.getOpsItemArn() != null && other.getOpsItemArn().equals(this.getOpsItemArn()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode()); hashCode = prime * hashCode + ((getOpsItemType() == null) ? 0 : getOpsItemType().hashCode()); hashCode = prime * hashCode + ((getCreatedTime() == null) ? 0 : getCreatedTime().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getLastModifiedBy() == null) ? 0 : getLastModifiedBy().hashCode()); hashCode = prime * hashCode + ((getLastModifiedTime() == null) ? 0 : getLastModifiedTime().hashCode()); hashCode = prime * hashCode + ((getNotifications() == null) ? 0 : getNotifications().hashCode()); hashCode = prime * hashCode + ((getPriority() == null) ? 0 : getPriority().hashCode()); hashCode = prime * hashCode + ((getRelatedOpsItems() == null) ? 0 : getRelatedOpsItems().hashCode()); hashCode = prime * hashCode + ((getStatus() == null) ? 0 : getStatus().hashCode()); hashCode = prime * hashCode + ((getOpsItemId() == null) ? 0 : getOpsItemId().hashCode()); hashCode = prime * hashCode + ((getVersion() == null) ? 0 : getVersion().hashCode()); hashCode = prime * hashCode + ((getTitle() == null) ? 0 : getTitle().hashCode()); hashCode = prime * hashCode + ((getSource() == null) ? 0 : getSource().hashCode()); hashCode = prime * hashCode + ((getOperationalData() == null) ? 0 : getOperationalData().hashCode()); hashCode = prime * hashCode + ((getCategory() == null) ? 0 : getCategory().hashCode()); hashCode = prime * hashCode + ((getSeverity() == null) ? 0 : getSeverity().hashCode()); hashCode = prime * hashCode + ((getActualStartTime() == null) ? 0 : getActualStartTime().hashCode()); hashCode = prime * hashCode + ((getActualEndTime() == null) ? 0 : getActualEndTime().hashCode()); hashCode = prime * hashCode + ((getPlannedStartTime() == null) ? 0 : getPlannedStartTime().hashCode()); hashCode = prime * hashCode + ((getPlannedEndTime() == null) ? 0 : getPlannedEndTime().hashCode()); hashCode = prime * hashCode + ((getOpsItemArn() == null) ? 0 : getOpsItemArn().hashCode()); return hashCode; } @Override public OpsItem clone() { try { return (OpsItem) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.simplesystemsmanagement.model.transform.OpsItemMarshaller.getInstance().marshall(this, protocolMarshaller); } }