diff --git a/apis/devops-guru/2020-12-01/api-2.json b/apis/devops-guru/2020-12-01/api-2.json index 64d3b9af1c3..ae0dcaadf5c 100644 --- a/apis/devops-guru/2020-12-01/api-2.json +++ b/apis/devops-guru/2020-12-01/api-2.json @@ -224,6 +224,7 @@ "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ] @@ -279,6 +280,23 @@ {"shape":"ValidationException"} ] }, + "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"} + ] + }, "ListEvents":{ "name":"ListEvents", "http":{ @@ -312,6 +330,22 @@ {"shape":"ValidationException"} ] }, + "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"} + ] + }, "ListNotificationChannels":{ "name":"ListNotificationChannels", "http":{ @@ -552,6 +586,20 @@ "Status":{"shape":"EventSourceOptInStatus"} } }, + "AnomalousLogGroup":{ + "type":"structure", + "members":{ + "LogGroupName":{"shape":"LogGroupName"}, + "ImpactStartTime":{"shape":"Timestamp"}, + "ImpactEndTime":{"shape":"Timestamp"}, + "NumberOfLogLinesScanned":{"shape":"NumberOfLogLinesScanned"}, + "LogAnomalyShowcases":{"shape":"LogAnomalyShowcases"} + } + }, + "AnomalousLogGroups":{ + "type":"list", + "member":{"shape":"AnomalousLogGroup"} + }, "AnomalyDescription":{"type":"string"}, "AnomalyId":{ "type":"string", @@ -1139,6 +1187,11 @@ "type":"list", "member":{"shape":"Event"} }, + "Explanation":{ + "type":"string", + "max":2048, + "min":1 + }, "GetCostEstimationRequest":{ "type":"structure", "members":{ @@ -1306,6 +1359,32 @@ "NextToken":{"shape":"UuidNextToken"} } }, + "ListAnomalousLogGroupsMaxResults":{ + "type":"integer", + "max":200, + "min":1 + }, + "ListAnomalousLogGroupsRequest":{ + "type":"structure", + "required":["InsightId"], + "members":{ + "InsightId":{"shape":"InsightId"}, + "MaxResults":{"shape":"ListAnomalousLogGroupsMaxResults"}, + "NextToken":{"shape":"UuidNextToken"} + } + }, + "ListAnomalousLogGroupsResponse":{ + "type":"structure", + "required":[ + "InsightId", + "AnomalousLogGroups" + ], + "members":{ + "InsightId":{"shape":"InsightId"}, + "AnomalousLogGroups":{"shape":"AnomalousLogGroups"}, + "NextToken":{"shape":"UuidNextToken"} + } + }, "ListEventsFilters":{ "type":"structure", "members":{ @@ -1411,6 +1490,39 @@ "Any":{"shape":"ListInsightsAnyStatusFilter"} } }, + "ListMonitoredResourcesFilters":{ + "type":"structure", + "required":[ + "ResourcePermission", + "ResourceTypeFilters" + ], + "members":{ + "ResourcePermission":{"shape":"ResourcePermission"}, + "ResourceTypeFilters":{"shape":"ResourceTypeFilters"} + } + }, + "ListMonitoredResourcesMaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "ListMonitoredResourcesRequest":{ + "type":"structure", + "required":["Filters"], + "members":{ + "Filters":{"shape":"ListMonitoredResourcesFilters"}, + "MaxResults":{"shape":"ListMonitoredResourcesMaxResults"}, + "NextToken":{"shape":"UuidNextToken"} + } + }, + "ListMonitoredResourcesResponse":{ + "type":"structure", + "required":["MonitoredResourceIdentifiers"], + "members":{ + "MonitoredResourceIdentifiers":{"shape":"MonitoredResourceIdentifiers"}, + "NextToken":{"shape":"UuidNextToken"} + } + }, "ListNotificationChannelsRequest":{ "type":"structure", "members":{ @@ -1476,8 +1588,101 @@ "ZH_TW" ] }, + "LogAnomalyClass":{ + "type":"structure", + "members":{ + "LogStreamName":{"shape":"LogStreamName"}, + "LogAnomalyType":{"shape":"LogAnomalyType"}, + "LogAnomalyToken":{"shape":"LogAnomalyToken"}, + "LogEventId":{"shape":"LogEventId"}, + "Explanation":{"shape":"Explanation"}, + "NumberOfLogLinesOccurrences":{"shape":"NumberOfLogLinesOccurrences"}, + "LogEventTimestamp":{"shape":"Timestamp"} + } + }, + "LogAnomalyClasses":{ + "type":"list", + "member":{"shape":"LogAnomalyClass"}, + "max":10, + "min":0 + }, + "LogAnomalyShowcase":{ + "type":"structure", + "members":{ + "LogAnomalyClasses":{"shape":"LogAnomalyClasses"} + } + }, + "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"} + } + }, + "LogsAnomalyDetectionIntegrationConfig":{ + "type":"structure", + "members":{ + "OptInStatus":{"shape":"OptInStatus"} + } + }, "MeanTimeToRecoverInMilliseconds":{"type":"long"}, "MetricValue":{"type":"double"}, + "MonitoredResourceIdentifier":{ + "type":"structure", + "members":{ + "MonitoredResourceName":{"shape":"MonitoredResourceName"}, + "Type":{"shape":"ResourceType"}, + "ResourcePermission":{"shape":"ResourcePermission"} + } + }, + "MonitoredResourceIdentifiers":{ + "type":"list", + "member":{"shape":"MonitoredResourceIdentifier"} + }, + "MonitoredResourceName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_\\/#A-Za-z0-9]+" + }, "NotificationChannel":{ "type":"structure", "members":{ @@ -1503,6 +1708,8 @@ "NumOpenReactiveInsights":{"type":"integer"}, "NumProactiveInsights":{"type":"integer"}, "NumReactiveInsights":{"type":"integer"}, + "NumberOfLogLinesOccurrences":{"type":"integer"}, + "NumberOfLogLinesScanned":{"type":"integer"}, "OpsCenterIntegration":{ "type":"structure", "members":{ @@ -2003,12 +2210,27 @@ "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"] + }, + "ResourceTypeFilters":{ + "type":"list", + "member":{"shape":"ResourceTypeFilter"} + }, "RetryAfterSeconds":{"type":"integer"}, "SearchInsightsAccountIdList":{ "type":"list", @@ -2117,7 +2339,8 @@ "ServiceIntegrationConfig":{ "type":"structure", "members":{ - "OpsCenter":{"shape":"OpsCenterIntegration"} + "OpsCenter":{"shape":"OpsCenterIntegration"}, + "LogsAnomalyDetection":{"shape":"LogsAnomalyDetectionIntegration"} } }, "ServiceName":{ @@ -2372,7 +2595,8 @@ "UpdateServiceIntegrationConfig":{ "type":"structure", "members":{ - "OpsCenter":{"shape":"OpsCenterIntegrationConfig"} + "OpsCenter":{"shape":"OpsCenterIntegrationConfig"}, + "LogsAnomalyDetection":{"shape":"LogsAnomalyDetectionIntegrationConfig"} } }, "UpdateServiceIntegrationRequest":{ diff --git a/apis/devops-guru/2020-12-01/docs-2.json b/apis/devops-guru/2020-12-01/docs-2.json index 81b4512e583..39a9fd0d05a 100644 --- a/apis/devops-guru/2020-12-01/docs-2.json +++ b/apis/devops-guru/2020-12-01/docs-2.json @@ -18,8 +18,10 @@ "GetCostEstimation": "
Returns an estimate of the monthly cost for DevOps Guru to analyze your Amazon Web Services resources. For more information, see Estimate your Amazon DevOps Guru costs and Amazon DevOps Guru pricing.
", "GetResourceCollection": "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 key. You can specify up to 500 Amazon Web Services CloudFormation stacks.
", "ListAnomaliesForInsight": "Returns a list of the anomalies that belong to an insight that you specify using its ID.
", + "ListAnomalousLogGroups": "Returns the list of log groups that contain log anomalies.
", "ListEvents": "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.
", "ListInsights": " Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time and status (ONGOING
, CLOSED
, or ANY
).
Returns the list of all log groups that are being monitored and tagged by DevOps Guru.
", "ListNotificationChannels": "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).
", "ListOrganizationInsights": "Returns a list of insights associated with the account or OU Id.
", "ListRecommendations": "Returns a list of a specified insight's recommendations. Each recommendation includes a list of related metrics and a list of related events.
", @@ -80,6 +82,18 @@ "EventSourcesConfig$AmazonCodeGuruProfiler": "Information about whether DevOps Guru is configured to consume recommendations which are generated from AWS CodeGuru Profiler.
" } }, + "AnomalousLogGroup": { + "base": "An Amazon CloudWatch log group that contains log anomalies and is used to generate an insight.
", + "refs": { + "AnomalousLogGroups$member": null + } + }, + "AnomalousLogGroups": { + "base": null, + "refs": { + "ListAnomalousLogGroupsResponse$AnomalousLogGroups": "The list of Amazon CloudWatch log groups that are related to an insight.
" + } + }, "AnomalyDescription": { "base": null, "refs": { @@ -295,7 +309,7 @@ } }, "CloudWatchMetricsDimension": { - "base": "The dimension of am 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 Dimensions in the Amazon CloudWatch User Guide.
", + "base": "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 Dimensions in the Amazon CloudWatch User Guide.
", "refs": { "CloudWatchMetricsDimensions$member": null } @@ -655,6 +669,12 @@ "ListEventsResponse$Events": "A list of the requested events.
" } }, + "Explanation": { + "base": null, + "refs": { + "LogAnomalyClass$Explanation": "The explanation for why the log event is considered an anomaly.
" + } + }, "GetCostEstimationRequest": { "base": null, "refs": { @@ -710,6 +730,8 @@ "DescribeInsightRequest$Id": "The ID of the insight.
", "InsightFeedback$Id": "The insight feedback ID.
", "ListAnomaliesForInsightRequest$InsightId": "The ID of the insight. The returned anomalies belong to this insight.
", + "ListAnomalousLogGroupsRequest$InsightId": "The ID of the insight containing the log groups.
", + "ListAnomalousLogGroupsResponse$InsightId": "The ID of the insight containing the log groups.
", "ListEventsFilters$InsightId": "An ID of an insight that is related to the events you want to filter for.
", "ListRecommendationsRequest$InsightId": "The ID of the requested insight.
", "ProactiveAnomaly$AssociatedInsightId": "The ID of the insight that contains this anomaly. An insight is composed of related anomalies.
", @@ -815,6 +837,22 @@ "refs": { } }, + "ListAnomalousLogGroupsMaxResults": { + "base": null, + "refs": { + "ListAnomalousLogGroupsRequest$MaxResults": "The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
Filters you can use to specify which events are returned when ListEvents
is called.
Filters to determine which monitored resources you want to retrieve. You can filter by resource type or resource permission status.
", + "refs": { + "ListMonitoredResourcesRequest$Filters": "Filters to determine which monitored resources you want to retrieve. You can filter by resource type or resource permission status.
" + } + }, + "ListMonitoredResourcesMaxResults": { + "base": null, + "refs": { + "ListMonitoredResourcesRequest$MaxResults": "The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
A locale that specifies the language to use for recommendations.
" } }, + "LogAnomalyClass": { + "base": "Information about an anomalous log event found within a log group.
", + "refs": { + "LogAnomalyClasses$member": null + } + }, + "LogAnomalyClasses": { + "base": null, + "refs": { + "LogAnomalyShowcase$LogAnomalyClasses": "A list of anomalous log events that may be related.
" + } + }, + "LogAnomalyShowcase": { + "base": "A cluster of similar anomalous log events found within a log group.
", + "refs": { + "LogAnomalyShowcases$member": null + } + }, + "LogAnomalyShowcases": { + "base": null, + "refs": { + "AnomalousLogGroup$LogAnomalyShowcases": "The log anomalies in the log group. Each log anomaly displayed represents a cluster of similar anomalous log events.
" + } + }, + "LogAnomalyToken": { + "base": null, + "refs": { + "LogAnomalyClass$LogAnomalyToken": "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.
" + } + }, + "LogAnomalyType": { + "base": null, + "refs": { + "LogAnomalyClass$LogAnomalyType": "The type of log anomaly that has been detected.
" + } + }, + "LogEventId": { + "base": null, + "refs": { + "LogAnomalyClass$LogEventId": "The ID of the log event.
" + } + }, + "LogGroupName": { + "base": null, + "refs": { + "AnomalousLogGroup$LogGroupName": "The name of the CloudWatch log group.
" + } + }, + "LogStreamName": { + "base": null, + "refs": { + "LogAnomalyClass$LogStreamName": "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.
" + } + }, + "LogsAnomalyDetectionIntegration": { + "base": "Information about the integration of DevOps Guru with CloudWatch log groups for log anomaly detection.
", + "refs": { + "ServiceIntegrationConfig$LogsAnomalyDetection": "Information about whether DevOps Guru is configured to perform log anomaly detection on Amazon CloudWatch log groups.
" + } + }, + "LogsAnomalyDetectionIntegrationConfig": { + "base": "Information about the integration of DevOps Guru with CloudWatch log groups for log anomaly detection. You can use this to update the configuration.
", + "refs": { + "UpdateServiceIntegrationConfig$LogsAnomalyDetection": "Information about whether DevOps Guru is configured to perform log anomaly detection on Amazon CloudWatch log groups.
" + } + }, "MeanTimeToRecoverInMilliseconds": { "base": null, "refs": { @@ -940,6 +1066,24 @@ "TimestampMetricValuePair$MetricValue": "Value of the anomalous metric data point at respective Timestamp.
" } }, + "MonitoredResourceIdentifier": { + "base": "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.
", + "refs": { + "MonitoredResourceIdentifiers$member": null + } + }, + "MonitoredResourceIdentifiers": { + "base": null, + "refs": { + "ListMonitoredResourcesResponse$MonitoredResourceIdentifiers": "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.
" + } + }, + "MonitoredResourceName": { + "base": null, + "refs": { + "MonitoredResourceIdentifier$MonitoredResourceName": "The name of the resource being monitored.
" + } + }, "NotificationChannel": { "base": "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).
If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to 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 Permissions for cross account Amazon SNS topics.
If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see Permissions for cross account Amazon SNS topics.
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 Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics.
", "refs": { @@ -1002,6 +1146,18 @@ "DescribeOrganizationOverviewResponse$ReactiveInsights": "An integer that specifies the number of open reactive insights in your Amazon Web Services account.
" } }, + "NumberOfLogLinesOccurrences": { + "base": null, + "refs": { + "LogAnomalyClass$NumberOfLogLinesOccurrences": "The number of log lines where this anomalous log event occurs.
" + } + }, + "NumberOfLogLinesScanned": { + "base": null, + "refs": { + "AnomalousLogGroup$NumberOfLogLinesScanned": "The number of log lines that were scanned for anomalous log events.
" + } + }, "OpsCenterIntegration": { "base": "Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight.
", "refs": { @@ -1009,7 +1165,7 @@ } }, "OpsCenterIntegrationConfig": { - "base": "Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight.
", + "base": "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.
", "refs": { "UpdateServiceIntegrationConfig$OpsCenter": null } @@ -1017,6 +1173,8 @@ "OptInStatus": { "base": "Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight.
", "refs": { + "LogsAnomalyDetectionIntegration$OptInStatus": "Specifies if DevOps Guru is configured to perform log anomaly detection on CloudWatch log groups.
", + "LogsAnomalyDetectionIntegrationConfig$OptInStatus": "Specifies if DevOps Guru is configured to perform log anomaly detection on CloudWatch log groups.
", "OpsCenterIntegration$OptInStatus": "Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight.
", "OpsCenterIntegrationConfig$OptInStatus": "Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight.
" } @@ -1554,14 +1712,34 @@ "refs": { } }, + "ResourcePermission": { + "base": null, + "refs": { + "ListMonitoredResourcesFilters$ResourcePermission": "The permission status of a resource.
", + "MonitoredResourceIdentifier$ResourcePermission": "The permission status of a resource.
" + } + }, "ResourceType": { "base": null, "refs": { "AnomalyResource$Type": "The type of the Amazon Web Services resource.
", "AnomalySourceMetadata$SourceResourceType": "The anomaly's resource type.
", + "MonitoredResourceIdentifier$Type": "The type of resource being monitored.
", "ServiceResourceCost$Type": "The type of the Amazon Web Services resource.
" } }, + "ResourceTypeFilter": { + "base": null, + "refs": { + "ResourceTypeFilters$member": null + } + }, + "ResourceTypeFilters": { + "base": null, + "refs": { + "ListMonitoredResourcesFilters$ResourceTypeFilters": "The type of resource that you wish to retrieve, such as log groups.
" + } + }, "RetryAfterSeconds": { "base": null, "refs": { @@ -1806,6 +1984,8 @@ "Timestamp": { "base": null, "refs": { + "AnomalousLogGroup$ImpactStartTime": "The time the anomalous log events began. The impact start time indicates the time of the first log anomaly event that occurs.
", + "AnomalousLogGroup$ImpactEndTime": "The time the anomalous log events stopped.
", "AnomalyReportedTimeRange$OpenTime": "The time when an anomaly is opened.
", "AnomalyReportedTimeRange$CloseTime": "The time when an anomaly is closed.
", "AnomalyTimeRange$StartTime": "The time when the anomalous behavior started.
", @@ -1823,6 +2003,7 @@ "EventTimeRange$ToTime": "The time when the event ended.
", "InsightTimeRange$StartTime": "The time when the behavior described in an insight started.
", "InsightTimeRange$EndTime": "The time when the behavior described in an insight ended.
", + "LogAnomalyClass$LogEventTimestamp": "The time of the first occurrence of the anomalous log event.
", "PredictionTimeRange$StartTime": "The time range during which a metric limit is expected to be exceeded. This applies to proactive insights only.
", "PredictionTimeRange$EndTime": "The time when the behavior in a proactive insight is expected to end.
", "ProactiveAnomaly$UpdateTime": "The time of the anomaly's most recent update.
", @@ -1941,10 +2122,14 @@ "GetResourceCollectionResponse$NextToken": "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.
", "ListAnomaliesForInsightRequest$NextToken": "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.
", "ListAnomaliesForInsightResponse$NextToken": "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.
", + "ListAnomalousLogGroupsRequest$NextToken": "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.
", + "ListAnomalousLogGroupsResponse$NextToken": "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.
", "ListEventsRequest$NextToken": "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.
", "ListEventsResponse$NextToken": "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.
", "ListInsightsRequest$NextToken": "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.
", "ListInsightsResponse$NextToken": "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.
", + "ListMonitoredResourcesRequest$NextToken": "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.
", + "ListMonitoredResourcesResponse$NextToken": "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.
", "ListNotificationChannelsRequest$NextToken": "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.
", "ListNotificationChannelsResponse$NextToken": "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.
", "ListOrganizationInsightsRequest$NextToken": "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.
", diff --git a/apis/devops-guru/2020-12-01/paginators-1.json b/apis/devops-guru/2020-12-01/paginators-1.json index e3241ed94db..bf3b700e7ae 100644 --- a/apis/devops-guru/2020-12-01/paginators-1.json +++ b/apis/devops-guru/2020-12-01/paginators-1.json @@ -52,6 +52,15 @@ "ProactiveAnomalies" ] }, + "ListAnomalousLogGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": [ + "InsightId", + "AnomalousLogGroups" + ] + }, "ListEvents": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -67,6 +76,14 @@ "ReactiveInsights" ] }, + "ListMonitoredResources": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": [ + "MonitoredResourceIdentifiers" + ] + }, "ListNotificationChannels": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/apis/glue/2017-03-31/docs-2.json b/apis/glue/2017-03-31/docs-2.json index e073d3b5738..1c4e17266a4 100644 --- a/apis/glue/2017-03-31/docs-2.json +++ b/apis/glue/2017-03-31/docs-2.json @@ -5067,7 +5067,7 @@ "GetMLTransformResponse$MaxCapacity": "The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.
When the WorkerType
field is set to a value other than Standard
, the MaxCapacity
field is set automatically and becomes read-only.
For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.
Do not set Max Capacity
if using WorkerType
and NumberOfWorkers
.
The value that can be allocated for MaxCapacity
depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:
When you specify a Python shell job (JobCommand.Name
=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
When you specify an Apache Spark ETL job (JobCommand.Name
=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name
=\"gluestreaming\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity
. Instead, you should specify a Worker type
and the Number of workers
.
The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.
Do not set Max Capacity
if using WorkerType
and NumberOfWorkers
.
The value that can be allocated for MaxCapacity
depends on whether you are running a Python shell job or an Apache Spark ETL job:
When you specify a Python shell job (JobCommand.Name
=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
When you specify an Apache Spark ETL job (JobCommand.Name
=\"glueetl\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
This field populates only when an Auto Scaling job run completes, and represents the total time each executor ran during the lifecycle of a job run in seconds, multiplied by a DPU factor (1 for G.1X
and 2 for G.2X
workers). This value may be different than the executionEngineRuntime
* MaxCapacity
as in the case of Auto Scaling jobs, as the number of executors running at a given time may be less than the MaxCapacity
. Therefore, it is possible that the value of DPUSeconds
is less than executionEngineRuntime
* MaxCapacity
.
This field populates only for Auto Scaling job runs, and represents the total time each executor ran during the lifecycle of a job run in seconds, multiplied by a DPU factor (1 for G.1X
, 2 for G.2X
, or 0.25 for G.025X
workers). This value may be different than the executionEngineRuntime
* MaxCapacity
as in the case of Auto Scaling jobs, as the number of executors running at a given time may be less than the MaxCapacity
. Therefore, it is possible that the value of DPUSeconds
is less than executionEngineRuntime
* MaxCapacity
.
For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.
Do not set Max Capacity
if using WorkerType
and NumberOfWorkers
.
The value that can be allocated for MaxCapacity
depends on whether you are running a Python shell job or an Apache Spark ETL job:
When you specify a Python shell job (JobCommand.Name
=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
When you specify an Apache Spark ETL job (JobCommand.Name
=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name
=\"gluestreaming\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity
. Instead, you should specify a Worker type
and the Number of workers
.
The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.
MaxCapacity
is a mutually exclusive option with NumberOfWorkers
and WorkerType
.
If either NumberOfWorkers
or WorkerType
is set, then MaxCapacity
cannot be set.
If MaxCapacity
is set then neither NumberOfWorkers
or WorkerType
can be set.
If WorkerType
is set, then NumberOfWorkers
is required (and vice versa).
MaxCapacity
and NumberOfWorkers
must both be at least 1.
When the WorkerType
field is set to a value other than Standard
, the MaxCapacity
field is set automatically and becomes read-only.
The number of Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory.
", @@ -6818,10 +6818,10 @@ "CreateSessionRequest$IdleTimeout": "The number of seconds when idle before request times out.
", "GetMLTransformResponse$Timeout": "The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters TIMEOUT
status. The default is 2,880 minutes (48 hours).
The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT
status. The default is 2,880 minutes (48 hours).
The JobRun
timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT
status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.
The JobRun
timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT
status. This value overrides the timeout value set in the parent job.
Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).
", "JobUpdate$Timeout": "The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT
status. The default is 2,880 minutes (48 hours).
The timeout in minutes of the machine learning transform.
", - "StartJobRunRequest$Timeout": "The JobRun
timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT
status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.
The JobRun
timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT
status. This value overrides the timeout value set in the parent job.
Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).
", "UpdateMLTransformRequest$Timeout": "The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters TIMEOUT
status. The default is 2,880 minutes (48 hours).
SageMaker Edge Manager dataplane service for communicating with active agents.
", "operations": { + "GetDeployments": "Use to get the active deployments from a device.
", "GetDeviceRegistration": "Use to check if a device is registered with SageMaker Edge Manager.
", "SendHeartbeat": "Use to get the current status of devices registered on SageMaker Edge Manager.
" }, @@ -12,9 +13,70 @@ "GetDeviceRegistrationResult$CacheTTL": "The amount of time, in seconds, that the registration status is stored on the device’s cache before it is refreshed.
" } }, + "Checksum": { + "base": "Information about the checksum of a model deployed on a device.
", + "refs": { + "Definition$Checksum": "The checksum information of the model.
" + } + }, + "ChecksumString": { + "base": null, + "refs": { + "Checksum$Sum": "The checksum of the model.
" + } + }, + "ChecksumType": { + "base": null, + "refs": { + "Checksum$Type": "The type of the checksum.
" + } + }, + "Definition": { + "base": "", + "refs": { + "Definitions$member": null + } + }, + "Definitions": { + "base": null, + "refs": { + "EdgeDeployment$Definitions": "Returns a list of Definition objects.
" + } + }, + "DeploymentModel": { + "base": "", + "refs": { + "DeploymentModels$member": null + } + }, + "DeploymentModels": { + "base": null, + "refs": { + "DeploymentResult$DeploymentModels": "Returns a list of models deployed on the agent.
" + } + }, + "DeploymentResult": { + "base": "Information about the result of a deployment on an edge device that is registered with SageMaker Edge Manager.
", + "refs": { + "SendHeartbeatRequest$DeploymentResult": "Returns the result of a deployment on the device.
" + } + }, + "DeploymentStatus": { + "base": null, + "refs": { + "DeploymentModel$Status": "Returns the deployment status of the model.
" + } + }, + "DeploymentType": { + "base": null, + "refs": { + "EdgeDeployment$Type": "The type of the deployment.
" + } + }, "DeviceFleetName": { "base": null, "refs": { + "GetDeploymentsRequest$DeviceFleetName": "The name of the fleet that the device belongs to.
", "GetDeviceRegistrationRequest$DeviceFleetName": "The name of the fleet that the device belongs to.
", "SendHeartbeatRequest$DeviceFleetName": "The name of the fleet that the device belongs to.
" } @@ -22,6 +84,7 @@ "DeviceName": { "base": null, "refs": { + "GetDeploymentsRequest$DeviceName": "The unique name of the device you want to get the configuration of active deployments from.
", "GetDeviceRegistrationRequest$DeviceName": "The unique name of the device you want to get the registration status from.
", "SendHeartbeatRequest$DeviceName": "The unique name of the device.
" } @@ -38,6 +101,18 @@ "EdgeMetric$Dimension": "The dimension of metrics published.
" } }, + "EdgeDeployment": { + "base": "Information about a deployment on an edge device that is registered with SageMaker Edge Manager.
", + "refs": { + "EdgeDeployments$member": null + } + }, + "EdgeDeployments": { + "base": null, + "refs": { + "GetDeploymentsResult$Deployments": "Returns a list of the configurations of the active deployments on the device.
" + } + }, "EdgeMetric": { "base": "Information required for edge device metrics.
", "refs": { @@ -51,12 +126,38 @@ "SendHeartbeatRequest$AgentMetrics": "For internal use. Returns a list of SageMaker Edge Manager agent operating metrics.
" } }, + "EntityName": { + "base": null, + "refs": { + "Definition$ModelHandle": "The unique model handle.
", + "DeploymentModel$ModelHandle": "The unique handle of the model.
", + "DeploymentResult$DeploymentName": "The name and unique ID of the deployment.
", + "DeploymentResult$DeploymentStatus": "Returns the bucket error code.
", + "EdgeDeployment$DeploymentName": "The name and unique ID of the deployment.
" + } + }, "ErrorMessage": { "base": null, "refs": { "InternalServiceException$Message": null } }, + "FailureHandlingPolicy": { + "base": null, + "refs": { + "EdgeDeployment$FailureHandlingPolicy": "Determines whether to rollback to previous configuration if deployment fails.
" + } + }, + "GetDeploymentsRequest": { + "base": null, + "refs": { + } + }, + "GetDeploymentsResult": { + "base": null, + "refs": { + } + }, "GetDeviceRegistrationRequest": { "base": null, "refs": { @@ -68,7 +169,7 @@ } }, "InternalServiceException": { - "base": "An internal failure occurred. Try your request again. If the problem persists, contact AWS customer support.
", + "base": "An internal failure occurred. Try your request again. If the problem persists, contact Amazon Web Services customer support.
", "refs": { } }, @@ -87,23 +188,48 @@ "ModelName": { "base": null, "refs": { + "DeploymentModel$ModelName": "The name of the model.
", "Model$ModelName": "The name of the model.
" } }, + "ModelState": { + "base": null, + "refs": { + "Definition$State": "The desired state of the model.
", + "DeploymentModel$DesiredState": "The desired state of the model.
", + "DeploymentModel$State": "Returns the current state of the model.
" + } + }, "Models": { "base": null, "refs": { "SendHeartbeatRequest$Models": "Returns a list of models deployed on the the device.
" } }, + "S3Uri": { + "base": null, + "refs": { + "Definition$S3Url": "The absolute S3 location of the model.
" + } + }, "SendHeartbeatRequest": { "base": null, "refs": { } }, + "String": { + "base": null, + "refs": { + "DeploymentModel$StatusReason": "Returns the error message for the deployment status result.
", + "DeploymentModel$RollbackFailureReason": "Returns the error message if there is a rollback.
", + "DeploymentResult$DeploymentStatusMessage": "Returns the detailed error message.
" + } + }, "Timestamp": { "base": null, "refs": { + "DeploymentResult$DeploymentStartTime": "The timestamp of when the deployment was started on the agent.
", + "DeploymentResult$DeploymentEndTime": "The timestamp of when the deployment was ended, and the agent got the deployment results.
", "EdgeMetric$Timestamp": "Timestamp of when the metric was requested.
", "Model$LatestSampleTime": "The timestamp of the last data sample taken.
", "Model$LatestInference": "The timestamp of the last inference that was made.
" @@ -118,6 +244,7 @@ "Version": { "base": null, "refs": { + "DeploymentModel$ModelVersion": "The version of the model.
", "Model$ModelVersion": "The version of the model.
", "SendHeartbeatRequest$AgentVersion": "Returns the version of the agent.
" } diff --git a/apis/sagemaker/2017-07-24/api-2.json b/apis/sagemaker/2017-07-24/api-2.json index c8553a41d2f..d0d9487546c 100644 --- a/apis/sagemaker/2017-07-24/api-2.json +++ b/apis/sagemaker/2017-07-24/api-2.json @@ -14504,7 +14504,6 @@ }, "QueryLineageRequest":{ "type":"structure", - "required":["StartArns"], "members":{ "StartArns":{"shape":"QueryLineageStartArns"}, "Direction":{"shape":"Direction"}, @@ -14527,7 +14526,7 @@ "type":"list", "member":{"shape":"AssociationEntityArn"}, "max":1, - "min":1 + "min":0 }, "QueryLineageTypes":{ "type":"list", diff --git a/apis/workspaces/2015-04-08/api-2.json b/apis/workspaces/2015-04-08/api-2.json index bd7123ae984..3e6ed939dc8 100644 --- a/apis/workspaces/2015-04-08/api-2.json +++ b/apis/workspaces/2015-04-08/api-2.json @@ -560,6 +560,7 @@ "errors":[ {"shape":"InvalidParameterValuesException"}, {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ] }, @@ -1063,7 +1064,7 @@ }, "ClientLoginMessage":{ "type":"string", - "max":850, + "max":2000, "min":0, "pattern":"^.*$" }, diff --git a/gems/aws-sdk-devopsguru/CHANGELOG.md b/gems/aws-sdk-devopsguru/CHANGELOG.md index 0ff23d5b010..0fa4e74fffb 100644 --- a/gems/aws-sdk-devopsguru/CHANGELOG.md +++ b/gems/aws-sdk-devopsguru/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.24.0 (2022-07-19) +------------------ + +* Feature - Added new APIs for log anomaly detection feature. + 1.23.0 (2022-04-12) ------------------ diff --git a/gems/aws-sdk-devopsguru/VERSION b/gems/aws-sdk-devopsguru/VERSION index a6c2798a482..53cc1a6f929 100644 --- a/gems/aws-sdk-devopsguru/VERSION +++ b/gems/aws-sdk-devopsguru/VERSION @@ -1 +1 @@ -1.23.0 +1.24.0 diff --git a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru.rb b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru.rb index 29bcbd1abb9..d9659a49449 100644 --- a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru.rb +++ b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru.rb @@ -48,6 +48,6 @@ # @!group service module Aws::DevOpsGuru - GEM_VERSION = '1.23.0' + GEM_VERSION = '1.24.0' end diff --git a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client.rb b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client.rb index fd3026ceb00..0af1db9b2a7 100644 --- a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client.rb +++ b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client.rb @@ -1026,6 +1026,7 @@ def describe_resource_collection_health(params = {}, options = {}) # @example Response structure # # resp.service_integration.ops_center.opt_in_status #=> String, one of "ENABLED", "DISABLED" + # resp.service_integration.logs_anomaly_detection.opt_in_status #=> String, one of "ENABLED", "DISABLED" # # @see http://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeServiceIntegration AWS API Documentation # @@ -1328,6 +1329,64 @@ def list_anomalies_for_insight(params = {}, options = {}) req.send_request(options) end + # Returns the list of log groups that contain log anomalies. + # + # @option params [required, String] :insight_id + # The ID of the insight containing the log groups. + # + # @option params [Integer] :max_results + # The maximum number of results to return with a single call. To + # retrieve the remaining results, make another call with the returned + # `nextToken` value. + # + # @option params [String] :next_token + # 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. + # + # @return [Types::ListAnomalousLogGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListAnomalousLogGroupsResponse#insight_id #insight_id} => String + # * {Types::ListAnomalousLogGroupsResponse#anomalous_log_groups #anomalous_log_groups} => Array<Types::AnomalousLogGroup> + # * {Types::ListAnomalousLogGroupsResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_anomalous_log_groups({ + # insight_id: "InsightId", # required + # max_results: 1, + # next_token: "UuidNextToken", + # }) + # + # @example Response structure + # + # resp.insight_id #=> String + # resp.anomalous_log_groups #=> Array + # resp.anomalous_log_groups[0].log_group_name #=> String + # resp.anomalous_log_groups[0].impact_start_time #=> Time + # resp.anomalous_log_groups[0].impact_end_time #=> Time + # resp.anomalous_log_groups[0].number_of_log_lines_scanned #=> Integer + # resp.anomalous_log_groups[0].log_anomaly_showcases #=> Array + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes #=> Array + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].log_stream_name #=> String + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].log_anomaly_type #=> String, one of "KEYWORD", "KEYWORD_TOKEN", "FORMAT", "HTTP_CODE", "BLOCK_FORMAT", "NUMERICAL_POINT", "NUMERICAL_NAN", "NEW_FIELD_NAME" + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].log_anomaly_token #=> String + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].log_event_id #=> String + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].explanation #=> String + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].number_of_log_lines_occurrences #=> Integer + # resp.anomalous_log_groups[0].log_anomaly_showcases[0].log_anomaly_classes[0].log_event_timestamp #=> Time + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListAnomalousLogGroups AWS API Documentation + # + # @overload list_anomalous_log_groups(params = {}) + # @param [Hash] params ({}) + def list_anomalous_log_groups(params = {}, options = {}) + req = build_request(:list_anomalous_log_groups, params) + req.send_request(options) + end + # 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. @@ -1513,6 +1572,57 @@ def list_insights(params = {}, options = {}) req.send_request(options) end + # Returns the list of all log groups that are being monitored and tagged + # by DevOps Guru. + # + # @option params [required, Types::ListMonitoredResourcesFilters] :filters + # Filters to determine which monitored resources you want to retrieve. + # You can filter by resource type or resource permission status. + # + # @option params [Integer] :max_results + # The maximum number of results to return with a single call. To + # retrieve the remaining results, make another call with the returned + # `nextToken` value. + # + # @option params [String] :next_token + # 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. + # + # @return [Types::ListMonitoredResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListMonitoredResourcesResponse#monitored_resource_identifiers #monitored_resource_identifiers} => Array<Types::MonitoredResourceIdentifier> + # * {Types::ListMonitoredResourcesResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_monitored_resources({ + # filters: { # required + # resource_permission: "FULL_PERMISSION", # required, accepts FULL_PERMISSION, MISSING_PERMISSION + # resource_type_filters: ["LOG_GROUPS"], # required, accepts LOG_GROUPS + # }, + # max_results: 1, + # next_token: "UuidNextToken", + # }) + # + # @example Response structure + # + # resp.monitored_resource_identifiers #=> Array + # resp.monitored_resource_identifiers[0].monitored_resource_name #=> String + # resp.monitored_resource_identifiers[0].type #=> String + # resp.monitored_resource_identifiers[0].resource_permission #=> String, one of "FULL_PERMISSION", "MISSING_PERMISSION" + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListMonitoredResources AWS API Documentation + # + # @overload list_monitored_resources(params = {}) + # @param [Hash] params ({}) + def list_monitored_resources(params = {}, options = {}) + req = build_request(:list_monitored_resources, params) + req.send_request(options) + end + # 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 @@ -2147,6 +2257,9 @@ def update_resource_collection(params = {}, options = {}) # ops_center: { # opt_in_status: "ENABLED", # accepts ENABLED, DISABLED # }, + # logs_anomaly_detection: { + # opt_in_status: "ENABLED", # accepts ENABLED, DISABLED + # }, # }, # }) # @@ -2172,7 +2285,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-devopsguru' - context[:gem_version] = '1.23.0' + context[:gem_version] = '1.24.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client_api.rb b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client_api.rb index 7d35193b0ad..7444ce4603b 100644 --- a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client_api.rb +++ b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/client_api.rb @@ -21,6 +21,8 @@ module ClientApi AddNotificationChannelRequest = Shapes::StructureShape.new(name: 'AddNotificationChannelRequest') AddNotificationChannelResponse = Shapes::StructureShape.new(name: 'AddNotificationChannelResponse') AmazonCodeGuruProfilerIntegration = Shapes::StructureShape.new(name: 'AmazonCodeGuruProfilerIntegration') + AnomalousLogGroup = Shapes::StructureShape.new(name: 'AnomalousLogGroup') + AnomalousLogGroups = Shapes::ListShape.new(name: 'AnomalousLogGroups') AnomalyDescription = Shapes::StringShape.new(name: 'AnomalyDescription') AnomalyId = Shapes::StringShape.new(name: 'AnomalyId') AnomalyLimit = Shapes::FloatShape.new(name: 'AnomalyLimit') @@ -111,6 +113,7 @@ module ClientApi EventSourcesConfig = Shapes::StructureShape.new(name: 'EventSourcesConfig') EventTimeRange = Shapes::StructureShape.new(name: 'EventTimeRange') Events = Shapes::ListShape.new(name: 'Events') + Explanation = Shapes::StringShape.new(name: 'Explanation') GetCostEstimationRequest = Shapes::StructureShape.new(name: 'GetCostEstimationRequest') GetCostEstimationResponse = Shapes::StructureShape.new(name: 'GetCostEstimationResponse') GetResourceCollectionRequest = Shapes::StructureShape.new(name: 'GetResourceCollectionRequest') @@ -131,6 +134,9 @@ module ClientApi ListAnomaliesForInsightMaxResults = Shapes::IntegerShape.new(name: 'ListAnomaliesForInsightMaxResults') ListAnomaliesForInsightRequest = Shapes::StructureShape.new(name: 'ListAnomaliesForInsightRequest') ListAnomaliesForInsightResponse = Shapes::StructureShape.new(name: 'ListAnomaliesForInsightResponse') + ListAnomalousLogGroupsMaxResults = Shapes::IntegerShape.new(name: 'ListAnomalousLogGroupsMaxResults') + ListAnomalousLogGroupsRequest = Shapes::StructureShape.new(name: 'ListAnomalousLogGroupsRequest') + ListAnomalousLogGroupsResponse = Shapes::StructureShape.new(name: 'ListAnomalousLogGroupsResponse') ListEventsFilters = Shapes::StructureShape.new(name: 'ListEventsFilters') ListEventsMaxResults = Shapes::IntegerShape.new(name: 'ListEventsMaxResults') ListEventsRequest = Shapes::StructureShape.new(name: 'ListEventsRequest') @@ -144,6 +150,10 @@ module ClientApi ListInsightsRequest = Shapes::StructureShape.new(name: 'ListInsightsRequest') ListInsightsResponse = Shapes::StructureShape.new(name: 'ListInsightsResponse') ListInsightsStatusFilter = Shapes::StructureShape.new(name: 'ListInsightsStatusFilter') + ListMonitoredResourcesFilters = Shapes::StructureShape.new(name: 'ListMonitoredResourcesFilters') + ListMonitoredResourcesMaxResults = Shapes::IntegerShape.new(name: 'ListMonitoredResourcesMaxResults') + ListMonitoredResourcesRequest = Shapes::StructureShape.new(name: 'ListMonitoredResourcesRequest') + ListMonitoredResourcesResponse = Shapes::StructureShape.new(name: 'ListMonitoredResourcesResponse') ListNotificationChannelsRequest = Shapes::StructureShape.new(name: 'ListNotificationChannelsRequest') ListNotificationChannelsResponse = Shapes::StructureShape.new(name: 'ListNotificationChannelsResponse') ListOrganizationInsightsRequest = Shapes::StructureShape.new(name: 'ListOrganizationInsightsRequest') @@ -151,8 +161,22 @@ module ClientApi ListRecommendationsRequest = Shapes::StructureShape.new(name: 'ListRecommendationsRequest') ListRecommendationsResponse = Shapes::StructureShape.new(name: 'ListRecommendationsResponse') Locale = Shapes::StringShape.new(name: 'Locale') + LogAnomalyClass = Shapes::StructureShape.new(name: 'LogAnomalyClass') + LogAnomalyClasses = Shapes::ListShape.new(name: 'LogAnomalyClasses') + LogAnomalyShowcase = Shapes::StructureShape.new(name: 'LogAnomalyShowcase') + LogAnomalyShowcases = Shapes::ListShape.new(name: 'LogAnomalyShowcases') + LogAnomalyToken = Shapes::StringShape.new(name: 'LogAnomalyToken') + LogAnomalyType = Shapes::StringShape.new(name: 'LogAnomalyType') + LogEventId = Shapes::StringShape.new(name: 'LogEventId') + LogGroupName = Shapes::StringShape.new(name: 'LogGroupName') + LogStreamName = Shapes::StringShape.new(name: 'LogStreamName') + LogsAnomalyDetectionIntegration = Shapes::StructureShape.new(name: 'LogsAnomalyDetectionIntegration') + LogsAnomalyDetectionIntegrationConfig = Shapes::StructureShape.new(name: 'LogsAnomalyDetectionIntegrationConfig') MeanTimeToRecoverInMilliseconds = Shapes::IntegerShape.new(name: 'MeanTimeToRecoverInMilliseconds') MetricValue = Shapes::FloatShape.new(name: 'MetricValue') + MonitoredResourceIdentifier = Shapes::StructureShape.new(name: 'MonitoredResourceIdentifier') + MonitoredResourceIdentifiers = Shapes::ListShape.new(name: 'MonitoredResourceIdentifiers') + MonitoredResourceName = Shapes::StringShape.new(name: 'MonitoredResourceName') NotificationChannel = Shapes::StructureShape.new(name: 'NotificationChannel') NotificationChannelConfig = Shapes::StructureShape.new(name: 'NotificationChannelConfig') NotificationChannelId = Shapes::StringShape.new(name: 'NotificationChannelId') @@ -161,6 +185,8 @@ module ClientApi NumOpenReactiveInsights = Shapes::IntegerShape.new(name: 'NumOpenReactiveInsights') NumProactiveInsights = Shapes::IntegerShape.new(name: 'NumProactiveInsights') NumReactiveInsights = Shapes::IntegerShape.new(name: 'NumReactiveInsights') + NumberOfLogLinesOccurrences = Shapes::IntegerShape.new(name: 'NumberOfLogLinesOccurrences') + NumberOfLogLinesScanned = Shapes::IntegerShape.new(name: 'NumberOfLogLinesScanned') OpsCenterIntegration = Shapes::StructureShape.new(name: 'OpsCenterIntegration') OpsCenterIntegrationConfig = Shapes::StructureShape.new(name: 'OpsCenterIntegrationConfig') OptInStatus = Shapes::StringShape.new(name: 'OptInStatus') @@ -248,7 +274,10 @@ module ClientApi ResourceIdType = Shapes::StringShape.new(name: 'ResourceIdType') ResourceName = Shapes::StringShape.new(name: 'ResourceName') ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException') + ResourcePermission = Shapes::StringShape.new(name: 'ResourcePermission') ResourceType = Shapes::StringShape.new(name: 'ResourceType') + ResourceTypeFilter = Shapes::StringShape.new(name: 'ResourceTypeFilter') + ResourceTypeFilters = Shapes::ListShape.new(name: 'ResourceTypeFilters') RetryAfterSeconds = Shapes::IntegerShape.new(name: 'RetryAfterSeconds') SearchInsightsAccountIdList = Shapes::ListShape.new(name: 'SearchInsightsAccountIdList') SearchInsightsFilters = Shapes::StructureShape.new(name: 'SearchInsightsFilters') @@ -335,6 +364,15 @@ module ClientApi AmazonCodeGuruProfilerIntegration.add_member(:status, Shapes::ShapeRef.new(shape: EventSourceOptInStatus, location_name: "Status")) AmazonCodeGuruProfilerIntegration.struct_class = Types::AmazonCodeGuruProfilerIntegration + AnomalousLogGroup.add_member(:log_group_name, Shapes::ShapeRef.new(shape: LogGroupName, location_name: "LogGroupName")) + AnomalousLogGroup.add_member(:impact_start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ImpactStartTime")) + AnomalousLogGroup.add_member(:impact_end_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ImpactEndTime")) + AnomalousLogGroup.add_member(:number_of_log_lines_scanned, Shapes::ShapeRef.new(shape: NumberOfLogLinesScanned, location_name: "NumberOfLogLinesScanned")) + AnomalousLogGroup.add_member(:log_anomaly_showcases, Shapes::ShapeRef.new(shape: LogAnomalyShowcases, location_name: "LogAnomalyShowcases")) + AnomalousLogGroup.struct_class = Types::AnomalousLogGroup + + AnomalousLogGroups.member = Shapes::ShapeRef.new(shape: AnomalousLogGroup) + AnomalyReportedTimeRange.add_member(:open_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "OpenTime")) AnomalyReportedTimeRange.add_member(:close_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CloseTime")) AnomalyReportedTimeRange.struct_class = Types::AnomalyReportedTimeRange @@ -595,6 +633,16 @@ module ClientApi ListAnomaliesForInsightResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) ListAnomaliesForInsightResponse.struct_class = Types::ListAnomaliesForInsightResponse + ListAnomalousLogGroupsRequest.add_member(:insight_id, Shapes::ShapeRef.new(shape: InsightId, required: true, location_name: "InsightId")) + ListAnomalousLogGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListAnomalousLogGroupsMaxResults, location_name: "MaxResults")) + ListAnomalousLogGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) + ListAnomalousLogGroupsRequest.struct_class = Types::ListAnomalousLogGroupsRequest + + ListAnomalousLogGroupsResponse.add_member(:insight_id, Shapes::ShapeRef.new(shape: InsightId, required: true, location_name: "InsightId")) + ListAnomalousLogGroupsResponse.add_member(:anomalous_log_groups, Shapes::ShapeRef.new(shape: AnomalousLogGroups, required: true, location_name: "AnomalousLogGroups")) + ListAnomalousLogGroupsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) + ListAnomalousLogGroupsResponse.struct_class = Types::ListAnomalousLogGroupsResponse + ListEventsFilters.add_member(:insight_id, Shapes::ShapeRef.new(shape: InsightId, location_name: "InsightId")) ListEventsFilters.add_member(:event_time_range, Shapes::ShapeRef.new(shape: EventTimeRange, location_name: "EventTimeRange")) ListEventsFilters.add_member(:event_class, Shapes::ShapeRef.new(shape: EventClass, location_name: "EventClass")) @@ -643,6 +691,19 @@ module ClientApi ListInsightsStatusFilter.add_member(:any, Shapes::ShapeRef.new(shape: ListInsightsAnyStatusFilter, location_name: "Any")) ListInsightsStatusFilter.struct_class = Types::ListInsightsStatusFilter + ListMonitoredResourcesFilters.add_member(:resource_permission, Shapes::ShapeRef.new(shape: ResourcePermission, required: true, location_name: "ResourcePermission")) + ListMonitoredResourcesFilters.add_member(:resource_type_filters, Shapes::ShapeRef.new(shape: ResourceTypeFilters, required: true, location_name: "ResourceTypeFilters")) + ListMonitoredResourcesFilters.struct_class = Types::ListMonitoredResourcesFilters + + ListMonitoredResourcesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: ListMonitoredResourcesFilters, required: true, location_name: "Filters")) + ListMonitoredResourcesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListMonitoredResourcesMaxResults, location_name: "MaxResults")) + ListMonitoredResourcesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) + ListMonitoredResourcesRequest.struct_class = Types::ListMonitoredResourcesRequest + + ListMonitoredResourcesResponse.add_member(:monitored_resource_identifiers, Shapes::ShapeRef.new(shape: MonitoredResourceIdentifiers, required: true, location_name: "MonitoredResourceIdentifiers")) + ListMonitoredResourcesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) + ListMonitoredResourcesResponse.struct_class = Types::ListMonitoredResourcesResponse + ListNotificationChannelsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) ListNotificationChannelsRequest.struct_class = Types::ListNotificationChannelsRequest @@ -672,6 +733,35 @@ module ClientApi ListRecommendationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: UuidNextToken, location_name: "NextToken")) ListRecommendationsResponse.struct_class = Types::ListRecommendationsResponse + LogAnomalyClass.add_member(:log_stream_name, Shapes::ShapeRef.new(shape: LogStreamName, location_name: "LogStreamName")) + LogAnomalyClass.add_member(:log_anomaly_type, Shapes::ShapeRef.new(shape: LogAnomalyType, location_name: "LogAnomalyType")) + LogAnomalyClass.add_member(:log_anomaly_token, Shapes::ShapeRef.new(shape: LogAnomalyToken, location_name: "LogAnomalyToken")) + LogAnomalyClass.add_member(:log_event_id, Shapes::ShapeRef.new(shape: LogEventId, location_name: "LogEventId")) + LogAnomalyClass.add_member(:explanation, Shapes::ShapeRef.new(shape: Explanation, location_name: "Explanation")) + LogAnomalyClass.add_member(:number_of_log_lines_occurrences, Shapes::ShapeRef.new(shape: NumberOfLogLinesOccurrences, location_name: "NumberOfLogLinesOccurrences")) + LogAnomalyClass.add_member(:log_event_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LogEventTimestamp")) + LogAnomalyClass.struct_class = Types::LogAnomalyClass + + LogAnomalyClasses.member = Shapes::ShapeRef.new(shape: LogAnomalyClass) + + LogAnomalyShowcase.add_member(:log_anomaly_classes, Shapes::ShapeRef.new(shape: LogAnomalyClasses, location_name: "LogAnomalyClasses")) + LogAnomalyShowcase.struct_class = Types::LogAnomalyShowcase + + LogAnomalyShowcases.member = Shapes::ShapeRef.new(shape: LogAnomalyShowcase) + + LogsAnomalyDetectionIntegration.add_member(:opt_in_status, Shapes::ShapeRef.new(shape: OptInStatus, location_name: "OptInStatus")) + LogsAnomalyDetectionIntegration.struct_class = Types::LogsAnomalyDetectionIntegration + + LogsAnomalyDetectionIntegrationConfig.add_member(:opt_in_status, Shapes::ShapeRef.new(shape: OptInStatus, location_name: "OptInStatus")) + LogsAnomalyDetectionIntegrationConfig.struct_class = Types::LogsAnomalyDetectionIntegrationConfig + + MonitoredResourceIdentifier.add_member(:monitored_resource_name, Shapes::ShapeRef.new(shape: MonitoredResourceName, location_name: "MonitoredResourceName")) + MonitoredResourceIdentifier.add_member(:type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "Type")) + MonitoredResourceIdentifier.add_member(:resource_permission, Shapes::ShapeRef.new(shape: ResourcePermission, location_name: "ResourcePermission")) + MonitoredResourceIdentifier.struct_class = Types::MonitoredResourceIdentifier + + MonitoredResourceIdentifiers.member = Shapes::ShapeRef.new(shape: MonitoredResourceIdentifier) + NotificationChannel.add_member(:id, Shapes::ShapeRef.new(shape: NotificationChannelId, location_name: "Id")) NotificationChannel.add_member(:config, Shapes::ShapeRef.new(shape: NotificationChannelConfig, location_name: "Config")) NotificationChannel.struct_class = Types::NotificationChannel @@ -945,6 +1035,8 @@ module ClientApi ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceIdType, required: true, location_name: "ResourceType")) ResourceNotFoundException.struct_class = Types::ResourceNotFoundException + ResourceTypeFilters.member = Shapes::ShapeRef.new(shape: ResourceTypeFilter) + SearchInsightsAccountIdList.member = Shapes::ShapeRef.new(shape: AwsAccountId) SearchInsightsFilters.add_member(:severities, Shapes::ShapeRef.new(shape: InsightSeverities, location_name: "Severities")) @@ -998,6 +1090,7 @@ module ClientApi ServiceInsightHealth.struct_class = Types::ServiceInsightHealth ServiceIntegrationConfig.add_member(:ops_center, Shapes::ShapeRef.new(shape: OpsCenterIntegration, location_name: "OpsCenter")) + ServiceIntegrationConfig.add_member(:logs_anomaly_detection, Shapes::ShapeRef.new(shape: LogsAnomalyDetectionIntegration, location_name: "LogsAnomalyDetection")) ServiceIntegrationConfig.struct_class = Types::ServiceIntegrationConfig ServiceNames.member = Shapes::ShapeRef.new(shape: ServiceName) @@ -1087,6 +1180,7 @@ module ClientApi UpdateResourceCollectionResponse.struct_class = Types::UpdateResourceCollectionResponse UpdateServiceIntegrationConfig.add_member(:ops_center, Shapes::ShapeRef.new(shape: OpsCenterIntegrationConfig, location_name: "OpsCenter")) + UpdateServiceIntegrationConfig.add_member(:logs_anomaly_detection, Shapes::ShapeRef.new(shape: LogsAnomalyDetectionIntegrationConfig, location_name: "LogsAnomalyDetection")) UpdateServiceIntegrationConfig.struct_class = Types::UpdateServiceIntegrationConfig UpdateServiceIntegrationRequest.add_member(:service_integration, Shapes::ShapeRef.new(shape: UpdateServiceIntegrationConfig, required: true, location_name: "ServiceIntegration")) @@ -1303,6 +1397,7 @@ module ClientApi o.output = Shapes::ShapeRef.new(shape: DescribeServiceIntegrationResponse) o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) o.errors << Shapes::ShapeRef.new(shape: ValidationException) end) @@ -1362,6 +1457,25 @@ module ClientApi ) end) + api.add_operation(:list_anomalous_log_groups, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListAnomalousLogGroups" + o.http_method = "POST" + o.http_request_uri = "/list-log-anomalies" + o.input = Shapes::ShapeRef.new(shape: ListAnomalousLogGroupsRequest) + o.output = Shapes::ShapeRef.new(shape: ListAnomalousLogGroupsResponse) + o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + api.add_operation(:list_events, Seahorse::Model::Operation.new.tap do |o| o.name = "ListEvents" o.http_method = "POST" @@ -1399,6 +1513,24 @@ module ClientApi ) end) + api.add_operation(:list_monitored_resources, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListMonitoredResources" + o.http_method = "POST" + o.http_request_uri = "/monitoredResources" + o.input = Shapes::ShapeRef.new(shape: ListMonitoredResourcesRequest) + o.output = Shapes::ShapeRef.new(shape: ListMonitoredResourcesResponse) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ThrottlingException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + api.add_operation(:list_notification_channels, Seahorse::Model::Operation.new.tap do |o| o.name = "ListNotificationChannels" o.http_method = "POST" diff --git a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/types.rb b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/types.rb index d9e25aa9c09..0e683d3a18e 100644 --- a/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/types.rb +++ b/gems/aws-sdk-devopsguru/lib/aws-sdk-devopsguru/types.rb @@ -138,6 +138,43 @@ class AmazonCodeGuruProfilerIntegration < Struct.new( include Aws::Structure end + # An Amazon CloudWatch log group that contains log anomalies and is used + # to generate an insight. + # + # @!attribute [rw] log_group_name + # The name of the CloudWatch log group. + # @return [String] + # + # @!attribute [rw] impact_start_time + # The time the anomalous log events began. The impact start time + # indicates the time of the first log anomaly event that occurs. + # @return [Time] + # + # @!attribute [rw] impact_end_time + # The time the anomalous log events stopped. + # @return [Time] + # + # @!attribute [rw] number_of_log_lines_scanned + # The number of log lines that were scanned for anomalous log events. + # @return [Integer] + # + # @!attribute [rw] log_anomaly_showcases + # The log anomalies in the log group. Each log anomaly displayed + # represents a cluster of similar anomalous log events. + # @return [Array