Chilkat Online Tools

DescribeAnomaly Classic ASP Example

Amazon DevOps Guru

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

set rest = Server.CreateObject("Chilkat_9_5_0.Rest")

set authAws = Server.CreateObject("Chilkat_9_5_0.AuthAws")
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"

' Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
authAws.Region = "us-west-2"
authAws.ServiceName = "devops-guru"
' SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
success = rest.SetAuthAws(authAws)

' URL: https://devops-guru.us-west-2.amazonaws.com/
' Use the same region as specified above.
success = rest.Connect("devops-guru.us-west-2.amazonaws.com",443,1,1)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( "ConnectFailReason: " & rest.ConnectFailReason) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
    Response.End
End If

success = rest.AddHeader("Content-Type","application/x-amz-json-1.1")
success = rest.AddHeader("X-Amz-Target","DescribeAnomaly")

set sbResponseBody = Server.CreateObject("Chilkat_9_5_0.StringBuilder")
success = rest.FullRequestNoBodySb("GET","/anomalies/{Id}",sbResponseBody)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
    Response.End
End If

respStatusCode = rest.ResponseStatusCode
Response.Write "<pre>" & Server.HTMLEncode( "response status code = " & respStatusCode) & "</pre>"
If (respStatusCode <> 200) Then
    Response.Write "<pre>" & Server.HTMLEncode( "Response Header:") & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( rest.ResponseHeader) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( "Response Body:") & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( sbResponseBody.GetAsString()) & "</pre>"
    Response.End
End If

set jResp = Server.CreateObject("Chilkat_9_5_0.JsonObject")
success = jResp.LoadSb(sbResponseBody)

' The following code parses the JSON response.
' A sample JSON response is shown below the sample code.

' Use this online tool to generate parsing code from sample JSON:
' Generate Parsing Code from JSON

CloseTime = jResp.IntOf("ProactiveAnomaly.AnomalyReportedTimeRange.CloseTime")
OpenTime = jResp.IntOf("ProactiveAnomaly.AnomalyReportedTimeRange.OpenTime")
EndTime = jResp.IntOf("ProactiveAnomaly.AnomalyTimeRange.EndTime")
StartTime = jResp.IntOf("ProactiveAnomaly.AnomalyTimeRange.StartTime")
AssociatedInsightId = jResp.StringOf("ProactiveAnomaly.AssociatedInsightId")
Id = jResp.StringOf("ProactiveAnomaly.Id")
Limit = jResp.IntOf("ProactiveAnomaly.Limit")
PredictionTimeRangeEndTime = jResp.IntOf("ProactiveAnomaly.PredictionTimeRange.EndTime")
PredictionTimeRangeStartTime = jResp.IntOf("ProactiveAnomaly.PredictionTimeRange.StartTime")
Severity = jResp.StringOf("ProactiveAnomaly.Severity")
Source = jResp.StringOf("ProactiveAnomaly.SourceMetadata.Source")
SourceResourceName = jResp.StringOf("ProactiveAnomaly.SourceMetadata.SourceResourceName")
SourceResourceType = jResp.StringOf("ProactiveAnomaly.SourceMetadata.SourceResourceType")
Status = jResp.StringOf("ProactiveAnomaly.Status")
UpdateTime = jResp.IntOf("ProactiveAnomaly.UpdateTime")
AnomalyReportedTimeRangeCloseTime = jResp.IntOf("ReactiveAnomaly.AnomalyReportedTimeRange.CloseTime")
AnomalyReportedTimeRangeOpenTime = jResp.IntOf("ReactiveAnomaly.AnomalyReportedTimeRange.OpenTime")
AnomalyTimeRangeEndTime = jResp.IntOf("ReactiveAnomaly.AnomalyTimeRange.EndTime")
AnomalyTimeRangeStartTime = jResp.IntOf("ReactiveAnomaly.AnomalyTimeRange.StartTime")
ReactiveAnomalyAssociatedInsightId = jResp.StringOf("ReactiveAnomaly.AssociatedInsightId")
CausalAnomalyId = jResp.StringOf("ReactiveAnomaly.CausalAnomalyId")
Description = jResp.StringOf("ReactiveAnomaly.Description")
ReactiveAnomalyId = jResp.StringOf("ReactiveAnomaly.Id")
Name = jResp.StringOf("ReactiveAnomaly.Name")
ReactiveAnomalySeverity = jResp.StringOf("ReactiveAnomaly.Severity")
ReactiveAnomalyStatus = jResp.StringOf("ReactiveAnomaly.Status")
v_Type = jResp.StringOf("ReactiveAnomaly.Type")
i = 0
count_i = jResp.SizeOfArray("ProactiveAnomaly.AnomalyResources")
Do While i < count_i
    jResp.I = i
    Name = jResp.StringOf("ProactiveAnomaly.AnomalyResources[i].Name")
    v_Type = jResp.StringOf("ProactiveAnomaly.AnomalyResources[i].Type")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ProactiveAnomaly.ResourceCollection.CloudFormation.StackNames")
