/// <summary>
 /// Initializes a new instance of the <see cref="AlertResolution" /> class.
 /// </summary>
 /// <param name="alertIdList">Specifies list of Alerts resolved by a Resolution, which are specified by Alert Ids..</param>
 /// <param name="resolutionDetails">resolutionDetails.</param>
 /// <param name="tenantIds">Specifies unique tenantIds of the alert contained in this resolution..</param>
 public AlertResolution(List <string> alertIdList = default(List <string>), AlertResolutionDetails resolutionDetails = default(AlertResolutionDetails), List <string> tenantIds = default(List <string>))
 {
     this.AlertIdList       = alertIdList;
     this.TenantIds         = tenantIds;
     this.AlertIdList       = alertIdList;
     this.ResolutionDetails = resolutionDetails;
     this.TenantIds         = tenantIds;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="Alert" /> class.
 /// </summary>
 /// <param name="alertCategory">Specifies the category of an Alert. kDisk - Alerts that are related to Disk. kNode - Alerts that are related to Node. kCluster - Alerts that are related to Cluster. kNodeHealth - Alerts that are related to Node Health. kClusterHealth - Alerts that are related to Cluster Health. kBackupRestore - Alerts that are related to Backup/Restore. kEncryption - Alerts that are related to Encryption. kArchivalRestore - Alerts that are related to Archival/Restore. kRemoteReplication - Alerts that are related to Remote Replication. kQuota - Alerts that are related to Quota. kLicense - Alerts that are related to License. kHeliosProActiveWellness - Alerts that are related to Helios ProActive Wellness. kHeliosAnalyticsJobs - Alerts that are related to Helios Analytics Jobs. kHeliosSignatureJobs - Alerts that are related to Helios Signature Jobs. kSecurity - Alerts that are related to Security..</param>
 /// <param name="alertCode">Specifies a unique code that categorizes the Alert, for example: CE00200014, where CE stands for Cohesity Error, the alert state next 3 digits is the id of the Alert Category (e.g. 002 for &#39;kNode&#39;) and the last 5 digits is the id of the Alert Type (e.g. 00014 for &#39;kNodeHighCpuUsage&#39;)..</param>
 /// <param name="alertDocument">alertDocument.</param>
 /// <param name="alertState">Specifies the current state of the Alert. kAlertOpen - Alerts that are unresolved. kAlertResolved - Alerts that are already marked as resolved. kAlertSuppressed - Alerts that are suppressed due to snooze settings..</param>
 /// <param name="alertType">Specifies a 5 digit unique digital id for the Alert Type, such as 00014 for &#39;kNodeHighCpuUsage&#39;. This id is used in alertCode..</param>
 /// <param name="alertTypeBucket">Specifies the Alert type bucket. Specifies the Alert type bucket. kSoftware - Alerts which are related to Cohesity services. kHardware - Alerts related to hardware on which Cohesity software is running. kService - Alerts related to other external services. kOther - Alerts not of one of above categories..</param>
 /// <param name="clusterId">Specifies id of the cluster where the alert was raised..</param>
 /// <param name="clusterName">Specifies name of the cluster where the alert was raised..</param>
 /// <param name="dedupCount">Specifies total count of duplicated Alerts even if there are more than 25 occurrences..</param>
 /// <param name="dedupTimestamps">Specifies Unix epoch Timestamps (in microseconds) for the last 25 occurrences of duplicated Alerts that are stored with the original/primary Alert. Alerts are grouped into one Alert if the Alerts are the same type, are reporting on the same Object and occur within one hour. &#39;dedupCount&#39; always reports the total count of duplicated Alerts even if there are more than 25 occurrences. For example, if there are 100 occurrences of this Alert, dedupTimestamps stores the timestamps of the last 25 occurrences and dedupCount equals 100..</param>
 /// <param name="eventSource">Specifies source where the event occurred..</param>
 /// <param name="firstTimestampUsecs">Specifies Unix epoch Timestamp (in microseconds) of the first occurrence of the Alert..</param>
 /// <param name="id">Specifies unique id of this Alert..</param>
 /// <param name="latestTimestampUsecs">Specifies Unix epoch Timestamp (in microseconds) of the most recent occurrence of the Alert..</param>
 /// <param name="propertyList">Specifies array of key-value pairs associated with the Alert. The Cohesity Cluster may autogenerate properties depending on the Alert type. This list includes both autogenerated and specified properties..</param>
 /// <param name="resolutionDetails">resolutionDetails.</param>
 /// <param name="severity">Specifies the severity level of an Alert. kCritical - Alerts whose severity type is Critical. kWarning - Alerts whose severity type is Warning. kInfo - Alerts whose severity type is Info..</param>
 /// <param name="suppressionId">Specifies unique id generated when the Alert is suppressed by the admin..</param>
 /// <param name="tenantIds">Specifies the tenants for which this alert has been raised..</param>
 public Alert(AlertCategoryEnum?alertCategory = default(AlertCategoryEnum?), string alertCode = default(string), AlertDocument alertDocument = default(AlertDocument), AlertStateEnum?alertState = default(AlertStateEnum?), int?alertType = default(int?), AlertTypeBucketEnum?alertTypeBucket = default(AlertTypeBucketEnum?), long?clusterId = default(long?), string clusterName = default(string), int?dedupCount = default(int?), List <long> dedupTimestamps = default(List <long>), string eventSource = default(string), long?firstTimestampUsecs = default(long?), string id = default(string), long?latestTimestampUsecs = default(long?), List <AlertProperty> propertyList = default(List <AlertProperty>), AlertResolutionDetails resolutionDetails = default(AlertResolutionDetails), SeverityEnum?severity = default(SeverityEnum?), long?suppressionId = default(long?), List <string> tenantIds = default(List <string>))
 {
     this.AlertCategory       = alertCategory;
     this.AlertCode           = alertCode;
     this.AlertState          = alertState;
     this.AlertType           = alertType;
     this.AlertTypeBucket     = alertTypeBucket;
     this.ClusterId           = clusterId;
     this.ClusterName         = clusterName;
     this.DedupCount          = dedupCount;
     this.DedupTimestamps     = dedupTimestamps;
     this.EventSource         = eventSource;
     this.FirstTimestampUsecs = firstTimestampUsecs;
     this.Id = id;
     this.LatestTimestampUsecs = latestTimestampUsecs;
     this.PropertyList         = propertyList;
     this.Severity             = severity;
     this.SuppressionId        = suppressionId;
     this.TenantIds            = tenantIds;
     this.AlertCategory        = alertCategory;
     this.AlertCode            = alertCode;
     this.AlertDocument        = alertDocument;
     this.AlertState           = alertState;
     this.AlertType            = alertType;
     this.AlertTypeBucket      = alertTypeBucket;
     this.ClusterId            = clusterId;
     this.ClusterName          = clusterName;
     this.DedupCount           = dedupCount;
     this.DedupTimestamps      = dedupTimestamps;
     this.EventSource          = eventSource;
     this.FirstTimestampUsecs  = firstTimestampUsecs;
     this.Id = id;
     this.LatestTimestampUsecs = latestTimestampUsecs;
     this.PropertyList         = propertyList;
     this.ResolutionDetails    = resolutionDetails;
     this.Severity             = severity;
     this.SuppressionId        = suppressionId;
     this.TenantIds            = tenantIds;
 }