{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2020-12-01",
    "endpointPrefix":"devops-guru",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"Amazon DevOps Guru",
    "serviceId":"DevOps Guru",
    "signatureVersion":"v4",
    "signingName":"devops-guru",
    "uid":"devops-guru-2020-12-01"
  },
  "operations":{
    "AddNotificationChannel":{
      "name":"AddNotificationChannel",
      "http":{
        "method":"PUT",
        "requestUri":"/channels",
        "responseCode":200
      },
      "input":{"shape":"AddNotificationChannelRequest"},
      "output":{"shape":"AddNotificationChannelResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Adds a notification channel to DevOps Guru. A notification channel is used to notify you about important DevOps Guru events, such as when an insight is generated. </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
    },
    "DeleteInsight":{
      "name":"DeleteInsight",
      "http":{
        "method":"DELETE",
        "requestUri":"/insights/{Id}",
        "responseCode":200
      },
      "input":{"shape":"DeleteInsightRequest"},
      "output":{"shape":"DeleteInsightResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes the insight along with the associated anomalies, events and recommendations.</p>"
    },
    "DescribeAccountHealth":{
      "name":"DescribeAccountHealth",
      "http":{
        "method":"GET",
        "requestUri":"/accounts/health",
        "responseCode":200
      },
      "input":{"shape":"DescribeAccountHealthRequest"},
      "output":{"shape":"DescribeAccountHealthResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns the number of open reactive insights, the number of open proactive insights, and the number of metrics analyzed in your Amazon Web Services account. Use these numbers to gauge the health of operations in your Amazon Web Services account. </p>"
    },
    "DescribeAccountOverview":{
      "name":"DescribeAccountOverview",
      "http":{
        "method":"POST",
        "requestUri":"/accounts/overview",
        "responseCode":200
      },
      "input":{"shape":"DescribeAccountOverviewRequest"},
      "output":{"shape":"DescribeAccountOverviewResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> For the time range passed in, returns the number of open reactive insight that were created, the number of open proactive insights that were created, and the Mean Time to Recover (MTTR) for all closed reactive insights. </p>"
    },
    "DescribeAnomaly":{
      "name":"DescribeAnomaly",
      "http":{
        "method":"GET",
        "requestUri":"/anomalies/{Id}",
        "responseCode":200
      },
      "input":{"shape":"DescribeAnomalyRequest"},
      "output":{"shape":"DescribeAnomalyResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns details about an anomaly that you specify using its ID. </p>"
    },
    "DescribeEventSourcesConfig":{
      "name":"DescribeEventSourcesConfig",
      "http":{
        "method":"POST",
        "requestUri":"/event-sources",
        "responseCode":200
      },
      "input":{"shape":"DescribeEventSourcesConfigRequest"},
      "output":{"shape":"DescribeEventSourcesConfigResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Returns the integration status of services that are integrated with DevOps Guru as Consumer via EventBridge. The one service that can be integrated with DevOps Guru is Amazon CodeGuru Profiler, which can produce proactive recommendations which can be stored and viewed in DevOps Guru.</p>"
    },
    "DescribeFeedback":{
      "name":"DescribeFeedback",
      "http":{
        "method":"POST",
        "requestUri":"/feedback",
        "responseCode":200
      },
      "input":{"shape":"DescribeFeedbackRequest"},
      "output":{"shape":"DescribeFeedbackResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns the most recent feedback submitted in the current Amazon Web Services account and Region. </p>"
    },
    "DescribeInsight":{
      "name":"DescribeInsight",
      "http":{
        "method":"GET",
        "requestUri":"/insights/{Id}",
        "responseCode":200
      },
      "input":{"shape":"DescribeInsightRequest"},
      "output":{"shape":"DescribeInsightResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns details about an insight that you specify using its ID. </p>"
    },
    "DescribeOrganizationHealth":{
      "name":"DescribeOrganizationHealth",
      "http":{
        "method":"POST",
        "requestUri":"/organization/health",
        "responseCode":200
      },
      "input":{"shape":"DescribeOrganizationHealthRequest"},
      "output":{"shape":"DescribeOrganizationHealthResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Returns active insights, predictive insights, and resource hours analyzed in last hour.</p>"
    },
    "DescribeOrganizationOverview":{
      "name":"DescribeOrganizationOverview",
      "http":{
        "method":"POST",
        "requestUri":"/organization/overview",
        "responseCode":200
      },
      "input":{"shape":"DescribeOrganizationOverviewRequest"},
      "output":{"shape":"DescribeOrganizationOverviewResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Returns an overview of your organization's history based on the specified time range. The overview includes the total reactive and proactive insights.</p>"
    },
    "DescribeOrganizationResourceCollectionHealth":{
      "name":"DescribeOrganizationResourceCollectionHealth",
      "http":{
        "method":"POST",
        "requestUri":"/organization/health/resource-collection",
        "responseCode":200
      },
      "input":{"shape":"DescribeOrganizationResourceCollectionHealthRequest"},
      "output":{"shape":"DescribeOrganizationResourceCollectionHealthResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Provides an overview of your system's health. If additional member accounts are part of your organization, you can filter those accounts using the <code>AccountIds</code> field.</p>"
    },
    "DescribeResourceCollectionHealth":{
      "name":"DescribeResourceCollectionHealth",
      "http":{
        "method":"GET",
        "requestUri":"/accounts/health/resource-collection/{ResourceCollectionType}",
        "responseCode":200
      },
      "input":{"shape":"DescribeResourceCollectionHealthRequest"},
      "output":{"shape":"DescribeResourceCollectionHealthResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns the number of open proactive insights, open reactive insights, and the Mean Time to Recover (MTTR) for all closed insights in resource collections in your account. You specify the type of Amazon Web Services resources collection. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
    },
    "DescribeServiceIntegration":{
      "name":"DescribeServiceIntegration",
      "http":{
        "method":"GET",
        "requestUri":"/service-integrations",
        "responseCode":200
      },
      "input":{"shape":"DescribeServiceIntegrationRequest"},
      "output":{"shape":"DescribeServiceIntegrationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns the integration status of services that are integrated with DevOps Guru. The one service that can be integrated with DevOps Guru is Amazon Web Services Systems Manager, which can be used to create an OpsItem for each generated insight. </p>"
    },
    "GetCostEstimation":{
      "name":"GetCostEstimation",
      "http":{
        "method":"GET",
        "requestUri":"/cost-estimation",
        "responseCode":200
      },
      "input":{"shape":"GetCostEstimationRequest"},
      "output":{"shape":"GetCostEstimationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Returns an estimate of the monthly cost for DevOps Guru to analyze your Amazon Web Services resources. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html\">Estimate your Amazon DevOps Guru costs</a> and <a href=\"http://aws.amazon.com/devops-guru/pricing/\">Amazon DevOps Guru pricing</a>.</p>"
    },
    "GetResourceCollection":{
      "name":"GetResourceCollection",
      "http":{
        "method":"GET",
        "requestUri":"/resource-collections/{ResourceCollectionType}",
        "responseCode":200
      },
      "input":{"shape":"GetResourceCollectionRequest"},
      "output":{"shape":"GetResourceCollectionResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns lists Amazon Web Services resources that are of the specified resource collection type. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
    },
    "ListAnomaliesForInsight":{
      "name":"ListAnomaliesForInsight",
      "http":{
        "method":"POST",
        "requestUri":"/anomalies/insight/{InsightId}",
        "responseCode":200
      },
      "input":{"shape":"ListAnomaliesForInsightRequest"},
      "output":{"shape":"ListAnomaliesForInsightResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of the anomalies that belong to an insight that you specify using its ID. </p>"
    },
    "ListAnomalousLogGroups":{
      "name":"ListAnomalousLogGroups",
      "http":{
        "method":"POST",
        "requestUri":"/list-log-anomalies",
        "responseCode":200
      },
      "input":{"shape":"ListAnomalousLogGroupsRequest"},
      "output":{"shape":"ListAnomalousLogGroupsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns the list of log groups that contain log anomalies. </p>"
    },
    "ListEvents":{
      "name":"ListEvents",
      "http":{
        "method":"POST",
        "requestUri":"/events",
        "responseCode":200
      },
      "input":{"shape":"ListEventsRequest"},
      "output":{"shape":"ListEventsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of the events emitted by the resources that are evaluated by DevOps Guru. You can use filters to specify which events are returned. </p>"
    },
    "ListInsights":{
      "name":"ListInsights",
      "http":{
        "method":"POST",
        "requestUri":"/insights",
        "responseCode":200
      },
      "input":{"shape":"ListInsightsRequest"},
      "output":{"shape":"ListInsightsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time and status (<code>ONGOING</code>, <code>CLOSED</code>, or <code>ANY</code>). </p>"
    },
    "ListMonitoredResources":{
      "name":"ListMonitoredResources",
      "http":{
        "method":"POST",
        "requestUri":"/monitoredResources",
        "responseCode":200
      },
      "input":{"shape":"ListMonitoredResourcesRequest"},
      "output":{"shape":"ListMonitoredResourcesResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns the list of all log groups that are being monitored and tagged by DevOps Guru. </p>"
    },
    "ListNotificationChannels":{
      "name":"ListNotificationChannels",
      "http":{
        "method":"POST",
        "requestUri":"/channels",
        "responseCode":200
      },
      "input":{"shape":"ListNotificationChannelsRequest"},
      "output":{"shape":"ListNotificationChannelsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of notification channels configured for DevOps Guru. Each notification channel is used to notify you when DevOps Guru generates an insight that contains information about how to improve your operations. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS). </p>"
    },
    "ListOrganizationInsights":{
      "name":"ListOrganizationInsights",
      "http":{
        "method":"POST",
        "requestUri":"/organization/insights",
        "responseCode":200
      },
      "input":{"shape":"ListOrganizationInsightsRequest"},
      "output":{"shape":"ListOrganizationInsightsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Returns a list of insights associated with the account or OU Id.</p>"
    },
    "ListRecommendations":{
      "name":"ListRecommendations",
      "http":{
        "method":"POST",
        "requestUri":"/recommendations",
        "responseCode":200
      },
      "input":{"shape":"ListRecommendationsRequest"},
      "output":{"shape":"ListRecommendationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of a specified insight's recommendations. Each recommendation includes a list of related metrics and a list of related events. </p>"
    },
    "PutFeedback":{
      "name":"PutFeedback",
      "http":{
        "method":"PUT",
        "requestUri":"/feedback",
        "responseCode":200
      },
      "input":{"shape":"PutFeedbackRequest"},
      "output":{"shape":"PutFeedbackResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Collects customer feedback about the specified insight. </p>"
    },
    "RemoveNotificationChannel":{
      "name":"RemoveNotificationChannel",
      "http":{
        "method":"DELETE",
        "requestUri":"/channels/{Id}",
        "responseCode":200
      },
      "input":{"shape":"RemoveNotificationChannelRequest"},
      "output":{"shape":"RemoveNotificationChannelResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Removes a notification channel from DevOps Guru. A notification channel is used to notify you when DevOps Guru generates an insight that contains information about how to improve your operations. </p>"
    },
    "SearchInsights":{
      "name":"SearchInsights",
      "http":{
        "method":"POST",
        "requestUri":"/insights/search",
        "responseCode":200
      },
      "input":{"shape":"SearchInsightsRequest"},
      "output":{"shape":"SearchInsightsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time, one or more statuses (<code>ONGOING</code> or <code>CLOSED</code>), one or more severities (<code>LOW</code>, <code>MEDIUM</code>, and <code>HIGH</code>), and type (<code>REACTIVE</code> or <code>PROACTIVE</code>). </p> <p> Use the <code>Filters</code> parameter to specify status and severity search parameters. Use the <code>Type</code> parameter to specify <code>REACTIVE</code> or <code>PROACTIVE</code> in your search. </p>"
    },
    "SearchOrganizationInsights":{
      "name":"SearchOrganizationInsights",
      "http":{
        "method":"POST",
        "requestUri":"/organization/insights/search",
        "responseCode":200
      },
      "input":{"shape":"SearchOrganizationInsightsRequest"},
      "output":{"shape":"SearchOrganizationInsightsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of insights in your organization. You can specify which insights are returned by their start time, one or more statuses (<code>ONGOING</code>, <code>CLOSED</code>, and <code>CLOSED</code>), one or more severities (<code>LOW</code>, <code>MEDIUM</code>, and <code>HIGH</code>), and type (<code>REACTIVE</code> or <code>PROACTIVE</code>). </p> <p> Use the <code>Filters</code> parameter to specify status and severity search parameters. Use the <code>Type</code> parameter to specify <code>REACTIVE</code> or <code>PROACTIVE</code> in your search. </p>"
    },
    "StartCostEstimation":{
      "name":"StartCostEstimation",
      "http":{
        "method":"PUT",
        "requestUri":"/cost-estimation",
        "responseCode":200
      },
      "input":{"shape":"StartCostEstimationRequest"},
      "output":{"shape":"StartCostEstimationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Starts the creation of an estimate of the monthly cost to analyze your Amazon Web Services resources.</p>"
    },
    "UpdateEventSourcesConfig":{
      "name":"UpdateEventSourcesConfig",
      "http":{
        "method":"PUT",
        "requestUri":"/event-sources",
        "responseCode":200
      },
      "input":{"shape":"UpdateEventSourcesConfigRequest"},
      "output":{"shape":"UpdateEventSourcesConfigResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Enables or disables integration with a service that can be integrated with DevOps Guru. The one service that can be integrated with DevOps Guru is Amazon CodeGuru Profiler, which can produce proactive recommendations which can be stored and viewed in DevOps Guru.</p>"
    },
    "UpdateResourceCollection":{
      "name":"UpdateResourceCollection",
      "http":{
        "method":"PUT",
        "requestUri":"/resource-collections",
        "responseCode":200
      },
      "input":{"shape":"UpdateResourceCollectionRequest"},
      "output":{"shape":"UpdateResourceCollectionResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Updates the collection of resources that DevOps Guru analyzes. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. This method also creates the IAM role required for you to use DevOps Guru. </p>"
    },
    "UpdateServiceIntegration":{
      "name":"UpdateServiceIntegration",
      "http":{
        "method":"PUT",
        "requestUri":"/service-integrations",
        "responseCode":200
      },
      "input":{"shape":"UpdateServiceIntegrationRequest"},
      "output":{"shape":"UpdateServiceIntegrationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Enables or disables integration with a service that can be integrated with DevOps Guru. The one service that can be integrated with DevOps Guru is Amazon Web Services Systems Manager, which can be used to create an OpsItem for each generated insight. </p>"
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"ErrorMessageString"}
      },
      "documentation":"<p> You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html\">Access Management</a> in the <i>IAM User Guide</i>. </p>",
      "error":{"httpStatusCode":403},
      "exception":true
    },
    "AccountHealth":{
      "type":"structure",
      "members":{
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        },
        "Insight":{
          "shape":"AccountInsightHealth",
          "documentation":"<p> Information about the health of the Amazon Web Services resources in your account, including the number of open proactive, open reactive insights, and the Mean Time to Recover (MTTR) of closed insights. </p>"
        }
      },
      "documentation":"<p> Returns the number of open reactive insights, the number of open proactive insights, and the number of metrics analyzed in your Amazon Web Services account. Use these numbers to gauge the health of operations in your Amazon Web Services account. </p>"
    },
    "AccountHealths":{
      "type":"list",
      "member":{"shape":"AccountHealth"}
    },
    "AccountIdList":{
      "type":"list",
      "member":{"shape":"AwsAccountId"},
      "max":5,
      "min":0
    },
    "AccountInsightHealth":{
      "type":"structure",
      "members":{
        "OpenProactiveInsights":{
          "shape":"NumOpenProactiveInsights",
          "documentation":"<p>An integer that specifies the number of open proactive insights in your Amazon Web Services account.</p>"
        },
        "OpenReactiveInsights":{
          "shape":"NumOpenReactiveInsights",
          "documentation":"<p>An integer that specifies the number of open reactive insights in your Amazon Web Services account.</p>"
        }
      },
      "documentation":"<p> Information about the number of open reactive and proactive insights that can be used to gauge the health of your system. </p>"
    },
    "AddNotificationChannelRequest":{
      "type":"structure",
      "required":["Config"],
      "members":{
        "Config":{
          "shape":"NotificationChannelConfig",
          "documentation":"<p> A <code>NotificationChannelConfig</code> object that specifies what type of notification channel to add. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS). </p>"
        }
      }
    },
    "AddNotificationChannelResponse":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"NotificationChannelId",
          "documentation":"<p> The ID of the added notification channel. </p>"
        }
      }
    },
    "AmazonCodeGuruProfilerIntegration":{
      "type":"structure",
      "members":{
        "Status":{
          "shape":"EventSourceOptInStatus",
          "documentation":"<p>The status of the CodeGuru Profiler integration. Specifies if DevOps Guru is enabled to consume recommendations that are generated from Amazon CodeGuru Profiler.</p>"
        }
      },
      "documentation":"<p>Information about your account's integration with Amazon CodeGuru Profiler. This returns whether DevOps Guru is configured to consume recommendations generated from Amazon CodeGuru Profiler.</p>"
    },
    "AnalyzedResourceCount":{"type":"long"},
    "AnomalousLogGroup":{
      "type":"structure",
      "members":{
        "LogGroupName":{
          "shape":"LogGroupName",
          "documentation":"<p> The name of the CloudWatch log group. </p>"
        },
        "ImpactStartTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time the anomalous log events began. The impact start time indicates the time of the first log anomaly event that occurs. </p>"
        },
        "ImpactEndTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time the anomalous log events stopped. </p>"
        },
        "NumberOfLogLinesScanned":{
          "shape":"NumberOfLogLinesScanned",
          "documentation":"<p> The number of log lines that were scanned for anomalous log events. </p>"
        },
        "LogAnomalyShowcases":{
          "shape":"LogAnomalyShowcases",
          "documentation":"<p> The log anomalies in the log group. Each log anomaly displayed represents a cluster of similar anomalous log events. </p>"
        }
      },
      "documentation":"<p> An Amazon CloudWatch log group that contains log anomalies and is used to generate an insight. </p>"
    },
    "AnomalousLogGroups":{
      "type":"list",
      "member":{"shape":"AnomalousLogGroup"}
    },
    "AnomalyDescription":{"type":"string"},
    "AnomalyId":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^[\\w~.-]*$"
    },
    "AnomalyLimit":{
      "type":"double",
      "box":true
    },
    "AnomalyName":{"type":"string"},
    "AnomalyReportedTimeRange":{
      "type":"structure",
      "required":["OpenTime"],
      "members":{
        "OpenTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when an anomaly is opened. </p>"
        },
        "CloseTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when an anomaly is closed. </p>"
        }
      },
      "documentation":"<p> A time range that specifies when DevOps Guru opens and then closes an anomaly. This is different from <code>AnomalyTimeRange</code>, which specifies the time range when DevOps Guru actually observes the anomalous behavior. </p>"
    },
    "AnomalyResource":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the Amazon Web Services resource.</p>"
        },
        "Type":{
          "shape":"ResourceType",
          "documentation":"<p>The type of the Amazon Web Services resource.</p>"
        }
      },
      "documentation":"<p>The Amazon Web Services resources in which DevOps Guru detected unusual behavior that resulted in the generation of an anomaly. When DevOps Guru detects multiple related anomalies, it creates and insight with details about the anomalous behavior and suggestions about how to correct the problem.</p>"
    },
    "AnomalyResources":{
      "type":"list",
      "member":{"shape":"AnomalyResource"}
    },
    "AnomalySeverity":{
      "type":"string",
      "enum":[
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "AnomalySource":{"type":"string"},
    "AnomalySourceDetails":{
      "type":"structure",
      "members":{
        "CloudWatchMetrics":{
          "shape":"CloudWatchMetricsDetails",
          "documentation":"<p>An array of <code>CloudWatchMetricsDetail</code> objects that contain information about analyzed CloudWatch metrics that show anomalous behavior. </p>"
        },
        "PerformanceInsightsMetrics":{
          "shape":"PerformanceInsightsMetricsDetails",
          "documentation":"<p>An array of <code>PerformanceInsightsMetricsDetail</code> objects that contain information about analyzed Performance Insights metrics that show anomalous behavior.</p>"
        }
      },
      "documentation":"<p> Details about the source of the anomalous operational data that triggered the anomaly.</p>"
    },
    "AnomalySourceMetadata":{
      "type":"structure",
      "members":{
        "Source":{
          "shape":"AnomalySource",
          "documentation":"<p>The source of the anomaly.</p>"
        },
        "SourceResourceName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the anomaly's resource.</p>"
        },
        "SourceResourceType":{
          "shape":"ResourceType",
          "documentation":"<p>The anomaly's resource type.</p>"
        }
      },
      "documentation":"<p>Metadata about the detection source that generates proactive anomalies. The anomaly is detected using analysis of the metric data&#x2028; over a period of time</p>"
    },
    "AnomalyStatus":{
      "type":"string",
      "enum":[
        "ONGOING",
        "CLOSED"
      ]
    },
    "AnomalyTimeRange":{
      "type":"structure",
      "required":["StartTime"],
      "members":{
        "StartTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the anomalous behavior started. </p>"
        },
        "EndTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the anomalous behavior ended. </p>"
        }
      },
      "documentation":"<p> A time range that specifies when the observed unusual behavior in an anomaly started and ended. This is different from <code>AnomalyReportedTimeRange</code>, which specifies the time range when DevOps Guru opens and then closes an anomaly. </p>"
    },
    "AnomalyType":{
      "type":"string",
      "enum":[
        "CAUSAL",
        "CONTEXTUAL"
      ]
    },
    "AppBoundaryKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "AssociatedResourceArns":{
      "type":"list",
      "member":{"shape":"ResourceArn"}
    },
    "AwsAccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"^\\d{12}$"
    },
    "Channels":{
      "type":"list",
      "member":{"shape":"NotificationChannel"}
    },
    "ClientToken":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^[a-zA-Z0-9]+[a-zA-Z0-9-]*$"
    },
    "CloudFormationCollection":{
      "type":"structure",
      "members":{
        "StackNames":{
          "shape":"StackNames",
          "documentation":"<p> An array of CloudFormation stack names. </p>"
        }
      },
      "documentation":"<p> Information about Amazon Web Services CloudFormation stacks. You can use up to 500 stacks to specify which Amazon Web Services resources in your account to analyze. For more information, see <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html\">Stacks</a> in the <i>Amazon Web Services CloudFormation User Guide</i>. </p>"
    },
    "CloudFormationCollectionFilter":{
      "type":"structure",
      "members":{
        "StackNames":{
          "shape":"StackNames",
          "documentation":"<p> An array of CloudFormation stack names. </p>"
        }
      },
      "documentation":"<p> Information about Amazon Web Services CloudFormation stacks. You can use up to 500 stacks to specify which Amazon Web Services resources in your account to analyze. For more information, see <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html\">Stacks</a> in the <i>Amazon Web Services CloudFormation User Guide</i>. </p>"
    },
    "CloudFormationCostEstimationResourceCollectionFilter":{
      "type":"structure",
      "members":{
        "StackNames":{
          "shape":"CostEstimationStackNames",
          "documentation":"<p>An array of CloudFormation stack names. Its size is fixed at 1 item.</p>"
        }
      },
      "documentation":"<p>Information about an Amazon Web Services CloudFormation stack used to create a monthly cost estimate for DevOps Guru to analyze Amazon Web Services resources. The maximum number of stacks you can specify for a cost estimate is one. The estimate created is for the cost to analyze the Amazon Web Services resources defined by the stack. For more information, see <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html\">Stacks</a> in the <i>Amazon Web Services CloudFormation User Guide</i>.</p>"
    },
    "CloudFormationHealth":{
      "type":"structure",
      "members":{
        "StackName":{
          "shape":"StackName",
          "documentation":"<p> The name of the CloudFormation stack. </p>"
        },
        "Insight":{
          "shape":"InsightHealth",
          "documentation":"<p> Information about the health of the Amazon Web Services resources in your account that are specified by an Amazon Web Services CloudFormation stack, including the number of open proactive, open reactive insights, and the Mean Time to Recover (MTTR) of closed insights. </p>"
        },
        "AnalyzedResourceCount":{
          "shape":"AnalyzedResourceCount",
          "documentation":"<p> Number of resources that DevOps Guru is monitoring in your account that are specified by an Amazon Web Services CloudFormation stack. </p>"
        }
      },
      "documentation":"<p> Information about the health of Amazon Web Services resources in your account that are specified by an Amazon Web Services CloudFormation stack. </p>"
    },
    "CloudFormationHealths":{
      "type":"list",
      "member":{"shape":"CloudFormationHealth"}
    },
    "CloudWatchMetricDataStatusCode":{
      "type":"string",
      "enum":[
        "Complete",
        "InternalError",
        "PartialData"
      ]
    },
    "CloudWatchMetricsDataSummary":{
      "type":"structure",
      "members":{
        "TimestampMetricValuePairList":{
          "shape":"TimestampMetricValuePairList",
          "documentation":"<p>This is a list of Amazon CloudWatch metric values at given timestamp.</p>"
        },
        "StatusCode":{
          "shape":"CloudWatchMetricDataStatusCode",
          "documentation":"<p>This is an enum of the status showing whether the metric value pair list has partial or complete data, or if there was an error.</p>"
        }
      },
      "documentation":"<p>Contains information about the analyzed metrics that displayed anomalous behavior. </p>"
    },
    "CloudWatchMetricsDetail":{
      "type":"structure",
      "members":{
        "MetricName":{
          "shape":"CloudWatchMetricsMetricName",
          "documentation":"<p> The name of the CloudWatch metric. </p>"
        },
        "Namespace":{
          "shape":"CloudWatchMetricsNamespace",
          "documentation":"<p> The namespace of the CloudWatch metric. A namespace is a container for CloudWatch metrics. </p>"
        },
        "Dimensions":{
          "shape":"CloudWatchMetricsDimensions",
          "documentation":"<p> An array of CloudWatch dimensions associated with </p>"
        },
        "Stat":{
          "shape":"CloudWatchMetricsStat",
          "documentation":"<p> The type of statistic associated with the CloudWatch metric. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic\">Statistics</a> in the <i>Amazon CloudWatch User Guide</i>. </p>"
        },
        "Unit":{
          "shape":"CloudWatchMetricsUnit",
          "documentation":"<p> The unit of measure used for the CloudWatch metric. For example, <code>Bytes</code>, <code>Seconds</code>, <code>Count</code>, and <code>Percent</code>. </p>"
        },
        "Period":{
          "shape":"CloudWatchMetricsPeriod",
          "documentation":"<p> The length of time associated with the CloudWatch metric in number of seconds. </p>"
        },
        "MetricDataSummary":{
          "shape":"CloudWatchMetricsDataSummary",
          "documentation":"<p>This object returns anomaly metric data.</p>"
        }
      },
      "documentation":"<p> Information about an Amazon CloudWatch metric. </p>"
    },
    "CloudWatchMetricsDetails":{
      "type":"list",
      "member":{"shape":"CloudWatchMetricsDetail"}
    },
    "CloudWatchMetricsDimension":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"CloudWatchMetricsDimensionName",
          "documentation":"<p> The name of the CloudWatch dimension. </p>"
        },
        "Value":{
          "shape":"CloudWatchMetricsDimensionValue",
          "documentation":"<p> The value of the CloudWatch dimension. </p>"
        }
      },
      "documentation":"<p> The dimension of an Amazon CloudWatch metric that is used when DevOps Guru analyzes the resources in your account for operational problems and anomalous behavior. A dimension is a name/value pair that is part of the identity of a metric. A metric can have up to 10 dimensions. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension\">Dimensions</a> in the <i>Amazon CloudWatch User Guide</i>. </p>"
    },
    "CloudWatchMetricsDimensionName":{"type":"string"},
    "CloudWatchMetricsDimensionValue":{"type":"string"},
    "CloudWatchMetricsDimensions":{
      "type":"list",
      "member":{"shape":"CloudWatchMetricsDimension"}
    },
    "CloudWatchMetricsMetricName":{"type":"string"},
    "CloudWatchMetricsNamespace":{"type":"string"},
    "CloudWatchMetricsPeriod":{"type":"integer"},
    "CloudWatchMetricsStat":{
      "type":"string",
      "enum":[
        "Sum",
        "Average",
        "SampleCount",
        "Minimum",
        "Maximum",
        "p99",
        "p90",
        "p50"
      ]
    },
    "CloudWatchMetricsUnit":{"type":"string"},
    "ConflictException":{
      "type":"structure",
      "required":[
        "Message",
        "ResourceId",
        "ResourceType"
      ],
      "members":{
        "Message":{"shape":"ErrorMessageString"},
        "ResourceId":{
          "shape":"ResourceIdString",
          "documentation":"<p> The ID of the Amazon Web Services resource in which a conflict occurred. </p>"
        },
        "ResourceType":{
          "shape":"ResourceIdType",
          "documentation":"<p> The type of the Amazon Web Services resource in which a conflict occurred. </p>"
        }
      },
      "documentation":"<p> An exception that is thrown when a conflict occurs. </p>",
      "error":{"httpStatusCode":409},
      "exception":true
    },
    "Cost":{"type":"double"},
    "CostEstimationResourceCollectionFilter":{
      "type":"structure",
      "members":{
        "CloudFormation":{
          "shape":"CloudFormationCostEstimationResourceCollectionFilter",
          "documentation":"<p>An object that specifies the CloudFormation stack that defines the Amazon Web Services resources used to create a monthly estimate for DevOps Guru.</p>"
        },
        "Tags":{
          "shape":"TagCostEstimationResourceCollectionFilters",
          "documentation":"<p>The Amazon Web Services tags used to filter the resource collection that is used for a cost estimate.</p> <p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        }
      },
      "documentation":"<p>Information about a filter used to specify which Amazon Web Services resources are analyzed to create a monthly DevOps Guru cost estimate. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html\">Estimate your Amazon DevOps Guru costs</a> and <a href=\"http://aws.amazon.com/devops-guru/pricing/\">Amazon DevOps Guru pricing</a>. </p>"
    },
    "CostEstimationServiceResourceCount":{"type":"integer"},
    "CostEstimationServiceResourceState":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "INACTIVE"
      ]
    },
    "CostEstimationStackNames":{
      "type":"list",
      "member":{"shape":"StackName"},
      "max":1,
      "min":1
    },
    "CostEstimationStatus":{
      "type":"string",
      "enum":[
        "ONGOING",
        "COMPLETED"
      ]
    },
    "CostEstimationTagValues":{
      "type":"list",
      "member":{"shape":"TagValue"},
      "max":1,
      "min":1
    },
    "CostEstimationTimeRange":{
      "type":"structure",
      "members":{
        "StartTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the cost estimation.</p>"
        },
        "EndTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time of the cost estimation.</p>"
        }
      },
      "documentation":"<p>The time range of a cost estimation.</p>"
    },
    "DeleteInsightRequest":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p>The ID of the insight.</p>",
          "location":"uri",
          "locationName":"Id"
        }
      }
    },
    "DeleteInsightResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DescribeAccountHealthRequest":{
      "type":"structure",
      "members":{
      }
    },
    "DescribeAccountHealthResponse":{
      "type":"structure",
      "required":[
        "OpenReactiveInsights",
        "OpenProactiveInsights",
        "MetricsAnalyzed",
        "ResourceHours"
      ],
      "members":{
        "OpenReactiveInsights":{
          "shape":"NumOpenReactiveInsights",
          "documentation":"<p> An integer that specifies the number of open reactive insights in your Amazon Web Services account. </p>"
        },
        "OpenProactiveInsights":{
          "shape":"NumOpenProactiveInsights",
          "documentation":"<p> An integer that specifies the number of open proactive insights in your Amazon Web Services account. </p>"
        },
        "MetricsAnalyzed":{
          "shape":"NumMetricsAnalyzed",
          "documentation":"<p> An integer that specifies the number of metrics that have been analyzed in your Amazon Web Services account. </p>"
        },
        "ResourceHours":{
          "shape":"ResourceHours",
          "documentation":"<p>The number of Amazon DevOps Guru resource analysis hours billed to the current Amazon Web Services account in the last hour. </p>"
        },
        "AnalyzedResourceCount":{
          "shape":"AnalyzedResourceCount",
          "documentation":"<p> Number of resources that DevOps Guru is monitoring in your Amazon Web Services account. </p>"
        }
      }
    },
    "DescribeAccountOverviewRequest":{
      "type":"structure",
      "required":["FromTime"],
      "members":{
        "FromTime":{
          "shape":"Timestamp",
          "documentation":"<p> The start of the time range passed in. The start time granularity is at the day level. The floor of the start time is used. Returned information occurred after this day. </p>"
        },
        "ToTime":{
          "shape":"Timestamp",
          "documentation":"<p> The end of the time range passed in. The start time granularity is at the day level. The floor of the start time is used. Returned information occurred before this day. If this is not specified, then the current day is used. </p>"
        }
      }
    },
    "DescribeAccountOverviewResponse":{
      "type":"structure",
      "required":[
        "ReactiveInsights",
        "ProactiveInsights",
        "MeanTimeToRecoverInMilliseconds"
      ],
      "members":{
        "ReactiveInsights":{
          "shape":"NumReactiveInsights",
          "documentation":"<p> An integer that specifies the number of open reactive insights in your Amazon Web Services account that were created during the time range passed in. </p>"
        },
        "ProactiveInsights":{
          "shape":"NumProactiveInsights",
          "documentation":"<p> An integer that specifies the number of open proactive insights in your Amazon Web Services account that were created during the time range passed in. </p>"
        },
        "MeanTimeToRecoverInMilliseconds":{
          "shape":"MeanTimeToRecoverInMilliseconds",
          "documentation":"<p> The Mean Time to Recover (MTTR) for all closed insights that were created during the time range passed in. </p>"
        }
      }
    },
    "DescribeAnomalyRequest":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"AnomalyId",
          "documentation":"<p> The ID of the anomaly. </p>",
          "location":"uri",
          "locationName":"Id"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the member account.</p>",
          "location":"querystring",
          "locationName":"AccountId"
        }
      }
    },
    "DescribeAnomalyResponse":{
      "type":"structure",
      "members":{
        "ProactiveAnomaly":{
          "shape":"ProactiveAnomaly",
          "documentation":"<p> A <code>ProactiveAnomaly</code> object that represents the requested anomaly. </p>"
        },
        "ReactiveAnomaly":{
          "shape":"ReactiveAnomaly",
          "documentation":"<p> A <code>ReactiveAnomaly</code> object that represents the requested anomaly. </p>"
        }
      }
    },
    "DescribeEventSourcesConfigRequest":{
      "type":"structure",
      "members":{
      }
    },
    "DescribeEventSourcesConfigResponse":{
      "type":"structure",
      "members":{
        "EventSources":{
          "shape":"EventSourcesConfig",
          "documentation":"<p>Lists the event sources in the configuration.</p>"
        }
      }
    },
    "DescribeFeedbackRequest":{
      "type":"structure",
      "members":{
        "InsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight for which the feedback was provided. </p>"
        }
      }
    },
    "DescribeFeedbackResponse":{
      "type":"structure",
      "members":{
        "InsightFeedback":{"shape":"InsightFeedback"}
      }
    },
    "DescribeInsightRequest":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight. </p>",
          "location":"uri",
          "locationName":"Id"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the member account in the organization.</p>",
          "location":"querystring",
          "locationName":"AccountId"
        }
      }
    },
    "DescribeInsightResponse":{
      "type":"structure",
      "members":{
        "ProactiveInsight":{
          "shape":"ProactiveInsight",
          "documentation":"<p> A <code>ProactiveInsight</code> object that represents the requested insight. </p>"
        },
        "ReactiveInsight":{
          "shape":"ReactiveInsight",
          "documentation":"<p> A <code>ReactiveInsight</code> object that represents the requested insight. </p>"
        }
      }
    },
    "DescribeOrganizationHealthRequest":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>The ID of the Amazon Web Services account.</p>"
        },
        "OrganizationalUnitIds":{
          "shape":"OrganizationalUnitIdList",
          "documentation":"<p>The ID of the organizational unit.</p>"
        }
      }
    },
    "DescribeOrganizationHealthResponse":{
      "type":"structure",
      "required":[
        "OpenReactiveInsights",
        "OpenProactiveInsights",
        "MetricsAnalyzed",
        "ResourceHours"
      ],
      "members":{
        "OpenReactiveInsights":{
          "shape":"NumOpenReactiveInsights",
          "documentation":"<p>An integer that specifies the number of open reactive insights in your Amazon Web Services account.</p>"
        },
        "OpenProactiveInsights":{
          "shape":"NumOpenProactiveInsights",
          "documentation":"<p>An integer that specifies the number of open proactive insights in your Amazon Web Services account.</p>"
        },
        "MetricsAnalyzed":{
          "shape":"NumMetricsAnalyzed",
          "documentation":"<p>An integer that specifies the number of metrics that have been analyzed in your organization.</p>"
        },
        "ResourceHours":{
          "shape":"ResourceHours",
          "documentation":"<p>The number of Amazon DevOps Guru resource analysis hours billed to the current Amazon Web Services account in the last hour. </p>"
        }
      }
    },
    "DescribeOrganizationOverviewRequest":{
      "type":"structure",
      "required":["FromTime"],
      "members":{
        "FromTime":{
          "shape":"Timestamp",
          "documentation":"<p> The start of the time range passed in. The start time granularity is at the day level. The floor of the start time is used. Returned information occurred after this day. </p>"
        },
        "ToTime":{
          "shape":"Timestamp",
          "documentation":"<p> The end of the time range passed in. The start time granularity is at the day level. The floor of the start time is used. Returned information occurred before this day. If this is not specified, then the current day is used. </p>"
        },
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>The ID of the Amazon Web Services account.</p>"
        },
        "OrganizationalUnitIds":{
          "shape":"OrganizationalUnitIdList",
          "documentation":"<p>The ID of the organizational unit.</p>"
        }
      }
    },
    "DescribeOrganizationOverviewResponse":{
      "type":"structure",
      "required":[
        "ReactiveInsights",
        "ProactiveInsights"
      ],
      "members":{
        "ReactiveInsights":{
          "shape":"NumReactiveInsights",
          "documentation":"<p>An integer that specifies the number of open reactive insights in your Amazon Web Services account.</p>"
        },
        "ProactiveInsights":{
          "shape":"NumProactiveInsights",
          "documentation":"<p>An integer that specifies the number of open proactive insights in your Amazon Web Services account.</p>"
        }
      }
    },
    "DescribeOrganizationResourceCollectionHealthRequest":{
      "type":"structure",
      "required":["OrganizationResourceCollectionType"],
      "members":{
        "OrganizationResourceCollectionType":{
          "shape":"OrganizationResourceCollectionType",
          "documentation":"<p> An Amazon Web Services resource collection type. This type specifies how analyzed Amazon Web Services resources are defined. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
        },
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>The ID of the Amazon Web Services account.</p>"
        },
        "OrganizationalUnitIds":{
          "shape":"OrganizationalUnitIdList",
          "documentation":"<p>The ID of the organizational unit.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        },
        "MaxResults":{
          "shape":"OrganizationResourceCollectionMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "DescribeOrganizationResourceCollectionHealthResponse":{
      "type":"structure",
      "members":{
        "CloudFormation":{
          "shape":"CloudFormationHealths",
          "documentation":"<p>The returned <code>CloudFormationHealthOverview</code> object that contains an <code>InsightHealthOverview</code> object with the requested system health information.</p>"
        },
        "Service":{
          "shape":"ServiceHealths",
          "documentation":"<p>An array of <code>ServiceHealth</code> objects that describes the health of the Amazon Web Services services associated with the resources in the collection.</p>"
        },
        "Account":{
          "shape":"AccountHealths",
          "documentation":"<p>The name of the organization's account.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        },
        "Tags":{
          "shape":"TagHealths",
          "documentation":"<p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        }
      }
    },
    "DescribeResourceCollectionHealthRequest":{
      "type":"structure",
      "required":["ResourceCollectionType"],
      "members":{
        "ResourceCollectionType":{
          "shape":"ResourceCollectionType",
          "documentation":"<p> An Amazon Web Services resource collection type. This type specifies how analyzed Amazon Web Services resources are defined. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>",
          "location":"uri",
          "locationName":"ResourceCollectionType"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        }
      }
    },
    "DescribeResourceCollectionHealthResponse":{
      "type":"structure",
      "members":{
        "CloudFormation":{
          "shape":"CloudFormationHealths",
          "documentation":"<p> The returned <code>CloudFormationHealthOverview</code> object that contains an <code>InsightHealthOverview</code> object with the requested system health information. </p>"
        },
        "Service":{
          "shape":"ServiceHealths",
          "documentation":"<p>An array of <code>ServiceHealth</code> objects that describes the health of the Amazon Web Services services associated with the resources in the collection.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        },
        "Tags":{
          "shape":"TagHealths",
          "documentation":"<p>The Amazon Web Services tags that are used by resources in the resource collection.</p> <p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        }
      }
    },
    "DescribeServiceIntegrationRequest":{
      "type":"structure",
      "members":{
      }
    },
    "DescribeServiceIntegrationResponse":{
      "type":"structure",
      "members":{
        "ServiceIntegration":{"shape":"ServiceIntegrationConfig"}
      }
    },
    "EndTimeRange":{
      "type":"structure",
      "members":{
        "FromTime":{
          "shape":"Timestamp",
          "documentation":"<p> The earliest end time in the time range. </p>"
        },
        "ToTime":{
          "shape":"Timestamp",
          "documentation":"<p> The latest end time in the time range. </p>"
        }
      },
      "documentation":"<p> A range of time that specifies when anomalous behavior in an anomaly or insight ended. </p>"
    },
    "ErrorMessageString":{"type":"string"},
    "ErrorNameString":{"type":"string"},
    "ErrorQuotaCodeString":{"type":"string"},
    "ErrorServiceCodeString":{"type":"string"},
    "Event":{
      "type":"structure",
      "members":{
        "ResourceCollection":{"shape":"ResourceCollection"},
        "Id":{
          "shape":"EventId",
          "documentation":"<p> The ID of the event. </p>"
        },
        "Time":{
          "shape":"Timestamp",
          "documentation":"<p> A <code>Timestamp</code> that specifies the time the event occurred. </p>"
        },
        "EventSource":{
          "shape":"EventSource",
          "documentation":"<p> The Amazon Web Services source that emitted the event. </p>"
        },
        "Name":{
          "shape":"EventName",
          "documentation":"<p> The name of the event. </p>"
        },
        "DataSource":{
          "shape":"EventDataSource",
          "documentation":"<p> The source, <code>AWS_CLOUD_TRAIL</code> or <code>AWS_CODE_DEPLOY</code>, where DevOps Guru analysis found the event. </p>"
        },
        "EventClass":{
          "shape":"EventClass",
          "documentation":"<p> The class of the event. The class specifies what the event is related to, such as an infrastructure change, a deployment, or a schema change. </p>"
        },
        "Resources":{
          "shape":"EventResources",
          "documentation":"<p> An <code>EventResource</code> object that contains information about the resource that emitted the event. </p>"
        }
      },
      "documentation":"<p> An Amazon Web Services resource event. Amazon Web Services resource events and metrics are analyzed by DevOps Guru to find anomalous behavior and provide recommendations to improve your operational solutions. </p>"
    },
    "EventClass":{
      "type":"string",
      "enum":[
        "INFRASTRUCTURE",
        "DEPLOYMENT",
        "SECURITY_CHANGE",
        "CONFIG_CHANGE",
        "SCHEMA_CHANGE"
      ]
    },
    "EventDataSource":{
      "type":"string",
      "enum":[
        "AWS_CLOUD_TRAIL",
        "AWS_CODE_DEPLOY"
      ]
    },
    "EventId":{"type":"string"},
    "EventName":{
      "type":"string",
      "max":50,
      "min":0
    },
    "EventResource":{
      "type":"structure",
      "members":{
        "Type":{
          "shape":"EventResourceType",
          "documentation":"<p> The type of resource that emitted an event. </p>"
        },
        "Name":{
          "shape":"EventResourceName",
          "documentation":"<p> The name of the resource that emitted an event. </p>"
        },
        "Arn":{
          "shape":"EventResourceArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the resource that emitted an event. </p>"
        }
      },
      "documentation":"<p> The Amazon Web Services resource that emitted an event. Amazon Web Services resource events and metrics are analyzed by DevOps Guru to find anomalous behavior and provide recommendations to improve your operational solutions. </p>"
    },
    "EventResourceArn":{
      "type":"string",
      "max":2048,
      "min":36,
      "pattern":"^arn:aws[-a-z]*:[a-z0-9-]*:[a-z0-9-]*:\\d{12}:.*$"
    },
    "EventResourceName":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"^.*$"
    },
    "EventResourceType":{
      "type":"string",
      "max":2048,
      "min":0,
      "pattern":"^.*$"
    },
    "EventResources":{
      "type":"list",
      "member":{"shape":"EventResource"}
    },
    "EventSource":{
      "type":"string",
      "max":50,
      "min":10,
      "pattern":"^[a-z]+[a-z0-9]*\\.amazonaws\\.com|aws\\.events$"
    },
    "EventSourceOptInStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "EventSourcesConfig":{
      "type":"structure",
      "members":{
        "AmazonCodeGuruProfiler":{
          "shape":"AmazonCodeGuruProfilerIntegration",
          "documentation":"<p>Information about whether DevOps Guru is configured to consume recommendations which are generated from AWS CodeGuru Profiler.</p>"
        }
      },
      "documentation":"<p>Information about the integration of DevOps Guru as consumer with another AWS service, such as AWS CodeGuru Profiler via EventBridge.</p>"
    },
    "EventTimeRange":{
      "type":"structure",
      "required":[
        "FromTime",
        "ToTime"
      ],
      "members":{
        "FromTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the event started. </p>"
        },
        "ToTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the event ended. </p>"
        }
      },
      "documentation":"<p> The time range during which an Amazon Web Services event occurred. Amazon Web Services resource events and metrics are analyzed by DevOps Guru to find anomalous behavior and provide recommendations to improve your operational solutions. </p>"
    },
    "Events":{
      "type":"list",
      "member":{"shape":"Event"}
    },
    "Explanation":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "GetCostEstimationRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        }
      }
    },
    "GetCostEstimationResponse":{
      "type":"structure",
      "members":{
        "ResourceCollection":{
          "shape":"CostEstimationResourceCollectionFilter",
          "documentation":"<p>The collection of the Amazon Web Services resources used to create your monthly DevOps Guru cost estimate.</p>"
        },
        "Status":{
          "shape":"CostEstimationStatus",
          "documentation":"<p>The status of creating this cost estimate. If it's still in progress, the status <code>ONGOING</code> is returned. If it is finished, the status <code>COMPLETED</code> is returned.</p>"
        },
        "Costs":{
          "shape":"ServiceResourceCosts",
          "documentation":"<p>An array of <code>ResourceCost</code> objects that each contains details about the monthly cost estimate to analyze one of your Amazon Web Services resources.</p>"
        },
        "TimeRange":{
          "shape":"CostEstimationTimeRange",
          "documentation":"<p>The start and end time of the cost estimation.</p>"
        },
        "TotalCost":{
          "shape":"Cost",
          "documentation":"<p>The estimated monthly cost to analyze the Amazon Web Services resources. This value is the sum of the estimated costs to analyze each resource in the <code>Costs</code> object in this response.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "GetResourceCollectionRequest":{
      "type":"structure",
      "required":["ResourceCollectionType"],
      "members":{
        "ResourceCollectionType":{
          "shape":"ResourceCollectionType",
          "documentation":"<p> The type of Amazon Web Services resource collections to return. The one valid value is <code>CLOUD_FORMATION</code> for Amazon Web Services CloudFormation stacks. </p>",
          "location":"uri",
          "locationName":"ResourceCollectionType"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        }
      }
    },
    "GetResourceCollectionResponse":{
      "type":"structure",
      "members":{
        "ResourceCollection":{
          "shape":"ResourceCollectionFilter",
          "documentation":"<p> The requested list of Amazon Web Services resource collections. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "InsightDescription":{"type":"string"},
    "InsightFeedback":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p> The insight feedback ID. </p>"
        },
        "Feedback":{
          "shape":"InsightFeedbackOption",
          "documentation":"<p> The feedback provided by the customer. </p>"
        }
      },
      "documentation":"<p> Information about insight feedback received from a customer. </p>"
    },
    "InsightFeedbackOption":{
      "type":"string",
      "enum":[
        "VALID_COLLECTION",
        "RECOMMENDATION_USEFUL",
        "ALERT_TOO_SENSITIVE",
        "DATA_NOISY_ANOMALY",
        "DATA_INCORRECT"
      ]
    },
    "InsightHealth":{
      "type":"structure",
      "members":{
        "OpenProactiveInsights":{
          "shape":"NumOpenProactiveInsights",
          "documentation":"<p> The number of open proactive insights. </p>"
        },
        "OpenReactiveInsights":{
          "shape":"NumOpenReactiveInsights",
          "documentation":"<p> The number of open reactive insights. </p>"
        },
        "MeanTimeToRecoverInMilliseconds":{
          "shape":"MeanTimeToRecoverInMilliseconds",
          "documentation":"<p> The Meant Time to Recover (MTTR) for the insight. </p>"
        }
      },
      "documentation":"<p> Information about the number of open reactive and proactive insights that can be used to gauge the health of your system. </p>"
    },
    "InsightId":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^[\\w-]*$"
    },
    "InsightName":{
      "type":"string",
      "max":530,
      "min":1,
      "pattern":"^[\\s\\S]*$"
    },
    "InsightSeverities":{
      "type":"list",
      "member":{"shape":"InsightSeverity"},
      "max":3,
      "min":0
    },
    "InsightSeverity":{
      "type":"string",
      "enum":[
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "InsightStatus":{
      "type":"string",
      "enum":[
        "ONGOING",
        "CLOSED"
      ]
    },
    "InsightStatuses":{
      "type":"list",
      "member":{"shape":"InsightStatus"},
      "max":2,
      "min":0
    },
    "InsightTimeRange":{
      "type":"structure",
      "required":["StartTime"],
      "members":{
        "StartTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the behavior described in an insight started. </p>"
        },
        "EndTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the behavior described in an insight ended. </p>"
        }
      },
      "documentation":"<p> A time ranged that specifies when the observed behavior in an insight started and ended. </p>"
    },
    "InsightType":{
      "type":"string",
      "enum":[
        "REACTIVE",
        "PROACTIVE"
      ]
    },
    "InternalServerException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"ErrorMessageString"},
        "RetryAfterSeconds":{
          "shape":"RetryAfterSeconds",
          "documentation":"<p> The number of seconds after which the action that caused the internal server exception can be retried. </p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>An internal failure in an Amazon service occurred.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "KMSKeyId":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"^.*$"
    },
    "KMSServerSideEncryptionIntegration":{
      "type":"structure",
      "members":{
        "KMSKeyId":{
          "shape":"KMSKeyId",
          "documentation":"<p> Describes the specified KMS key. </p> <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), Amazon Web Services KMS associates the alias with an Amazon Web Services managed key and returns its KeyId and Arn in the response. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p> <p>For example: </p> <p>Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab</p> <p>Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</p> <p>Alias name: alias/ExampleAlias</p> <p>Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</p>"
        },
        "OptInStatus":{
          "shape":"OptInStatus",
          "documentation":"<p> Specifies if DevOps Guru is enabled for customer managed keys. </p>"
        },
        "Type":{
          "shape":"ServerSideEncryptionType",
          "documentation":"<p> The type of KMS key used. Customer managed keys are the KMS keys that you create. Amazon Web Services owned keys are keys that are owned and managed by DevOps Guru. </p>"
        }
      },
      "documentation":"<p> Information about the KMS encryption used with DevOps Guru. </p>"
    },
    "KMSServerSideEncryptionIntegrationConfig":{
      "type":"structure",
      "members":{
        "KMSKeyId":{
          "shape":"KMSKeyId",
          "documentation":"<p> Describes the specified KMS key.</p> <p>To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), Amazon Web Services KMS associates the alias with an Amazon Web Services managed key and returns its KeyId and Arn in the response. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.</p> <p>For example: </p> <p>Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab</p> <p>Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</p> <p>Alias name: alias/ExampleAlias</p> <p>Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</p>"
        },
        "OptInStatus":{
          "shape":"OptInStatus",
          "documentation":"<p> Specifies if DevOps Guru is enabled for KMS integration. </p>"
        },
        "Type":{
          "shape":"ServerSideEncryptionType",
          "documentation":"<p> The type of KMS key used. Customer managed keys are the KMS keys that you create. Amazon Web Services owned keys are keys that are owned and managed by DevOps Guru. </p>"
        }
      },
      "documentation":"<p> Information about whether DevOps Guru is configured to encrypt server-side data using KMS. </p>"
    },
    "ListAnomaliesForInsightFilters":{
      "type":"structure",
      "members":{
        "ServiceCollection":{"shape":"ServiceCollection"}
      },
      "documentation":"<p> Specifies one or more service names that are used to list anomalies. </p>"
    },
    "ListAnomaliesForInsightMaxResults":{
      "type":"integer",
      "max":500,
      "min":1
    },
    "ListAnomaliesForInsightRequest":{
      "type":"structure",
      "required":["InsightId"],
      "members":{
        "InsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight. The returned anomalies belong to this insight. </p>",
          "location":"uri",
          "locationName":"InsightId"
        },
        "StartTimeRange":{
          "shape":"StartTimeRange",
          "documentation":"<p> A time range used to specify when the requested anomalies started. All returned anomalies started during this time range. </p>"
        },
        "MaxResults":{
          "shape":"ListAnomaliesForInsightMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        },
        "Filters":{
          "shape":"ListAnomaliesForInsightFilters",
          "documentation":"<p> Specifies one or more service names that are used to list anomalies. </p>"
        }
      }
    },
    "ListAnomaliesForInsightResponse":{
      "type":"structure",
      "members":{
        "ProactiveAnomalies":{
          "shape":"ProactiveAnomalies",
          "documentation":"<p> An array of <code>ProactiveAnomalySummary</code> objects that represent the requested anomalies </p>"
        },
        "ReactiveAnomalies":{
          "shape":"ReactiveAnomalies",
          "documentation":"<p> An array of <code>ReactiveAnomalySummary</code> objects that represent the requested anomalies </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListAnomalousLogGroupsMaxResults":{
      "type":"integer",
      "max":200,
      "min":1
    },
    "ListAnomalousLogGroupsRequest":{
      "type":"structure",
      "required":["InsightId"],
      "members":{
        "InsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight containing the log groups. </p>"
        },
        "MaxResults":{
          "shape":"ListAnomalousLogGroupsMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        }
      }
    },
    "ListAnomalousLogGroupsResponse":{
      "type":"structure",
      "required":[
        "InsightId",
        "AnomalousLogGroups"
      ],
      "members":{
        "InsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight containing the log groups. </p>"
        },
        "AnomalousLogGroups":{
          "shape":"AnomalousLogGroups",
          "documentation":"<p> The list of Amazon CloudWatch log groups that are related to an insight. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListEventsFilters":{
      "type":"structure",
      "members":{
        "InsightId":{
          "shape":"InsightId",
          "documentation":"<p> An ID of an insight that is related to the events you want to filter for. </p>"
        },
        "EventTimeRange":{
          "shape":"EventTimeRange",
          "documentation":"<p> A time range during which you want the filtered events to have occurred. </p>"
        },
        "EventClass":{
          "shape":"EventClass",
          "documentation":"<p> The class of the events you want to filter for, such as an infrastructure change, a deployment, or a schema change. </p>"
        },
        "EventSource":{
          "shape":"EventSource",
          "documentation":"<p> The Amazon Web Services source that emitted the events you want to filter for. </p>"
        },
        "DataSource":{
          "shape":"EventDataSource",
          "documentation":"<p> The source, <code>AWS_CLOUD_TRAIL</code> or <code>AWS_CODE_DEPLOY</code>, of the events you want returned. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"}
      },
      "documentation":"<p> Filters you can use to specify which events are returned when <code>ListEvents</code> is called. </p>"
    },
    "ListEventsMaxResults":{
      "type":"integer",
      "max":200,
      "min":1
    },
    "ListEventsRequest":{
      "type":"structure",
      "required":["Filters"],
      "members":{
        "Filters":{
          "shape":"ListEventsFilters",
          "documentation":"<p> A <code>ListEventsFilters</code> object used to specify which events to return. </p>"
        },
        "MaxResults":{
          "shape":"ListEventsMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        }
      }
    },
    "ListEventsResponse":{
      "type":"structure",
      "required":["Events"],
      "members":{
        "Events":{
          "shape":"Events",
          "documentation":"<p> A list of the requested events. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListInsightsAccountIdList":{
      "type":"list",
      "member":{"shape":"AwsAccountId"},
      "max":1,
      "min":0
    },
    "ListInsightsAnyStatusFilter":{
      "type":"structure",
      "required":[
        "Type",
        "StartTimeRange"
      ],
      "members":{
        "Type":{
          "shape":"InsightType",
          "documentation":"<p> Use to filter for either <code>REACTIVE</code> or <code>PROACTIVE</code> insights. </p>"
        },
        "StartTimeRange":{
          "shape":"StartTimeRange",
          "documentation":"<p> A time range used to specify when the behavior of the filtered insights started. </p>"
        }
      },
      "documentation":"<p> Used to filter for insights that have any status. </p>"
    },
    "ListInsightsClosedStatusFilter":{
      "type":"structure",
      "required":[
        "Type",
        "EndTimeRange"
      ],
      "members":{
        "Type":{
          "shape":"InsightType",
          "documentation":"<p> Use to filter for either <code>REACTIVE</code> or <code>PROACTIVE</code> insights. </p>"
        },
        "EndTimeRange":{
          "shape":"EndTimeRange",
          "documentation":"<p> A time range used to specify when the behavior of the filtered insights ended. </p>"
        }
      },
      "documentation":"<p> Used to filter for insights that have the status <code>CLOSED</code>. </p>"
    },
    "ListInsightsMaxResults":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "ListInsightsOngoingStatusFilter":{
      "type":"structure",
      "required":["Type"],
      "members":{
        "Type":{
          "shape":"InsightType",
          "documentation":"<p> Use to filter for either <code>REACTIVE</code> or <code>PROACTIVE</code> insights. </p>"
        }
      },
      "documentation":"<p> Used to filter for insights that have the status <code>ONGOING</code>. </p>"
    },
    "ListInsightsOrganizationalUnitIdList":{
      "type":"list",
      "member":{"shape":"OrganizationalUnitId"},
      "max":1,
      "min":0
    },
    "ListInsightsRequest":{
      "type":"structure",
      "required":["StatusFilter"],
      "members":{
        "StatusFilter":{
          "shape":"ListInsightsStatusFilter",
          "documentation":"<p> A filter used to filter the returned insights by their status. You can specify one status filter. </p>"
        },
        "MaxResults":{
          "shape":"ListInsightsMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        }
      }
    },
    "ListInsightsResponse":{
      "type":"structure",
      "members":{
        "ProactiveInsights":{
          "shape":"ProactiveInsights",
          "documentation":"<p> The returned list of proactive insights. </p>"
        },
        "ReactiveInsights":{
          "shape":"ReactiveInsights",
          "documentation":"<p> The returned list of reactive insights. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListInsightsStatusFilter":{
      "type":"structure",
      "members":{
        "Ongoing":{
          "shape":"ListInsightsOngoingStatusFilter",
          "documentation":"<p> A <code>ListInsightsAnyStatusFilter</code> that specifies ongoing insights that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. </p>"
        },
        "Closed":{
          "shape":"ListInsightsClosedStatusFilter",
          "documentation":"<p> A <code>ListInsightsClosedStatusFilter</code> that specifies closed insights that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. </p>"
        },
        "Any":{
          "shape":"ListInsightsAnyStatusFilter",
          "documentation":"<p> A <code>ListInsightsAnyStatusFilter</code> that specifies insights of any status that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. </p>"
        }
      },
      "documentation":"<p> A filter used by <code>ListInsights</code> to specify which insights to return. </p>"
    },
    "ListMonitoredResourcesFilters":{
      "type":"structure",
      "required":[
        "ResourcePermission",
        "ResourceTypeFilters"
      ],
      "members":{
        "ResourcePermission":{
          "shape":"ResourcePermission",
          "documentation":"<p> The permission status of a resource. </p>"
        },
        "ResourceTypeFilters":{
          "shape":"ResourceTypeFilters",
          "documentation":"<p> The type of resource that you wish to retrieve, such as log groups. </p>"
        }
      },
      "documentation":"<p> Filters to determine which monitored resources you want to retrieve. You can filter by resource type or resource permission status. </p>"
    },
    "ListMonitoredResourcesMaxResults":{
      "type":"integer",
      "max":50,
      "min":1
    },
    "ListMonitoredResourcesRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"ListMonitoredResourcesFilters",
          "documentation":"<p> Filters to determine which monitored resources you want to retrieve. You can filter by resource type or resource permission status. </p>"
        },
        "MaxResults":{
          "shape":"ListMonitoredResourcesMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        }
      }
    },
    "ListMonitoredResourcesResponse":{
      "type":"structure",
      "required":["MonitoredResourceIdentifiers"],
      "members":{
        "MonitoredResourceIdentifiers":{
          "shape":"MonitoredResourceIdentifiers",
          "documentation":"<p> Information about the resource that is being monitored, including the name of the resource, the type of resource, and whether or not permission is given to DevOps Guru to access that resource. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListNotificationChannelsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        }
      }
    },
    "ListNotificationChannelsResponse":{
      "type":"structure",
      "members":{
        "Channels":{
          "shape":"Channels",
          "documentation":"<p> An array that contains the requested notification channels. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListOrganizationInsightsRequest":{
      "type":"structure",
      "required":["StatusFilter"],
      "members":{
        "StatusFilter":{"shape":"ListInsightsStatusFilter"},
        "MaxResults":{
          "shape":"ListInsightsMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "AccountIds":{
          "shape":"ListInsightsAccountIdList",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        },
        "OrganizationalUnitIds":{
          "shape":"ListInsightsOrganizationalUnitIdList",
          "documentation":"<p>The ID of the organizational unit.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        }
      }
    },
    "ListOrganizationInsightsResponse":{
      "type":"structure",
      "members":{
        "ProactiveInsights":{
          "shape":"ProactiveOrganizationInsights",
          "documentation":"<p>An integer that specifies the number of open proactive insights in your Amazon Web Services account.</p>"
        },
        "ReactiveInsights":{
          "shape":"ReactiveOrganizationInsights",
          "documentation":"<p>An integer that specifies the number of open reactive insights in your Amazon Web Services account.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ListRecommendationsRequest":{
      "type":"structure",
      "required":["InsightId"],
      "members":{
        "InsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the requested insight. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        },
        "Locale":{
          "shape":"Locale",
          "documentation":"<p>A locale that specifies the language to use for recommendations.</p>"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        }
      }
    },
    "ListRecommendationsResponse":{
      "type":"structure",
      "members":{
        "Recommendations":{
          "shape":"Recommendations",
          "documentation":"<p> An array of the requested recommendations. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "Locale":{
      "type":"string",
      "enum":[
        "DE_DE",
        "EN_US",
        "EN_GB",
        "ES_ES",
        "FR_FR",
        "IT_IT",
        "JA_JP",
        "KO_KR",
        "PT_BR",
        "ZH_CN",
        "ZH_TW"
      ]
    },
    "LogAnomalyClass":{
      "type":"structure",
      "members":{
        "LogStreamName":{
          "shape":"LogStreamName",
          "documentation":"<p> The name of the Amazon CloudWatch log stream that the anomalous log event belongs to. A log stream is a sequence of log events that share the same source. </p>"
        },
        "LogAnomalyType":{
          "shape":"LogAnomalyType",
          "documentation":"<p> The type of log anomaly that has been detected. </p>"
        },
        "LogAnomalyToken":{
          "shape":"LogAnomalyToken",
          "documentation":"<p> The token where the anomaly was detected. This may refer to an exception or another location, or it may be blank for log anomalies such as format anomalies. </p>"
        },
        "LogEventId":{
          "shape":"LogEventId",
          "documentation":"<p> The ID of the log event. </p>"
        },
        "Explanation":{
          "shape":"Explanation",
          "documentation":"<p> The explanation for why the log event is considered an anomaly. </p>"
        },
        "NumberOfLogLinesOccurrences":{
          "shape":"NumberOfLogLinesOccurrences",
          "documentation":"<p> The number of log lines where this anomalous log event occurs. </p>"
        },
        "LogEventTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p> The time of the first occurrence of the anomalous log event. </p>"
        }
      },
      "documentation":"<p> Information about an anomalous log event found within a log group. </p>"
    },
    "LogAnomalyClasses":{
      "type":"list",
      "member":{"shape":"LogAnomalyClass"},
      "max":10,
      "min":0
    },
    "LogAnomalyShowcase":{
      "type":"structure",
      "members":{
        "LogAnomalyClasses":{
          "shape":"LogAnomalyClasses",
          "documentation":"<p> A list of anomalous log events that may be related. </p>"
        }
      },
      "documentation":"<p> A cluster of similar anomalous log events found within a log group. </p>"
    },
    "LogAnomalyShowcases":{
      "type":"list",
      "member":{"shape":"LogAnomalyShowcase"},
      "max":20,
      "min":0
    },
    "LogAnomalyToken":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "LogAnomalyType":{
      "type":"string",
      "enum":[
        "KEYWORD",
        "KEYWORD_TOKEN",
        "FORMAT",
        "HTTP_CODE",
        "BLOCK_FORMAT",
        "NUMERICAL_POINT",
        "NUMERICAL_NAN",
        "NEW_FIELD_NAME"
      ]
    },
    "LogEventId":{
      "type":"string",
      "max":512,
      "min":1
    },
    "LogGroupName":{
      "type":"string",
      "max":512,
      "min":1
    },
    "LogStreamName":{
      "type":"string",
      "max":512,
      "min":1
    },
    "LogsAnomalyDetectionIntegration":{
      "type":"structure",
      "members":{
        "OptInStatus":{
          "shape":"OptInStatus",
          "documentation":"<p>Specifies if DevOps Guru is configured to perform log anomaly detection on CloudWatch log groups.</p>"
        }
      },
      "documentation":"<p> Information about the integration of DevOps Guru with CloudWatch log groups for log anomaly detection. </p>"
    },
    "LogsAnomalyDetectionIntegrationConfig":{
      "type":"structure",
      "members":{
        "OptInStatus":{
          "shape":"OptInStatus",
          "documentation":"<p>Specifies if DevOps Guru is configured to perform log anomaly detection on CloudWatch log groups.</p>"
        }
      },
      "documentation":"<p> Information about the integration of DevOps Guru with CloudWatch log groups for log anomaly detection. You can use this to update the configuration. </p>"
    },
    "MeanTimeToRecoverInMilliseconds":{"type":"long"},
    "MetricValue":{"type":"double"},
    "MonitoredResourceIdentifier":{
      "type":"structure",
      "members":{
        "MonitoredResourceName":{
          "shape":"MonitoredResourceName",
          "documentation":"<p> The name of the resource being monitored. </p>"
        },
        "Type":{
          "shape":"ResourceType",
          "documentation":"<p> The type of resource being monitored. </p>"
        },
        "ResourcePermission":{
          "shape":"ResourcePermission",
          "documentation":"<p> The permission status of a resource. </p>"
        },
        "LastUpdated":{
          "shape":"Timestamp",
          "documentation":"<p> The time at which DevOps Guru last updated this resource. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"}
      },
      "documentation":"<p> Information about the resource that is being monitored, including the name of the resource, the type of resource, and whether or not permission is given to DevOps Guru to access that resource. </p>"
    },
    "MonitoredResourceIdentifiers":{
      "type":"list",
      "member":{"shape":"MonitoredResourceIdentifier"}
    },
    "MonitoredResourceName":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"[\\.\\-_\\/#A-Za-z0-9]+"
    },
    "NotificationChannel":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"NotificationChannelId",
          "documentation":"<p> The ID of a notification channel. </p>"
        },
        "Config":{
          "shape":"NotificationChannelConfig",
          "documentation":"<p> A <code>NotificationChannelConfig</code> object that contains information about configured notification channels. </p>"
        }
      },
      "documentation":"<p> Information about a notification channel. A notification channel is used to notify you when DevOps Guru creates an insight. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS). </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
    },
    "NotificationChannelConfig":{
      "type":"structure",
      "required":["Sns"],
      "members":{
        "Sns":{
          "shape":"SnsChannelConfig",
          "documentation":"<p> Information about a notification channel configured in DevOps Guru to send notifications when insights are created. </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
        },
        "Filters":{
          "shape":"NotificationFilterConfig",
          "documentation":"<p> The filter configurations for the Amazon SNS notification topic you use with DevOps Guru. If you do not provide filter configurations, the default configurations are to receive notifications for all message types of <code>High</code> or <code>Medium</code> severity. </p>"
        }
      },
      "documentation":"<p> Information about notification channels you have configured with DevOps Guru. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS).</p>"
    },
    "NotificationChannelId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
    },
    "NotificationFilterConfig":{
      "type":"structure",
      "members":{
        "Severities":{
          "shape":"InsightSeverities",
          "documentation":"<p> The severity levels that you want to receive notifications for. For example, you can choose to receive notifications only for insights with <code>HIGH</code> and <code>MEDIUM</code> severity levels. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a>. </p>"
        },
        "MessageTypes":{
          "shape":"NotificationMessageTypes",
          "documentation":"<p> The events that you want to receive notifications for. For example, you can choose to receive notifications only when the severity level is upgraded or a new insight is created. </p>"
        }
      },
      "documentation":"<p> The filter configurations for the Amazon SNS notification topic you use with DevOps Guru. You can choose to specify which events or message types to receive notifications for. You can also choose to specify which severity levels to receive notifications for. </p>"
    },
    "NotificationMessageType":{
      "type":"string",
      "enum":[
        "NEW_INSIGHT",
        "CLOSED_INSIGHT",
        "NEW_ASSOCIATION",
        "SEVERITY_UPGRADED",
        "NEW_RECOMMENDATION"
      ]
    },
    "NotificationMessageTypes":{
      "type":"list",
      "member":{"shape":"NotificationMessageType"},
      "max":5,
      "min":0
    },
    "NumMetricsAnalyzed":{"type":"integer"},
    "NumOpenProactiveInsights":{"type":"integer"},
    "NumOpenReactiveInsights":{"type":"integer"},
    "NumProactiveInsights":{"type":"integer"},
    "NumReactiveInsights":{"type":"integer"},
    "NumberOfLogLinesOccurrences":{"type":"integer"},
    "NumberOfLogLinesScanned":{"type":"integer"},
    "OpsCenterIntegration":{
      "type":"structure",
      "members":{
        "OptInStatus":{
          "shape":"OptInStatus",
          "documentation":"<p> Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight. </p>"
        }
      },
      "documentation":"<p> Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight. </p>"
    },
    "OpsCenterIntegrationConfig":{
      "type":"structure",
      "members":{
        "OptInStatus":{
          "shape":"OptInStatus",
          "documentation":"<p> Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight. </p>"
        }
      },
      "documentation":"<p> Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight. You can use this to update the configuration.</p>"
    },
    "OptInStatus":{
      "type":"string",
      "documentation":"<p> Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight. </p>",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "OrganizationResourceCollectionMaxResults":{
      "type":"integer",
      "max":500,
      "min":1
    },
    "OrganizationResourceCollectionType":{
      "type":"string",
      "enum":[
        "AWS_CLOUD_FORMATION",
        "AWS_SERVICE",
        "AWS_ACCOUNT",
        "AWS_TAGS"
      ]
    },
    "OrganizationalUnitId":{
      "type":"string",
      "max":68,
      "pattern":"^ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}$"
    },
    "OrganizationalUnitIdList":{
      "type":"list",
      "member":{"shape":"OrganizationalUnitId"},
      "max":5,
      "min":0
    },
    "PerformanceInsightsMetricDimension":{"type":"string"},
    "PerformanceInsightsMetricDimensionGroup":{
      "type":"structure",
      "members":{
        "Group":{
          "shape":"PerformanceInsightsMetricGroup",
          "documentation":"<p>The name of the dimension group. Its valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora MySQL, Amazon RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>"
        },
        "Dimensions":{
          "shape":"PerformanceInsightsMetricDimensions",
          "documentation":"<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, Amazon RDS PostgreSQL, Aurora MySQL, Amazon RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>"
        },
        "Limit":{
          "shape":"PerformanceInsightsMetricLimitInteger",
          "documentation":"<p>The maximum number of items to fetch for this dimension group.</p>"
        }
      },
      "documentation":"<p>A logical grouping of Performance Insights metrics for a related subject area. For example, the <code>db.sql</code> dimension group consists of the following dimensions: <code>db.sql.id</code>, <code>db.sql.db_id</code>, <code>db.sql.statement</code>, and <code>db.sql.tokenized_id</code>.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note> <p>Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. DB load is measured as average active sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host. </p> <ul> <li> <p>To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html\"> Amazon Aurora User Guide</a>. </p> </li> <li> <p>To learn more about Performance Insights and Amazon RDS DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\"> Amazon RDS User Guide</a>. </p> </li> </ul>"
    },
    "PerformanceInsightsMetricDimensions":{
      "type":"list",
      "member":{"shape":"PerformanceInsightsMetricDimension"}
    },
    "PerformanceInsightsMetricDisplayName":{"type":"string"},
    "PerformanceInsightsMetricFilterKey":{"type":"string"},
    "PerformanceInsightsMetricFilterMap":{
      "type":"map",
      "key":{"shape":"PerformanceInsightsMetricFilterKey"},
      "value":{"shape":"PerformanceInsightsMetricFilterValue"}
    },
    "PerformanceInsightsMetricFilterValue":{"type":"string"},
    "PerformanceInsightsMetricGroup":{"type":"string"},
    "PerformanceInsightsMetricLimitInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":1
    },
    "PerformanceInsightsMetricName":{"type":"string"},
    "PerformanceInsightsMetricQuery":{
      "type":"structure",
      "members":{
        "Metric":{
          "shape":"PerformanceInsightsMetricName",
          "documentation":"<p>The name of the meteric used used when querying an Performance Insights <code>GetResourceMetrics</code> API for anomaly metrics.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>"
        },
        "GroupBy":{
          "shape":"PerformanceInsightsMetricDimensionGroup",
          "documentation":"<p>The specification for how to aggregate the data points from a Performance Insights <code>GetResourceMetrics</code> API query. The Performance Insights query returns all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>"
        },
        "Filter":{
          "shape":"PerformanceInsightsMetricFilterMap",
          "documentation":"<p>One or more filters to apply to a Performance Insights <code>GetResourceMetrics</code> API query. Restrictions:</p> <ul> <li> <p>Any number of filters by the same dimension, as specified in the <code>GroupBy</code> parameter.</p> </li> <li> <p>A single filter for any other dimension in this dimension group.</p> </li> </ul>"
        }
      },
      "documentation":"<p>A single query to be processed. Use these parameters to query the Performance Insights <code>GetResourceMetrics</code> API to retrieve the metrics for an anomaly. For more information, see <code> <a href=\"https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html\">GetResourceMetrics</a> </code> in the <i>Amazon RDS Performance Insights API Reference</i>.</p> <p>Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. DB load is measured as average active sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host. </p> <ul> <li> <p>To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html\"> Amazon Aurora User Guide</a>. </p> </li> <li> <p>To learn more about Performance Insights and Amazon RDS DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\"> Amazon RDS User Guide</a>. </p> </li> </ul>"
    },
    "PerformanceInsightsMetricUnit":{"type":"string"},
    "PerformanceInsightsMetricsDetail":{
      "type":"structure",
      "members":{
        "MetricDisplayName":{
          "shape":"PerformanceInsightsMetricDisplayName",
          "documentation":"<p>The name used for a specific Performance Insights metric.</p>"
        },
        "Unit":{
          "shape":"PerformanceInsightsMetricUnit",
          "documentation":"<p>The unit of measure for a metric. For example, a session or a process.</p>"
        },
        "MetricQuery":{
          "shape":"PerformanceInsightsMetricQuery",
          "documentation":"<p>A single query to be processed for the metric. For more information, see <code> <a href=\"https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html\">PerformanceInsightsMetricQuery</a> </code>.</p>"
        },
        "ReferenceData":{
          "shape":"PerformanceInsightsReferenceDataList",
          "documentation":"<p> For more information, see <code> <a href=\"https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html\">PerformanceInsightsReferenceData</a> </code>. </p>"
        },
        "StatsAtAnomaly":{
          "shape":"PerformanceInsightsStats",
          "documentation":"<p>The metric statistics during the anomalous period detected by DevOps Guru;</p>"
        },
        "StatsAtBaseline":{
          "shape":"PerformanceInsightsStats",
          "documentation":"<p>Typical metric statistics that are not considered anomalous. When DevOps Guru analyzes metrics, it compares them to <code>StatsAtBaseline</code> to help determine if they are anomalous.</p>"
        }
      },
      "documentation":"<p>Details about Performance Insights metrics.</p> <p>Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. DB load is measured as average active sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host. </p> <ul> <li> <p>To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html\"> Amazon Aurora User Guide</a>. </p> </li> <li> <p>To learn more about Performance Insights and Amazon RDS DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\"> Amazon RDS User Guide</a>. </p> </li> </ul>"
    },
    "PerformanceInsightsMetricsDetails":{
      "type":"list",
      "member":{"shape":"PerformanceInsightsMetricsDetail"}
    },
    "PerformanceInsightsReferenceComparisonValues":{
      "type":"structure",
      "members":{
        "ReferenceScalar":{
          "shape":"PerformanceInsightsReferenceScalar",
          "documentation":"<p>A scalar value DevOps Guru for a metric that DevOps Guru compares to actual metric values. This reference value is used to determine if an actual metric value should be considered anomalous.</p>"
        },
        "ReferenceMetric":{
          "shape":"PerformanceInsightsReferenceMetric",
          "documentation":"<p>A metric that DevOps Guru compares to actual metric values. This reference metric is used to determine if an actual metric should be considered anomalous.</p>"
        }
      },
      "documentation":"<p>Reference scalar values and other metrics that DevOps Guru displays on a graph in its console along with the actual metrics it analyzed. Compare these reference values to your actual metrics to help you understand anomalous behavior that DevOps Guru detected.</p>"
    },
    "PerformanceInsightsReferenceData":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"PerformanceInsightsReferenceName",
          "documentation":"<p>The name of the reference data.</p>"
        },
        "ComparisonValues":{
          "shape":"PerformanceInsightsReferenceComparisonValues",
          "documentation":"<p>The specific reference values used to evaluate the Performance Insights. For more information, see <code> <a href=\"https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceComparisonValues.html\">PerformanceInsightsReferenceComparisonValues</a> </code>. </p>"
        }
      },
      "documentation":"<p>Reference data used to evaluate Performance Insights to determine if its performance is anomalous or not.</p>"
    },
    "PerformanceInsightsReferenceDataList":{
      "type":"list",
      "member":{"shape":"PerformanceInsightsReferenceData"}
    },
    "PerformanceInsightsReferenceMetric":{
      "type":"structure",
      "members":{
        "MetricQuery":{
          "shape":"PerformanceInsightsMetricQuery",
          "documentation":"<p>A query to be processed on the metric.</p>"
        }
      },
      "documentation":"<p>Information about a reference metric used to evaluate Performance Insights.</p>"
    },
    "PerformanceInsightsReferenceName":{"type":"string"},
    "PerformanceInsightsReferenceScalar":{
      "type":"structure",
      "members":{
        "Value":{
          "shape":"PerformanceInsightsValueDouble",
          "documentation":"<p>The reference value.</p>"
        }
      },
      "documentation":"<p>A reference value to compare Performance Insights metrics against to determine if the metrics demonstrate anomalous behavior.</p>"
    },
    "PerformanceInsightsStat":{
      "type":"structure",
      "members":{
        "Type":{
          "shape":"PerformanceInsightsStatType",
          "documentation":"<p>The statistic type.</p>"
        },
        "Value":{
          "shape":"PerformanceInsightsValueDouble",
          "documentation":"<p>The value of the statistic.</p>"
        }
      },
      "documentation":"<p>A statistic in a Performance Insights collection.</p>"
    },
    "PerformanceInsightsStatType":{"type":"string"},
    "PerformanceInsightsStats":{
      "type":"list",
      "member":{"shape":"PerformanceInsightsStat"}
    },
    "PerformanceInsightsValueDouble":{
      "type":"double",
      "box":true
    },
    "PredictionTimeRange":{
      "type":"structure",
      "required":["StartTime"],
      "members":{
        "StartTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time range during which a metric limit is expected to be exceeded. This applies to proactive insights only. </p>"
        },
        "EndTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time when the behavior in a proactive insight is expected to end. </p>"
        }
      },
      "documentation":"<p> The time range during which anomalous behavior in a proactive anomaly or an insight is expected to occur. </p>"
    },
    "ProactiveAnomalies":{
      "type":"list",
      "member":{"shape":"ProactiveAnomalySummary"}
    },
    "ProactiveAnomaly":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"AnomalyId",
          "documentation":"<p> The ID of a proactive anomaly. </p>"
        },
        "Severity":{
          "shape":"AnomalySeverity",
          "documentation":"<p>The severity of the anomaly. The severity of anomalies that generate an insight determine that insight's severity. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"AnomalyStatus",
          "documentation":"<p> The status of a proactive anomaly. </p>"
        },
        "UpdateTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time of the anomaly's most recent update. </p>"
        },
        "AnomalyTimeRange":{"shape":"AnomalyTimeRange"},
        "AnomalyReportedTimeRange":{
          "shape":"AnomalyReportedTimeRange",
          "documentation":"<p> An <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. </p>"
        },
        "PredictionTimeRange":{"shape":"PredictionTimeRange"},
        "SourceDetails":{
          "shape":"AnomalySourceDetails",
          "documentation":"<p> Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. </p>"
        },
        "AssociatedInsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight that contains this anomaly. An insight is composed of related anomalies. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"},
        "Limit":{
          "shape":"AnomalyLimit",
          "documentation":"<p> A threshold that was exceeded by behavior in analyzed resources. Exceeding this threshold is related to the anomalous behavior that generated this anomaly. </p>"
        },
        "SourceMetadata":{
          "shape":"AnomalySourceMetadata",
          "documentation":"<p>The metadata for the anomaly.</p>"
        },
        "AnomalyResources":{
          "shape":"AnomalyResources",
          "documentation":"<p>Information about a resource in which DevOps Guru detected anomalous behavior.</p>"
        },
        "Description":{
          "shape":"AnomalyDescription",
          "documentation":"<p> A description of the proactive anomaly. </p>"
        }
      },
      "documentation":"<p>Information about an anomaly. This object is returned by <code>ListAnomalies</code>.</p>"
    },
    "ProactiveAnomalySummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"AnomalyId",
          "documentation":"<p>The ID of the anomaly.</p>"
        },
        "Severity":{
          "shape":"AnomalySeverity",
          "documentation":"<p>The severity of the anomaly. The severity of anomalies that generate an insight determine that insight's severity. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"AnomalyStatus",
          "documentation":"<p>The status of the anomaly.</p>"
        },
        "UpdateTime":{
          "shape":"Timestamp",
          "documentation":"<p> The time of the anomaly's most recent update. </p>"
        },
        "AnomalyTimeRange":{"shape":"AnomalyTimeRange"},
        "AnomalyReportedTimeRange":{
          "shape":"AnomalyReportedTimeRange",
          "documentation":"<p> An <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. </p>"
        },
        "PredictionTimeRange":{"shape":"PredictionTimeRange"},
        "SourceDetails":{
          "shape":"AnomalySourceDetails",
          "documentation":"<p> Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. </p>"
        },
        "AssociatedInsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight that contains this anomaly. An insight is composed of related anomalies. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"},
        "Limit":{
          "shape":"AnomalyLimit",
          "documentation":"<p> A threshold that was exceeded by behavior in analyzed resources. Exceeding this threshold is related to the anomalous behavior that generated this anomaly. </p>"
        },
        "SourceMetadata":{
          "shape":"AnomalySourceMetadata",
          "documentation":"<p>The metadata of the source which detects proactive anomalies.</p>"
        },
        "AnomalyResources":{
          "shape":"AnomalyResources",
          "documentation":"<p>Information about a resource in which DevOps Guru detected anomalous behavior.</p>"
        },
        "Description":{
          "shape":"AnomalyDescription",
          "documentation":"<p> A description of the proactive anomaly. </p>"
        }
      },
      "documentation":"<p>Details about a proactive anomaly. This object is returned by <code>DescribeAnomaly.</code> </p>"
    },
    "ProactiveInsight":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p>The ID of the proactive insight. </p>"
        },
        "Name":{
          "shape":"InsightName",
          "documentation":"<p>The name of the proactive insight. </p>"
        },
        "Severity":{
          "shape":"InsightSeverity",
          "documentation":"<p>The severity of the insight. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"InsightStatus",
          "documentation":"<p>The status of the proactive insight. </p>"
        },
        "InsightTimeRange":{"shape":"InsightTimeRange"},
        "PredictionTimeRange":{"shape":"PredictionTimeRange"},
        "ResourceCollection":{"shape":"ResourceCollection"},
        "SsmOpsItemId":{
          "shape":"SsmOpsItemId",
          "documentation":"<p> The ID of the Amazon Web Services System Manager OpsItem created for this insight. You must enable the creation of OpstItems insights before they are created for each insight. </p>"
        },
        "Description":{
          "shape":"InsightDescription",
          "documentation":"<p>Describes the proactive insight.</p>"
        }
      },
      "documentation":"<p>Details about a proactive insight. This object is returned by <code>ListInsights</code>.</p>"
    },
    "ProactiveInsightSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p>The ID of the proactive insight. </p>"
        },
        "Name":{
          "shape":"InsightName",
          "documentation":"<p>The name of the proactive insight. </p>"
        },
        "Severity":{
          "shape":"InsightSeverity",
          "documentation":"<p>The severity of the insight. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"InsightStatus",
          "documentation":"<p>The status of the proactive insight. </p>"
        },
        "InsightTimeRange":{"shape":"InsightTimeRange"},
        "PredictionTimeRange":{"shape":"PredictionTimeRange"},
        "ResourceCollection":{"shape":"ResourceCollection"},
        "ServiceCollection":{
          "shape":"ServiceCollection",
          "documentation":"<p>A collection of the names of Amazon Web Services services.</p>"
        },
        "AssociatedResourceArns":{
          "shape":"AssociatedResourceArns",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the Amazon Web Services resources that generated this insight.</p>"
        }
      },
      "documentation":"<p>Details about a proactive insight. This object is returned by <code>DescribeInsight.</code> </p>"
    },
    "ProactiveInsights":{
      "type":"list",
      "member":{"shape":"ProactiveInsightSummary"}
    },
    "ProactiveOrganizationInsightSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p>The ID of the insight summary.</p>"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the Amazon Web Services account.</p>"
        },
        "OrganizationalUnitId":{
          "shape":"OrganizationalUnitId",
          "documentation":"<p>The ID of the organizational unit.</p>"
        },
        "Name":{
          "shape":"InsightName",
          "documentation":"<p>The name of the insight summary.</p>"
        },
        "Severity":{
          "shape":"InsightSeverity",
          "documentation":"<p> An array of severity values used to search for insights. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"InsightStatus",
          "documentation":"<p> An array of status values used to search for insights. </p>"
        },
        "InsightTimeRange":{"shape":"InsightTimeRange"},
        "PredictionTimeRange":{"shape":"PredictionTimeRange"},
        "ResourceCollection":{"shape":"ResourceCollection"},
        "ServiceCollection":{"shape":"ServiceCollection"}
      },
      "documentation":"<p>Details about a proactive insight. This object is returned by <code>DescribeInsight</code>.</p>"
    },
    "ProactiveOrganizationInsights":{
      "type":"list",
      "member":{"shape":"ProactiveOrganizationInsightSummary"}
    },
    "PutFeedbackRequest":{
      "type":"structure",
      "members":{
        "InsightFeedback":{
          "shape":"InsightFeedback",
          "documentation":"<p> The feedback from customers is about the recommendations in this insight. </p>"
        }
      }
    },
    "PutFeedbackResponse":{
      "type":"structure",
      "members":{
      }
    },
    "ReactiveAnomalies":{
      "type":"list",
      "member":{"shape":"ReactiveAnomalySummary"}
    },
    "ReactiveAnomaly":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"AnomalyId",
          "documentation":"<p>The ID of the reactive anomaly. </p>"
        },
        "Severity":{
          "shape":"AnomalySeverity",
          "documentation":"<p>The severity of the anomaly. The severity of anomalies that generate an insight determine that insight's severity. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"AnomalyStatus",
          "documentation":"<p> The status of the anomaly. </p>"
        },
        "AnomalyTimeRange":{"shape":"AnomalyTimeRange"},
        "AnomalyReportedTimeRange":{
          "shape":"AnomalyReportedTimeRange",
          "documentation":"<p> An <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. </p>"
        },
        "SourceDetails":{
          "shape":"AnomalySourceDetails",
          "documentation":"<p> Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. </p>"
        },
        "AssociatedInsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight that contains this anomaly. An insight is composed of related anomalies. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"},
        "Type":{
          "shape":"AnomalyType",
          "documentation":"<p>The type of the reactive anomaly. It can be one of the following types.</p> <ul> <li> <p> <code>CAUSAL</code> - the anomaly can cause a new insight.</p> </li> <li> <p> <code>CONTEXTUAL</code> - the anomaly contains additional information about an insight or its causal anomaly.</p> </li> </ul>"
        },
        "Name":{
          "shape":"AnomalyName",
          "documentation":"<p>The name of the reactive anomaly.</p>"
        },
        "Description":{
          "shape":"AnomalyDescription",
          "documentation":"<p>A description of the reactive anomaly.</p>"
        },
        "CausalAnomalyId":{
          "shape":"AnomalyId",
          "documentation":"<p>The ID of the causal anomaly that is associated with this reactive anomaly. The ID of a `CAUSAL` anomaly is always `NULL`.</p>"
        },
        "AnomalyResources":{
          "shape":"AnomalyResources",
          "documentation":"<p>The Amazon Web Services resources in which anomalous behavior was detected by DevOps Guru.</p>"
        }
      },
      "documentation":"<p>Details about a reactive anomaly. This object is returned by <code>ListAnomalies</code>.</p>"
    },
    "ReactiveAnomalySummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"AnomalyId",
          "documentation":"<p> The ID of the reactive anomaly. </p>"
        },
        "Severity":{
          "shape":"AnomalySeverity",
          "documentation":"<p>The severity of the anomaly. The severity of anomalies that generate an insight determine that insight's severity. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"AnomalyStatus",
          "documentation":"<p> The status of the reactive anomaly. </p>"
        },
        "AnomalyTimeRange":{"shape":"AnomalyTimeRange"},
        "AnomalyReportedTimeRange":{
          "shape":"AnomalyReportedTimeRange",
          "documentation":"<p> An <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. </p>"
        },
        "SourceDetails":{
          "shape":"AnomalySourceDetails",
          "documentation":"<p> Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. </p>"
        },
        "AssociatedInsightId":{
          "shape":"InsightId",
          "documentation":"<p> The ID of the insight that contains this anomaly. An insight is composed of related anomalies. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"},
        "Type":{
          "shape":"AnomalyType",
          "documentation":"<p>The type of the reactive anomaly. It can be one of the following types.</p> <ul> <li> <p> <code>CAUSAL</code> - the anomaly can cause a new insight.</p> </li> <li> <p> <code>CONTEXTUAL</code> - the anomaly contains additional information about an insight or its causal anomaly.</p> </li> </ul>"
        },
        "Name":{
          "shape":"AnomalyName",
          "documentation":"<p>The name of the reactive anomaly.</p>"
        },
        "Description":{
          "shape":"AnomalyDescription",
          "documentation":"<p>A description of the reactive anomaly.</p>"
        },
        "CausalAnomalyId":{
          "shape":"AnomalyId",
          "documentation":"<p>The ID of the causal anomaly that is associated with this reactive anomaly. The ID of a `CAUSAL` anomaly is always `NULL`.</p>"
        },
        "AnomalyResources":{
          "shape":"AnomalyResources",
          "documentation":"<p>The Amazon Web Services resources in which anomalous behavior was detected by DevOps Guru.</p>"
        }
      },
      "documentation":"<p>Details about a reactive anomaly. This object is returned by <code>DescribeAnomaly.</code> </p>"
    },
    "ReactiveInsight":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p> The ID of a reactive insight. </p>"
        },
        "Name":{
          "shape":"InsightName",
          "documentation":"<p> The name of a reactive insight. </p>"
        },
        "Severity":{
          "shape":"InsightSeverity",
          "documentation":"<p>The severity of the insight. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"InsightStatus",
          "documentation":"<p> The status of a reactive insight. </p>"
        },
        "InsightTimeRange":{"shape":"InsightTimeRange"},
        "ResourceCollection":{"shape":"ResourceCollection"},
        "SsmOpsItemId":{
          "shape":"SsmOpsItemId",
          "documentation":"<p> The ID of the Amazon Web Services System Manager OpsItem created for this insight. You must enable the creation of OpstItems insights before they are created for each insight. </p>"
        },
        "Description":{
          "shape":"InsightDescription",
          "documentation":"<p>Describes the reactive insight.</p>"
        }
      },
      "documentation":"<p> Information about a reactive insight. This object is returned by <code>ListInsights</code>. </p>"
    },
    "ReactiveInsightSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p> The ID of a reactive summary. </p>"
        },
        "Name":{
          "shape":"InsightName",
          "documentation":"<p> The name of a reactive insight. </p>"
        },
        "Severity":{
          "shape":"InsightSeverity",
          "documentation":"<p>The severity of the insight. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"InsightStatus",
          "documentation":"<p> The status of a reactive insight. </p>"
        },
        "InsightTimeRange":{"shape":"InsightTimeRange"},
        "ResourceCollection":{"shape":"ResourceCollection"},
        "ServiceCollection":{
          "shape":"ServiceCollection",
          "documentation":"<p>A collection of the names of Amazon Web Services services.</p>"
        },
        "AssociatedResourceArns":{
          "shape":"AssociatedResourceArns",
          "documentation":"<p>The Amazon Resource Names (ARNs) of the Amazon Web Services resources that generated this insight.</p>"
        }
      },
      "documentation":"<p> Information about a reactive insight. This object is returned by <code>DescribeInsight.</code> </p>"
    },
    "ReactiveInsights":{
      "type":"list",
      "member":{"shape":"ReactiveInsightSummary"}
    },
    "ReactiveOrganizationInsightSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InsightId",
          "documentation":"<p>The ID of the insight summary.</p>"
        },
        "AccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        },
        "OrganizationalUnitId":{
          "shape":"OrganizationalUnitId",
          "documentation":"<p>The ID of the organizational unit.</p>"
        },
        "Name":{
          "shape":"InsightName",
          "documentation":"<p>The name of the insight summary.</p>"
        },
        "Severity":{
          "shape":"InsightSeverity",
          "documentation":"<p> An array of severity values used to search for insights. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a> in the <i>Amazon DevOps Guru User Guide</i>.</p>"
        },
        "Status":{
          "shape":"InsightStatus",
          "documentation":"<p> An array of status values used to search for insights. </p>"
        },
        "InsightTimeRange":{"shape":"InsightTimeRange"},
        "ResourceCollection":{"shape":"ResourceCollection"},
        "ServiceCollection":{"shape":"ServiceCollection"}
      },
      "documentation":"<p>Information about a reactive insight. This object is returned by <code>DescribeInsight</code>.</p>"
    },
    "ReactiveOrganizationInsights":{
      "type":"list",
      "member":{"shape":"ReactiveOrganizationInsightSummary"}
    },
    "Recommendation":{
      "type":"structure",
      "members":{
        "Description":{
          "shape":"RecommendationDescription",
          "documentation":"<p> A description of the problem. </p>"
        },
        "Link":{
          "shape":"RecommendationLink",
          "documentation":"<p> A hyperlink to information to help you address the problem. </p>"
        },
        "Name":{
          "shape":"RecommendationName",
          "documentation":"<p> The name of the recommendation. </p>"
        },
        "Reason":{
          "shape":"RecommendationReason",
          "documentation":"<p> The reason DevOps Guru flagged the anomalous behavior as a problem. </p>"
        },
        "RelatedEvents":{
          "shape":"RecommendationRelatedEvents",
          "documentation":"<p> Events that are related to the problem. Use these events to learn more about what's happening and to help address the issue. </p>"
        },
        "RelatedAnomalies":{
          "shape":"RecommendationRelatedAnomalies",
          "documentation":"<p> Anomalies that are related to the problem. Use these Anomalies to learn more about what's happening and to help address the issue. </p>"
        },
        "Category":{
          "shape":"RecommendationCategory",
          "documentation":"<p>The category type of the recommendation.</p>"
        }
      },
      "documentation":"<p> Recommendation information to help you remediate detected anomalous behavior that generated an insight. </p>"
    },
    "RecommendationCategory":{"type":"string"},
    "RecommendationDescription":{"type":"string"},
    "RecommendationLink":{"type":"string"},
    "RecommendationName":{"type":"string"},
    "RecommendationReason":{"type":"string"},
    "RecommendationRelatedAnomalies":{
      "type":"list",
      "member":{"shape":"RecommendationRelatedAnomaly"}
    },
    "RecommendationRelatedAnomaly":{
      "type":"structure",
      "members":{
        "Resources":{
          "shape":"RecommendationRelatedAnomalyResources",
          "documentation":"<p> An array of objects that represent resources in which DevOps Guru detected anomalous behavior. Each object contains the name and type of the resource. </p>"
        },
        "SourceDetails":{
          "shape":"RelatedAnomalySourceDetails",
          "documentation":"<p> Information about where the anomalous behavior related the recommendation was found. For example, details in Amazon CloudWatch metrics. </p>"
        },
        "AnomalyId":{
          "shape":"AnomalyId",
          "documentation":"<p>The ID of an anomaly that generated the insight with this recommendation.</p>"
        }
      },
      "documentation":"<p> Information about an anomaly that is related to a recommendation. </p>"
    },
    "RecommendationRelatedAnomalyResource":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"RecommendationRelatedAnomalyResourceName",
          "documentation":"<p> The name of the resource. </p>"
        },
        "Type":{
          "shape":"RecommendationRelatedAnomalyResourceType",
          "documentation":"<p> The type of the resource. Resource types take the same form that is used by Amazon Web Services CloudFormation resource type identifiers, <code>service-provider::service-name::data-type-name</code>. For example, <code>AWS::RDS::DBCluster</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\">Amazon Web Services resource and property types reference</a> in the <i>Amazon Web Services CloudFormation User Guide</i>.</p>"
        }
      },
      "documentation":"<p> Information about a resource in which DevOps Guru detected anomalous behavior. </p>"
    },
    "RecommendationRelatedAnomalyResourceName":{"type":"string"},
    "RecommendationRelatedAnomalyResourceType":{"type":"string"},
    "RecommendationRelatedAnomalyResources":{
      "type":"list",
      "member":{"shape":"RecommendationRelatedAnomalyResource"}
    },
    "RecommendationRelatedAnomalySourceDetail":{
      "type":"structure",
      "members":{
        "CloudWatchMetrics":{
          "shape":"RecommendationRelatedCloudWatchMetricsSourceDetails",
          "documentation":"<p> An array of <code>CloudWatchMetricsDetail</code> objects that contains information about the analyzed metrics that displayed anomalous behavior. </p>"
        }
      },
      "documentation":"<p> Contains an array of <code>RecommendationRelatedCloudWatchMetricsSourceDetail</code> objects that contain the name and namespace of an Amazon CloudWatch metric. </p>"
    },
    "RecommendationRelatedCloudWatchMetricsSourceDetail":{
      "type":"structure",
      "members":{
        "MetricName":{
          "shape":"RecommendationRelatedCloudWatchMetricsSourceMetricName",
          "documentation":"<p>The name of the CloudWatch metric.</p>"
        },
        "Namespace":{
          "shape":"RecommendationRelatedCloudWatchMetricsSourceNamespace",
          "documentation":"<p>The namespace of the CloudWatch metric. A namespace is a container for CloudWatch metrics.</p>"
        }
      },
      "documentation":"<p> Information about an Amazon CloudWatch metric that is analyzed by DevOps Guru. It is one of many analyzed metrics that are used to generate insights. </p>"
    },
    "RecommendationRelatedCloudWatchMetricsSourceDetails":{
      "type":"list",
      "member":{"shape":"RecommendationRelatedCloudWatchMetricsSourceDetail"}
    },
    "RecommendationRelatedCloudWatchMetricsSourceMetricName":{"type":"string"},
    "RecommendationRelatedCloudWatchMetricsSourceNamespace":{"type":"string"},
    "RecommendationRelatedEvent":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"RecommendationRelatedEventName",
          "documentation":"<p> The name of the event. This corresponds to the <code>Name</code> field in an <code>Event</code> object. </p>"
        },
        "Resources":{
          "shape":"RecommendationRelatedEventResources",
          "documentation":"<p> A <code>ResourceCollection</code> object that contains arrays of the names of Amazon Web Services CloudFormation stacks. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
        }
      },
      "documentation":"<p> Information about an event that is related to a recommendation. </p>"
    },
    "RecommendationRelatedEventName":{"type":"string"},
    "RecommendationRelatedEventResource":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"RecommendationRelatedEventResourceName",
          "documentation":"<p> The name of the resource that emitted the event. This corresponds to the <code>Name</code> field in an <code>EventResource</code> object. </p>"
        },
        "Type":{
          "shape":"RecommendationRelatedEventResourceType",
          "documentation":"<p> The type of the resource that emitted the event. This corresponds to the <code>Type</code> field in an <code>EventResource</code> object. </p>"
        }
      },
      "documentation":"<p> Information about an Amazon Web Services resource that emitted and event that is related to a recommendation in an insight. </p>"
    },
    "RecommendationRelatedEventResourceName":{"type":"string"},
    "RecommendationRelatedEventResourceType":{"type":"string"},
    "RecommendationRelatedEventResources":{
      "type":"list",
      "member":{"shape":"RecommendationRelatedEventResource"}
    },
    "RecommendationRelatedEvents":{
      "type":"list",
      "member":{"shape":"RecommendationRelatedEvent"}
    },
    "Recommendations":{
      "type":"list",
      "member":{"shape":"Recommendation"},
      "max":10,
      "min":0
    },
    "RelatedAnomalySourceDetails":{
      "type":"list",
      "member":{"shape":"RecommendationRelatedAnomalySourceDetail"}
    },
    "RemoveNotificationChannelRequest":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"NotificationChannelId",
          "documentation":"<p> The ID of the notification channel to be removed. </p>",
          "location":"uri",
          "locationName":"Id"
        }
      }
    },
    "RemoveNotificationChannelResponse":{
      "type":"structure",
      "members":{
      }
    },
    "ResourceArn":{
      "type":"string",
      "max":2048,
      "min":20
    },
    "ResourceCollection":{
      "type":"structure",
      "members":{
        "CloudFormation":{
          "shape":"CloudFormationCollection",
          "documentation":"<p> An array of the names of Amazon Web Services CloudFormation stacks. The stacks define Amazon Web Services resources that DevOps Guru analyzes. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
        },
        "Tags":{
          "shape":"TagCollections",
          "documentation":"<p>The Amazon Web Services tags that are used by resources in the resource collection.</p> <p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        }
      },
      "documentation":"<p> A collection of Amazon Web Services resources supported by DevOps Guru. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag <i>key</i>. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
    },
    "ResourceCollectionFilter":{
      "type":"structure",
      "members":{
        "CloudFormation":{
          "shape":"CloudFormationCollectionFilter",
          "documentation":"<p> Information about Amazon Web Services CloudFormation stacks. You can use up to 500 stacks to specify which Amazon Web Services resources in your account to analyze. For more information, see <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html\">Stacks</a> in the <i>Amazon Web Services CloudFormation User Guide</i>. </p>"
        },
        "Tags":{
          "shape":"TagCollectionFilters",
          "documentation":"<p>The Amazon Web Services tags used to filter the resources in the resource collection.</p> <p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        }
      },
      "documentation":"<p> Information about a filter used to specify which Amazon Web Services resources are analyzed for anomalous behavior by DevOps Guru. </p>"
    },
    "ResourceCollectionType":{
      "type":"string",
      "enum":[
        "AWS_CLOUD_FORMATION",
        "AWS_SERVICE",
        "AWS_TAGS"
      ]
    },
    "ResourceHours":{"type":"long"},
    "ResourceIdString":{"type":"string"},
    "ResourceIdType":{"type":"string"},
    "ResourceName":{"type":"string"},
    "ResourceNotFoundException":{
      "type":"structure",
      "required":[
        "Message",
        "ResourceId",
        "ResourceType"
      ],
      "members":{
        "Message":{"shape":"ErrorMessageString"},
        "ResourceId":{
          "shape":"ResourceIdString",
          "documentation":"<p> The ID of the Amazon Web Services resource that could not be found. </p>"
        },
        "ResourceType":{
          "shape":"ResourceIdType",
          "documentation":"<p> The type of the Amazon Web Services resource that could not be found. </p>"
        }
      },
      "documentation":"<p>A requested resource could not be found</p>",
      "error":{"httpStatusCode":404},
      "exception":true
    },
    "ResourcePermission":{
      "type":"string",
      "enum":[
        "FULL_PERMISSION",
        "MISSING_PERMISSION"
      ]
    },
    "ResourceType":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"^[a-zA-Z]+[a-zA-Z0-9-_:]*$"
    },
    "ResourceTypeFilter":{
      "type":"string",
      "enum":[
        "LOG_GROUPS",
        "CLOUDFRONT_DISTRIBUTION",
        "DYNAMODB_TABLE",
        "EC2_NAT_GATEWAY",
        "ECS_CLUSTER",
        "ECS_SERVICE",
        "EKS_CLUSTER",
        "ELASTIC_BEANSTALK_ENVIRONMENT",
        "ELASTIC_LOAD_BALANCER_LOAD_BALANCER",
        "ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER",
        "ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP",
        "ELASTICACHE_CACHE_CLUSTER",
        "ELASTICSEARCH_DOMAIN",
        "KINESIS_STREAM",
        "LAMBDA_FUNCTION",
        "OPEN_SEARCH_SERVICE_DOMAIN",
        "RDS_DB_INSTANCE",
        "RDS_DB_CLUSTER",
        "REDSHIFT_CLUSTER",
        "ROUTE53_HOSTED_ZONE",
        "ROUTE53_HEALTH_CHECK",
        "S3_BUCKET",
        "SAGEMAKER_ENDPOINT",
        "SNS_TOPIC",
        "SQS_QUEUE",
        "STEP_FUNCTIONS_ACTIVITY",
        "STEP_FUNCTIONS_STATE_MACHINE"
      ]
    },
    "ResourceTypeFilters":{
      "type":"list",
      "member":{"shape":"ResourceTypeFilter"}
    },
    "RetryAfterSeconds":{"type":"integer"},
    "SearchInsightsAccountIdList":{
      "type":"list",
      "member":{"shape":"AwsAccountId"},
      "max":1,
      "min":1
    },
    "SearchInsightsFilters":{
      "type":"structure",
      "members":{
        "Severities":{
          "shape":"InsightSeverities",
          "documentation":"<p> An array of severity values used to search for insights. </p>"
        },
        "Statuses":{
          "shape":"InsightStatuses",
          "documentation":"<p> An array of status values used to search for insights. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"},
        "ServiceCollection":{
          "shape":"ServiceCollection",
          "documentation":"<p>A collection of the names of Amazon Web Services services.</p>"
        }
      },
      "documentation":"<p>Specifies values used to filter responses when searching for insights. You can use a <code>ResourceCollection</code>, <code>ServiceCollection</code>, array of severities, and an array of status values. Each filter type contains one or more values to search for. If you specify multiple filter types, the filter types are joined with an <code>AND</code>, and the request returns only results that match all of the specified filters.</p>"
    },
    "SearchInsightsMaxResults":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "SearchInsightsRequest":{
      "type":"structure",
      "required":[
        "StartTimeRange",
        "Type"
      ],
      "members":{
        "StartTimeRange":{
          "shape":"StartTimeRange",
          "documentation":"<p> The start of the time range passed in. Returned insights occurred after this time. </p>"
        },
        "Filters":{
          "shape":"SearchInsightsFilters",
          "documentation":"<p> A <code>SearchInsightsFilters</code> object that is used to set the severity and status filters on your insight search. </p>"
        },
        "MaxResults":{
          "shape":"SearchInsightsMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        },
        "Type":{
          "shape":"InsightType",
          "documentation":"<p> The type of insights you are searching for (<code>REACTIVE</code> or <code>PROACTIVE</code>). </p>"
        }
      }
    },
    "SearchInsightsResponse":{
      "type":"structure",
      "members":{
        "ProactiveInsights":{
          "shape":"ProactiveInsights",
          "documentation":"<p> The returned proactive insights. </p>"
        },
        "ReactiveInsights":{
          "shape":"ReactiveInsights",
          "documentation":"<p> The returned reactive insights. </p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "SearchOrganizationInsightsFilters":{
      "type":"structure",
      "members":{
        "Severities":{
          "shape":"InsightSeverities",
          "documentation":"<p> An array of severity values used to search for insights. </p>"
        },
        "Statuses":{
          "shape":"InsightStatuses",
          "documentation":"<p> An array of status values used to search for insights. </p>"
        },
        "ResourceCollection":{"shape":"ResourceCollection"},
        "ServiceCollection":{"shape":"ServiceCollection"}
      },
      "documentation":"<p> Filters you can use to specify which events are returned when <code>ListEvents</code> is called. </p>"
    },
    "SearchOrganizationInsightsMaxResults":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "SearchOrganizationInsightsRequest":{
      "type":"structure",
      "required":[
        "AccountIds",
        "StartTimeRange",
        "Type"
      ],
      "members":{
        "AccountIds":{
          "shape":"SearchInsightsAccountIdList",
          "documentation":"<p>The ID of the Amazon Web Services account. </p>"
        },
        "StartTimeRange":{"shape":"StartTimeRange"},
        "Filters":{
          "shape":"SearchOrganizationInsightsFilters",
          "documentation":"<p> A <code>SearchOrganizationInsightsFilters</code> object that is used to set the severity and status filters on your insight search. </p>"
        },
        "MaxResults":{
          "shape":"SearchOrganizationInsightsMaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.</p>"
        },
        "Type":{
          "shape":"InsightType",
          "documentation":"<p> The type of insights you are searching for (<code>REACTIVE</code> or <code>PROACTIVE</code>). </p>"
        }
      }
    },
    "SearchOrganizationInsightsResponse":{
      "type":"structure",
      "members":{
        "ProactiveInsights":{
          "shape":"ProactiveInsights",
          "documentation":"<p>An integer that specifies the number of open proactive insights in your Amazon Web Services account.</p>"
        },
        "ReactiveInsights":{
          "shape":"ReactiveInsights",
          "documentation":"<p>An integer that specifies the number of open reactive insights in your Amazon Web Services account.</p>"
        },
        "NextToken":{
          "shape":"UuidNextToken",
          "documentation":"<p>The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.</p>"
        }
      }
    },
    "ServerSideEncryptionType":{
      "type":"string",
      "enum":[
        "CUSTOMER_MANAGED_KEY",
        "AWS_OWNED_KMS_KEY"
      ]
    },
    "ServiceCollection":{
      "type":"structure",
      "members":{
        "ServiceNames":{
          "shape":"ServiceNames",
          "documentation":"<p>An array of strings that each specifies the name of an Amazon Web Services service.</p>"
        }
      },
      "documentation":"<p>A collection of the names of Amazon Web Services services.</p>"
    },
    "ServiceHealth":{
      "type":"structure",
      "members":{
        "ServiceName":{
          "shape":"ServiceName",
          "documentation":"<p>The name of the Amazon Web Services service.</p>"
        },
        "Insight":{
          "shape":"ServiceInsightHealth",
          "documentation":"<p>Represents the health of an Amazon Web Services service. This is a <code>ServiceInsightHealth</code> that contains the number of open proactive and reactive insights for this service.</p>"
        },
        "AnalyzedResourceCount":{
          "shape":"AnalyzedResourceCount",
          "documentation":"<p> Number of resources that DevOps Guru is monitoring in an analyzed Amazon Web Services service. </p>"
        }
      },
      "documentation":"<p>Represents the health of an Amazon Web Services service.</p>"
    },
    "ServiceHealths":{
      "type":"list",
      "member":{"shape":"ServiceHealth"}
    },
    "ServiceInsightHealth":{
      "type":"structure",
      "members":{
        "OpenProactiveInsights":{
          "shape":"NumOpenProactiveInsights",
          "documentation":"<p>The number of open proactive insights in the Amazon Web Services service</p>"
        },
        "OpenReactiveInsights":{
          "shape":"NumOpenReactiveInsights",
          "documentation":"<p>The number of open reactive insights in the Amazon Web Services service</p>"
        }
      },
      "documentation":"<p>Contains the number of open proactive and reactive insights in an analyzed Amazon Web Services service.</p>"
    },
    "ServiceIntegrationConfig":{
      "type":"structure",
      "members":{
        "OpsCenter":{
          "shape":"OpsCenterIntegration",
          "documentation":"<p> Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight. </p>"
        },
        "LogsAnomalyDetection":{
          "shape":"LogsAnomalyDetectionIntegration",
          "documentation":"<p> Information about whether DevOps Guru is configured to perform log anomaly detection on Amazon CloudWatch log groups. </p>"
        },
        "KMSServerSideEncryption":{
          "shape":"KMSServerSideEncryptionIntegration",
          "documentation":"<p> Information about whether DevOps Guru is configured to encrypt server-side data using KMS. </p>"
        }
      },
      "documentation":"<p> Information about the integration of DevOps Guru with another Amazon Web Services service, such as Amazon Web Services Systems Manager. </p>"
    },
    "ServiceName":{
      "type":"string",
      "enum":[
        "API_GATEWAY",
        "APPLICATION_ELB",
        "AUTO_SCALING_GROUP",
        "CLOUD_FRONT",
        "DYNAMO_DB",
        "EC2",
        "ECS",
        "EKS",
        "ELASTIC_BEANSTALK",
        "ELASTI_CACHE",
        "ELB",
        "ES",
        "KINESIS",
        "LAMBDA",
        "NAT_GATEWAY",
        "NETWORK_ELB",
        "RDS",
        "REDSHIFT",
        "ROUTE_53",
        "S3",
        "SAGE_MAKER",
        "SNS",
        "SQS",
        "STEP_FUNCTIONS",
        "SWF"
      ]
    },
    "ServiceNames":{
      "type":"list",
      "member":{"shape":"ServiceName"}
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessageString"}
      },
      "documentation":"<p>The request contains a value that exceeds a maximum quota.</p>",
      "error":{"httpStatusCode":402},
      "exception":true
    },
    "ServiceResourceCost":{
      "type":"structure",
      "members":{
        "Type":{
          "shape":"ResourceType",
          "documentation":"<p>The type of the Amazon Web Services resource.</p>"
        },
        "State":{
          "shape":"CostEstimationServiceResourceState",
          "documentation":"<p>The state of the resource. The resource is <code>ACTIVE</code> if it produces metrics, events, or logs within an hour, otherwise it is <code>INACTIVE</code>. You pay for the number of active Amazon Web Services resource hours analyzed for each resource. Inactive resources are not charged. </p>"
        },
        "Count":{
          "shape":"CostEstimationServiceResourceCount",
          "documentation":"<p>The number of active resources analyzed for this service to create a monthly cost estimate.</p>"
        },
        "UnitCost":{
          "shape":"Cost",
          "documentation":"<p>The price per hour to analyze the resources in the service. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html\">Estimate your Amazon DevOps Guru costs</a> and <a href=\"http://aws.amazon.com/devops-guru/pricing/\">Amazon DevOps Guru pricing</a>.</p>"
        },
        "Cost":{
          "shape":"Cost",
          "documentation":"<p>The total estimated monthly cost to analyze the active resources for this resource.</p>"
        }
      },
      "documentation":"<p>An object that contains information about the estimated monthly cost to analyze an Amazon Web Services resource. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html\">Estimate your Amazon DevOps Guru costs</a> and <a href=\"http://aws.amazon.com/devops-guru/pricing/\">Amazon DevOps Guru pricing</a>.</p>"
    },
    "ServiceResourceCosts":{
      "type":"list",
      "member":{"shape":"ServiceResourceCost"}
    },
    "SnsChannelConfig":{
      "type":"structure",
      "members":{
        "TopicArn":{
          "shape":"TopicArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of an Amazon Simple Notification Service topic. </p>"
        }
      },
      "documentation":"<p> Contains the Amazon Resource Name (ARN) of an Amazon Simple Notification Service topic. </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
    },
    "SsmOpsItemId":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^.*$"
    },
    "StackName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[a-zA-Z*]+[a-zA-Z0-9-]*$"
    },
    "StackNames":{
      "type":"list",
      "member":{"shape":"StackName"}
    },
    "StartCostEstimationRequest":{
      "type":"structure",
      "required":["ResourceCollection"],
      "members":{
        "ResourceCollection":{
          "shape":"CostEstimationResourceCollectionFilter",
          "documentation":"<p>The collection of Amazon Web Services resources used to create a monthly DevOps Guru cost estimate.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>The idempotency token used to identify each cost estimate request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartCostEstimationResponse":{
      "type":"structure",
      "members":{
      }
    },
    "StartTimeRange":{
      "type":"structure",
      "members":{
        "FromTime":{
          "shape":"Timestamp",
          "documentation":"<p> The start time of the time range. </p>"
        },
        "ToTime":{
          "shape":"Timestamp",
          "documentation":"<p> The end time of the time range. </p>"
        }
      },
      "documentation":"<p> A time range used to specify when the behavior of an insight or anomaly started. </p>"
    },
    "TagCollection":{
      "type":"structure",
      "required":[
        "AppBoundaryKey",
        "TagValues"
      ],
      "members":{
        "AppBoundaryKey":{
          "shape":"AppBoundaryKey",
          "documentation":"<p>An Amazon Web Services tag <i>key</i> that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this <i>key</i> make up your DevOps Guru application and analysis boundary.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        },
        "TagValues":{
          "shape":"TagValues",
          "documentation":"<p>The values in an Amazon Web Services tag collection.</p> <p>The tag's <i>value</i> is an optional field used to associate a string with the tag <i>key</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). The <i>key</i> and <i>value</i> are the tag's <i>key</i> pair. Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive. You can specify a maximum of 256 characters for a tag value.</p>"
        }
      },
      "documentation":"<p>A collection of Amazon Web Services tags.</p> <p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
    },
    "TagCollectionFilter":{
      "type":"structure",
      "required":[
        "AppBoundaryKey",
        "TagValues"
      ],
      "members":{
        "AppBoundaryKey":{
          "shape":"AppBoundaryKey",
          "documentation":"<p>An Amazon Web Services tag <i>key</i> that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this <i>key</i> make up your DevOps Guru application and analysis boundary.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        },
        "TagValues":{
          "shape":"TagValues",
          "documentation":"<p>The values in an Amazon Web Services tag collection.</p> <p>The tag's <i>value</i> is an optional field used to associate a string with the tag <i>key</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). The <i>key</i> and <i>value</i> are the tag's <i>key</i> pair. Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive. You can specify a maximum of 256 characters for a tag value.</p>"
        }
      },
      "documentation":"<p>A collection of Amazon Web Services tags used to filter insights. This is used to return insights generated from only resources that contain the tags in the tag collection.</p>"
    },
    "TagCollectionFilters":{
      "type":"list",
      "member":{"shape":"TagCollectionFilter"}
    },
    "TagCollections":{
      "type":"list",
      "member":{"shape":"TagCollection"}
    },
    "TagCostEstimationResourceCollectionFilter":{
      "type":"structure",
      "required":[
        "AppBoundaryKey",
        "TagValues"
      ],
      "members":{
        "AppBoundaryKey":{
          "shape":"AppBoundaryKey",
          "documentation":"<p>An Amazon Web Services tag <i>key</i> that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this <i>key</i> make up your DevOps Guru application and analysis boundary.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        },
        "TagValues":{
          "shape":"CostEstimationTagValues",
          "documentation":"<p>The values in an Amazon Web Services tag collection.</p> <p>The tag's <i>value</i> is an optional field used to associate a string with the tag <i>key</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). The <i>key</i> and <i>value</i> are the tag's <i>key</i> pair. Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive. You can specify a maximum of 256 characters for a tag value.</p>"
        }
      },
      "documentation":"<p>Information about a collection of Amazon Web Services resources that are identified by an Amazon Web Services tag. This collection of resources is used to create a monthly cost estimate for DevOps Guru to analyze Amazon Web Services resources. The maximum number of tags you can specify for a cost estimate is one. The estimate created is for the cost to analyze the Amazon Web Services resources defined by the tag. For more information, see <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html\">Stacks</a> in the <i>Amazon Web Services CloudFormation User Guide</i>.</p>"
    },
    "TagCostEstimationResourceCollectionFilters":{
      "type":"list",
      "member":{"shape":"TagCostEstimationResourceCollectionFilter"}
    },
    "TagHealth":{
      "type":"structure",
      "members":{
        "AppBoundaryKey":{
          "shape":"AppBoundaryKey",
          "documentation":"<p>An Amazon Web Services tag <i>key</i> that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this <i>key</i> make up your DevOps Guru application and analysis boundary.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        },
        "TagValue":{
          "shape":"TagValue",
          "documentation":"<p>The value in an Amazon Web Services tag.</p> <p>The tag's <i>value</i> is an optional field used to associate a string with the tag <i>key</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). The <i>key</i> and <i>value</i> are the tag's <i>key</i> pair. Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive. You can specify a maximum of 256 characters for a tag value.</p>"
        },
        "Insight":{
          "shape":"InsightHealth",
          "documentation":"<p>Information about the health of the Amazon Web Services resources in your account that are specified by an Amazon Web Services tag, including the number of open proactive, open reactive insights, and the Mean Time to Recover (MTTR) of closed insights. </p>"
        },
        "AnalyzedResourceCount":{
          "shape":"AnalyzedResourceCount",
          "documentation":"<p> Number of resources that DevOps Guru is monitoring in your account that are specified by an Amazon Web Services tag. </p>"
        }
      },
      "documentation":"<p> Information about the health of Amazon Web Services resources in your account that are specified by an Amazon Web Services tag <i>key</i>. </p>"
    },
    "TagHealths":{
      "type":"list",
      "member":{"shape":"TagHealth"}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*|\\*)$"
    },
    "TagValues":{
      "type":"list",
      "member":{"shape":"TagValue"}
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"ErrorMessageString"},
        "QuotaCode":{
          "shape":"ErrorQuotaCodeString",
          "documentation":"<p> The code of the quota that was exceeded, causing the throttling exception. </p>"
        },
        "ServiceCode":{
          "shape":"ErrorServiceCodeString",
          "documentation":"<p> The code of the service that caused the throttling exception. </p>"
        },
        "RetryAfterSeconds":{
          "shape":"RetryAfterSeconds",
          "documentation":"<p> The number of seconds after which the action that caused the throttling exception can be retried. </p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>The request was denied due to a request throttling.</p>",
      "error":{"httpStatusCode":429},
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "TimestampMetricValuePair":{
      "type":"structure",
      "members":{
        "Timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>A <code>Timestamp</code> that specifies the time the event occurred. </p>"
        },
        "MetricValue":{
          "shape":"MetricValue",
          "documentation":"<p>Value of the anomalous metric data point at respective Timestamp.</p>"
        }
      },
      "documentation":"<p>A pair that contains metric values at the respective timestamp.</p>"
    },
    "TimestampMetricValuePairList":{
      "type":"list",
      "member":{"shape":"TimestampMetricValuePair"}
    },
    "TopicArn":{
      "type":"string",
      "max":1024,
      "min":36,
      "pattern":"^arn:aws[a-z0-9-]*:sns:[a-z0-9-]+:\\d{12}:[^:]+$"
    },
    "UpdateCloudFormationCollectionFilter":{
      "type":"structure",
      "members":{
        "StackNames":{
          "shape":"UpdateStackNames",
          "documentation":"<p> An array of the names of the Amazon Web Services CloudFormation stacks to update. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
        }
      },
      "documentation":"<p> Contains the names of Amazon Web Services CloudFormation stacks used to update a collection of stacks. You can specify up to 500 Amazon Web Services CloudFormation stacks.</p>"
    },
    "UpdateEventSourcesConfigRequest":{
      "type":"structure",
      "members":{
        "EventSources":{
          "shape":"EventSourcesConfig",
          "documentation":"<p>Configuration information about the integration of DevOps Guru as the Consumer via EventBridge with another AWS Service.</p>"
        }
      }
    },
    "UpdateEventSourcesConfigResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateResourceCollectionAction":{
      "type":"string",
      "enum":[
        "ADD",
        "REMOVE"
      ]
    },
    "UpdateResourceCollectionFilter":{
      "type":"structure",
      "members":{
        "CloudFormation":{
          "shape":"UpdateCloudFormationCollectionFilter",
          "documentation":"<p> A collection of Amazon Web Services CloudFormation stacks. You can specify up to 500 Amazon Web Services CloudFormation stacks. </p>"
        },
        "Tags":{
          "shape":"UpdateTagCollectionFilters",
          "documentation":"<p>The updated Amazon Web Services tags used to filter the resources in the resource collection.</p> <p>Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html\">Tagging best practices</a> whitepaper. </p> <p>Each Amazon Web Services tag has two parts. </p> <ul> <li> <p>A tag <i>key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag <i>keys</i> are case-sensitive.</p> </li> <li> <p>An optional field known as a tag <i>value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive.</p> </li> </ul> <p>Together these are known as <i>key</i>-<i>value</i> pairs.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        }
      },
      "documentation":"<p> Contains information used to update a collection of Amazon Web Services resources. </p>"
    },
    "UpdateResourceCollectionRequest":{
      "type":"structure",
      "required":[
        "Action",
        "ResourceCollection"
      ],
      "members":{
        "Action":{
          "shape":"UpdateResourceCollectionAction",
          "documentation":"<p> Specifies if the resource collection in the request is added or deleted to the resource collection. </p>"
        },
        "ResourceCollection":{"shape":"UpdateResourceCollectionFilter"}
      }
    },
    "UpdateResourceCollectionResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateServiceIntegrationConfig":{
      "type":"structure",
      "members":{
        "OpsCenter":{"shape":"OpsCenterIntegrationConfig"},
        "LogsAnomalyDetection":{
          "shape":"LogsAnomalyDetectionIntegrationConfig",
          "documentation":"<p> Information about whether DevOps Guru is configured to perform log anomaly detection on Amazon CloudWatch log groups. </p>"
        },
        "KMSServerSideEncryption":{
          "shape":"KMSServerSideEncryptionIntegrationConfig",
          "documentation":"<p> Information about whether DevOps Guru is configured to encrypt server-side data using KMS. </p>"
        }
      },
      "documentation":"<p> Information about updating the integration status of an Amazon Web Services service, such as Amazon Web Services Systems Manager, with DevOps Guru. </p>"
    },
    "UpdateServiceIntegrationRequest":{
      "type":"structure",
      "required":["ServiceIntegration"],
      "members":{
        "ServiceIntegration":{
          "shape":"UpdateServiceIntegrationConfig",
          "documentation":"<p> An <code>IntegratedServiceConfig</code> object used to specify the integrated service you want to update, and whether you want to update it to enabled or disabled. </p>"
        }
      }
    },
    "UpdateServiceIntegrationResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateStackNames":{
      "type":"list",
      "member":{"shape":"StackName"},
      "max":100,
      "min":0
    },
    "UpdateTagCollectionFilter":{
      "type":"structure",
      "required":[
        "AppBoundaryKey",
        "TagValues"
      ],
      "members":{
        "AppBoundaryKey":{
          "shape":"AppBoundaryKey",
          "documentation":"<p>An Amazon Web Services tag <i>key</i> that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this <i>key</i> make up your DevOps Guru application and analysis boundary.</p> <important> <p>The string used for a <i>key</i> in a tag that you use to define your resource coverage must begin with the prefix <code>Devops-guru-</code>. The tag <i>key</i> might be <code>DevOps-Guru-deployment-application</code> or <code>devops-guru-rds-application</code>. When you create a <i>key</i>, the case of characters in the <i>key</i> can be whatever you choose. After you create a <i>key</i>, it is case-sensitive. For example, DevOps Guru works with a <i>key</i> named <code>devops-guru-rds</code> and a <i>key</i> named <code>DevOps-Guru-RDS</code>, and these act as two different <i>keys</i>. Possible <i>key</i>/<i>value</i> pairs in your application might be <code>Devops-Guru-production-application/RDS</code> or <code>Devops-Guru-production-application/containers</code>.</p> </important>"
        },
        "TagValues":{
          "shape":"UpdateTagValues",
          "documentation":"<p>The values in an Amazon Web Services tag collection.</p> <p>The tag's <i>value</i> is an optional field used to associate a string with the tag <i>key</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). The <i>key</i> and <i>value</i> are the tag's <i>key</i> pair. Omitting the tag <i>value</i> is the same as using an empty string. Like tag <i>keys</i>, tag <i>values</i> are case-sensitive. You can specify a maximum of 256 characters for a tag value.</p>"
        }
      },
      "documentation":"<p>A new collection of Amazon Web Services resources that are defined by an Amazon Web Services tag or tag <i>key</i>/<i>value</i> pair.</p>"
    },
    "UpdateTagCollectionFilters":{
      "type":"list",
      "member":{"shape":"UpdateTagCollectionFilter"}
    },
    "UpdateTagValues":{
      "type":"list",
      "member":{"shape":"TagValue"},
      "max":100,
      "min":0
    },
    "UuidNextToken":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
    },
    "ValidationException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{
          "shape":"ErrorMessageString",
          "documentation":"<p> A message that describes the validation exception. </p>"
        },
        "Reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p> The reason the validation exception was thrown. </p>"
        },
        "Fields":{"shape":"ValidationExceptionFields"}
      },
      "documentation":"<p> Contains information about data passed in to a field during a request that is not valid. </p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "Name",
        "Message"
      ],
      "members":{
        "Name":{
          "shape":"ErrorNameString",
          "documentation":"<p> The name of the field. </p>"
        },
        "Message":{
          "shape":"ErrorMessageString",
          "documentation":"<p> The message associated with the validation exception with information to help determine its cause. </p>"
        }
      },
      "documentation":"<p> The field associated with the validation exception. </p>"
    },
    "ValidationExceptionFields":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"},
      "documentation":"<p> An array of fields that are associated with the validation exception. </p>"
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "UNKNOWN_OPERATION",
        "CANNOT_PARSE",
        "FIELD_VALIDATION_FAILED",
        "OTHER",
        "INVALID_PARAMETER_COMBINATION",
        "PARAMETER_INCONSISTENT_WITH_SERVICE_STATE"
      ]
    }
  },
  "documentation":"<p> Amazon DevOps Guru is a fully managed service that helps you identify anomalous behavior in business critical operational applications. You specify the Amazon Web Services resources that you want DevOps Guru to cover, then the Amazon CloudWatch metrics and Amazon Web Services CloudTrail events related to those resources are analyzed. When anomalous behavior is detected, DevOps Guru creates an <i>insight</i> that includes recommendations, related events, and related metrics that can help you improve your operational applications. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html\">What is Amazon DevOps Guru</a>. </p> <p> You can specify 1 or 2 Amazon Simple Notification Service topics so you are notified every time a new insight is created. You can also enable DevOps Guru to generate an OpsItem in Amazon Web Services Systems Manager for each insight to help you manage and track your work addressing insights. </p> <p> To learn about the DevOps Guru workflow, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html#how-it-works\">How DevOps Guru works</a>. To learn about DevOps Guru concepts, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/concepts.html\">Concepts in DevOps Guru</a>. </p>"
}