Do While i < count_i
    jResp.I = i
    strVal = jResp.StringOf("ProactiveAnomaly.ResourceCollection.CloudFormation.StackNames[i]")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ProactiveAnomaly.ResourceCollection.Tags")
Do While i < count_i
    jResp.I = i
    AppBoundaryKey = jResp.StringOf("ProactiveAnomaly.ResourceCollection.Tags[i].AppBoundaryKey")
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.ResourceCollection.Tags[i].TagValues")
    Do While j < count_j
        jResp.J = j
        strVal = jResp.StringOf("ProactiveAnomaly.ResourceCollection.Tags[i].TagValues[j]")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.CloudWatchMetrics")
Do While i < count_i
    jResp.I = i
    StatusCode = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.StatusCode")
    MetricName = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricName")
    Namespace = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Namespace")
    Period = jResp.IntOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Period")
    Stat = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Stat")
    Unit = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Unit")
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Dimensions")
    Do While j < count_j
        jResp.J = j
        Name = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Dimensions[j].Name")
        Value = jResp.StringOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Dimensions[j].Value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.TimestampMetricValuePairList")
    Do While j < count_j
        jResp.J = j
        MetricValue = jResp.IntOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.TimestampMetricValuePairList[j].MetricValue")
        Timestamp = jResp.IntOf("ProactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.TimestampMetricValuePairList[j].Timestamp")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics")
Do While i < count_i
    jResp.I = i
    MetricDisplayName = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricDisplayName")
    v_String = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.Filter.string")
    Group = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Group")
    GroupByLimit = jResp.IntOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Limit")
    Metric = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.Metric")
    Unit = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].Unit")
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Dimensions")
    Do While j < count_j
        jResp.J = j
        strVal = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Dimensions[j]")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData")
    Do While j < count_j
        jResp.J = j
        FilterString = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.Filter.string")
        GroupByGroup = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Group")
        GroupByLimit = jResp.IntOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Limit")
        MetricQueryMetric = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.Metric")
        ReferenceScalarValue = jResp.IntOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceScalar.Value")
        Name = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].Name")
        k = 0
        count_k = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Dimensions")
        Do While k < count_k
            jResp.K = k
            strVal = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Dimensions[k]")
            k = k + 1
        Loop
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtAnomaly")
    Do While j < count_j
        jResp.J = j
        v_Type = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtAnomaly[j].Type")
        Value_int = jResp.IntOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtAnomaly[j].Value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtBaseline")
    Do While j < count_j
        jResp.J = j
        v_Type = jResp.StringOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtBaseline[j].Type")
        Value_int = jResp.IntOf("ProactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtBaseline[j].Value")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ReactiveAnomaly.AnomalyResources")
Do While i < count_i
    jResp.I = i
    Name = jResp.StringOf("ReactiveAnomaly.AnomalyResources[i].Name")
    v_Type = jResp.StringOf("ReactiveAnomaly.AnomalyResources[i].Type")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ReactiveAnomaly.ResourceCollection.CloudFormation.StackNames")
Do While i < count_i
    jResp.I = i
    strVal = jResp.StringOf("ReactiveAnomaly.ResourceCollection.CloudFormation.StackNames[i]")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ReactiveAnomaly.ResourceCollection.Tags")
Do While i < count_i
    jResp.I = i
    AppBoundaryKey = jResp.StringOf("ReactiveAnomaly.ResourceCollection.Tags[i].AppBoundaryKey")
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.ResourceCollection.Tags[i].TagValues")
    Do While j < count_j
        jResp.J = j
        strVal = jResp.StringOf("ReactiveAnomaly.ResourceCollection.Tags[i].TagValues[j]")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.CloudWatchMetrics")
Do While i < count_i
    jResp.I = i
    MetricDataSummaryStatusCode = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.StatusCode")
    MetricName = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricName")
    Namespace = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Namespace")
    Period = jResp.IntOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Period")
    Stat = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Stat")
    Unit = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Unit")
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Dimensions")
    Do While j < count_j
        jResp.J = j
        Name = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Dimensions[j].Name")
        Value = jResp.StringOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].Dimensions[j].Value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.TimestampMetricValuePairList")
    Do While j < count_j
        jResp.J = j
        MetricValue = jResp.IntOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.TimestampMetricValuePairList[j].MetricValue")
        Timestamp = jResp.IntOf("ReactiveAnomaly.SourceDetails.CloudWatchMetrics[i].MetricDataSummary.TimestampMetricValuePairList[j].Timestamp")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics")
Do While i < count_i
    jResp.I = i
    MetricDisplayName = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricDisplayName")
    FilterString = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.Filter.string")
    GroupByGroup = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Group")
    GroupByLimit = jResp.IntOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Limit")
    MetricQueryMetric = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.Metric")
    Unit = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].Unit")
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Dimensions")
    Do While j < count_j
        jResp.J = j
        strVal = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].MetricQuery.GroupBy.Dimensions[j]")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData")
    Do While j < count_j
        jResp.J = j
        FilterString = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.Filter.string")
        GroupByGroup = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Group")
        GroupByLimit = jResp.IntOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Limit")
        MetricQueryMetric = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.Metric")
        ReferenceScalarValue = jResp.IntOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceScalar.Value")
        Name = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].Name")
        k = 0
        count_k = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Dimensions")
        Do While k < count_k
            jResp.K = k
            strVal = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].ReferenceData[j].ComparisonValues.ReferenceMetric.MetricQuery.GroupBy.Dimensions[k]")
            k = k + 1
        Loop
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtAnomaly")
    Do While j < count_j
        jResp.J = j
        v_Type = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtAnomaly[j].Type")
        Value_int = jResp.IntOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtAnomaly[j].Value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtBaseline")
    Do While j < count_j
        jResp.J = j
        v_Type = jResp.StringOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtBaseline[j].Type")
        Value_int = jResp.IntOf("ReactiveAnomaly.SourceDetails.PerformanceInsightsMetrics[i].StatsAtBaseline[j].Value")
        j = j + 1
    Loop
    i = i + 1
Loop

' A sample JSON response body parsed by the above code:

' {
'   "ProactiveAnomaly": {
'     "AnomalyReportedTimeRange": {
'       "CloseTime": number,
'       "OpenTime": number
'     },
'     "AnomalyResources": [
'       {
'         "Name": "string",
'         "Type": "string"
'       }
'     ],
'     "AnomalyTimeRange": {
'       "EndTime": number,
'       "StartTime": number
'     },
'     "AssociatedInsightId": "string",
'     "Id": "string",
'     "Limit": number,
'     "PredictionTimeRange": {
'       "EndTime": number,
'       "StartTime": number
'     },
'     "ResourceCollection": {
'       "CloudFormation": {
'         "StackNames": [
'           "string"
'         ]
'       },
'       "Tags": [
'         {
'           "AppBoundaryKey": "string",
'           "TagValues": [
'             "string"
'           ]
'         }
'       ]
'     },
'     "Severity": "string",
'     "SourceDetails": {
'       "CloudWatchMetrics": [
'         {
'           "Dimensions": [
'             {
'               "Name": "string",
'               "Value": "string"
'             }
'           ],
'           "MetricDataSummary": {
'             "StatusCode": "string",
'             "TimestampMetricValuePairList": [
'               {
'                 "MetricValue": number,
'                 "Timestamp": number
'               }
'             ]
'           },
'           "MetricName": "string",
'           "Namespace": "string",
'           "Period": number,
'           "Stat": "string",
'           "Unit": "string"
'         }
'       ],
'       "PerformanceInsightsMetrics": [
'         {
'           "MetricDisplayName": "string",
'           "MetricQuery": {
'             "Filter": {
'               "string": "string"
'             },
'             "GroupBy": {
'               "Dimensions": [
'                 "string"
'               ],
'               "Group": "string",
'               "Limit": number
'             },
'             "Metric": "string"
'           },
'           "ReferenceData": [
'             {
'               "ComparisonValues": {
'                 "ReferenceMetric": {
'                   "MetricQuery": {
'                     "Filter": {
'                       "string": "string"
'                     },
'                     "GroupBy": {
'                       "Dimensions": [
'                         "string"
'                       ],
'                       "Group": "string",
'                       "Limit": number
'                     },
'                     "Metric": "string"
'                   }
'                 },
'                 "ReferenceScalar": {
'                   "Value": number
'                 }
'               },
'               "Name": "string"
'             }
'           ],
'           "StatsAtAnomaly": [
'             {
'               "Type": "string",
'               "Value": number
'             }
'           ],
'           "StatsAtBaseline": [
'             {
'               "Type": "string",
'               "Value": number
'             }
'           ],
'           "Unit": "string"
'         }
'       ]
'     },
'     "SourceMetadata": {
'       "Source": "string",
'       "SourceResourceName": "string",
'       "SourceResourceType": "string"
'     },
'     "Status": "string",
'     "UpdateTime": number
'   },
'   "ReactiveAnomaly": {
'     "AnomalyReportedTimeRange": {
'       "CloseTime": number,
'       "OpenTime": number
'     },
'     "AnomalyResources": [
'       {
'         "Name": "string",
'         "Type": "string"
'       }
'     ],
'     "AnomalyTimeRange": {
'       "EndTime": number,
'       "StartTime": number
'     },
'     "AssociatedInsightId": "string",
'     "CausalAnomalyId": "string",
'     "Description": "string",
'     "Id": "string",
'     "Name": "string",
'     "ResourceCollection": {
'       "CloudFormation": {
'         "StackNames": [
'           "string"
'         ]
'       },
'       "Tags": [
'         {
'           "AppBoundaryKey": "string",
'           "TagValues": [
'             "string"
'           ]
'         }
'       ]
'     },
'     "Severity": "string",
'     "SourceDetails": {
'       "CloudWatchMetrics": [
'         {
'           "Dimensions": [
'             {
'               "Name": "string",
'               "Value": "string"
'             }
'           ],
'           "MetricDataSummary": {
'             "StatusCode": "string",
'             "TimestampMetricValuePairList": [
'               {
'                 "MetricValue": number,
'                 "Timestamp": number
'               }
'             ]
'           },
'           "MetricName": "string",
'           "Namespace": "string",
'           "Period": number,
'           "Stat": "string",
'           "Unit": "string"
'         }
'       ],
'       "PerformanceInsightsMetrics": [
'         {
'           "MetricDisplayName": "string",
'           "MetricQuery": {
'             "Filter": {
'               "string": "string"
'             },
'             "GroupBy": {
'               "Dimensions": [
'                 "string"
'               ],
'               "Group": "string",
'               "Limit": number
'             },
'             "Metric": "string"
'           },
'           "ReferenceData": [
'             {
'               "ComparisonValues": {
'                 "ReferenceMetric": {
'                   "MetricQuery": {
'                     "Filter": {
'                       "string": "string"
'                     },
'                     "GroupBy": {
'                       "Dimensions": [
'                         "string"
'                       ],
'                       "Group": "string",
'                       "Limit": number
'                     },
'                     "Metric": "string"
'                   }
'                 },
'                 "ReferenceScalar": {
'                   "Value": number
'                 }
'               },
'               "Name": "string"
'             }
'           ],
'           "StatsAtAnomaly": [
'             {
'               "Type": "string",
'               "Value": number
'             }
'           ],
'           "StatsAtBaseline": [
'             {
'               "Type": "string",
'               "Value": number
'             }
'           ],
'           "Unit": "string"
'         }
'       ]
'     },
'     "Status": "string",
'     "Type": "string"
'   }
' }

%>
</body>
</html>