diff --git a/CHANGELOG.md b/CHANGELOG.md
index d717ef4f94a..7f0920fa34c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+Release v1.53.20 (2024-06-10)
+===
+
+### Service Client Updates
+* `service/application-signals`: Adds new service
+* `service/ecs`: Updates service API and documentation
+ * This release introduces a new cluster configuration to support the customer-managed keys for ECS managed storage encryption.
+* `service/imagebuilder`: Updates service API
+
Release v1.53.19 (2024-06-07)
===
diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go
index c69609690c0..3448358f39b 100644
--- a/aws/endpoints/defaults.go
+++ b/aws/endpoints/defaults.go
@@ -25440,6 +25440,9 @@ var awsPartition = partition{
},
Deprecated: boxedTrue,
},
+ endpointKey{
+ Region: "me-central-1",
+ }: endpoint{},
endpointKey{
Region: "sa-east-1",
}: endpoint{},
diff --git a/aws/version.go b/aws/version.go
index c438b4e54f1..28238536bf8 100644
--- a/aws/version.go
+++ b/aws/version.go
@@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK
-const SDKVersion = "1.53.19"
+const SDKVersion = "1.53.20"
diff --git a/models/apis/application-signals/2024-04-15/api-2.json b/models/apis/application-signals/2024-04-15/api-2.json
new file mode 100644
index 00000000000..e51736bb5c1
--- /dev/null
+++ b/models/apis/application-signals/2024-04-15/api-2.json
@@ -0,0 +1,1336 @@
+{
+ "version":"2.0",
+ "metadata":{
+ "apiVersion":"2024-04-15",
+ "endpointPrefix":"application-signals",
+ "protocol":"rest-json",
+ "protocols":["rest-json"],
+ "serviceFullName":"Amazon CloudWatch Application Signals",
+ "serviceId":"Application Signals",
+ "signatureVersion":"v4",
+ "signingName":"application-signals",
+ "uid":"application-signals-2024-04-15"
+ },
+ "operations":{
+ "BatchGetServiceLevelObjectiveBudgetReport":{
+ "name":"BatchGetServiceLevelObjectiveBudgetReport",
+ "http":{
+ "method":"POST",
+ "requestUri":"/budget-report",
+ "responseCode":200
+ },
+ "input":{"shape":"BatchGetServiceLevelObjectiveBudgetReportInput"},
+ "output":{"shape":"BatchGetServiceLevelObjectiveBudgetReportOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "CreateServiceLevelObjective":{
+ "name":"CreateServiceLevelObjective",
+ "http":{
+ "method":"POST",
+ "requestUri":"/slo",
+ "responseCode":200
+ },
+ "input":{"shape":"CreateServiceLevelObjectiveInput"},
+ "output":{"shape":"CreateServiceLevelObjectiveOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ConflictException"}
+ ]
+ },
+ "DeleteServiceLevelObjective":{
+ "name":"DeleteServiceLevelObjective",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/slo/{Id}",
+ "responseCode":200
+ },
+ "input":{"shape":"DeleteServiceLevelObjectiveInput"},
+ "output":{"shape":"DeleteServiceLevelObjectiveOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"}
+ ],
+ "idempotent":true
+ },
+ "GetService":{
+ "name":"GetService",
+ "http":{
+ "method":"POST",
+ "requestUri":"/service",
+ "responseCode":200
+ },
+ "input":{"shape":"GetServiceInput"},
+ "output":{"shape":"GetServiceOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "GetServiceLevelObjective":{
+ "name":"GetServiceLevelObjective",
+ "http":{
+ "method":"GET",
+ "requestUri":"/slo/{Id}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetServiceLevelObjectiveInput"},
+ "output":{"shape":"GetServiceLevelObjectiveOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "ListServiceDependencies":{
+ "name":"ListServiceDependencies",
+ "http":{
+ "method":"POST",
+ "requestUri":"/service-dependencies",
+ "responseCode":200
+ },
+ "input":{"shape":"ListServiceDependenciesInput"},
+ "output":{"shape":"ListServiceDependenciesOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "ListServiceDependents":{
+ "name":"ListServiceDependents",
+ "http":{
+ "method":"POST",
+ "requestUri":"/service-dependents",
+ "responseCode":200
+ },
+ "input":{"shape":"ListServiceDependentsInput"},
+ "output":{"shape":"ListServiceDependentsOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "ListServiceLevelObjectives":{
+ "name":"ListServiceLevelObjectives",
+ "http":{
+ "method":"POST",
+ "requestUri":"/slos",
+ "responseCode":200
+ },
+ "input":{"shape":"ListServiceLevelObjectivesInput"},
+ "output":{"shape":"ListServiceLevelObjectivesOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "ListServiceOperations":{
+ "name":"ListServiceOperations",
+ "http":{
+ "method":"POST",
+ "requestUri":"/service-operations",
+ "responseCode":200
+ },
+ "input":{"shape":"ListServiceOperationsInput"},
+ "output":{"shape":"ListServiceOperationsOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "ListServices":{
+ "name":"ListServices",
+ "http":{
+ "method":"GET",
+ "requestUri":"/services",
+ "responseCode":200
+ },
+ "input":{"shape":"ListServicesInput"},
+ "output":{"shape":"ListServicesOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "ListTagsForResource":{
+ "name":"ListTagsForResource",
+ "http":{
+ "method":"GET",
+ "requestUri":"/tags",
+ "responseCode":200
+ },
+ "input":{"shape":"ListTagsForResourceRequest"},
+ "output":{"shape":"ListTagsForResourceResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "StartDiscovery":{
+ "name":"StartDiscovery",
+ "http":{
+ "method":"POST",
+ "requestUri":"/start-discovery",
+ "responseCode":200
+ },
+ "input":{"shape":"StartDiscoveryInput"},
+ "output":{"shape":"StartDiscoveryOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "TagResource":{
+ "name":"TagResource",
+ "http":{
+ "method":"POST",
+ "requestUri":"/tag-resource",
+ "responseCode":200
+ },
+ "input":{"shape":"TagResourceRequest"},
+ "output":{"shape":"TagResourceResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ServiceQuotaExceededException"}
+ ]
+ },
+ "UntagResource":{
+ "name":"UntagResource",
+ "http":{
+ "method":"POST",
+ "requestUri":"/untag-resource",
+ "responseCode":200
+ },
+ "input":{"shape":"UntagResourceRequest"},
+ "output":{"shape":"UntagResourceResponse"},
+ "errors":[
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
+ "UpdateServiceLevelObjective":{
+ "name":"UpdateServiceLevelObjective",
+ "http":{
+ "method":"PATCH",
+ "requestUri":"/slo/{Id}",
+ "responseCode":200
+ },
+ "input":{"shape":"UpdateServiceLevelObjectiveInput"},
+ "output":{"shape":"UpdateServiceLevelObjectiveOutput"},
+ "errors":[
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"}
+ ]
+ }
+ },
+ "shapes":{
+ "AccessDeniedException":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"ServiceErrorMessage"}
+ },
+ "error":{
+ "httpStatusCode":403,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "AccountId":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "AmazonResourceName":{
+ "type":"string",
+ "max":1024,
+ "min":1
+ },
+ "Attainment":{
+ "type":"double",
+ "box":true
+ },
+ "AttainmentGoal":{
+ "type":"double",
+ "box":true
+ },
+ "AttributeMap":{
+ "type":"map",
+ "key":{"shape":"String"},
+ "value":{"shape":"String"}
+ },
+ "AttributeMaps":{
+ "type":"list",
+ "member":{"shape":"AttributeMap"}
+ },
+ "Attributes":{
+ "type":"map",
+ "key":{"shape":"KeyAttributeName"},
+ "value":{"shape":"KeyAttributeValue"},
+ "max":3,
+ "min":1
+ },
+ "BatchGetServiceLevelObjectiveBudgetReportInput":{
+ "type":"structure",
+ "required":[
+ "Timestamp",
+ "SloIds"
+ ],
+ "members":{
+ "Timestamp":{"shape":"Timestamp"},
+ "SloIds":{"shape":"ServiceLevelObjectiveIds"}
+ }
+ },
+ "BatchGetServiceLevelObjectiveBudgetReportOutput":{
+ "type":"structure",
+ "required":[
+ "Timestamp",
+ "Reports",
+ "Errors"
+ ],
+ "members":{
+ "Timestamp":{"shape":"Timestamp"},
+ "Reports":{"shape":"ServiceLevelObjectiveBudgetReports"},
+ "Errors":{"shape":"ServiceLevelObjectiveBudgetReportErrors"}
+ }
+ },
+ "BudgetSecondsRemaining":{
+ "type":"integer",
+ "box":true
+ },
+ "CalendarInterval":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "DurationUnit",
+ "Duration"
+ ],
+ "members":{
+ "StartTime":{"shape":"Timestamp"},
+ "DurationUnit":{"shape":"DurationUnit"},
+ "Duration":{"shape":"CalendarIntervalDuration"}
+ }
+ },
+ "CalendarIntervalDuration":{
+ "type":"integer",
+ "box":true,
+ "min":1
+ },
+ "ConflictException":{
+ "type":"structure",
+ "required":["Message"],
+ "members":{
+ "Message":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":409,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "CreateServiceLevelObjectiveInput":{
+ "type":"structure",
+ "required":[
+ "Name",
+ "SliConfig"
+ ],
+ "members":{
+ "Name":{"shape":"ServiceLevelObjectiveName"},
+ "Description":{"shape":"ServiceLevelObjectiveDescription"},
+ "SliConfig":{"shape":"ServiceLevelIndicatorConfig"},
+ "Goal":{"shape":"Goal"},
+ "Tags":{"shape":"TagList"}
+ }
+ },
+ "CreateServiceLevelObjectiveOutput":{
+ "type":"structure",
+ "required":["Slo"],
+ "members":{
+ "Slo":{"shape":"ServiceLevelObjective"}
+ }
+ },
+ "DeleteServiceLevelObjectiveInput":{
+ "type":"structure",
+ "required":["Id"],
+ "members":{
+ "Id":{
+ "shape":"ServiceLevelObjectiveId",
+ "location":"uri",
+ "locationName":"Id"
+ }
+ }
+ },
+ "DeleteServiceLevelObjectiveOutput":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "Dimension":{
+ "type":"structure",
+ "required":[
+ "Name",
+ "Value"
+ ],
+ "members":{
+ "Name":{"shape":"DimensionName"},
+ "Value":{"shape":"DimensionValue"}
+ }
+ },
+ "DimensionName":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "DimensionValue":{
+ "type":"string",
+ "max":1024,
+ "min":1
+ },
+ "Dimensions":{
+ "type":"list",
+ "member":{"shape":"Dimension"},
+ "max":30,
+ "min":0
+ },
+ "DurationUnit":{
+ "type":"string",
+ "enum":[
+ "DAY",
+ "MONTH"
+ ]
+ },
+ "FaultDescription":{"type":"string"},
+ "GetServiceInput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "KeyAttributes"
+ ],
+ "members":{
+ "StartTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"StartTime"
+ },
+ "EndTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"EndTime"
+ },
+ "KeyAttributes":{"shape":"Attributes"}
+ }
+ },
+ "GetServiceLevelObjectiveInput":{
+ "type":"structure",
+ "required":["Id"],
+ "members":{
+ "Id":{
+ "shape":"ServiceLevelObjectiveId",
+ "location":"uri",
+ "locationName":"Id"
+ }
+ }
+ },
+ "GetServiceLevelObjectiveOutput":{
+ "type":"structure",
+ "required":["Slo"],
+ "members":{
+ "Slo":{"shape":"ServiceLevelObjective"}
+ }
+ },
+ "GetServiceOutput":{
+ "type":"structure",
+ "required":[
+ "Service",
+ "StartTime",
+ "EndTime"
+ ],
+ "members":{
+ "Service":{"shape":"Service"},
+ "StartTime":{"shape":"Timestamp"},
+ "EndTime":{"shape":"Timestamp"}
+ }
+ },
+ "Goal":{
+ "type":"structure",
+ "members":{
+ "Interval":{"shape":"Interval"},
+ "AttainmentGoal":{"shape":"AttainmentGoal"},
+ "WarningThreshold":{"shape":"WarningThreshold"}
+ }
+ },
+ "Interval":{
+ "type":"structure",
+ "members":{
+ "RollingInterval":{"shape":"RollingInterval"},
+ "CalendarInterval":{"shape":"CalendarInterval"}
+ },
+ "union":true
+ },
+ "KeyAttributeName":{
+ "type":"string",
+ "pattern":"[a-zA-Z]{1,50}"
+ },
+ "KeyAttributeValue":{
+ "type":"string",
+ "max":1024,
+ "min":1,
+ "pattern":"[ -~]*[!-~]+[ -~]*"
+ },
+ "ListServiceDependenciesInput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "KeyAttributes"
+ ],
+ "members":{
+ "StartTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"StartTime"
+ },
+ "EndTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"EndTime"
+ },
+ "KeyAttributes":{"shape":"Attributes"},
+ "MaxResults":{
+ "shape":"ListServiceDependenciesMaxResults",
+ "location":"querystring",
+ "locationName":"MaxResults"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "location":"querystring",
+ "locationName":"NextToken"
+ }
+ }
+ },
+ "ListServiceDependenciesMaxResults":{
+ "type":"integer",
+ "box":true,
+ "max":100,
+ "min":1
+ },
+ "ListServiceDependenciesOutput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "ServiceDependencies"
+ ],
+ "members":{
+ "StartTime":{"shape":"Timestamp"},
+ "EndTime":{"shape":"Timestamp"},
+ "ServiceDependencies":{"shape":"ServiceDependencies"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
+ "ListServiceDependentsInput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "KeyAttributes"
+ ],
+ "members":{
+ "StartTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"StartTime"
+ },
+ "EndTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"EndTime"
+ },
+ "KeyAttributes":{"shape":"Attributes"},
+ "MaxResults":{
+ "shape":"ListServiceDependentsMaxResults",
+ "location":"querystring",
+ "locationName":"MaxResults"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "location":"querystring",
+ "locationName":"NextToken"
+ }
+ }
+ },
+ "ListServiceDependentsMaxResults":{
+ "type":"integer",
+ "box":true,
+ "max":100,
+ "min":1
+ },
+ "ListServiceDependentsOutput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "ServiceDependents"
+ ],
+ "members":{
+ "StartTime":{"shape":"Timestamp"},
+ "EndTime":{"shape":"Timestamp"},
+ "ServiceDependents":{"shape":"ServiceDependents"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
+ "ListServiceLevelObjectivesInput":{
+ "type":"structure",
+ "members":{
+ "KeyAttributes":{"shape":"Attributes"},
+ "OperationName":{
+ "shape":"OperationName",
+ "location":"querystring",
+ "locationName":"OperationName"
+ },
+ "MaxResults":{
+ "shape":"ListServiceLevelObjectivesMaxResults",
+ "location":"querystring",
+ "locationName":"MaxResults"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "location":"querystring",
+ "locationName":"NextToken"
+ }
+ }
+ },
+ "ListServiceLevelObjectivesMaxResults":{
+ "type":"integer",
+ "box":true,
+ "max":50,
+ "min":1
+ },
+ "ListServiceLevelObjectivesOutput":{
+ "type":"structure",
+ "members":{
+ "SloSummaries":{"shape":"ServiceLevelObjectiveSummaries"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
+ "ListServiceOperationMaxResults":{
+ "type":"integer",
+ "box":true,
+ "max":100,
+ "min":1
+ },
+ "ListServiceOperationsInput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "KeyAttributes"
+ ],
+ "members":{
+ "StartTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"StartTime"
+ },
+ "EndTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"EndTime"
+ },
+ "KeyAttributes":{"shape":"Attributes"},
+ "MaxResults":{
+ "shape":"ListServiceOperationMaxResults",
+ "location":"querystring",
+ "locationName":"MaxResults"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "location":"querystring",
+ "locationName":"NextToken"
+ }
+ }
+ },
+ "ListServiceOperationsOutput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "ServiceOperations"
+ ],
+ "members":{
+ "StartTime":{"shape":"Timestamp"},
+ "EndTime":{"shape":"Timestamp"},
+ "ServiceOperations":{"shape":"ServiceOperations"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
+ "ListServicesInput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime"
+ ],
+ "members":{
+ "StartTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"StartTime"
+ },
+ "EndTime":{
+ "shape":"Timestamp",
+ "location":"querystring",
+ "locationName":"EndTime"
+ },
+ "MaxResults":{
+ "shape":"ListServicesMaxResults",
+ "location":"querystring",
+ "locationName":"MaxResults"
+ },
+ "NextToken":{
+ "shape":"NextToken",
+ "location":"querystring",
+ "locationName":"NextToken"
+ }
+ }
+ },
+ "ListServicesMaxResults":{
+ "type":"integer",
+ "box":true,
+ "max":100,
+ "min":1
+ },
+ "ListServicesOutput":{
+ "type":"structure",
+ "required":[
+ "StartTime",
+ "EndTime",
+ "ServiceSummaries"
+ ],
+ "members":{
+ "StartTime":{"shape":"Timestamp"},
+ "EndTime":{"shape":"Timestamp"},
+ "ServiceSummaries":{"shape":"ServiceSummaries"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
+ "ListTagsForResourceRequest":{
+ "type":"structure",
+ "required":["ResourceArn"],
+ "members":{
+ "ResourceArn":{
+ "shape":"AmazonResourceName",
+ "location":"querystring",
+ "locationName":"ResourceArn"
+ }
+ }
+ },
+ "ListTagsForResourceResponse":{
+ "type":"structure",
+ "members":{
+ "Tags":{"shape":"TagList"}
+ }
+ },
+ "Metric":{
+ "type":"structure",
+ "members":{
+ "Namespace":{"shape":"Namespace"},
+ "MetricName":{"shape":"MetricName"},
+ "Dimensions":{"shape":"Dimensions"}
+ }
+ },
+ "MetricDataQueries":{
+ "type":"list",
+ "member":{"shape":"MetricDataQuery"}
+ },
+ "MetricDataQuery":{
+ "type":"structure",
+ "required":["Id"],
+ "members":{
+ "Id":{"shape":"MetricId"},
+ "MetricStat":{"shape":"MetricStat"},
+ "Expression":{"shape":"MetricExpression"},
+ "Label":{"shape":"MetricLabel"},
+ "ReturnData":{"shape":"ReturnData"},
+ "Period":{"shape":"Period"},
+ "AccountId":{"shape":"AccountId"}
+ }
+ },
+ "MetricExpression":{
+ "type":"string",
+ "max":2048,
+ "min":1
+ },
+ "MetricId":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "MetricLabel":{"type":"string"},
+ "MetricName":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "MetricReference":{
+ "type":"structure",
+ "required":[
+ "Namespace",
+ "MetricType",
+ "MetricName"
+ ],
+ "members":{
+ "Namespace":{"shape":"Namespace"},
+ "MetricType":{"shape":"MetricType"},
+ "Dimensions":{"shape":"Dimensions"},
+ "MetricName":{"shape":"MetricName"}
+ }
+ },
+ "MetricReferences":{
+ "type":"list",
+ "member":{"shape":"MetricReference"}
+ },
+ "MetricStat":{
+ "type":"structure",
+ "required":[
+ "Metric",
+ "Period",
+ "Stat"
+ ],
+ "members":{
+ "Metric":{"shape":"Metric"},
+ "Period":{"shape":"Period"},
+ "Stat":{"shape":"Stat"},
+ "Unit":{"shape":"StandardUnit"}
+ }
+ },
+ "MetricType":{
+ "type":"string",
+ "pattern":"[A-Za-z0-9 -]+"
+ },
+ "Namespace":{
+ "type":"string",
+ "max":255,
+ "min":1,
+ "pattern":".*[^:].*"
+ },
+ "NextToken":{"type":"string"},
+ "OperationName":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "Period":{
+ "type":"integer",
+ "box":true,
+ "min":1
+ },
+ "ResourceId":{"type":"string"},
+ "ResourceNotFoundException":{
+ "type":"structure",
+ "required":[
+ "ResourceType",
+ "ResourceId",
+ "Message"
+ ],
+ "members":{
+ "ResourceType":{"shape":"ResourceType"},
+ "ResourceId":{"shape":"ResourceId"},
+ "Message":{"shape":"FaultDescription"}
+ },
+ "error":{
+ "httpStatusCode":404,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ResourceType":{"type":"string"},
+ "ReturnData":{
+ "type":"boolean",
+ "box":true
+ },
+ "RollingInterval":{
+ "type":"structure",
+ "required":[
+ "DurationUnit",
+ "Duration"
+ ],
+ "members":{
+ "DurationUnit":{"shape":"DurationUnit"},
+ "Duration":{"shape":"RollingIntervalDuration"}
+ }
+ },
+ "RollingIntervalDuration":{
+ "type":"integer",
+ "box":true,
+ "min":1
+ },
+ "SLIPeriodSeconds":{
+ "type":"integer",
+ "box":true,
+ "max":900,
+ "min":60
+ },
+ "Service":{
+ "type":"structure",
+ "required":[
+ "KeyAttributes",
+ "MetricReferences"
+ ],
+ "members":{
+ "KeyAttributes":{"shape":"Attributes"},
+ "AttributeMaps":{"shape":"AttributeMaps"},
+ "MetricReferences":{"shape":"MetricReferences"}
+ }
+ },
+ "ServiceDependencies":{
+ "type":"list",
+ "member":{"shape":"ServiceDependency"},
+ "max":100,
+ "min":0
+ },
+ "ServiceDependency":{
+ "type":"structure",
+ "required":[
+ "OperationName",
+ "DependencyKeyAttributes",
+ "DependencyOperationName",
+ "MetricReferences"
+ ],
+ "members":{
+ "OperationName":{"shape":"OperationName"},
+ "DependencyKeyAttributes":{"shape":"Attributes"},
+ "DependencyOperationName":{"shape":"OperationName"},
+ "MetricReferences":{"shape":"MetricReferences"}
+ }
+ },
+ "ServiceDependent":{
+ "type":"structure",
+ "required":[
+ "DependentKeyAttributes",
+ "MetricReferences"
+ ],
+ "members":{
+ "OperationName":{"shape":"OperationName"},
+ "DependentKeyAttributes":{"shape":"Attributes"},
+ "DependentOperationName":{"shape":"OperationName"},
+ "MetricReferences":{"shape":"MetricReferences"}
+ }
+ },
+ "ServiceDependents":{
+ "type":"list",
+ "member":{"shape":"ServiceDependent"},
+ "max":100,
+ "min":0
+ },
+ "ServiceErrorMessage":{"type":"string"},
+ "ServiceLevelIndicator":{
+ "type":"structure",
+ "required":[
+ "SliMetric",
+ "MetricThreshold",
+ "ComparisonOperator"
+ ],
+ "members":{
+ "SliMetric":{"shape":"ServiceLevelIndicatorMetric"},
+ "MetricThreshold":{"shape":"ServiceLevelIndicatorMetricThreshold"},
+ "ComparisonOperator":{"shape":"ServiceLevelIndicatorComparisonOperator"}
+ }
+ },
+ "ServiceLevelIndicatorComparisonOperator":{
+ "type":"string",
+ "enum":[
+ "GreaterThanOrEqualTo",
+ "GreaterThan",
+ "LessThan",
+ "LessThanOrEqualTo"
+ ]
+ },
+ "ServiceLevelIndicatorConfig":{
+ "type":"structure",
+ "required":[
+ "SliMetricConfig",
+ "MetricThreshold",
+ "ComparisonOperator"
+ ],
+ "members":{
+ "SliMetricConfig":{"shape":"ServiceLevelIndicatorMetricConfig"},
+ "MetricThreshold":{"shape":"ServiceLevelIndicatorMetricThreshold"},
+ "ComparisonOperator":{"shape":"ServiceLevelIndicatorComparisonOperator"}
+ }
+ },
+ "ServiceLevelIndicatorMetric":{
+ "type":"structure",
+ "required":["MetricDataQueries"],
+ "members":{
+ "KeyAttributes":{"shape":"Attributes"},
+ "OperationName":{"shape":"OperationName"},
+ "MetricType":{"shape":"ServiceLevelIndicatorMetricType"},
+ "MetricDataQueries":{"shape":"MetricDataQueries"}
+ }
+ },
+ "ServiceLevelIndicatorMetricConfig":{
+ "type":"structure",
+ "members":{
+ "KeyAttributes":{"shape":"Attributes"},
+ "OperationName":{"shape":"OperationName"},
+ "MetricType":{"shape":"ServiceLevelIndicatorMetricType"},
+ "Statistic":{"shape":"ServiceLevelIndicatorStatistic"},
+ "PeriodSeconds":{"shape":"SLIPeriodSeconds"},
+ "MetricDataQueries":{"shape":"MetricDataQueries"}
+ }
+ },
+ "ServiceLevelIndicatorMetricThreshold":{
+ "type":"double",
+ "box":true
+ },
+ "ServiceLevelIndicatorMetricType":{
+ "type":"string",
+ "enum":[
+ "LATENCY",
+ "AVAILABILITY"
+ ]
+ },
+ "ServiceLevelIndicatorStatistic":{
+ "type":"string",
+ "max":20,
+ "min":1,
+ "pattern":"[a-zA-Z0-9.]+"
+ },
+ "ServiceLevelObjective":{
+ "type":"structure",
+ "required":[
+ "Arn",
+ "Name",
+ "CreatedTime",
+ "LastUpdatedTime",
+ "Sli",
+ "Goal"
+ ],
+ "members":{
+ "Arn":{"shape":"ServiceLevelObjectiveArn"},
+ "Name":{"shape":"ServiceLevelObjectiveName"},
+ "Description":{"shape":"ServiceLevelObjectiveDescription"},
+ "CreatedTime":{"shape":"Timestamp"},
+ "LastUpdatedTime":{"shape":"Timestamp"},
+ "Sli":{"shape":"ServiceLevelIndicator"},
+ "Goal":{"shape":"Goal"}
+ }
+ },
+ "ServiceLevelObjectiveArn":{
+ "type":"string",
+ "max":2048,
+ "min":1,
+ "pattern":"arn:aws:application-signals:[^:]*:[^:]*:slo/[0-9A-Za-z][-._0-9A-Za-z ]{0,126}[0-9A-Za-z]"
+ },
+ "ServiceLevelObjectiveBudgetReport":{
+ "type":"structure",
+ "required":[
+ "Arn",
+ "Name",
+ "BudgetStatus"
+ ],
+ "members":{
+ "Arn":{"shape":"ServiceLevelObjectiveArn"},
+ "Name":{"shape":"ServiceLevelObjectiveName"},
+ "BudgetStatus":{"shape":"ServiceLevelObjectiveBudgetStatus"},
+ "Attainment":{"shape":"Attainment"},
+ "TotalBudgetSeconds":{"shape":"TotalBudgetSeconds"},
+ "BudgetSecondsRemaining":{"shape":"BudgetSecondsRemaining"},
+ "Sli":{"shape":"ServiceLevelIndicator"},
+ "Goal":{"shape":"Goal"}
+ }
+ },
+ "ServiceLevelObjectiveBudgetReportError":{
+ "type":"structure",
+ "required":[
+ "Name",
+ "Arn",
+ "ErrorCode",
+ "ErrorMessage"
+ ],
+ "members":{
+ "Name":{"shape":"ServiceLevelObjectiveName"},
+ "Arn":{"shape":"ServiceLevelObjectiveArn"},
+ "ErrorCode":{"shape":"ServiceLevelObjectiveBudgetReportErrorCode"},
+ "ErrorMessage":{"shape":"ServiceLevelObjectiveBudgetReportErrorMessage"}
+ }
+ },
+ "ServiceLevelObjectiveBudgetReportErrorCode":{"type":"string"},
+ "ServiceLevelObjectiveBudgetReportErrorMessage":{"type":"string"},
+ "ServiceLevelObjectiveBudgetReportErrors":{
+ "type":"list",
+ "member":{"shape":"ServiceLevelObjectiveBudgetReportError"},
+ "max":50,
+ "min":0
+ },
+ "ServiceLevelObjectiveBudgetReports":{
+ "type":"list",
+ "member":{"shape":"ServiceLevelObjectiveBudgetReport"},
+ "max":50,
+ "min":0
+ },
+ "ServiceLevelObjectiveBudgetStatus":{
+ "type":"string",
+ "enum":[
+ "OK",
+ "WARNING",
+ "BREACHED",
+ "INSUFFICIENT_DATA"
+ ]
+ },
+ "ServiceLevelObjectiveDescription":{
+ "type":"string",
+ "max":1024,
+ "min":1
+ },
+ "ServiceLevelObjectiveId":{
+ "type":"string",
+ "pattern":"[0-9A-Za-z][-._0-9A-Za-z ]{0,126}[0-9A-Za-z]$|^arn:aws:application-signals:[^:]*:[^:]*:slo/[0-9A-Za-z][-._0-9A-Za-z ]{0,126}[0-9A-Za-z]"
+ },
+ "ServiceLevelObjectiveIds":{
+ "type":"list",
+ "member":{"shape":"String"},
+ "max":50,
+ "min":1
+ },
+ "ServiceLevelObjectiveName":{
+ "type":"string",
+ "pattern":"[0-9A-Za-z][-._0-9A-Za-z ]{0,126}[0-9A-Za-z]"
+ },
+ "ServiceLevelObjectiveSummaries":{
+ "type":"list",
+ "member":{"shape":"ServiceLevelObjectiveSummary"}
+ },
+ "ServiceLevelObjectiveSummary":{
+ "type":"structure",
+ "required":[
+ "Arn",
+ "Name"
+ ],
+ "members":{
+ "Arn":{"shape":"ServiceLevelObjectiveArn"},
+ "Name":{"shape":"ServiceLevelObjectiveName"},
+ "KeyAttributes":{"shape":"Attributes"},
+ "OperationName":{"shape":"OperationName"},
+ "CreatedTime":{"shape":"Timestamp"}
+ }
+ },
+ "ServiceOperation":{
+ "type":"structure",
+ "required":[
+ "Name",
+ "MetricReferences"
+ ],
+ "members":{
+ "Name":{"shape":"OperationName"},
+ "MetricReferences":{"shape":"MetricReferences"}
+ }
+ },
+ "ServiceOperations":{
+ "type":"list",
+ "member":{"shape":"ServiceOperation"},
+ "max":100,
+ "min":0
+ },
+ "ServiceQuotaExceededException":{
+ "type":"structure",
+ "required":["Message"],
+ "members":{
+ "Message":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":402,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ServiceSummaries":{
+ "type":"list",
+ "member":{"shape":"ServiceSummary"}
+ },
+ "ServiceSummary":{
+ "type":"structure",
+ "required":[
+ "KeyAttributes",
+ "MetricReferences"
+ ],
+ "members":{
+ "KeyAttributes":{"shape":"Attributes"},
+ "AttributeMaps":{"shape":"AttributeMaps"},
+ "MetricReferences":{"shape":"MetricReferences"}
+ }
+ },
+ "StandardUnit":{
+ "type":"string",
+ "enum":[
+ "Microseconds",
+ "Milliseconds",
+ "Seconds",
+ "Bytes",
+ "Kilobytes",
+ "Megabytes",
+ "Gigabytes",
+ "Terabytes",
+ "Bits",
+ "Kilobits",
+ "Megabits",
+ "Gigabits",
+ "Terabits",
+ "Percent",
+ "Count",
+ "Bytes/Second",
+ "Kilobytes/Second",
+ "Megabytes/Second",
+ "Gigabytes/Second",
+ "Terabytes/Second",
+ "Bits/Second",
+ "Kilobits/Second",
+ "Megabits/Second",
+ "Gigabits/Second",
+ "Terabits/Second",
+ "Count/Second",
+ "None"
+ ]
+ },
+ "StartDiscoveryInput":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "StartDiscoveryOutput":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "Stat":{"type":"string"},
+ "String":{"type":"string"},
+ "Tag":{
+ "type":"structure",
+ "required":[
+ "Key",
+ "Value"
+ ],
+ "members":{
+ "Key":{"shape":"TagKey"},
+ "Value":{"shape":"TagValue"}
+ }
+ },
+ "TagKey":{
+ "type":"string",
+ "max":128,
+ "min":1
+ },
+ "TagKeyList":{
+ "type":"list",
+ "member":{"shape":"TagKey"},
+ "max":200,
+ "min":0
+ },
+ "TagList":{
+ "type":"list",
+ "member":{"shape":"Tag"},
+ "max":200,
+ "min":0
+ },
+ "TagResourceRequest":{
+ "type":"structure",
+ "required":[
+ "ResourceArn",
+ "Tags"
+ ],
+ "members":{
+ "ResourceArn":{"shape":"AmazonResourceName"},
+ "Tags":{"shape":"TagList"}
+ }
+ },
+ "TagResourceResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "TagValue":{
+ "type":"string",
+ "max":256,
+ "min":0
+ },
+ "ThrottlingException":{
+ "type":"structure",
+ "required":["Message"],
+ "members":{
+ "Message":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":429,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "Timestamp":{"type":"timestamp"},
+ "TotalBudgetSeconds":{
+ "type":"integer",
+ "box":true
+ },
+ "UntagResourceRequest":{
+ "type":"structure",
+ "required":[
+ "ResourceArn",
+ "TagKeys"
+ ],
+ "members":{
+ "ResourceArn":{"shape":"AmazonResourceName"},
+ "TagKeys":{"shape":"TagKeyList"}
+ }
+ },
+ "UntagResourceResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "UpdateServiceLevelObjectiveInput":{
+ "type":"structure",
+ "required":["Id"],
+ "members":{
+ "Id":{
+ "shape":"ServiceLevelObjectiveId",
+ "location":"uri",
+ "locationName":"Id"
+ },
+ "Description":{"shape":"ServiceLevelObjectiveDescription"},
+ "SliConfig":{"shape":"ServiceLevelIndicatorConfig"},
+ "Goal":{"shape":"Goal"}
+ }
+ },
+ "UpdateServiceLevelObjectiveOutput":{
+ "type":"structure",
+ "required":["Slo"],
+ "members":{
+ "Slo":{"shape":"ServiceLevelObjective"}
+ }
+ },
+ "ValidationException":{
+ "type":"structure",
+ "members":{
+ "message":{"shape":"ValidationExceptionMessage"}
+ },
+ "error":{
+ "httpStatusCode":400,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ValidationExceptionMessage":{"type":"string"},
+ "WarningThreshold":{
+ "type":"double",
+ "box":true
+ }
+ }
+}
diff --git a/models/apis/application-signals/2024-04-15/docs-2.json b/models/apis/application-signals/2024-04-15/docs-2.json
new file mode 100644
index 00000000000..40de546787b
--- /dev/null
+++ b/models/apis/application-signals/2024-04-15/docs-2.json
@@ -0,0 +1,844 @@
+{
+ "version": "2.0",
+ "service": " This is a Preview release of the Application Signals API Reference. Operations and parameters are subject to change before the general availability release.
Use CloudWatch Application Signals for comprehensive observability of your cloud-based applications. It enables real-time service health dashboards and helps you track long-term performance trends against your business goals. The application-centric view provides you with unified visibility across your applications, services, and dependencies, so you can proactively monitor and efficiently triage any issues that may arise, ensuring optimal customer experience.
Application Signals provides the following benefits:
Automatically collect metrics and traces from your applications, and display key metrics such as call volume, availability, latency, faults, and errors.
Create and monitor service level objectives (SLOs).
See a map of your application topology that Application Signals automatically discovers, that gives you a visual representation of your applications, dependencies, and their connectivity.
Use this operation to retrieve one or more service level objective (SLO) budget reports.
An error budget is the amount of time in unhealthy periods that your service can accumulate during an interval before your overall SLO budget health is breached and the SLO is considered to be unmet. For example, an SLO with a threshold of 99.95% and a monthly interval translates to an error budget of 21.9 minutes of downtime in a 30-day month.
Budget reports include a health indicator, the attainment value, and remaining budget.
For more information about SLO error budgets, see SLO concepts.
", + "CreateServiceLevelObjective": "Creates a service level objective (SLO), which can help you ensure that your critical business operations are meeting customer expectations. Use SLOs to set and track specific target levels for the reliability and availability of your applications and services. SLOs use service level indicators (SLIs) to calculate whether the application is performing at the level that you want.
Create an SLO to set a target for a service or operation’s availability or latency. CloudWatch measures this target frequently you can find whether it has been breached.
When you create an SLO, you set an attainment goal for it. An attainment goal is the ratio of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.
After you have created an SLO, you can retrieve error budget reports for it. An error budget is the number of periods or amount of time that your service can accumulate during an interval before your overall SLO budget health is breached and the SLO is considered to be unmet. for example, an SLO with a threshold that 99.95% of requests must be completed under 2000ms every month translates to an error budget of 21.9 minutes of downtime per month.
When you call this operation, Application Signals creates the AWSServiceRoleForCloudWatchApplicationSignals service-linked role, if it doesn't already exist in your account. This service- linked role has the following permissions:
xray:GetServiceGraph
logs:StartQuery
logs:GetQueryResults
cloudwatch:GetMetricData
cloudwatch:ListMetrics
tag:GetResources
autoscaling:DescribeAutoScalingGroups
You can easily set SLO targets for your applications that are discovered by Application Signals, using critical metrics such as latency and availability. You can also set SLOs against any CloudWatch metric or math expression that produces a time series.
For more information about SLOs, see Service level objectives (SLOs).
", + "DeleteServiceLevelObjective": "Deletes the specified service level objective.
", + "GetService": "Returns information about a service discovered by Application Signals.
", + "GetServiceLevelObjective": "Returns information about one SLO created in the account.
", + "ListServiceDependencies": "Returns a list of service dependencies of the service that you specify. A dependency is an infrastructure component that an operation of this service connects with. Dependencies can include Amazon Web Services services, Amazon Web Services resources, and third-party services.
", + "ListServiceDependents": "Returns the list of dependents that invoked the specified service during the provided time range. Dependents include other services, CloudWatch Synthetics canaries, and clients that are instrumented with CloudWatch RUM app monitors.
", + "ListServiceLevelObjectives": "Returns a list of SLOs created in this account.
", + "ListServiceOperations": "Returns a list of the operations of this service that have been discovered by Application Signals. Only the operations that were invoked during the specified time range are returned.
", + "ListServices": "Returns a list of services that have been discovered by Application Signals. A service represents a minimum logical and transactional unit that completes a business function. Services are discovered through Application Signals instrumentation.
", + "ListTagsForResource": "Displays the tags associated with a CloudWatch resource. Tags can be assigned to service level objectives.
", + "StartDiscovery": "Enables this Amazon Web Services account to be able to use CloudWatch Application Signals by creating the AWSServiceRoleForCloudWatchApplicationSignals service-linked role. This service- linked role has the following permissions:
xray:GetServiceGraph
logs:StartQuery
logs:GetQueryResults
cloudwatch:GetMetricData
cloudwatch:ListMetrics
tag:GetResources
autoscaling:DescribeAutoScalingGroups
After completing this step, you still need to instrument your Java and Python applications to send data to Application Signals. For more information, see Enabling Application Signals.
", + "TagResource": "Assigns one or more tags (key-value pairs) to the specified CloudWatch resource, such as a service level objective.
Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.
You can use the TagResource action with an alarm that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.
You can associate as many as 50 tags with a CloudWatch resource.
", + "UntagResource": "Removes one or more tags from the specified resource.
", + "UpdateServiceLevelObjective": "Updates an existing service level objective (SLO). If you omit parameters, the previous values of those parameters are retained.
" + }, + "shapes": { + "AccessDeniedException": { + "base": "You don't have sufficient permissions to perform this action.
", + "refs": { + } + }, + "AccountId": { + "base": null, + "refs": { + "MetricDataQuery$AccountId": "The ID of the account where this metric is located. If you are performing this operatiion in a monitoring account, use this to specify which source account to retrieve this metric from.
" + } + }, + "AmazonResourceName": { + "base": null, + "refs": { + "ListTagsForResourceRequest$ResourceArn": "The Amazon Resource Name (ARN) of the CloudWatch resource that you want to view tags for.
The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name
For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the Amazon Web Services General Reference.
", + "TagResourceRequest$ResourceArn": "The Amazon Resource Name (ARN) of the CloudWatch resource that you want to set tags for.
The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name
For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the Amazon Web Services General Reference.
", + "UntagResourceRequest$ResourceArn": "The Amazon Resource Name (ARN) of the CloudWatch resource that you want to delete tags from.
The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name
For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the Amazon Web Services General Reference.
" + } + }, + "Attainment": { + "base": null, + "refs": { + "ServiceLevelObjectiveBudgetReport$Attainment": "A number between 0 and 100 that represents the percentage of time periods that the service has attained the SLO's attainment goal, as of the time of the request.
" + } + }, + "AttainmentGoal": { + "base": null, + "refs": { + "Goal$AttainmentGoal": "The threshold that determines if the goal is being met. An attainment goal is the ratio of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.
If you omit this parameter, 99 is used to represent 99% as the attainment goal.
" + } + }, + "AttributeMap": { + "base": null, + "refs": { + "AttributeMaps$member": null + } + }, + "AttributeMaps": { + "base": null, + "refs": { + "Service$AttributeMaps": "This structure contains one or more string-to-string maps that help identify this service. It can include platform attributes, application attributes, and telemetry attributes.
Platform attributes contain information the service's platform.
PlatformType defines the hosted-in platform.
EKS.Cluster is the name of the Amazon EKS cluster.
K8s.Cluster is the name of the self-hosted Kubernetes cluster.
K8s.Namespace is the name of the Kubernetes namespace in either Amazon EKS or Kubernetes clusters.
K8s.Workload is the name of the Kubernetes workload in either Amazon EKS or Kubernetes clusters.
K8s.Node is the name of the Kubernetes node in either Amazon EKS or Kubernetes clusters.
K8s.Pod is the name of the Kubernetes pod in either Amazon EKS or Kubernetes clusters.
EC2.AutoScalingGroup is the name of the Amazon EC2 Auto Scaling group.
EC2.InstanceId is the ID of the Amazon EC2 instance.
Host is the name of the host, for all platform types.
Applciation attributes contain information about the application.
AWS.Application is the application's name in Amazon Web Services Service Catalog AppRegistry.
AWS.Application.ARN is the application's ARN in Amazon Web Services Service Catalog AppRegistry.
Telemetry attributes contain telemetry information.
Telemetry.SDK is the fingerprint of the OpenTelemetry SDK version for instrumented services.
Telemetry.Agent is the fingerprint of the agent used to collect and send telemetry data.
Telemetry.Source Specifies the point of application where the telemetry was collected or specifies what was used for the source of telemetry data.
This structure contains one or more string-to-string maps that help identify this service. It can include platform attributes, application attributes, and telemetry attributes.
Platform attributes contain information the service's platform.
PlatformType defines the hosted-in platform.
EKS.Cluster is the name of the Amazon EKS cluster.
K8s.Cluster is the name of the self-hosted Kubernetes cluster.
K8s.Namespace is the name of the Kubernetes namespace in either Amazon EKS or Kubernetes clusters.
K8s.Workload is the name of the Kubernetes workload in either Amazon EKS or Kubernetes clusters.
K8s.Node is the name of the Kubernetes node in either Amazon EKS or Kubernetes clusters.
K8s.Pod is the name of the Kubernetes pod in either Amazon EKS or Kubernetes clusters.
EC2.AutoScalingGroup is the name of the Amazon EC2 Auto Scaling group.
EC2.InstanceId is the ID of the Amazon EC2 instance.
Host is the name of the host, for all platform types.
Applciation attributes contain information about the application.
AWS.Application is the application's name in Amazon Web Services Service Catalog AppRegistry.
AWS.Application.ARN is the application's ARN in Amazon Web Services Service Catalog AppRegistry.
Telemetry attributes contain telemetry information.
Telemetry.SDK is the fingerprint of the OpenTelemetry SDK version for instrumented services.
Telemetry.Agent is the fingerprint of the agent used to collect and send telemetry data.
Telemetry.Source Specifies the point of application where the telemetry was collected or specifies what was used for the source of telemetry data.
Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
You can use this optional field to specify which services you want to retrieve SLO information for.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
This is a string-to-string map that contains information about the type of object that this SLO is related to. It can include the following fields.
Type designates the type of object that this SLO is related to.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
If this SLO is related to a metric collected by Application Signals, you must use this field to specify which service the SLO metric is related to. To do so, you must specify at least the Type, Name, and Environment attributes.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
This is a string-to-string map. It can include the following fields.
Type designates the type of object this service level objective is for.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
This is a string-to-string map that help identify the objects discovered by Application Signals. It can include the following fields.
Type designates the type of object this is.
ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource.
Name specifies the name of the object. This is used only if the value of the Type field is Service, RemoteService, or AWS::Service.
Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource.
Environment specifies the location where this object is hosted, or what it belongs to.
The budget amount remaining before the SLO status becomes BREACHING, at the time specified in the Timestemp parameter of the request. If this value is negative, then the SLO is already in BREACHING status.
If the interval for this service level objective is a calendar interval, this structure contains the interval specifications.
", + "refs": { + "Interval$CalendarInterval": "If the interval is a calendar interval, this structure contains the interval specifications.
" + } + }, + "CalendarIntervalDuration": { + "base": null, + "refs": { + "CalendarInterval$Duration": "Specifies the duration of each calendar interval. For example, if Duration is 1 and DurationUnit is MONTH, each interval is one month, aligned with the calendar.
This operation attempted to create a resource that already exists.
", + "refs": { + } + }, + "CreateServiceLevelObjectiveInput": { + "base": null, + "refs": { + } + }, + "CreateServiceLevelObjectiveOutput": { + "base": null, + "refs": { + } + }, + "DeleteServiceLevelObjectiveInput": { + "base": null, + "refs": { + } + }, + "DeleteServiceLevelObjectiveOutput": { + "base": null, + "refs": { + } + }, + "Dimension": { + "base": "A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish InstanceId as a dimension name, and the actual instance ID as the value for that dimension.
You can assign up to 30 dimensions to a metric.
", + "refs": { + "Dimensions$member": null + } + }, + "DimensionName": { + "base": null, + "refs": { + "Dimension$Name": "The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). ASCII control characters are not supported as part of dimension names.
The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values.
" + } + }, + "Dimensions": { + "base": null, + "refs": { + "Metric$Dimensions": "An array of one or more dimensions to use to define the metric that you want to use. For more information, see Dimensions.
", + "MetricReference$Dimensions": "An array of one or more dimensions that further define the metric. For more information, see CloudWatchDimensions.
" + } + }, + "DurationUnit": { + "base": null, + "refs": { + "CalendarInterval$DurationUnit": "Specifies the calendar interval unit.
", + "RollingInterval$DurationUnit": "Specifies the rolling interval unit.
" + } + }, + "FaultDescription": { + "base": null, + "refs": { + "ResourceNotFoundException$Message": null + } + }, + "GetServiceInput": { + "base": null, + "refs": { + } + }, + "GetServiceLevelObjectiveInput": { + "base": null, + "refs": { + } + }, + "GetServiceLevelObjectiveOutput": { + "base": null, + "refs": { + } + }, + "GetServiceOutput": { + "base": null, + "refs": { + } + }, + "Goal": { + "base": "This structure contains the attributes that determine the goal of an SLO. This includes the time period for evaluation and the attainment threshold.
", + "refs": { + "CreateServiceLevelObjectiveInput$Goal": "A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold.
", + "ServiceLevelObjective$Goal": null, + "ServiceLevelObjectiveBudgetReport$Goal": null, + "UpdateServiceLevelObjectiveInput$Goal": "A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold.
" + } + }, + "Interval": { + "base": "The time period used to evaluate the SLO. It can be either a calendar interval or rolling interval.
", + "refs": { + "Goal$Interval": "The time period used to evaluate the SLO. It can be either a calendar interval or rolling interval.
If you omit this parameter, a rolling interval of 7 days is used.
" + } + }, + "KeyAttributeName": { + "base": null, + "refs": { + "Attributes$key": null + } + }, + "KeyAttributeValue": { + "base": null, + "refs": { + "Attributes$value": null + } + }, + "ListServiceDependenciesInput": { + "base": null, + "refs": { + } + }, + "ListServiceDependenciesMaxResults": { + "base": null, + "refs": { + "ListServiceDependenciesInput$MaxResults": "The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used.
" + } + }, + "ListServiceDependenciesOutput": { + "base": null, + "refs": { + } + }, + "ListServiceDependentsInput": { + "base": null, + "refs": { + } + }, + "ListServiceDependentsMaxResults": { + "base": null, + "refs": { + "ListServiceDependentsInput$MaxResults": "The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used.
" + } + }, + "ListServiceDependentsOutput": { + "base": null, + "refs": { + } + }, + "ListServiceLevelObjectivesInput": { + "base": null, + "refs": { + } + }, + "ListServiceLevelObjectivesMaxResults": { + "base": null, + "refs": { + "ListServiceLevelObjectivesInput$MaxResults": "The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used.
" + } + }, + "ListServiceLevelObjectivesOutput": { + "base": null, + "refs": { + } + }, + "ListServiceOperationMaxResults": { + "base": null, + "refs": { + "ListServiceOperationsInput$MaxResults": "The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used.
" + } + }, + "ListServiceOperationsInput": { + "base": null, + "refs": { + } + }, + "ListServiceOperationsOutput": { + "base": null, + "refs": { + } + }, + "ListServicesInput": { + "base": null, + "refs": { + } + }, + "ListServicesMaxResults": { + "base": null, + "refs": { + "ListServicesInput$MaxResults": "The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used.
" + } + }, + "ListServicesOutput": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "Metric": { + "base": "This structure defines the metric used for a service level indicator, including the metric name, namespace, and dimensions
", + "refs": { + "MetricStat$Metric": "The metric to use as the service level indicator, including the metric name, namespace, and dimensions.
" + } + }, + "MetricDataQueries": { + "base": null, + "refs": { + "ServiceLevelIndicatorMetric$MetricDataQueries": "If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
", + "ServiceLevelIndicatorMetricConfig$MetricDataQueries": "If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, use this structure to specify that metric or expression.
" + } + }, + "MetricDataQuery": { + "base": "Use this structure to define a metric or metric math expression that you want to use as for a service level objective.
Each MetricDataQuery in the MetricDataQueries array specifies either a metric to retrieve, or a metric math expression to be performed on retrieved metrics. A single MetricDataQueries array can include as many as 20 MetricDataQuery structures in the array. The 20 structures can include as many as 10 structures that contain a MetricStat parameter to retrieve a metric, and as many as 10 structures that contain the Expression parameter to perform a math expression. Of those Expression structures, exactly one must have true as the value for ReturnData. The result of this expression used for the SLO.
For more information about metric math expressions, see CloudWatchUse metric math.
Within each MetricDataQuery object, you must specify either Expression or MetricStat but not both.
This field can contain a metric math expression to be performed on the other metrics that you are retrieving within this MetricDataQueries structure.
A math expression can use the Id of the other metrics or queries to refer to those metrics, and can also use the Id of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.
Within each MetricDataQuery object, you must specify either Expression or MetricStat but not both.
A short name used to tie this object to the results in the response. This Id must be unique within a MetricDataQueries array. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the metric math expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter.
A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default.
You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels.
" + } + }, + "MetricName": { + "base": null, + "refs": { + "Metric$MetricName": "The name of the metric to use.
", + "MetricReference$MetricName": "The name of the metric.
" + } + }, + "MetricReference": { + "base": "This structure contains information about one CloudWatch metric associated with this entity discovered by Application Signals.
", + "refs": { + "MetricReferences$member": null + } + }, + "MetricReferences": { + "base": null, + "refs": { + "Service$MetricReferences": "An array of structures that each contain information about one metric associated with this service.
", + "ServiceDependency$MetricReferences": "An array of structures that each contain information about one metric associated with this service dependency that was discovered by Application Signals.
", + "ServiceDependent$MetricReferences": "An array of structures that each contain information about one metric associated with this service dependent that was discovered by Application Signals.
", + "ServiceOperation$MetricReferences": "An array of structures that each contain information about one metric associated with this service operation that was discovered by Application Signals.
", + "ServiceSummary$MetricReferences": "An array of structures that each contain information about one metric associated with this service.
" + } + }, + "MetricStat": { + "base": "This structure defines the metric to be used as the service level indicator, along with the statistics, period, and unit.
", + "refs": { + "MetricDataQuery$MetricStat": "A metric to be used directly for the SLO, or to be used in the math expression that will be used for the SLO.
Within one MetricDataQuery object, you must specify either Expression or MetricStat but not both.
Used to display the appropriate statistics in the CloudWatch console.
" + } + }, + "Namespace": { + "base": null, + "refs": { + "Metric$Namespace": "The namespace of the metric. For more information, see Namespaces.
", + "MetricReference$Namespace": "The namespace of the metric. For more information, see CloudWatchNamespaces.
" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListServiceDependenciesInput$NextToken": "Include this value, if it was returned by the previous operation, to get the next set of service dependencies.
", + "ListServiceDependenciesOutput$NextToken": "Include this value in your next use of this API to get next set of service dependencies.
", + "ListServiceDependentsInput$NextToken": "Include this value, if it was returned by the previous operation, to get the next set of service dependents.
", + "ListServiceDependentsOutput$NextToken": "Include this value in your next use of this API to get next set of service dependents.
", + "ListServiceLevelObjectivesInput$NextToken": "Include this value, if it was returned by the previous operation, to get the next set of service level objectives.
", + "ListServiceLevelObjectivesOutput$NextToken": "Include this value in your next use of this API to get next set of service level objectives.
", + "ListServiceOperationsInput$NextToken": "Include this value, if it was returned by the previous operation, to get the next set of service operations.
", + "ListServiceOperationsOutput$NextToken": "Include this value in your next use of this API to get next set of service operations.
", + "ListServicesInput$NextToken": "Include this value, if it was returned by the previous operation, to get the next set of services.
", + "ListServicesOutput$NextToken": "Include this value in your next use of this API to get next set of services.
" + } + }, + "OperationName": { + "base": null, + "refs": { + "ListServiceLevelObjectivesInput$OperationName": "The name of the operation that this SLO is associated with.
", + "ServiceDependency$OperationName": "The name of the operation in this service that calls the dependency.
", + "ServiceDependency$DependencyOperationName": "The name of the called operation in the dependency.
", + "ServiceDependent$OperationName": "If the invoked entity is an operation on an entity, the name of that dependent operation is displayed here.
", + "ServiceDependent$DependentOperationName": "If the dependent invoker was a service that invoked it from an operation, the name of that dependent operation is displayed here.
", + "ServiceLevelIndicatorMetric$OperationName": "If the SLO monitors a specific operation of the service, this field displays that operation name.
", + "ServiceLevelIndicatorMetricConfig$OperationName": "If the SLO is to monitor a specific operation of the service, use this field to specify the name of that operation.
", + "ServiceLevelObjectiveSummary$OperationName": "If this service level objective is specific to a single operation, this field displays the name of that operation.
", + "ServiceOperation$Name": "The name of the operation, discovered by Application Signals.
" + } + }, + "Period": { + "base": null, + "refs": { + "MetricDataQuery$Period": "The granularity, in seconds, of the returned data points for this metric. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second.
If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:
Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).
Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).
Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour).
The granularity, in seconds, to be used for the metric. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second.
Cannot find the resource id.
" + } + }, + "ResourceNotFoundException": { + "base": "Resource not found.
", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "ResourceNotFoundException$ResourceType": "The resource type is not valid.
" + } + }, + "ReturnData": { + "base": null, + "refs": { + "MetricDataQuery$ReturnData": "Use this only if you are using a metric math expression for the SLO. Specify true for ReturnData for only the one expression result to use as the alarm. For all other metrics and expressions in the same CreateServiceLevelObjective operation, specify ReturnData as false.
If the interval for this SLO is a rolling interval, this structure contains the interval specifications.
", + "refs": { + "Interval$RollingInterval": "If the interval is a rolling interval, this structure contains the interval specifications.
" + } + }, + "RollingIntervalDuration": { + "base": null, + "refs": { + "RollingInterval$Duration": "Specifies the duration of each rolling interval. For example, if Duration is 7 and DurationUnit is DAY, each rolling interval is seven days.
The number of seconds to use as the period for SLO evaluation. Your application's performance is compared to the SLI during each period. For each period, the application is determined to have either achieved or not achieved the necessary performance.
" + } + }, + "Service": { + "base": "This structure contains information about one of your services that was discovered by Application Signals.
", + "refs": { + "GetServiceOutput$Service": "A structure containing information about the service.
" + } + }, + "ServiceDependencies": { + "base": null, + "refs": { + "ListServiceDependenciesOutput$ServiceDependencies": "An array, where each object in the array contains information about one of the dependencies of this service.
" + } + }, + "ServiceDependency": { + "base": "This structure contains information about one dependency of this service.
", + "refs": { + "ServiceDependencies$member": null + } + }, + "ServiceDependent": { + "base": "This structure contains information about a service dependent that was discovered by Application Signals. A dependent is an entity that invoked the specified service during the provided time range. Dependents include other services, CloudWatch Synthetics canaries, and clients that are instrumented with CloudWatch RUM app monitors.
", + "refs": { + "ServiceDependents$member": null + } + }, + "ServiceDependents": { + "base": null, + "refs": { + "ListServiceDependentsOutput$ServiceDependents": "An array, where each object in the array contains information about one of the dependents of this service.
" + } + }, + "ServiceErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$Message": null + } + }, + "ServiceLevelIndicator": { + "base": "This structure contains information about the performance metric that an SLO monitors.
", + "refs": { + "ServiceLevelObjective$Sli": "A structure containing information about the performance metric that this SLO monitors.
", + "ServiceLevelObjectiveBudgetReport$Sli": "A structure that contains information about the performance metric that this SLO monitors.
" + } + }, + "ServiceLevelIndicatorComparisonOperator": { + "base": null, + "refs": { + "ServiceLevelIndicator$ComparisonOperator": "The arithmetic operation used when comparing the specified metric to the threshold.
", + "ServiceLevelIndicatorConfig$ComparisonOperator": "The arithmetic operation to use when comparing the specified metric to the threshold.
" + } + }, + "ServiceLevelIndicatorConfig": { + "base": "This structure specifies the information about the service and the performance metric that an SLO is to monitor.
", + "refs": { + "CreateServiceLevelObjectiveInput$SliConfig": "A structure that contains information about what service and what performance metric that this SLO will monitor.
", + "UpdateServiceLevelObjectiveInput$SliConfig": "A structure that contains information about what performance metric this SLO will monitor.
" + } + }, + "ServiceLevelIndicatorMetric": { + "base": "This structure contains the information about the metric that is used for the SLO.
", + "refs": { + "ServiceLevelIndicator$SliMetric": "A structure that contains information about the metric that the SLO monitors.
" + } + }, + "ServiceLevelIndicatorMetricConfig": { + "base": "Use this structure to specify the information for the metric that the SLO will monitor.
", + "refs": { + "ServiceLevelIndicatorConfig$SliMetricConfig": "Use this structure to specify the metric to be used for the SLO.
" + } + }, + "ServiceLevelIndicatorMetricThreshold": { + "base": null, + "refs": { + "ServiceLevelIndicator$MetricThreshold": "The value that the SLI metric is compared to.
", + "ServiceLevelIndicatorConfig$MetricThreshold": "The value that the SLI metric is compared to.
" + } + }, + "ServiceLevelIndicatorMetricType": { + "base": null, + "refs": { + "ServiceLevelIndicatorMetric$MetricType": "If the SLO monitors either the LATENCY or AVAILABILITY metric that Application Signals collects, this field displays which of those metrics is used.
If the SLO is to monitor either the LATENCY or AVAILABILITY metric that Application Signals collects, use this field to specify which of those metrics is used.
The statistic to use for comparison to the threshold. It can be any CloudWatch statistic or extended statistic. For more information about statistics, see CloudWatch statistics definitions.
" + } + }, + "ServiceLevelObjective": { + "base": "A structure containing information about one service level objective (SLO) that has been created in Application Signals. Creating SLOs can help you ensure your services are performing to the level that you expect. SLOs help you set and track a specific target level for the reliability and availability of your applications and services. Each SLO uses a service level indicator (SLI), which is a key performance metric, to calculate how much underperformance can be tolerated before the goal that you set for the SLO is not achieved.
", + "refs": { + "CreateServiceLevelObjectiveOutput$Slo": "A structure that contains information about the SLO that you just created.
", + "GetServiceLevelObjectiveOutput$Slo": "A structure containing the information about the SLO.
", + "UpdateServiceLevelObjectiveOutput$Slo": "A structure that contains information about the SLO that you just updated.
" + } + }, + "ServiceLevelObjectiveArn": { + "base": null, + "refs": { + "ServiceLevelObjective$Arn": "The ARN of this SLO.
", + "ServiceLevelObjectiveBudgetReport$Arn": "The ARN of the SLO that this report is for.
", + "ServiceLevelObjectiveBudgetReportError$Arn": "The ARN of the SLO that this error is related to.
", + "ServiceLevelObjectiveSummary$Arn": "The ARN of this service level objective.
" + } + }, + "ServiceLevelObjectiveBudgetReport": { + "base": "A structure containing an SLO budget report that you have requested.
", + "refs": { + "ServiceLevelObjectiveBudgetReports$member": null + } + }, + "ServiceLevelObjectiveBudgetReportError": { + "base": "A structure containing information about one error that occurred during a BatchGetServiceLevelObjectiveBudgetReport operation.
", + "refs": { + "ServiceLevelObjectiveBudgetReportErrors$member": null + } + }, + "ServiceLevelObjectiveBudgetReportErrorCode": { + "base": null, + "refs": { + "ServiceLevelObjectiveBudgetReportError$ErrorCode": "The error code for this error.
" + } + }, + "ServiceLevelObjectiveBudgetReportErrorMessage": { + "base": null, + "refs": { + "ServiceLevelObjectiveBudgetReportError$ErrorMessage": "The message for this error.
" + } + }, + "ServiceLevelObjectiveBudgetReportErrors": { + "base": null, + "refs": { + "BatchGetServiceLevelObjectiveBudgetReportOutput$Errors": "An array of structures, where each structure includes an error indicating that one of the requests in the array was not valid.
" + } + }, + "ServiceLevelObjectiveBudgetReports": { + "base": null, + "refs": { + "BatchGetServiceLevelObjectiveBudgetReportOutput$Reports": "An array of structures, where each structure is one budget report.
" + } + }, + "ServiceLevelObjectiveBudgetStatus": { + "base": null, + "refs": { + "ServiceLevelObjectiveBudgetReport$BudgetStatus": "The status of this SLO, as it relates to the error budget for the entire time interval.
OK means that the SLO had remaining budget above the warning threshold, as of the time that you specified in TimeStamp.
WARNING means that the SLO's remaining budget was below the warning threshold, as of the time that you specified in TimeStamp.
BREACHED means that the SLO's budget was exhausted, as of the time that you specified in TimeStamp.
INSUFFICIENT_DATA means that the specifed start and end times were before the SLO was created, or that attainment data is missing.
An optional description for this SLO.
", + "ServiceLevelObjective$Description": "The description that you created for this SLO.
", + "UpdateServiceLevelObjectiveInput$Description": "An optional description for the SLO.
" + } + }, + "ServiceLevelObjectiveId": { + "base": null, + "refs": { + "DeleteServiceLevelObjectiveInput$Id": "The ARN or name of the service level objective to delete.
", + "GetServiceLevelObjectiveInput$Id": "The ARN or name of the SLO that you want to retrieve information about. You can find the ARNs of SLOs by using the ListServiceLevelObjectives operation.
", + "UpdateServiceLevelObjectiveInput$Id": "The Amazon Resource Name (ARN) or name of the service level objective that you want to update.
" + } + }, + "ServiceLevelObjectiveIds": { + "base": null, + "refs": { + "BatchGetServiceLevelObjectiveBudgetReportInput$SloIds": "An array containing the IDs of the service level objectives that you want to include in the report.
" + } + }, + "ServiceLevelObjectiveName": { + "base": null, + "refs": { + "CreateServiceLevelObjectiveInput$Name": "A name for this SLO.
", + "ServiceLevelObjective$Name": "The name of this SLO.
", + "ServiceLevelObjectiveBudgetReport$Name": "The name of the SLO that this report is for.
", + "ServiceLevelObjectiveBudgetReportError$Name": "The name of the SLO that this error is related to.
", + "ServiceLevelObjectiveSummary$Name": "The name of the service level objective.
" + } + }, + "ServiceLevelObjectiveSummaries": { + "base": null, + "refs": { + "ListServiceLevelObjectivesOutput$SloSummaries": "An array of structures, where each structure contains information about one SLO.
" + } + }, + "ServiceLevelObjectiveSummary": { + "base": "A structure that contains information about one service level objective (SLO) created in Application Signals.
", + "refs": { + "ServiceLevelObjectiveSummaries$member": null + } + }, + "ServiceOperation": { + "base": "This structure contains information about an operation discovered by Application Signals. An operation is a specific function performed by a service that was discovered by Application Signals, and is often an API that is called by an upstream dependent.
", + "refs": { + "ServiceOperations$member": null + } + }, + "ServiceOperations": { + "base": null, + "refs": { + "ListServiceOperationsOutput$ServiceOperations": "An array of structures that each contain information about one operation of this service.
" + } + }, + "ServiceQuotaExceededException": { + "base": "This request exceeds a service quota.
", + "refs": { + } + }, + "ServiceSummaries": { + "base": null, + "refs": { + "ListServicesOutput$ServiceSummaries": "An array of structures, where each structure contains some information about a service. To get complete information about a service, use GetService.
" + } + }, + "ServiceSummary": { + "base": "This structure contains information about one of your services that was discoverd by Application Signals
", + "refs": { + "ServiceSummaries$member": null + } + }, + "StandardUnit": { + "base": null, + "refs": { + "MetricStat$Unit": "If you omit Unit then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.
The statistic to use for comparison to the threshold. It can be any CloudWatch statistic or extended statistic. For more information about statistics, see CloudWatch statistics definitions.
" + } + }, + "String": { + "base": null, + "refs": { + "AttributeMap$key": null, + "AttributeMap$value": null, + "ConflictException$Message": null, + "ServiceLevelObjectiveIds$member": null, + "ServiceQuotaExceededException$Message": null, + "ThrottlingException$Message": null + } + }, + "Tag": { + "base": "A key-value pair associated with a resource. Tags can help you organize and categorize your resources.
", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.
", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "The list of tag keys to remove from the resource.
" + } + }, + "TagList": { + "base": null, + "refs": { + "CreateServiceLevelObjectiveInput$Tags": "A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource permission.
Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
", + "ListTagsForResourceResponse$Tags": "The list of tag keys and values associated with the resource you specified.
", + "TagResourceRequest$Tags": "The list of key-value pairs to associate with the alarm.
" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "The value for the specified tag key.
" + } + }, + "ThrottlingException": { + "base": "The request was throttled because of quota limits.
", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "BatchGetServiceLevelObjectiveBudgetReportInput$Timestamp": "The date and time that you want the report to be for. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.
", + "BatchGetServiceLevelObjectiveBudgetReportOutput$Timestamp": "The date and time that the report is for. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.
", + "CalendarInterval$StartTime": "The date and time when you want the first interval to start. Be sure to choose a time that configures the intervals the way that you want. For example, if you want weekly intervals starting on Mondays at 6 a.m., be sure to specify a start time that is a Monday at 6 a.m.
When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
As soon as one calendar interval ends, another automatically begins.
", + "GetServiceInput$StartTime": "The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start time of the data included in the response. In a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057.
The end time of the data included in the response. In a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057.
The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057
The date and time that this SLO was created. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.
The time that this SLO was most recently updated. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.
The date and time that this service level objective was created. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.
" + } + }, + "TotalBudgetSeconds": { + "base": null, + "refs": { + "ServiceLevelObjectiveBudgetReport$TotalBudgetSeconds": "The total number of seconds in the error budget for the interval.
" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateServiceLevelObjectiveInput": { + "base": null, + "refs": { + } + }, + "UpdateServiceLevelObjectiveOutput": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "The resource is not valid.
", + "refs": { + } + }, + "ValidationExceptionMessage": { + "base": null, + "refs": { + "ValidationException$message": null + } + }, + "WarningThreshold": { + "base": null, + "refs": { + "Goal$WarningThreshold": "The percentage of remaining budget over total budget that you want to get warnings for. If you omit this parameter, the default of 50.0 is used.
" + } + } + } +} diff --git a/models/apis/application-signals/2024-04-15/endpoint-rule-set-1.json b/models/apis/application-signals/2024-04-15/endpoint-rule-set-1.json new file mode 100644 index 00000000000..7ec23c86b67 --- /dev/null +++ b/models/apis/application-signals/2024-04-15/endpoint-rule-set-1.json @@ -0,0 +1,137 @@ +{ + "version": "1.0", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://application-signals-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://application-signals.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/application-signals/2024-04-15/endpoint-tests-1.json b/models/apis/application-signals/2024-04-15/endpoint-tests-1.json new file mode 100644 index 00000000000..5c4d5d9e24e --- /dev/null +++ b/models/apis/application-signals/2024-04-15/endpoint-tests-1.json @@ -0,0 +1,201 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals-fips.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-signals.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/application-signals/2024-04-15/examples-1.json b/models/apis/application-signals/2024-04-15/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/application-signals/2024-04-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/application-signals/2024-04-15/paginators-1.json b/models/apis/application-signals/2024-04-15/paginators-1.json new file mode 100644 index 00000000000..f549f15d7f1 --- /dev/null +++ b/models/apis/application-signals/2024-04-15/paginators-1.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListServiceDependencies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ServiceDependencies" + }, + "ListServiceDependents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ServiceDependents" + }, + "ListServiceLevelObjectives": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SloSummaries" + }, + "ListServiceOperations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ServiceOperations" + }, + "ListServices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ServiceSummaries" + } + } +} diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index f6d4cf24bc1..ad068625a67 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -5,12 +5,14 @@ "endpointPrefix":"ecs", "jsonVersion":"1.1", "protocol":"json", + "protocols":["json"], "serviceAbbreviation":"Amazon ECS", "serviceFullName":"Amazon EC2 Container Service", "serviceId":"ECS", "signatureVersion":"v4", "targetPrefix":"AmazonEC2ContainerServiceV20141113", - "uid":"ecs-2014-11-13" + "uid":"ecs-2014-11-13", + "auth":["aws.auth#sigv4"] }, "operations":{ "CreateCapacityProvider":{ @@ -1131,7 +1133,8 @@ "ClusterConfiguration":{ "type":"structure", "members":{ - "executeCommandConfiguration":{"shape":"ExecuteCommandConfiguration"} + "executeCommandConfiguration":{"shape":"ExecuteCommandConfiguration"}, + "managedStorageConfiguration":{"shape":"ManagedStorageConfiguration"} } }, "ClusterContainsContainerInstancesException":{ @@ -1642,7 +1645,8 @@ "rolloutStateReason":{"shape":"String"}, "serviceConnectConfiguration":{"shape":"ServiceConnectConfiguration"}, "serviceConnectResources":{"shape":"ServiceConnectServiceResourceList"}, - "volumeConfigurations":{"shape":"ServiceVolumeConfigurations"} + "volumeConfigurations":{"shape":"ServiceVolumeConfigurations"}, + "fargateEphemeralStorage":{"shape":"DeploymentEphemeralStorage"} } }, "DeploymentAlarms":{ @@ -1693,6 +1697,12 @@ "EXTERNAL" ] }, + "DeploymentEphemeralStorage":{ + "type":"structure", + "members":{ + "kmsKeyId":{"shape":"String"} + } + }, "DeploymentRolloutState":{ "type":"string", "enum":[ @@ -2557,6 +2567,13 @@ "max":100, "min":1 }, + "ManagedStorageConfiguration":{ + "type":"structure", + "members":{ + "kmsKeyId":{"shape":"String"}, + "fargateEphemeralStorageKmsKeyId":{"shape":"String"} + } + }, "ManagedTerminationProtection":{ "type":"string", "enum":[ @@ -3516,7 +3533,8 @@ "taskArn":{"shape":"String"}, "taskDefinitionArn":{"shape":"String"}, "version":{"shape":"Long"}, - "ephemeralStorage":{"shape":"EphemeralStorage"} + "ephemeralStorage":{"shape":"EphemeralStorage"}, + "fargateEphemeralStorage":{"shape":"TaskEphemeralStorage"} } }, "TaskDefinition":{ @@ -3591,6 +3609,13 @@ "DELETE_IN_PROGRESS" ] }, + "TaskEphemeralStorage":{ + "type":"structure", + "members":{ + "sizeInGiB":{"shape":"Integer"}, + "kmsKeyId":{"shape":"String"} + } + }, "TaskField":{ "type":"string", "enum":["TAGS"] @@ -3669,7 +3694,8 @@ "scale":{"shape":"Scale"}, "stabilityStatus":{"shape":"StabilityStatus"}, "stabilityStatusAt":{"shape":"Timestamp"}, - "tags":{"shape":"Tags"} + "tags":{"shape":"Tags"}, + "fargateEphemeralStorage":{"shape":"DeploymentEphemeralStorage"} } }, "TaskSetField":{ diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index e7fa0bd6573..0fa902f8575 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -43,7 +43,7 @@ "RegisterTaskDefinition": "Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.
You can specify a role for your task with the taskRoleArn parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in the policy that's associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.
You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.
Starts a new task using the specified task definition.
On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.
You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.
Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.
To manage eventual consistency, you can do the following:
Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time.
Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time.
Starts a new task from the specified task definition on the specified container instance or instances.
On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.
Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.
You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or updating a service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.
", - "StopTask": "Stops a running task. Any tags associated with the task will be deleted.
When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM value and a default 30-second timeout, after which the SIGKILL value is sent and the containers are forcibly stopped. If the container handles the SIGTERM value gracefully and exits within 30 seconds from receiving it, no SIGKILL value is sent.
The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.
Stops a running task. Any tags associated with the task will be deleted.
When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM value and a default 30-second timeout, after which the SIGKILL value is sent and the containers are forcibly stopped. If the container handles the SIGTERM value gracefully and exits within 30 seconds from receiving it, no SIGKILL value is sent.
For Windows containers, POSIX signals do not work and runtime stops the container by sending a CTRL_SHUTDOWN_EVENT. For more information, see Unable to react to graceful shutdown of (Windows) container #25982 on GitHub.
The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.
This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.
Sent to acknowledge that an attachment changed states.
", "SubmitContainerStateChange": "This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.
Sent to acknowledge that a container changed states.
", "SubmitTaskStateChange": "This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.
Sent to acknowledge that a task changed states.
", @@ -320,7 +320,7 @@ } }, "CapacityProviderStrategyItem": { - "base": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTask or CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.
Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.
If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.
To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.
A capacity provider strategy may contain a maximum of 6 capacity providers.
", + "base": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTask or CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.
Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.
If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.
To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.
With FARGATE_SPOT, you can run interruption tolerant tasks at a rate that's discounted compared to the FARGATE price. FARGATE_SPOT runs tasks on spare compute capacity. When Amazon Web Services needs the capacity back, your tasks are interrupted with a two-minute warning. FARGATE_SPOT only supports Linux tasks with the X86_64 architecture on platform version 1.3.0 or later.
A capacity provider strategy may contain a maximum of 6 capacity providers.
", "refs": { "CapacityProviderStrategy$member": null } @@ -366,7 +366,7 @@ } }, "ClusterConfiguration": { - "base": "The execute command configuration for the cluster.
", + "base": "The execute command and managed storage configuration for the cluster.
", "refs": { "Cluster$configuration": "The execute command configuration for the cluster.
", "CreateClusterRequest$configuration": "The execute command configuration for the cluster.
The deployment controller type to use.
There are three deployment controller types available:
The rolling update (ECS) deployment type involves replacing the current running version of the container with the latest version. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the DeploymentConfiguration.
The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment model powered by CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it.
The external (EXTERNAL) deployment type enables you to use any third-party deployment controller for full control over the deployment process for an Amazon ECS service.
The amount of ephemeral storage to allocate for the deployment.
", + "refs": { + "Deployment$fargateEphemeralStorage": "The Fargate ephemeral storage settings for the deployment.
", + "TaskSet$fargateEphemeralStorage": "The Fargate ephemeral storage settings for the task set.
" + } + }, "DeploymentRolloutState": { "base": null, "refs": { @@ -1099,7 +1106,7 @@ } }, "HealthCheck": { - "base": "An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the HEALTHCHECK parameter of docker run.
The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.
You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.
The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.
Amazon ECS performs health checks on containers with the default that launched the container instance or the task.
The following describes the possible healthStatus values for a container:
HEALTHY-The container health check has passed successfully.
UNHEALTHY-The container health check has failed.
UNKNOWN-The container health check is being evaluated, there's no container health check defined, or Amazon ECS doesn't have the health status of the container.
The following describes the possible healthStatus values based on the container health checker status of essential containers in the task with the following priority order (high to low):
UNHEALTHY-One or more essential containers have failed their health check.
UNKNOWN-Any essential container running within the task is in an UNKNOWN state and no other essential containers have an UNHEALTHY state.
HEALTHY-All essential containers within the task have passed their health checks.
Consider the following task health example with 2 containers.
If Container1 is UNHEALTHY and Container2 is UNKNOWN, the task health is UNHEALTHY.
If Container1 is UNHEALTHY and Container2 is HEALTHY, the task health is UNHEALTHY.
If Container1 is HEALTHY and Container2 is UNKNOWN, the task health is UNKNOWN.
If Container1 is HEALTHY and Container2 is HEALTHY, the task health is HEALTHY.
Consider the following task health example with 3 containers.
If Container1 is UNHEALTHY and Container2 is UNKNOWN, and Container3 is UNKNOWN, the task health is UNHEALTHY.
If Container1 is UNHEALTHY and Container2 is UNKNOWN, and Container3 is HEALTHY, the task health is UNHEALTHY.
If Container1 is UNHEALTHY and Container2 is HEALTHY, and Container3 is HEALTHY, the task health is UNHEALTHY.
If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3 is HEALTHY, the task health is UNKNOWN.
If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3 is UNKNOWN, the task health is UNKNOWN.
If Container1 is HEALTHY and Container2 is HEALTHY, and Container3 is HEALTHY, the task health is HEALTHY.
If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.
The following are notes about container health check support:
When the Amazon ECS agent cannot connect to the Amazon ECS service, the service reports the container as UNHEALTHY.
The health check statuses are the \"last heard from\" response from the Amazon ECS agent. There are no assumptions made about the status of the container health checks.
Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.
Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate platform versions.
Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.
An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the HEALTHCHECK parameter of docker run.
The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.
You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.
The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.
Amazon ECS performs health checks on containers with the default that launched the container instance or the task.
The following describes the possible healthStatus values for a container:
HEALTHY-The container health check has passed successfully.
UNHEALTHY-The container health check has failed.
UNKNOWN-The container health check is being evaluated, there's no container health check defined, or Amazon ECS doesn't have the health status of the container.
The following describes the possible healthStatus values based on the container health checker status of essential containers in the task with the following priority order (high to low):
UNHEALTHY-One or more essential containers have failed their health check.
UNKNOWN-Any essential container running within the task is in an UNKNOWN state and no other essential containers have an UNHEALTHY state.
HEALTHY-All essential containers within the task have passed their health checks.
Consider the following task health example with 2 containers.
If Container1 is UNHEALTHY and Container2 is UNKNOWN, the task health is UNHEALTHY.
If Container1 is UNHEALTHY and Container2 is HEALTHY, the task health is UNHEALTHY.
If Container1 is HEALTHY and Container2 is UNKNOWN, the task health is UNKNOWN.
If Container1 is HEALTHY and Container2 is HEALTHY, the task health is HEALTHY.
Consider the following task health example with 3 containers.
If Container1 is UNHEALTHY and Container2 is UNKNOWN, and Container3 is UNKNOWN, the task health is UNHEALTHY.
If Container1 is UNHEALTHY and Container2 is UNKNOWN, and Container3 is HEALTHY, the task health is UNHEALTHY.
If Container1 is UNHEALTHY and Container2 is HEALTHY, and Container3 is HEALTHY, the task health is UNHEALTHY.
If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3 is HEALTHY, the task health is UNKNOWN.
If Container1 is HEALTHY and Container2 is UNKNOWN, and Container3 is UNKNOWN, the task health is UNKNOWN.
If Container1 is HEALTHY and Container2 is HEALTHY, and Container3 is HEALTHY, the task health is HEALTHY.
If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.
The following are notes about container health check support:
If the Amazon ECS container agent becomes disconnected from the Amazon ECS service, this won't cause a container to transition to an UNHEALTHY status. This is by design, to ensure that containers remain running during agent restarts or temporary unavailability. The health check status is the \"last heard from\" response from the Amazon ECS agent, so if the container was considered HEALTHY prior to the disconnect, that status will remain until the agent reconnects and another health check occurs. There are no assumptions made about the status of the container health checks.
Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.
Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate platform versions.
Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.
The container health check command and associated configuration parameters for the container. This parameter maps to HealthCheck in the Create a container section of the Docker Remote API and the HEALTHCHECK parameter of docker run.
The number of tasks in the cluster that are in the RUNNING state.
The number of tasks in the cluster that are in the PENDING state.
The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is 1. Each time that you register a new revision of a task definition in the same family, the revision value always increases by one. This is even if you deregistered previous revisions in this family.
The total amount, in GiB, of the ephemeral storage to set for the task. The minimum supported value is 20 GiB and the maximum supported value is
200 GiB.
The computed desired count for the task set. This is calculated by multiplying the service's desiredCount by the task set's scale percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.
The number of tasks in the task set that are in the PENDING status during a deployment. A task in the PENDING state is preparing to enter the RUNNING state. A task set enters the PENDING status when it launches for the first time or when it's restarted after being in the STOPPED state.
The number of tasks in the task set that are in the RUNNING status during a deployment. A task in the RUNNING state is running and ready for use.
The target capacity utilization as a percentage for the capacity provider. The specified value must be greater than 0 and less than or equal to 100. For example, if you want the capacity provider to maintain 10% spare capacity, then that means the utilization is 90%, so use a targetCapacity of 90. The default value of 100 percent results in the Amazon EC2 instances in your Auto Scaling group being completely used.
The managed storage configuration for the cluster.
", + "refs": { + "ClusterConfiguration$managedStorageConfiguration": "The details of the managed storage configuration.
" + } + }, "ManagedTerminationProtection": { "base": null, "refs": { @@ -1816,7 +1830,7 @@ "ResourceType": { "base": null, "refs": { - "ResourceRequirement$type": "The type of resource to assign to a container. The supported values are GPU or InferenceAccelerator.
The type of resource to assign to a container.
" } }, "Resources": { @@ -1840,7 +1854,7 @@ "RuntimePlatform": { "base": "Information about the platform for the Amazon ECS service or task.
For more information about RuntimePlatform, see RuntimePlatform in the Amazon Elastic Container Service Developer Guide.
The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type.
When you specify a task definition in a service, this value must match the runtimePlatform value of the service.
The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type.
", "TaskDefinition$runtimePlatform": "The operating system that your task definitions are running on. A platform family is specified only for tasks using the Fargate launch type.
When you specify a task in a service, this value must match the runtimePlatform value of the service.
An object that represents the Amazon Web Services Private Certificate Authority certificate.
", + "base": "The certificate root authority that secures your service.
", "refs": { "ServiceConnectTlsConfiguration$issuerCertificateAuthority": "The signer certificate authority.
" } }, "ServiceConnectTlsConfiguration": { - "base": "An object that represents the configuration for Service Connect TLS.
", + "base": "The key that encrypts and decrypts your resources for Service Connect TLS.
", "refs": { "ServiceConnectService$tls": "A reference to an object that represents a Transport Layer Security (TLS) configuration.
" } @@ -2193,6 +2207,7 @@ "Deployment$platformVersion": "The platform version that your tasks in the service run on. A platform version is only specified for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.
The operating system that your tasks in the service, or tasks are running on. A platform family is specified only for tasks using the Fargate launch type.
All tasks that run as part of this service must use the same platformFamily value as the service, for example, LINUX..
A description of the rollout state of a deployment.
", + "DeploymentEphemeralStorage$kmsKeyId": "Specify an Key Management Service key ID to encrypt the ephemeral storage for deployment.
", "DeregisterContainerInstanceRequest$cluster": "The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed.
", "DeregisterContainerInstanceRequest$containerInstance": "The container instance ID or full ARN of the container instance to deregister. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.
", "DeregisterTaskDefinitionRequest$taskDefinition": "The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a revision.
The name of the container that's associated with the managed agent.
", "ManagedAgentStateChange$status": "The status of the managed agent.
", "ManagedAgentStateChange$reason": "The reason for the status of the managed agent.
", + "ManagedStorageConfiguration$kmsKeyId": "Specify a Key Management Service key ID to encrypt the managed storage.
", + "ManagedStorageConfiguration$fargateEphemeralStorageKmsKeyId": "Specify the Key Management Service key ID for the Fargate ephemeral storage.
", "MountPoint$sourceVolume": "The name of the volume to mount. Must be a volume name referenced in the name parameter of task definition volume.
The path on the container to mount the host volume at.
", "NetworkBinding$bindIP": "The IP address that the container is bound to on the container instance.
", @@ -2328,7 +2345,7 @@ "Resource$name": "The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined resource.
The type of the resource. Valid values: INTEGER, DOUBLE, LONG, or STRINGSET.
The value for the specified resource type.
If the GPU type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on.
If the InferenceAccelerator type is used, the value matches the deviceName for an InferenceAccelerator specified in a task definition.
The value for the specified resource type.
When the type is GPU, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on.
When the type is InferenceAccelerator, the value matches the deviceName for an InferenceAccelerator specified in a task definition.
The short name or full Amazon Resource Name (ARN) of the cluster to run your task on. If you do not specify a cluster, the default cluster is assumed.
", "RunTaskRequest$group": "The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).
The platform version the task uses. A platform version is only specified for tasks hosted on Fargate. If one isn't specified, the LATEST platform version is used. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.
The amount (in MiB) of memory used by the task.
If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see ContainerDefinition.
If your tasks runs on Fargate, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the cpu parameter.
512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)
Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
This option requires Linux platform 1.4.0 or later.
Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
This option requires Linux platform 1.4.0 or later.
The principal that registered the task definition.
", "TaskDefinitionPlacementConstraint$expression": "A cluster query language expression to apply to the constraint. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.
", + "TaskEphemeralStorage$kmsKeyId": "Specify an Key Management Service key ID to encrypt the ephemeral storage for the task.
", "TaskOverride$cpu": "The CPU override for the task.
", "TaskOverride$executionRoleArn": "The Amazon Resource Name (ARN) of the task execution role override for the task. For more information, see Amazon ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide.
", "TaskOverride$memory": "The memory override for the task.
", @@ -2689,6 +2707,12 @@ "TaskDefinition$status": "The status of the task definition.
" } }, + "TaskEphemeralStorage": { + "base": "The amount of ephemeral storage to allocate for the task.
", + "refs": { + "Task$fargateEphemeralStorage": "The Fargate ephemeral storage settings for the task.
" + } + }, "TaskField": { "base": null, "refs": { diff --git a/models/apis/imagebuilder/2019-12-02/api-2.json b/models/apis/imagebuilder/2019-12-02/api-2.json index 91eedee79e2..4c494f87a87 100644 --- a/models/apis/imagebuilder/2019-12-02/api-2.json +++ b/models/apis/imagebuilder/2019-12-02/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"imagebuilder", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"imagebuilder", "serviceFullName":"EC2 Image Builder", "serviceId":"imagebuilder", @@ -1506,7 +1507,7 @@ }, "ComponentBuildVersionArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):component/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" }, "ComponentConfiguration":{ "type":"structure", @@ -1643,11 +1644,11 @@ }, "ComponentVersionArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):component/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+$" }, "ComponentVersionArnOrBuildVersionArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$" }, "ComponentVersionList":{ "type":"list", @@ -2777,11 +2778,11 @@ }, "ImageBuildVersionArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):image/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):image/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" }, "ImageBuilderArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$" }, "ImagePackage":{ "type":"structure", @@ -3048,11 +3049,11 @@ }, "ImageVersionArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):image/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):image/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+$" }, "ImageVersionArnOrBuildVersionArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):image/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):image/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$" }, "ImageVersionList":{ "type":"list", @@ -4787,7 +4788,7 @@ "WorkflowBuildVersionArn":{ "type":"string", "max":1024, - "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws):workflow/(build|test|distribution)/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" + "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" }, "WorkflowConfiguration":{ "type":"structure", @@ -4849,7 +4850,7 @@ }, "WorkflowNameArn":{ "type":"string", - "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws):workflow/(build|test|distribution)/[a-z0-9-_]+/x\\.x\\.x$" + "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/x\\.x\\.x$" }, "WorkflowParameter":{ "type":"structure", @@ -5056,11 +5057,11 @@ }, "WorkflowVersionArn":{ "type":"string", - "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws):workflow/(build|test|distribution)/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+$" + "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+$" }, "WorkflowVersionArnOrBuildVersionArn":{ "type":"string", - "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws):workflow/(build|test|distribution)/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$" + "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$" }, "WorkflowVersionList":{ "type":"list", @@ -5068,7 +5069,7 @@ }, "WorkflowWildcardVersionArn":{ "type":"string", - "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws):workflow/(build|test|distribution)/[a-z0-9-_]+/(?:[0-9]+|x)\\.(?:[0-9]+|x)\\.(?:[0-9]+|x)$" + "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/(?:[0-9]+|x)\\.(?:[0-9]+|x)\\.(?:[0-9]+|x)$" } } } diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 24ae0282309..6829e1310d5 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -14832,6 +14832,7 @@ "deprecated" : true, "hostname" : "redshift-serverless-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { diff --git a/service/applicationsignals/api.go b/service/applicationsignals/api.go new file mode 100644 index 00000000000..d4af84426b4 --- /dev/null +++ b/service/applicationsignals/api.go @@ -0,0 +1,6223 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationsignals + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opBatchGetServiceLevelObjectiveBudgetReport = "BatchGetServiceLevelObjectiveBudgetReport" + +// BatchGetServiceLevelObjectiveBudgetReportRequest generates a "aws/request.Request" representing the +// client's request for the BatchGetServiceLevelObjectiveBudgetReport operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See BatchGetServiceLevelObjectiveBudgetReport for more information on using the BatchGetServiceLevelObjectiveBudgetReport +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the BatchGetServiceLevelObjectiveBudgetReportRequest method. +// req, resp := client.BatchGetServiceLevelObjectiveBudgetReportRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/BatchGetServiceLevelObjectiveBudgetReport +func (c *ApplicationSignals) BatchGetServiceLevelObjectiveBudgetReportRequest(input *BatchGetServiceLevelObjectiveBudgetReportInput) (req *request.Request, output *BatchGetServiceLevelObjectiveBudgetReportOutput) { + op := &request.Operation{ + Name: opBatchGetServiceLevelObjectiveBudgetReport, + HTTPMethod: "POST", + HTTPPath: "/budget-report", + } + + if input == nil { + input = &BatchGetServiceLevelObjectiveBudgetReportInput{} + } + + output = &BatchGetServiceLevelObjectiveBudgetReportOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchGetServiceLevelObjectiveBudgetReport API operation for Amazon CloudWatch Application Signals. +// +// Use this operation to retrieve one or more service level objective (SLO) +// budget reports. +// +// An error budget is the amount of time in unhealthy periods that your service +// can accumulate during an interval before your overall SLO budget health is +// breached and the SLO is considered to be unmet. For example, an SLO with +// a threshold of 99.95% and a monthly interval translates to an error budget +// of 21.9 minutes of downtime in a 30-day month. +// +// Budget reports include a health indicator, the attainment value, and remaining +// budget. +// +// For more information about SLO error budgets, see SLO concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html#CloudWatch-ServiceLevelObjectives-concepts). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation BatchGetServiceLevelObjectiveBudgetReport for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/BatchGetServiceLevelObjectiveBudgetReport +func (c *ApplicationSignals) BatchGetServiceLevelObjectiveBudgetReport(input *BatchGetServiceLevelObjectiveBudgetReportInput) (*BatchGetServiceLevelObjectiveBudgetReportOutput, error) { + req, out := c.BatchGetServiceLevelObjectiveBudgetReportRequest(input) + return out, req.Send() +} + +// BatchGetServiceLevelObjectiveBudgetReportWithContext is the same as BatchGetServiceLevelObjectiveBudgetReport with the addition of +// the ability to pass a context and additional request options. +// +// See BatchGetServiceLevelObjectiveBudgetReport for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) BatchGetServiceLevelObjectiveBudgetReportWithContext(ctx aws.Context, input *BatchGetServiceLevelObjectiveBudgetReportInput, opts ...request.Option) (*BatchGetServiceLevelObjectiveBudgetReportOutput, error) { + req, out := c.BatchGetServiceLevelObjectiveBudgetReportRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateServiceLevelObjective = "CreateServiceLevelObjective" + +// CreateServiceLevelObjectiveRequest generates a "aws/request.Request" representing the +// client's request for the CreateServiceLevelObjective operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateServiceLevelObjective for more information on using the CreateServiceLevelObjective +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateServiceLevelObjectiveRequest method. +// req, resp := client.CreateServiceLevelObjectiveRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/CreateServiceLevelObjective +func (c *ApplicationSignals) CreateServiceLevelObjectiveRequest(input *CreateServiceLevelObjectiveInput) (req *request.Request, output *CreateServiceLevelObjectiveOutput) { + op := &request.Operation{ + Name: opCreateServiceLevelObjective, + HTTPMethod: "POST", + HTTPPath: "/slo", + } + + if input == nil { + input = &CreateServiceLevelObjectiveInput{} + } + + output = &CreateServiceLevelObjectiveOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateServiceLevelObjective API operation for Amazon CloudWatch Application Signals. +// +// Creates a service level objective (SLO), which can help you ensure that your +// critical business operations are meeting customer expectations. Use SLOs +// to set and track specific target levels for the reliability and availability +// of your applications and services. SLOs use service level indicators (SLIs) +// to calculate whether the application is performing at the level that you +// want. +// +// Create an SLO to set a target for a service or operation’s availability +// or latency. CloudWatch measures this target frequently you can find whether +// it has been breached. +// +// When you create an SLO, you set an attainment goal for it. An attainment +// goal is the ratio of good periods that meet the threshold requirements to +// the total periods within the interval. For example, an attainment goal of +// 99.9% means that within your interval, you are targeting 99.9% of the periods +// to be in healthy state. +// +// After you have created an SLO, you can retrieve error budget reports for +// it. An error budget is the number of periods or amount of time that your +// service can accumulate during an interval before your overall SLO budget +// health is breached and the SLO is considered to be unmet. for example, an +// SLO with a threshold that 99.95% of requests must be completed under 2000ms +// every month translates to an error budget of 21.9 minutes of downtime per +// month. +// +// When you call this operation, Application Signals creates the AWSServiceRoleForCloudWatchApplicationSignals +// service-linked role, if it doesn't already exist in your account. This service- +// linked role has the following permissions: +// +// - xray:GetServiceGraph +// +// - logs:StartQuery +// +// - logs:GetQueryResults +// +// - cloudwatch:GetMetricData +// +// - cloudwatch:ListMetrics +// +// - tag:GetResources +// +// - autoscaling:DescribeAutoScalingGroups +// +// You can easily set SLO targets for your applications that are discovered +// by Application Signals, using critical metrics such as latency and availability. +// You can also set SLOs against any CloudWatch metric or math expression that +// produces a time series. +// +// For more information about SLOs, see Service level objectives (SLOs) (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation CreateServiceLevelObjective for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/CreateServiceLevelObjective +func (c *ApplicationSignals) CreateServiceLevelObjective(input *CreateServiceLevelObjectiveInput) (*CreateServiceLevelObjectiveOutput, error) { + req, out := c.CreateServiceLevelObjectiveRequest(input) + return out, req.Send() +} + +// CreateServiceLevelObjectiveWithContext is the same as CreateServiceLevelObjective with the addition of +// the ability to pass a context and additional request options. +// +// See CreateServiceLevelObjective for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) CreateServiceLevelObjectiveWithContext(ctx aws.Context, input *CreateServiceLevelObjectiveInput, opts ...request.Option) (*CreateServiceLevelObjectiveOutput, error) { + req, out := c.CreateServiceLevelObjectiveRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteServiceLevelObjective = "DeleteServiceLevelObjective" + +// DeleteServiceLevelObjectiveRequest generates a "aws/request.Request" representing the +// client's request for the DeleteServiceLevelObjective operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteServiceLevelObjective for more information on using the DeleteServiceLevelObjective +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteServiceLevelObjectiveRequest method. +// req, resp := client.DeleteServiceLevelObjectiveRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/DeleteServiceLevelObjective +func (c *ApplicationSignals) DeleteServiceLevelObjectiveRequest(input *DeleteServiceLevelObjectiveInput) (req *request.Request, output *DeleteServiceLevelObjectiveOutput) { + op := &request.Operation{ + Name: opDeleteServiceLevelObjective, + HTTPMethod: "DELETE", + HTTPPath: "/slo/{Id}", + } + + if input == nil { + input = &DeleteServiceLevelObjectiveInput{} + } + + output = &DeleteServiceLevelObjectiveOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteServiceLevelObjective API operation for Amazon CloudWatch Application Signals. +// +// Deletes the specified service level objective. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation DeleteServiceLevelObjective for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ResourceNotFoundException +// Resource not found. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/DeleteServiceLevelObjective +func (c *ApplicationSignals) DeleteServiceLevelObjective(input *DeleteServiceLevelObjectiveInput) (*DeleteServiceLevelObjectiveOutput, error) { + req, out := c.DeleteServiceLevelObjectiveRequest(input) + return out, req.Send() +} + +// DeleteServiceLevelObjectiveWithContext is the same as DeleteServiceLevelObjective with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteServiceLevelObjective for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) DeleteServiceLevelObjectiveWithContext(ctx aws.Context, input *DeleteServiceLevelObjectiveInput, opts ...request.Option) (*DeleteServiceLevelObjectiveOutput, error) { + req, out := c.DeleteServiceLevelObjectiveRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetService = "GetService" + +// GetServiceRequest generates a "aws/request.Request" representing the +// client's request for the GetService operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetService for more information on using the GetService +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetServiceRequest method. +// req, resp := client.GetServiceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/GetService +func (c *ApplicationSignals) GetServiceRequest(input *GetServiceInput) (req *request.Request, output *GetServiceOutput) { + op := &request.Operation{ + Name: opGetService, + HTTPMethod: "POST", + HTTPPath: "/service", + } + + if input == nil { + input = &GetServiceInput{} + } + + output = &GetServiceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetService API operation for Amazon CloudWatch Application Signals. +// +// Returns information about a service discovered by Application Signals. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation GetService for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/GetService +func (c *ApplicationSignals) GetService(input *GetServiceInput) (*GetServiceOutput, error) { + req, out := c.GetServiceRequest(input) + return out, req.Send() +} + +// GetServiceWithContext is the same as GetService with the addition of +// the ability to pass a context and additional request options. +// +// See GetService for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) GetServiceWithContext(ctx aws.Context, input *GetServiceInput, opts ...request.Option) (*GetServiceOutput, error) { + req, out := c.GetServiceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetServiceLevelObjective = "GetServiceLevelObjective" + +// GetServiceLevelObjectiveRequest generates a "aws/request.Request" representing the +// client's request for the GetServiceLevelObjective operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetServiceLevelObjective for more information on using the GetServiceLevelObjective +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetServiceLevelObjectiveRequest method. +// req, resp := client.GetServiceLevelObjectiveRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/GetServiceLevelObjective +func (c *ApplicationSignals) GetServiceLevelObjectiveRequest(input *GetServiceLevelObjectiveInput) (req *request.Request, output *GetServiceLevelObjectiveOutput) { + op := &request.Operation{ + Name: opGetServiceLevelObjective, + HTTPMethod: "GET", + HTTPPath: "/slo/{Id}", + } + + if input == nil { + input = &GetServiceLevelObjectiveInput{} + } + + output = &GetServiceLevelObjectiveOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetServiceLevelObjective API operation for Amazon CloudWatch Application Signals. +// +// Returns information about one SLO created in the account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation GetServiceLevelObjective for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ResourceNotFoundException +// Resource not found. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/GetServiceLevelObjective +func (c *ApplicationSignals) GetServiceLevelObjective(input *GetServiceLevelObjectiveInput) (*GetServiceLevelObjectiveOutput, error) { + req, out := c.GetServiceLevelObjectiveRequest(input) + return out, req.Send() +} + +// GetServiceLevelObjectiveWithContext is the same as GetServiceLevelObjective with the addition of +// the ability to pass a context and additional request options. +// +// See GetServiceLevelObjective for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) GetServiceLevelObjectiveWithContext(ctx aws.Context, input *GetServiceLevelObjectiveInput, opts ...request.Option) (*GetServiceLevelObjectiveOutput, error) { + req, out := c.GetServiceLevelObjectiveRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListServiceDependencies = "ListServiceDependencies" + +// ListServiceDependenciesRequest generates a "aws/request.Request" representing the +// client's request for the ListServiceDependencies operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListServiceDependencies for more information on using the ListServiceDependencies +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListServiceDependenciesRequest method. +// req, resp := client.ListServiceDependenciesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceDependencies +func (c *ApplicationSignals) ListServiceDependenciesRequest(input *ListServiceDependenciesInput) (req *request.Request, output *ListServiceDependenciesOutput) { + op := &request.Operation{ + Name: opListServiceDependencies, + HTTPMethod: "POST", + HTTPPath: "/service-dependencies", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListServiceDependenciesInput{} + } + + output = &ListServiceDependenciesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListServiceDependencies API operation for Amazon CloudWatch Application Signals. +// +// Returns a list of service dependencies of the service that you specify. A +// dependency is an infrastructure component that an operation of this service +// connects with. Dependencies can include Amazon Web Services services, Amazon +// Web Services resources, and third-party services. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation ListServiceDependencies for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceDependencies +func (c *ApplicationSignals) ListServiceDependencies(input *ListServiceDependenciesInput) (*ListServiceDependenciesOutput, error) { + req, out := c.ListServiceDependenciesRequest(input) + return out, req.Send() +} + +// ListServiceDependenciesWithContext is the same as ListServiceDependencies with the addition of +// the ability to pass a context and additional request options. +// +// See ListServiceDependencies for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceDependenciesWithContext(ctx aws.Context, input *ListServiceDependenciesInput, opts ...request.Option) (*ListServiceDependenciesOutput, error) { + req, out := c.ListServiceDependenciesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListServiceDependenciesPages iterates over the pages of a ListServiceDependencies operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListServiceDependencies method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListServiceDependencies operation. +// pageNum := 0 +// err := client.ListServiceDependenciesPages(params, +// func(page *applicationsignals.ListServiceDependenciesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ApplicationSignals) ListServiceDependenciesPages(input *ListServiceDependenciesInput, fn func(*ListServiceDependenciesOutput, bool) bool) error { + return c.ListServiceDependenciesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListServiceDependenciesPagesWithContext same as ListServiceDependenciesPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceDependenciesPagesWithContext(ctx aws.Context, input *ListServiceDependenciesInput, fn func(*ListServiceDependenciesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListServiceDependenciesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListServiceDependenciesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListServiceDependenciesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListServiceDependents = "ListServiceDependents" + +// ListServiceDependentsRequest generates a "aws/request.Request" representing the +// client's request for the ListServiceDependents operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListServiceDependents for more information on using the ListServiceDependents +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListServiceDependentsRequest method. +// req, resp := client.ListServiceDependentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceDependents +func (c *ApplicationSignals) ListServiceDependentsRequest(input *ListServiceDependentsInput) (req *request.Request, output *ListServiceDependentsOutput) { + op := &request.Operation{ + Name: opListServiceDependents, + HTTPMethod: "POST", + HTTPPath: "/service-dependents", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListServiceDependentsInput{} + } + + output = &ListServiceDependentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListServiceDependents API operation for Amazon CloudWatch Application Signals. +// +// Returns the list of dependents that invoked the specified service during +// the provided time range. Dependents include other services, CloudWatch Synthetics +// canaries, and clients that are instrumented with CloudWatch RUM app monitors. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation ListServiceDependents for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceDependents +func (c *ApplicationSignals) ListServiceDependents(input *ListServiceDependentsInput) (*ListServiceDependentsOutput, error) { + req, out := c.ListServiceDependentsRequest(input) + return out, req.Send() +} + +// ListServiceDependentsWithContext is the same as ListServiceDependents with the addition of +// the ability to pass a context and additional request options. +// +// See ListServiceDependents for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceDependentsWithContext(ctx aws.Context, input *ListServiceDependentsInput, opts ...request.Option) (*ListServiceDependentsOutput, error) { + req, out := c.ListServiceDependentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListServiceDependentsPages iterates over the pages of a ListServiceDependents operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListServiceDependents method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListServiceDependents operation. +// pageNum := 0 +// err := client.ListServiceDependentsPages(params, +// func(page *applicationsignals.ListServiceDependentsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ApplicationSignals) ListServiceDependentsPages(input *ListServiceDependentsInput, fn func(*ListServiceDependentsOutput, bool) bool) error { + return c.ListServiceDependentsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListServiceDependentsPagesWithContext same as ListServiceDependentsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceDependentsPagesWithContext(ctx aws.Context, input *ListServiceDependentsInput, fn func(*ListServiceDependentsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListServiceDependentsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListServiceDependentsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListServiceDependentsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListServiceLevelObjectives = "ListServiceLevelObjectives" + +// ListServiceLevelObjectivesRequest generates a "aws/request.Request" representing the +// client's request for the ListServiceLevelObjectives operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListServiceLevelObjectives for more information on using the ListServiceLevelObjectives +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListServiceLevelObjectivesRequest method. +// req, resp := client.ListServiceLevelObjectivesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceLevelObjectives +func (c *ApplicationSignals) ListServiceLevelObjectivesRequest(input *ListServiceLevelObjectivesInput) (req *request.Request, output *ListServiceLevelObjectivesOutput) { + op := &request.Operation{ + Name: opListServiceLevelObjectives, + HTTPMethod: "POST", + HTTPPath: "/slos", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListServiceLevelObjectivesInput{} + } + + output = &ListServiceLevelObjectivesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListServiceLevelObjectives API operation for Amazon CloudWatch Application Signals. +// +// Returns a list of SLOs created in this account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation ListServiceLevelObjectives for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceLevelObjectives +func (c *ApplicationSignals) ListServiceLevelObjectives(input *ListServiceLevelObjectivesInput) (*ListServiceLevelObjectivesOutput, error) { + req, out := c.ListServiceLevelObjectivesRequest(input) + return out, req.Send() +} + +// ListServiceLevelObjectivesWithContext is the same as ListServiceLevelObjectives with the addition of +// the ability to pass a context and additional request options. +// +// See ListServiceLevelObjectives for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceLevelObjectivesWithContext(ctx aws.Context, input *ListServiceLevelObjectivesInput, opts ...request.Option) (*ListServiceLevelObjectivesOutput, error) { + req, out := c.ListServiceLevelObjectivesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListServiceLevelObjectivesPages iterates over the pages of a ListServiceLevelObjectives operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListServiceLevelObjectives method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListServiceLevelObjectives operation. +// pageNum := 0 +// err := client.ListServiceLevelObjectivesPages(params, +// func(page *applicationsignals.ListServiceLevelObjectivesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ApplicationSignals) ListServiceLevelObjectivesPages(input *ListServiceLevelObjectivesInput, fn func(*ListServiceLevelObjectivesOutput, bool) bool) error { + return c.ListServiceLevelObjectivesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListServiceLevelObjectivesPagesWithContext same as ListServiceLevelObjectivesPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceLevelObjectivesPagesWithContext(ctx aws.Context, input *ListServiceLevelObjectivesInput, fn func(*ListServiceLevelObjectivesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListServiceLevelObjectivesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListServiceLevelObjectivesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListServiceLevelObjectivesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListServiceOperations = "ListServiceOperations" + +// ListServiceOperationsRequest generates a "aws/request.Request" representing the +// client's request for the ListServiceOperations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListServiceOperations for more information on using the ListServiceOperations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListServiceOperationsRequest method. +// req, resp := client.ListServiceOperationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceOperations +func (c *ApplicationSignals) ListServiceOperationsRequest(input *ListServiceOperationsInput) (req *request.Request, output *ListServiceOperationsOutput) { + op := &request.Operation{ + Name: opListServiceOperations, + HTTPMethod: "POST", + HTTPPath: "/service-operations", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListServiceOperationsInput{} + } + + output = &ListServiceOperationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListServiceOperations API operation for Amazon CloudWatch Application Signals. +// +// Returns a list of the operations of this service that have been discovered +// by Application Signals. Only the operations that were invoked during the +// specified time range are returned. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation ListServiceOperations for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServiceOperations +func (c *ApplicationSignals) ListServiceOperations(input *ListServiceOperationsInput) (*ListServiceOperationsOutput, error) { + req, out := c.ListServiceOperationsRequest(input) + return out, req.Send() +} + +// ListServiceOperationsWithContext is the same as ListServiceOperations with the addition of +// the ability to pass a context and additional request options. +// +// See ListServiceOperations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceOperationsWithContext(ctx aws.Context, input *ListServiceOperationsInput, opts ...request.Option) (*ListServiceOperationsOutput, error) { + req, out := c.ListServiceOperationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListServiceOperationsPages iterates over the pages of a ListServiceOperations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListServiceOperations method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListServiceOperations operation. +// pageNum := 0 +// err := client.ListServiceOperationsPages(params, +// func(page *applicationsignals.ListServiceOperationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ApplicationSignals) ListServiceOperationsPages(input *ListServiceOperationsInput, fn func(*ListServiceOperationsOutput, bool) bool) error { + return c.ListServiceOperationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListServiceOperationsPagesWithContext same as ListServiceOperationsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServiceOperationsPagesWithContext(ctx aws.Context, input *ListServiceOperationsInput, fn func(*ListServiceOperationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListServiceOperationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListServiceOperationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListServiceOperationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListServices = "ListServices" + +// ListServicesRequest generates a "aws/request.Request" representing the +// client's request for the ListServices operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListServices for more information on using the ListServices +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListServicesRequest method. +// req, resp := client.ListServicesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServices +func (c *ApplicationSignals) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) { + op := &request.Operation{ + Name: opListServices, + HTTPMethod: "GET", + HTTPPath: "/services", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListServicesInput{} + } + + output = &ListServicesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListServices API operation for Amazon CloudWatch Application Signals. +// +// Returns a list of services that have been discovered by Application Signals. +// A service represents a minimum logical and transactional unit that completes +// a business function. Services are discovered through Application Signals +// instrumentation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation ListServices for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListServices +func (c *ApplicationSignals) ListServices(input *ListServicesInput) (*ListServicesOutput, error) { + req, out := c.ListServicesRequest(input) + return out, req.Send() +} + +// ListServicesWithContext is the same as ListServices with the addition of +// the ability to pass a context and additional request options. +// +// See ListServices for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) { + req, out := c.ListServicesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListServicesPages iterates over the pages of a ListServices operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListServices method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListServices operation. +// pageNum := 0 +// err := client.ListServicesPages(params, +// func(page *applicationsignals.ListServicesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ApplicationSignals) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error { + return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListServicesPagesWithContext same as ListServicesPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListServicesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListServicesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListTagsForResource +func (c *ApplicationSignals) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon CloudWatch Application Signals. +// +// Displays the tags associated with a CloudWatch resource. Tags can be assigned +// to service level objectives. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/ListTagsForResource +func (c *ApplicationSignals) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartDiscovery = "StartDiscovery" + +// StartDiscoveryRequest generates a "aws/request.Request" representing the +// client's request for the StartDiscovery operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See StartDiscovery for more information on using the StartDiscovery +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the StartDiscoveryRequest method. +// req, resp := client.StartDiscoveryRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/StartDiscovery +func (c *ApplicationSignals) StartDiscoveryRequest(input *StartDiscoveryInput) (req *request.Request, output *StartDiscoveryOutput) { + op := &request.Operation{ + Name: opStartDiscovery, + HTTPMethod: "POST", + HTTPPath: "/start-discovery", + } + + if input == nil { + input = &StartDiscoveryInput{} + } + + output = &StartDiscoveryOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// StartDiscovery API operation for Amazon CloudWatch Application Signals. +// +// Enables this Amazon Web Services account to be able to use CloudWatch Application +// Signals by creating the AWSServiceRoleForCloudWatchApplicationSignals service-linked +// role. This service- linked role has the following permissions: +// +// - xray:GetServiceGraph +// +// - logs:StartQuery +// +// - logs:GetQueryResults +// +// - cloudwatch:GetMetricData +// +// - cloudwatch:ListMetrics +// +// - tag:GetResources +// +// - autoscaling:DescribeAutoScalingGroups +// +// After completing this step, you still need to instrument your Java and Python +// applications to send data to Application Signals. For more information, see +// Enabling Application Signals (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Signals-Enable.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation StartDiscovery for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/StartDiscovery +func (c *ApplicationSignals) StartDiscovery(input *StartDiscoveryInput) (*StartDiscoveryOutput, error) { + req, out := c.StartDiscoveryRequest(input) + return out, req.Send() +} + +// StartDiscoveryWithContext is the same as StartDiscovery with the addition of +// the ability to pass a context and additional request options. +// +// See StartDiscovery for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) StartDiscoveryWithContext(ctx aws.Context, input *StartDiscoveryInput, opts ...request.Option) (*StartDiscoveryOutput, error) { + req, out := c.StartDiscoveryRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/TagResource +func (c *ApplicationSignals) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tag-resource", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for Amazon CloudWatch Application Signals. +// +// Assigns one or more tags (key-value pairs) to the specified CloudWatch resource, +// such as a service level objective. +// +// Tags can help you organize and categorize your resources. You can also use +// them to scope user permissions by granting a user permission to access or +// change only resources with certain tag values. +// +// Tags don't have any semantic meaning to Amazon Web Services and are interpreted +// strictly as strings of characters. +// +// You can use the TagResource action with an alarm that already has tags. If +// you specify a new tag key for the alarm, this tag is appended to the list +// of tags associated with the alarm. If you specify a tag key that is already +// associated with the alarm, the new tag value that you specify replaces the +// previous value for that tag. +// +// You can associate as many as 50 tags with a CloudWatch resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/TagResource +func (c *ApplicationSignals) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/UntagResource +func (c *ApplicationSignals) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/untag-resource", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for Amazon CloudWatch Application Signals. +// +// Removes one or more tags from the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/UntagResource +func (c *ApplicationSignals) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateServiceLevelObjective = "UpdateServiceLevelObjective" + +// UpdateServiceLevelObjectiveRequest generates a "aws/request.Request" representing the +// client's request for the UpdateServiceLevelObjective operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateServiceLevelObjective for more information on using the UpdateServiceLevelObjective +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateServiceLevelObjectiveRequest method. +// req, resp := client.UpdateServiceLevelObjectiveRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/UpdateServiceLevelObjective +func (c *ApplicationSignals) UpdateServiceLevelObjectiveRequest(input *UpdateServiceLevelObjectiveInput) (req *request.Request, output *UpdateServiceLevelObjectiveOutput) { + op := &request.Operation{ + Name: opUpdateServiceLevelObjective, + HTTPMethod: "PATCH", + HTTPPath: "/slo/{Id}", + } + + if input == nil { + input = &UpdateServiceLevelObjectiveInput{} + } + + output = &UpdateServiceLevelObjectiveOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateServiceLevelObjective API operation for Amazon CloudWatch Application Signals. +// +// Updates an existing service level objective (SLO). If you omit parameters, +// the previous values of those parameters are retained. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Application Signals's +// API operation UpdateServiceLevelObjective for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The resource is not valid. +// +// - ResourceNotFoundException +// Resource not found. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15/UpdateServiceLevelObjective +func (c *ApplicationSignals) UpdateServiceLevelObjective(input *UpdateServiceLevelObjectiveInput) (*UpdateServiceLevelObjectiveOutput, error) { + req, out := c.UpdateServiceLevelObjectiveRequest(input) + return out, req.Send() +} + +// UpdateServiceLevelObjectiveWithContext is the same as UpdateServiceLevelObjective with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateServiceLevelObjective for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ApplicationSignals) UpdateServiceLevelObjectiveWithContext(ctx aws.Context, input *UpdateServiceLevelObjectiveInput, opts ...request.Option) (*UpdateServiceLevelObjectiveOutput, error) { + req, out := c.UpdateServiceLevelObjectiveRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You don't have sufficient permissions to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +type BatchGetServiceLevelObjectiveBudgetReportInput struct { + _ struct{} `type:"structure"` + + // An array containing the IDs of the service level objectives that you want + // to include in the report. + // + // SloIds is a required field + SloIds []*string `min:"1" type:"list" required:"true"` + + // The date and time that you want the report to be for. It is expressed as + // the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + // + // Timestamp is a required field + Timestamp *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetServiceLevelObjectiveBudgetReportInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetServiceLevelObjectiveBudgetReportInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetServiceLevelObjectiveBudgetReportInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchGetServiceLevelObjectiveBudgetReportInput"} + if s.SloIds == nil { + invalidParams.Add(request.NewErrParamRequired("SloIds")) + } + if s.SloIds != nil && len(s.SloIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SloIds", 1)) + } + if s.Timestamp == nil { + invalidParams.Add(request.NewErrParamRequired("Timestamp")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSloIds sets the SloIds field's value. +func (s *BatchGetServiceLevelObjectiveBudgetReportInput) SetSloIds(v []*string) *BatchGetServiceLevelObjectiveBudgetReportInput { + s.SloIds = v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *BatchGetServiceLevelObjectiveBudgetReportInput) SetTimestamp(v time.Time) *BatchGetServiceLevelObjectiveBudgetReportInput { + s.Timestamp = &v + return s +} + +type BatchGetServiceLevelObjectiveBudgetReportOutput struct { + _ struct{} `type:"structure"` + + // An array of structures, where each structure includes an error indicating + // that one of the requests in the array was not valid. + // + // Errors is a required field + Errors []*ServiceLevelObjectiveBudgetReportError `type:"list" required:"true"` + + // An array of structures, where each structure is one budget report. + // + // Reports is a required field + Reports []*ServiceLevelObjectiveBudgetReport `type:"list" required:"true"` + + // The date and time that the report is for. It is expressed as the number of + // milliseconds since Jan 1, 1970 00:00:00 UTC. + // + // Timestamp is a required field + Timestamp *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetServiceLevelObjectiveBudgetReportOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetServiceLevelObjectiveBudgetReportOutput) GoString() string { + return s.String() +} + +// SetErrors sets the Errors field's value. +func (s *BatchGetServiceLevelObjectiveBudgetReportOutput) SetErrors(v []*ServiceLevelObjectiveBudgetReportError) *BatchGetServiceLevelObjectiveBudgetReportOutput { + s.Errors = v + return s +} + +// SetReports sets the Reports field's value. +func (s *BatchGetServiceLevelObjectiveBudgetReportOutput) SetReports(v []*ServiceLevelObjectiveBudgetReport) *BatchGetServiceLevelObjectiveBudgetReportOutput { + s.Reports = v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *BatchGetServiceLevelObjectiveBudgetReportOutput) SetTimestamp(v time.Time) *BatchGetServiceLevelObjectiveBudgetReportOutput { + s.Timestamp = &v + return s +} + +// If the interval for this service level objective is a calendar interval, +// this structure contains the interval specifications. +type CalendarInterval struct { + _ struct{} `type:"structure"` + + // Specifies the duration of each calendar interval. For example, if Duration + // is 1 and DurationUnit is MONTH, each interval is one month, aligned with + // the calendar. + // + // Duration is a required field + Duration *int64 `min:"1" type:"integer" required:"true"` + + // Specifies the calendar interval unit. + // + // DurationUnit is a required field + DurationUnit *string `type:"string" required:"true" enum:"DurationUnit"` + + // The date and time when you want the first interval to start. Be sure to choose + // a time that configures the intervals the way that you want. For example, + // if you want weekly intervals starting on Mondays at 6 a.m., be sure to specify + // a start time that is a Monday at 6 a.m. + // + // When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // As soon as one calendar interval ends, another automatically begins. + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CalendarInterval) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CalendarInterval) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CalendarInterval) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CalendarInterval"} + if s.Duration == nil { + invalidParams.Add(request.NewErrParamRequired("Duration")) + } + if s.Duration != nil && *s.Duration < 1 { + invalidParams.Add(request.NewErrParamMinValue("Duration", 1)) + } + if s.DurationUnit == nil { + invalidParams.Add(request.NewErrParamRequired("DurationUnit")) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDuration sets the Duration field's value. +func (s *CalendarInterval) SetDuration(v int64) *CalendarInterval { + s.Duration = &v + return s +} + +// SetDurationUnit sets the DurationUnit field's value. +func (s *CalendarInterval) SetDurationUnit(v string) *CalendarInterval { + s.DurationUnit = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *CalendarInterval) SetStartTime(v time.Time) *CalendarInterval { + s.StartTime = &v + return s +} + +// This operation attempted to create a resource that already exists. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateServiceLevelObjectiveInput struct { + _ struct{} `type:"structure"` + + // An optional description for this SLO. + Description *string `min:"1" type:"string"` + + // A structure that contains the attributes that determine the goal of the SLO. + // This includes the time period for evaluation and the attainment threshold. + Goal *Goal `type:"structure"` + + // A name for this SLO. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // A structure that contains information about what service and what performance + // metric that this SLO will monitor. + // + // SliConfig is a required field + SliConfig *ServiceLevelIndicatorConfig `type:"structure" required:"true"` + + // A list of key-value pairs to associate with the SLO. You can associate as + // many as 50 tags with an SLO. To be able to associate tags with the SLO when + // you create the SLO, you must have the cloudwatch:TagResource permission. + // + // Tags can help you organize and categorize your resources. You can also use + // them to scope user permissions by granting a user permission to access or + // change only resources with certain tag values. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateServiceLevelObjectiveInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateServiceLevelObjectiveInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateServiceLevelObjectiveInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateServiceLevelObjectiveInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.SliConfig == nil { + invalidParams.Add(request.NewErrParamRequired("SliConfig")) + } + if s.Goal != nil { + if err := s.Goal.Validate(); err != nil { + invalidParams.AddNested("Goal", err.(request.ErrInvalidParams)) + } + } + if s.SliConfig != nil { + if err := s.SliConfig.Validate(); err != nil { + invalidParams.AddNested("SliConfig", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *CreateServiceLevelObjectiveInput) SetDescription(v string) *CreateServiceLevelObjectiveInput { + s.Description = &v + return s +} + +// SetGoal sets the Goal field's value. +func (s *CreateServiceLevelObjectiveInput) SetGoal(v *Goal) *CreateServiceLevelObjectiveInput { + s.Goal = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateServiceLevelObjectiveInput) SetName(v string) *CreateServiceLevelObjectiveInput { + s.Name = &v + return s +} + +// SetSliConfig sets the SliConfig field's value. +func (s *CreateServiceLevelObjectiveInput) SetSliConfig(v *ServiceLevelIndicatorConfig) *CreateServiceLevelObjectiveInput { + s.SliConfig = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateServiceLevelObjectiveInput) SetTags(v []*Tag) *CreateServiceLevelObjectiveInput { + s.Tags = v + return s +} + +type CreateServiceLevelObjectiveOutput struct { + _ struct{} `type:"structure"` + + // A structure that contains information about the SLO that you just created. + // + // Slo is a required field + Slo *ServiceLevelObjective `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateServiceLevelObjectiveOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateServiceLevelObjectiveOutput) GoString() string { + return s.String() +} + +// SetSlo sets the Slo field's value. +func (s *CreateServiceLevelObjectiveOutput) SetSlo(v *ServiceLevelObjective) *CreateServiceLevelObjectiveOutput { + s.Slo = v + return s +} + +type DeleteServiceLevelObjectiveInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN or name of the service level objective to delete. + // + // Id is a required field + Id *string `location:"uri" locationName:"Id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteServiceLevelObjectiveInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteServiceLevelObjectiveInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteServiceLevelObjectiveInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteServiceLevelObjectiveInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *DeleteServiceLevelObjectiveInput) SetId(v string) *DeleteServiceLevelObjectiveInput { + s.Id = &v + return s +} + +type DeleteServiceLevelObjectiveOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteServiceLevelObjectiveOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteServiceLevelObjectiveOutput) GoString() string { + return s.String() +} + +// A dimension is a name/value pair that is part of the identity of a metric. +// Because dimensions are part of the unique identifier for a metric, whenever +// you add a unique name/value pair to one of your metrics, you are creating +// a new variation of that metric. For example, many Amazon EC2 metrics publish +// InstanceId as a dimension name, and the actual instance ID as the value for +// that dimension. +// +// You can assign up to 30 dimensions to a metric. +type Dimension struct { + _ struct{} `type:"structure"` + + // The name of the dimension. Dimension names must contain only ASCII characters, + // must include at least one non-whitespace character, and cannot start with + // a colon (:). ASCII control characters are not supported as part of dimension + // names. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The value of the dimension. Dimension values must contain only ASCII characters + // and must include at least one non-whitespace character. ASCII control characters + // are not supported as part of dimension values. + // + // Value is a required field + Value *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Dimension) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Dimension) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Dimension) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Dimension"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *Dimension) SetName(v string) *Dimension { + s.Name = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Dimension) SetValue(v string) *Dimension { + s.Value = &v + return s +} + +type GetServiceInput struct { + _ struct{} `type:"structure"` + + // The end of the time period to retrieve information about. When used in a + // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` + + // Use this field to specify which service you want to retrieve information + // for. You must specify at least the Type, Name, and Environment attributes. + // + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // KeyAttributes is a required field + KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // The start of the time period to retrieve information about. When used in + // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetServiceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetServiceInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) + } + if s.KeyAttributes == nil { + invalidParams.Add(request.NewErrParamRequired("KeyAttributes")) + } + if s.KeyAttributes != nil && len(s.KeyAttributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyAttributes", 1)) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *GetServiceInput) SetEndTime(v time.Time) *GetServiceInput { + s.EndTime = &v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *GetServiceInput) SetKeyAttributes(v map[string]*string) *GetServiceInput { + s.KeyAttributes = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *GetServiceInput) SetStartTime(v time.Time) *GetServiceInput { + s.StartTime = &v + return s +} + +type GetServiceLevelObjectiveInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN or name of the SLO that you want to retrieve information about. You + // can find the ARNs of SLOs by using the ListServiceLevelObjectives (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListServiceLevelObjectives.html) + // operation. + // + // Id is a required field + Id *string `location:"uri" locationName:"Id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceLevelObjectiveInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceLevelObjectiveInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetServiceLevelObjectiveInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetServiceLevelObjectiveInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetServiceLevelObjectiveInput) SetId(v string) *GetServiceLevelObjectiveInput { + s.Id = &v + return s +} + +type GetServiceLevelObjectiveOutput struct { + _ struct{} `type:"structure"` + + // A structure containing the information about the SLO. + // + // Slo is a required field + Slo *ServiceLevelObjective `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceLevelObjectiveOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceLevelObjectiveOutput) GoString() string { + return s.String() +} + +// SetSlo sets the Slo field's value. +func (s *GetServiceLevelObjectiveOutput) SetSlo(v *ServiceLevelObjective) *GetServiceLevelObjectiveOutput { + s.Slo = v + return s +} + +type GetServiceOutput struct { + _ struct{} `type:"structure"` + + // The end time of the data included in the response. In a raw HTTP Query API, + // it is formatted as be epoch time in seconds. For example: 1698778057. + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // A structure containing information about the service. + // + // Service is a required field + Service *Service `type:"structure" required:"true"` + + // The start time of the data included in the response. In a raw HTTP Query + // API, it is formatted as be epoch time in seconds. For example: 1698778057. + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetServiceOutput) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *GetServiceOutput) SetEndTime(v time.Time) *GetServiceOutput { + s.EndTime = &v + return s +} + +// SetService sets the Service field's value. +func (s *GetServiceOutput) SetService(v *Service) *GetServiceOutput { + s.Service = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *GetServiceOutput) SetStartTime(v time.Time) *GetServiceOutput { + s.StartTime = &v + return s +} + +// This structure contains the attributes that determine the goal of an SLO. +// This includes the time period for evaluation and the attainment threshold. +type Goal struct { + _ struct{} `type:"structure"` + + // The threshold that determines if the goal is being met. An attainment goal + // is the ratio of good periods that meet the threshold requirements to the + // total periods within the interval. For example, an attainment goal of 99.9% + // means that within your interval, you are targeting 99.9% of the periods to + // be in healthy state. + // + // If you omit this parameter, 99 is used to represent 99% as the attainment + // goal. + AttainmentGoal *float64 `type:"double"` + + // The time period used to evaluate the SLO. It can be either a calendar interval + // or rolling interval. + // + // If you omit this parameter, a rolling interval of 7 days is used. + Interval *Interval `type:"structure"` + + // The percentage of remaining budget over total budget that you want to get + // warnings for. If you omit this parameter, the default of 50.0 is used. + WarningThreshold *float64 `type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Goal) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Goal) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Goal) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Goal"} + if s.Interval != nil { + if err := s.Interval.Validate(); err != nil { + invalidParams.AddNested("Interval", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttainmentGoal sets the AttainmentGoal field's value. +func (s *Goal) SetAttainmentGoal(v float64) *Goal { + s.AttainmentGoal = &v + return s +} + +// SetInterval sets the Interval field's value. +func (s *Goal) SetInterval(v *Interval) *Goal { + s.Interval = v + return s +} + +// SetWarningThreshold sets the WarningThreshold field's value. +func (s *Goal) SetWarningThreshold(v float64) *Goal { + s.WarningThreshold = &v + return s +} + +// The time period used to evaluate the SLO. It can be either a calendar interval +// or rolling interval. +type Interval struct { + _ struct{} `type:"structure"` + + // If the interval is a calendar interval, this structure contains the interval + // specifications. + CalendarInterval *CalendarInterval `type:"structure"` + + // If the interval is a rolling interval, this structure contains the interval + // specifications. + RollingInterval *RollingInterval `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Interval) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Interval) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Interval) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Interval"} + if s.CalendarInterval != nil { + if err := s.CalendarInterval.Validate(); err != nil { + invalidParams.AddNested("CalendarInterval", err.(request.ErrInvalidParams)) + } + } + if s.RollingInterval != nil { + if err := s.RollingInterval.Validate(); err != nil { + invalidParams.AddNested("RollingInterval", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCalendarInterval sets the CalendarInterval field's value. +func (s *Interval) SetCalendarInterval(v *CalendarInterval) *Interval { + s.CalendarInterval = v + return s +} + +// SetRollingInterval sets the RollingInterval field's value. +func (s *Interval) SetRollingInterval(v *RollingInterval) *Interval { + s.RollingInterval = v + return s +} + +type ListServiceDependenciesInput struct { + _ struct{} `type:"structure"` + + // The end of the time period to retrieve information about. When used in a + // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` + + // Use this field to specify which service you want to retrieve information + // for. You must specify at least the Type, Name, and Environment attributes. + // + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // KeyAttributes is a required field + KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // The maximum number of results to return in one operation. If you omit this + // parameter, the default of 50 is used. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // Include this value, if it was returned by the previous operation, to get + // the next set of service dependencies. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The start of the time period to retrieve information about. When used in + // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependenciesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependenciesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListServiceDependenciesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListServiceDependenciesInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) + } + if s.KeyAttributes == nil { + invalidParams.Add(request.NewErrParamRequired("KeyAttributes")) + } + if s.KeyAttributes != nil && len(s.KeyAttributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyAttributes", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServiceDependenciesInput) SetEndTime(v time.Time) *ListServiceDependenciesInput { + s.EndTime = &v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ListServiceDependenciesInput) SetKeyAttributes(v map[string]*string) *ListServiceDependenciesInput { + s.KeyAttributes = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListServiceDependenciesInput) SetMaxResults(v int64) *ListServiceDependenciesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceDependenciesInput) SetNextToken(v string) *ListServiceDependenciesInput { + s.NextToken = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServiceDependenciesInput) SetStartTime(v time.Time) *ListServiceDependenciesInput { + s.StartTime = &v + return s +} + +type ListServiceDependenciesOutput struct { + _ struct{} `type:"structure"` + + // The end of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // Include this value in your next use of this API to get next set of service + // dependencies. + NextToken *string `type:"string"` + + // An array, where each object in the array contains information about one of + // the dependencies of this service. + // + // ServiceDependencies is a required field + ServiceDependencies []*ServiceDependency `type:"list" required:"true"` + + // The start of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependenciesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependenciesOutput) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServiceDependenciesOutput) SetEndTime(v time.Time) *ListServiceDependenciesOutput { + s.EndTime = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceDependenciesOutput) SetNextToken(v string) *ListServiceDependenciesOutput { + s.NextToken = &v + return s +} + +// SetServiceDependencies sets the ServiceDependencies field's value. +func (s *ListServiceDependenciesOutput) SetServiceDependencies(v []*ServiceDependency) *ListServiceDependenciesOutput { + s.ServiceDependencies = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServiceDependenciesOutput) SetStartTime(v time.Time) *ListServiceDependenciesOutput { + s.StartTime = &v + return s +} + +type ListServiceDependentsInput struct { + _ struct{} `type:"structure"` + + // The end of the time period to retrieve information about. When used in a + // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` + + // Use this field to specify which service you want to retrieve information + // for. You must specify at least the Type, Name, and Environment attributes. + // + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // KeyAttributes is a required field + KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // The maximum number of results to return in one operation. If you omit this + // parameter, the default of 50 is used. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // Include this value, if it was returned by the previous operation, to get + // the next set of service dependents. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The start of the time period to retrieve information about. When used in + // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListServiceDependentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListServiceDependentsInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) + } + if s.KeyAttributes == nil { + invalidParams.Add(request.NewErrParamRequired("KeyAttributes")) + } + if s.KeyAttributes != nil && len(s.KeyAttributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyAttributes", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServiceDependentsInput) SetEndTime(v time.Time) *ListServiceDependentsInput { + s.EndTime = &v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ListServiceDependentsInput) SetKeyAttributes(v map[string]*string) *ListServiceDependentsInput { + s.KeyAttributes = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListServiceDependentsInput) SetMaxResults(v int64) *ListServiceDependentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceDependentsInput) SetNextToken(v string) *ListServiceDependentsInput { + s.NextToken = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServiceDependentsInput) SetStartTime(v time.Time) *ListServiceDependentsInput { + s.StartTime = &v + return s +} + +type ListServiceDependentsOutput struct { + _ struct{} `type:"structure"` + + // The end of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // Include this value in your next use of this API to get next set of service + // dependents. + NextToken *string `type:"string"` + + // An array, where each object in the array contains information about one of + // the dependents of this service. + // + // ServiceDependents is a required field + ServiceDependents []*ServiceDependent `type:"list" required:"true"` + + // The start of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceDependentsOutput) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServiceDependentsOutput) SetEndTime(v time.Time) *ListServiceDependentsOutput { + s.EndTime = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceDependentsOutput) SetNextToken(v string) *ListServiceDependentsOutput { + s.NextToken = &v + return s +} + +// SetServiceDependents sets the ServiceDependents field's value. +func (s *ListServiceDependentsOutput) SetServiceDependents(v []*ServiceDependent) *ListServiceDependentsOutput { + s.ServiceDependents = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServiceDependentsOutput) SetStartTime(v time.Time) *ListServiceDependentsOutput { + s.StartTime = &v + return s +} + +type ListServiceLevelObjectivesInput struct { + _ struct{} `type:"structure"` + + // You can use this optional field to specify which services you want to retrieve + // SLO information for. + // + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + KeyAttributes map[string]*string `min:"1" type:"map"` + + // The maximum number of results to return in one operation. If you omit this + // parameter, the default of 50 is used. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // Include this value, if it was returned by the previous operation, to get + // the next set of service level objectives. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The name of the operation that this SLO is associated with. + OperationName *string `location:"querystring" locationName:"OperationName" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceLevelObjectivesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceLevelObjectivesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListServiceLevelObjectivesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListServiceLevelObjectivesInput"} + if s.KeyAttributes != nil && len(s.KeyAttributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyAttributes", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.OperationName != nil && len(*s.OperationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OperationName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ListServiceLevelObjectivesInput) SetKeyAttributes(v map[string]*string) *ListServiceLevelObjectivesInput { + s.KeyAttributes = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListServiceLevelObjectivesInput) SetMaxResults(v int64) *ListServiceLevelObjectivesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceLevelObjectivesInput) SetNextToken(v string) *ListServiceLevelObjectivesInput { + s.NextToken = &v + return s +} + +// SetOperationName sets the OperationName field's value. +func (s *ListServiceLevelObjectivesInput) SetOperationName(v string) *ListServiceLevelObjectivesInput { + s.OperationName = &v + return s +} + +type ListServiceLevelObjectivesOutput struct { + _ struct{} `type:"structure"` + + // Include this value in your next use of this API to get next set of service + // level objectives. + NextToken *string `type:"string"` + + // An array of structures, where each structure contains information about one + // SLO. + SloSummaries []*ServiceLevelObjectiveSummary `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceLevelObjectivesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceLevelObjectivesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceLevelObjectivesOutput) SetNextToken(v string) *ListServiceLevelObjectivesOutput { + s.NextToken = &v + return s +} + +// SetSloSummaries sets the SloSummaries field's value. +func (s *ListServiceLevelObjectivesOutput) SetSloSummaries(v []*ServiceLevelObjectiveSummary) *ListServiceLevelObjectivesOutput { + s.SloSummaries = v + return s +} + +type ListServiceOperationsInput struct { + _ struct{} `type:"structure"` + + // The end of the time period to retrieve information about. When used in a + // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` + + // Use this field to specify which service you want to retrieve information + // for. You must specify at least the Type, Name, and Environment attributes. + // + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // KeyAttributes is a required field + KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // The maximum number of results to return in one operation. If you omit this + // parameter, the default of 50 is used. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // Include this value, if it was returned by the previous operation, to get + // the next set of service operations. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The start of the time period to retrieve information about. When used in + // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceOperationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceOperationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListServiceOperationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListServiceOperationsInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) + } + if s.KeyAttributes == nil { + invalidParams.Add(request.NewErrParamRequired("KeyAttributes")) + } + if s.KeyAttributes != nil && len(s.KeyAttributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyAttributes", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServiceOperationsInput) SetEndTime(v time.Time) *ListServiceOperationsInput { + s.EndTime = &v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ListServiceOperationsInput) SetKeyAttributes(v map[string]*string) *ListServiceOperationsInput { + s.KeyAttributes = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListServiceOperationsInput) SetMaxResults(v int64) *ListServiceOperationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceOperationsInput) SetNextToken(v string) *ListServiceOperationsInput { + s.NextToken = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServiceOperationsInput) SetStartTime(v time.Time) *ListServiceOperationsInput { + s.StartTime = &v + return s +} + +type ListServiceOperationsOutput struct { + _ struct{} `type:"structure"` + + // The end of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // Include this value in your next use of this API to get next set of service + // operations. + NextToken *string `type:"string"` + + // An array of structures that each contain information about one operation + // of this service. + // + // ServiceOperations is a required field + ServiceOperations []*ServiceOperation `type:"list" required:"true"` + + // The start of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceOperationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServiceOperationsOutput) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServiceOperationsOutput) SetEndTime(v time.Time) *ListServiceOperationsOutput { + s.EndTime = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServiceOperationsOutput) SetNextToken(v string) *ListServiceOperationsOutput { + s.NextToken = &v + return s +} + +// SetServiceOperations sets the ServiceOperations field's value. +func (s *ListServiceOperationsOutput) SetServiceOperations(v []*ServiceOperation) *ListServiceOperationsOutput { + s.ServiceOperations = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServiceOperationsOutput) SetStartTime(v time.Time) *ListServiceOperationsOutput { + s.StartTime = &v + return s +} + +type ListServicesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The end of the time period to retrieve information about. When used in a + // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` + + // The maximum number of results to return in one operation. If you omit this + // parameter, the default of 50 is used. + MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"` + + // Include this value, if it was returned by the previous operation, to get + // the next set of services. + NextToken *string `location:"querystring" locationName:"NextToken" type:"string"` + + // The start of the time period to retrieve information about. When used in + // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: + // 1698778057 + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServicesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServicesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListServicesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListServicesInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServicesInput) SetEndTime(v time.Time) *ListServicesInput { + s.EndTime = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput { + s.NextToken = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServicesInput) SetStartTime(v time.Time) *ListServicesInput { + s.StartTime = &v + return s +} + +type ListServicesOutput struct { + _ struct{} `type:"structure"` + + // The end of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // EndTime is a required field + EndTime *time.Time `type:"timestamp" required:"true"` + + // Include this value in your next use of this API to get next set of services. + NextToken *string `type:"string"` + + // An array of structures, where each structure contains some information about + // a service. To get complete information about a service, use GetService (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetService.html). + // + // ServiceSummaries is a required field + ServiceSummaries []*ServiceSummary `type:"list" required:"true"` + + // The start of the time period that the returned information applies to. When + // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. + // For example: 1698778057 + // + // StartTime is a required field + StartTime *time.Time `type:"timestamp" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServicesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListServicesOutput) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *ListServicesOutput) SetEndTime(v time.Time) *ListServicesOutput { + s.EndTime = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput { + s.NextToken = &v + return s +} + +// SetServiceSummaries sets the ServiceSummaries field's value. +func (s *ListServicesOutput) SetServiceSummaries(v []*ServiceSummary) *ListServicesOutput { + s.ServiceSummaries = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListServicesOutput) SetStartTime(v time.Time) *ListServicesOutput { + s.StartTime = &v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The Amazon Resource Name (ARN) of the CloudWatch resource that you want to + // view tags for. + // + // The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name + // + // For more information about ARN format, see Resource Types Defined by Amazon + // CloudWatch (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies) + // in the Amazon Web Services General Reference. + // + // ResourceArn is a required field + ResourceArn *string `location:"querystring" locationName:"ResourceArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The list of tag keys and values associated with the resource you specified. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// This structure defines the metric used for a service level indicator, including +// the metric name, namespace, and dimensions +type Metric struct { + _ struct{} `type:"structure"` + + // An array of one or more dimensions to use to define the metric that you want + // to use. For more information, see Dimensions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension). + Dimensions []*Dimension `type:"list"` + + // The name of the metric to use. + MetricName *string `min:"1" type:"string"` + + // The namespace of the metric. For more information, see Namespaces (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). + Namespace *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Metric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Metric) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Metric) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Metric"} + if s.MetricName != nil && len(*s.MetricName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MetricName", 1)) + } + if s.Namespace != nil && len(*s.Namespace) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Namespace", 1)) + } + if s.Dimensions != nil { + for i, v := range s.Dimensions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDimensions sets the Dimensions field's value. +func (s *Metric) SetDimensions(v []*Dimension) *Metric { + s.Dimensions = v + return s +} + +// SetMetricName sets the MetricName field's value. +func (s *Metric) SetMetricName(v string) *Metric { + s.MetricName = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *Metric) SetNamespace(v string) *Metric { + s.Namespace = &v + return s +} + +// Use this structure to define a metric or metric math expression that you +// want to use as for a service level objective. +// +// Each MetricDataQuery in the MetricDataQueries array specifies either a metric +// to retrieve, or a metric math expression to be performed on retrieved metrics. +// A single MetricDataQueries array can include as many as 20 MetricDataQuery +// structures in the array. The 20 structures can include as many as 10 structures +// that contain a MetricStat parameter to retrieve a metric, and as many as +// 10 structures that contain the Expression parameter to perform a math expression. +// Of those Expression structures, exactly one must have true as the value for +// ReturnData. The result of this expression used for the SLO. +// +// For more information about metric math expressions, see CloudWatchUse metric +// math (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html). +// +// Within each MetricDataQuery object, you must specify either Expression or +// MetricStat but not both. +type MetricDataQuery struct { + _ struct{} `type:"structure"` + + // The ID of the account where this metric is located. If you are performing + // this operatiion in a monitoring account, use this to specify which source + // account to retrieve this metric from. + AccountId *string `min:"1" type:"string"` + + // This field can contain a metric math expression to be performed on the other + // metrics that you are retrieving within this MetricDataQueries structure. + // + // A math expression can use the Id of the other metrics or queries to refer + // to those metrics, and can also use the Id of other expressions to use the + // result of those expressions. For more information about metric math expressions, + // see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) + // in the Amazon CloudWatch User Guide. + // + // Within each MetricDataQuery object, you must specify either Expression or + // MetricStat but not both. + Expression *string `min:"1" type:"string"` + + // A short name used to tie this object to the results in the response. This + // Id must be unique within a MetricDataQueries array. If you are performing + // math expressions on this set of data, this name represents that data and + // can serve as a variable in the metric math expression. The valid characters + // are letters, numbers, and underscore. The first character must be a lowercase + // letter. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // A human-readable label for this metric or expression. This is especially + // useful if this is an expression, so that you know what the value represents. + // If the metric or expression is shown in a CloudWatch dashboard widget, the + // label is shown. If Label is omitted, CloudWatch generates a default. + // + // You can put dynamic expressions into a label, so that it is more descriptive. + // For more information, see Using Dynamic Labels (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html). + Label *string `type:"string"` + + // A metric to be used directly for the SLO, or to be used in the math expression + // that will be used for the SLO. + // + // Within one MetricDataQuery object, you must specify either Expression or + // MetricStat but not both. + MetricStat *MetricStat `type:"structure"` + + // The granularity, in seconds, of the returned data points for this metric. + // For metrics with regular resolution, a period can be as short as one minute + // (60 seconds) and must be a multiple of 60. For high-resolution metrics that + // are collected at intervals of less than one minute, the period can be 1, + // 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics + // stored by a PutMetricData call that includes a StorageResolution of 1 second. + // + // If the StartTime parameter specifies a time stamp that is greater than 3 + // hours ago, you must specify the period as follows or no data points in that + // time range is returned: + // + // * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds + // (1 minute). + // + // * Start time between 15 and 63 days ago - Use a multiple of 300 seconds + // (5 minutes). + // + // * Start time greater than 63 days ago - Use a multiple of 3600 seconds + // (1 hour). + Period *int64 `min:"1" type:"integer"` + + // Use this only if you are using a metric math expression for the SLO. Specify + // true for ReturnData for only the one expression result to use as the alarm. + // For all other metrics and expressions in the same CreateServiceLevelObjective + // operation, specify ReturnData as false. + ReturnData *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricDataQuery) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricDataQuery) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricDataQuery) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricDataQuery"} + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Expression != nil && len(*s.Expression) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Expression", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.Period != nil && *s.Period < 1 { + invalidParams.Add(request.NewErrParamMinValue("Period", 1)) + } + if s.MetricStat != nil { + if err := s.MetricStat.Validate(); err != nil { + invalidParams.AddNested("MetricStat", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *MetricDataQuery) SetAccountId(v string) *MetricDataQuery { + s.AccountId = &v + return s +} + +// SetExpression sets the Expression field's value. +func (s *MetricDataQuery) SetExpression(v string) *MetricDataQuery { + s.Expression = &v + return s +} + +// SetId sets the Id field's value. +func (s *MetricDataQuery) SetId(v string) *MetricDataQuery { + s.Id = &v + return s +} + +// SetLabel sets the Label field's value. +func (s *MetricDataQuery) SetLabel(v string) *MetricDataQuery { + s.Label = &v + return s +} + +// SetMetricStat sets the MetricStat field's value. +func (s *MetricDataQuery) SetMetricStat(v *MetricStat) *MetricDataQuery { + s.MetricStat = v + return s +} + +// SetPeriod sets the Period field's value. +func (s *MetricDataQuery) SetPeriod(v int64) *MetricDataQuery { + s.Period = &v + return s +} + +// SetReturnData sets the ReturnData field's value. +func (s *MetricDataQuery) SetReturnData(v bool) *MetricDataQuery { + s.ReturnData = &v + return s +} + +// This structure contains information about one CloudWatch metric associated +// with this entity discovered by Application Signals. +type MetricReference struct { + _ struct{} `type:"structure"` + + // An array of one or more dimensions that further define the metric. For more + // information, see CloudWatchDimensions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension). + Dimensions []*Dimension `type:"list"` + + // The name of the metric. + // + // MetricName is a required field + MetricName *string `min:"1" type:"string" required:"true"` + + // Used to display the appropriate statistics in the CloudWatch console. + // + // MetricType is a required field + MetricType *string `type:"string" required:"true"` + + // The namespace of the metric. For more information, see CloudWatchNamespaces + // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). + // + // Namespace is a required field + Namespace *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricReference) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricReference) GoString() string { + return s.String() +} + +// SetDimensions sets the Dimensions field's value. +func (s *MetricReference) SetDimensions(v []*Dimension) *MetricReference { + s.Dimensions = v + return s +} + +// SetMetricName sets the MetricName field's value. +func (s *MetricReference) SetMetricName(v string) *MetricReference { + s.MetricName = &v + return s +} + +// SetMetricType sets the MetricType field's value. +func (s *MetricReference) SetMetricType(v string) *MetricReference { + s.MetricType = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *MetricReference) SetNamespace(v string) *MetricReference { + s.Namespace = &v + return s +} + +// This structure defines the metric to be used as the service level indicator, +// along with the statistics, period, and unit. +type MetricStat struct { + _ struct{} `type:"structure"` + + // The metric to use as the service level indicator, including the metric name, + // namespace, and dimensions. + // + // Metric is a required field + Metric *Metric `type:"structure" required:"true"` + + // The granularity, in seconds, to be used for the metric. For metrics with + // regular resolution, a period can be as short as one minute (60 seconds) and + // must be a multiple of 60. For high-resolution metrics that are collected + // at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, + // or any multiple of 60. High-resolution metrics are those metrics stored by + // a PutMetricData call that includes a StorageResolution of 1 second. + // + // Period is a required field + Period *int64 `min:"1" type:"integer" required:"true"` + + // The statistic to use for comparison to the threshold. It can be any CloudWatch + // statistic or extended statistic. For more information about statistics, see + // CloudWatch statistics definitions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html). + // + // Stat is a required field + Stat *string `type:"string" required:"true"` + + // If you omit Unit then all data that was collected with any unit is returned, + // along with the corresponding units that were specified when the data was + // reported to CloudWatch. If you specify a unit, the operation returns only + // data that was collected with that unit specified. If you specify a unit that + // does not match the data collected, the results of the operation are null. + // CloudWatch does not perform unit conversions. + Unit *string `type:"string" enum:"StandardUnit"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricStat) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricStat) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricStat) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricStat"} + if s.Metric == nil { + invalidParams.Add(request.NewErrParamRequired("Metric")) + } + if s.Period == nil { + invalidParams.Add(request.NewErrParamRequired("Period")) + } + if s.Period != nil && *s.Period < 1 { + invalidParams.Add(request.NewErrParamMinValue("Period", 1)) + } + if s.Stat == nil { + invalidParams.Add(request.NewErrParamRequired("Stat")) + } + if s.Metric != nil { + if err := s.Metric.Validate(); err != nil { + invalidParams.AddNested("Metric", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMetric sets the Metric field's value. +func (s *MetricStat) SetMetric(v *Metric) *MetricStat { + s.Metric = v + return s +} + +// SetPeriod sets the Period field's value. +func (s *MetricStat) SetPeriod(v int64) *MetricStat { + s.Period = &v + return s +} + +// SetStat sets the Stat field's value. +func (s *MetricStat) SetStat(v string) *MetricStat { + s.Stat = &v + return s +} + +// SetUnit sets the Unit field's value. +func (s *MetricStat) SetUnit(v string) *MetricStat { + s.Unit = &v + return s +} + +// Resource not found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` + + // Cannot find the resource id. + // + // ResourceId is a required field + ResourceId *string `type:"string" required:"true"` + + // The resource type is not valid. + // + // ResourceType is a required field + ResourceType *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// If the interval for this SLO is a rolling interval, this structure contains +// the interval specifications. +type RollingInterval struct { + _ struct{} `type:"structure"` + + // Specifies the duration of each rolling interval. For example, if Duration + // is 7 and DurationUnit is DAY, each rolling interval is seven days. + // + // Duration is a required field + Duration *int64 `min:"1" type:"integer" required:"true"` + + // Specifies the rolling interval unit. + // + // DurationUnit is a required field + DurationUnit *string `type:"string" required:"true" enum:"DurationUnit"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RollingInterval) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RollingInterval) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RollingInterval) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RollingInterval"} + if s.Duration == nil { + invalidParams.Add(request.NewErrParamRequired("Duration")) + } + if s.Duration != nil && *s.Duration < 1 { + invalidParams.Add(request.NewErrParamMinValue("Duration", 1)) + } + if s.DurationUnit == nil { + invalidParams.Add(request.NewErrParamRequired("DurationUnit")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDuration sets the Duration field's value. +func (s *RollingInterval) SetDuration(v int64) *RollingInterval { + s.Duration = &v + return s +} + +// SetDurationUnit sets the DurationUnit field's value. +func (s *RollingInterval) SetDurationUnit(v string) *RollingInterval { + s.DurationUnit = &v + return s +} + +// This structure contains information about one of your services that was discovered +// by Application Signals. +type Service struct { + _ struct{} `type:"structure"` + + // This structure contains one or more string-to-string maps that help identify + // this service. It can include platform attributes, application attributes, + // and telemetry attributes. + // + // Platform attributes contain information the service's platform. + // + // * PlatformType defines the hosted-in platform. + // + // * EKS.Cluster is the name of the Amazon EKS cluster. + // + // * K8s.Cluster is the name of the self-hosted Kubernetes cluster. + // + // * K8s.Namespace is the name of the Kubernetes namespace in either Amazon + // EKS or Kubernetes clusters. + // + // * K8s.Workload is the name of the Kubernetes workload in either Amazon + // EKS or Kubernetes clusters. + // + // * K8s.Node is the name of the Kubernetes node in either Amazon EKS or + // Kubernetes clusters. + // + // * K8s.Pod is the name of the Kubernetes pod in either Amazon EKS or Kubernetes + // clusters. + // + // * EC2.AutoScalingGroup is the name of the Amazon EC2 Auto Scaling group. + // + // * EC2.InstanceId is the ID of the Amazon EC2 instance. + // + // * Host is the name of the host, for all platform types. + // + // Applciation attributes contain information about the application. + // + // * AWS.Application is the application's name in Amazon Web Services Service + // Catalog AppRegistry. + // + // * AWS.Application.ARN is the application's ARN in Amazon Web Services + // Service Catalog AppRegistry. + // + // Telemetry attributes contain telemetry information. + // + // * Telemetry.SDK is the fingerprint of the OpenTelemetry SDK version for + // instrumented services. + // + // * Telemetry.Agent is the fingerprint of the agent used to collect and + // send telemetry data. + // + // * Telemetry.Source Specifies the point of application where the telemetry + // was collected or specifies what was used for the source of telemetry data. + AttributeMaps []map[string]*string `type:"list"` + + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // KeyAttributes is a required field + KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // An array of structures that each contain information about one metric associated + // with this service. + // + // MetricReferences is a required field + MetricReferences []*MetricReference `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Service) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Service) GoString() string { + return s.String() +} + +// SetAttributeMaps sets the AttributeMaps field's value. +func (s *Service) SetAttributeMaps(v []map[string]*string) *Service { + s.AttributeMaps = v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *Service) SetKeyAttributes(v map[string]*string) *Service { + s.KeyAttributes = v + return s +} + +// SetMetricReferences sets the MetricReferences field's value. +func (s *Service) SetMetricReferences(v []*MetricReference) *Service { + s.MetricReferences = v + return s +} + +// This structure contains information about one dependency of this service. +type ServiceDependency struct { + _ struct{} `type:"structure"` + + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // DependencyKeyAttributes is a required field + DependencyKeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // The name of the called operation in the dependency. + // + // DependencyOperationName is a required field + DependencyOperationName *string `min:"1" type:"string" required:"true"` + + // An array of structures that each contain information about one metric associated + // with this service dependency that was discovered by Application Signals. + // + // MetricReferences is a required field + MetricReferences []*MetricReference `type:"list" required:"true"` + + // The name of the operation in this service that calls the dependency. + // + // OperationName is a required field + OperationName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceDependency) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceDependency) GoString() string { + return s.String() +} + +// SetDependencyKeyAttributes sets the DependencyKeyAttributes field's value. +func (s *ServiceDependency) SetDependencyKeyAttributes(v map[string]*string) *ServiceDependency { + s.DependencyKeyAttributes = v + return s +} + +// SetDependencyOperationName sets the DependencyOperationName field's value. +func (s *ServiceDependency) SetDependencyOperationName(v string) *ServiceDependency { + s.DependencyOperationName = &v + return s +} + +// SetMetricReferences sets the MetricReferences field's value. +func (s *ServiceDependency) SetMetricReferences(v []*MetricReference) *ServiceDependency { + s.MetricReferences = v + return s +} + +// SetOperationName sets the OperationName field's value. +func (s *ServiceDependency) SetOperationName(v string) *ServiceDependency { + s.OperationName = &v + return s +} + +// This structure contains information about a service dependent that was discovered +// by Application Signals. A dependent is an entity that invoked the specified +// service during the provided time range. Dependents include other services, +// CloudWatch Synthetics canaries, and clients that are instrumented with CloudWatch +// RUM app monitors. +type ServiceDependent struct { + _ struct{} `type:"structure"` + + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // DependentKeyAttributes is a required field + DependentKeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // If the dependent invoker was a service that invoked it from an operation, + // the name of that dependent operation is displayed here. + DependentOperationName *string `min:"1" type:"string"` + + // An array of structures that each contain information about one metric associated + // with this service dependent that was discovered by Application Signals. + // + // MetricReferences is a required field + MetricReferences []*MetricReference `type:"list" required:"true"` + + // If the invoked entity is an operation on an entity, the name of that dependent + // operation is displayed here. + OperationName *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceDependent) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceDependent) GoString() string { + return s.String() +} + +// SetDependentKeyAttributes sets the DependentKeyAttributes field's value. +func (s *ServiceDependent) SetDependentKeyAttributes(v map[string]*string) *ServiceDependent { + s.DependentKeyAttributes = v + return s +} + +// SetDependentOperationName sets the DependentOperationName field's value. +func (s *ServiceDependent) SetDependentOperationName(v string) *ServiceDependent { + s.DependentOperationName = &v + return s +} + +// SetMetricReferences sets the MetricReferences field's value. +func (s *ServiceDependent) SetMetricReferences(v []*MetricReference) *ServiceDependent { + s.MetricReferences = v + return s +} + +// SetOperationName sets the OperationName field's value. +func (s *ServiceDependent) SetOperationName(v string) *ServiceDependent { + s.OperationName = &v + return s +} + +// This structure contains information about the performance metric that an +// SLO monitors. +type ServiceLevelIndicator struct { + _ struct{} `type:"structure"` + + // The arithmetic operation used when comparing the specified metric to the + // threshold. + // + // ComparisonOperator is a required field + ComparisonOperator *string `type:"string" required:"true" enum:"ServiceLevelIndicatorComparisonOperator"` + + // The value that the SLI metric is compared to. + // + // MetricThreshold is a required field + MetricThreshold *float64 `type:"double" required:"true"` + + // A structure that contains information about the metric that the SLO monitors. + // + // SliMetric is a required field + SliMetric *ServiceLevelIndicatorMetric `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicator) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicator) GoString() string { + return s.String() +} + +// SetComparisonOperator sets the ComparisonOperator field's value. +func (s *ServiceLevelIndicator) SetComparisonOperator(v string) *ServiceLevelIndicator { + s.ComparisonOperator = &v + return s +} + +// SetMetricThreshold sets the MetricThreshold field's value. +func (s *ServiceLevelIndicator) SetMetricThreshold(v float64) *ServiceLevelIndicator { + s.MetricThreshold = &v + return s +} + +// SetSliMetric sets the SliMetric field's value. +func (s *ServiceLevelIndicator) SetSliMetric(v *ServiceLevelIndicatorMetric) *ServiceLevelIndicator { + s.SliMetric = v + return s +} + +// This structure specifies the information about the service and the performance +// metric that an SLO is to monitor. +type ServiceLevelIndicatorConfig struct { + _ struct{} `type:"structure"` + + // The arithmetic operation to use when comparing the specified metric to the + // threshold. + // + // ComparisonOperator is a required field + ComparisonOperator *string `type:"string" required:"true" enum:"ServiceLevelIndicatorComparisonOperator"` + + // The value that the SLI metric is compared to. + // + // MetricThreshold is a required field + MetricThreshold *float64 `type:"double" required:"true"` + + // Use this structure to specify the metric to be used for the SLO. + // + // SliMetricConfig is a required field + SliMetricConfig *ServiceLevelIndicatorMetricConfig `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicatorConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicatorConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ServiceLevelIndicatorConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ServiceLevelIndicatorConfig"} + if s.ComparisonOperator == nil { + invalidParams.Add(request.NewErrParamRequired("ComparisonOperator")) + } + if s.MetricThreshold == nil { + invalidParams.Add(request.NewErrParamRequired("MetricThreshold")) + } + if s.SliMetricConfig == nil { + invalidParams.Add(request.NewErrParamRequired("SliMetricConfig")) + } + if s.SliMetricConfig != nil { + if err := s.SliMetricConfig.Validate(); err != nil { + invalidParams.AddNested("SliMetricConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetComparisonOperator sets the ComparisonOperator field's value. +func (s *ServiceLevelIndicatorConfig) SetComparisonOperator(v string) *ServiceLevelIndicatorConfig { + s.ComparisonOperator = &v + return s +} + +// SetMetricThreshold sets the MetricThreshold field's value. +func (s *ServiceLevelIndicatorConfig) SetMetricThreshold(v float64) *ServiceLevelIndicatorConfig { + s.MetricThreshold = &v + return s +} + +// SetSliMetricConfig sets the SliMetricConfig field's value. +func (s *ServiceLevelIndicatorConfig) SetSliMetricConfig(v *ServiceLevelIndicatorMetricConfig) *ServiceLevelIndicatorConfig { + s.SliMetricConfig = v + return s +} + +// This structure contains the information about the metric that is used for +// the SLO. +type ServiceLevelIndicatorMetric struct { + _ struct{} `type:"structure"` + + // This is a string-to-string map that contains information about the type of + // object that this SLO is related to. It can include the following fields. + // + // * Type designates the type of object that this SLO is related to. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + KeyAttributes map[string]*string `min:"1" type:"map"` + + // If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric + // math expression, this structure includes the information about that metric + // or expression. + // + // MetricDataQueries is a required field + MetricDataQueries []*MetricDataQuery `type:"list" required:"true"` + + // If the SLO monitors either the LATENCY or AVAILABILITY metric that Application + // Signals collects, this field displays which of those metrics is used. + MetricType *string `type:"string" enum:"ServiceLevelIndicatorMetricType"` + + // If the SLO monitors a specific operation of the service, this field displays + // that operation name. + OperationName *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicatorMetric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicatorMetric) GoString() string { + return s.String() +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ServiceLevelIndicatorMetric) SetKeyAttributes(v map[string]*string) *ServiceLevelIndicatorMetric { + s.KeyAttributes = v + return s +} + +// SetMetricDataQueries sets the MetricDataQueries field's value. +func (s *ServiceLevelIndicatorMetric) SetMetricDataQueries(v []*MetricDataQuery) *ServiceLevelIndicatorMetric { + s.MetricDataQueries = v + return s +} + +// SetMetricType sets the MetricType field's value. +func (s *ServiceLevelIndicatorMetric) SetMetricType(v string) *ServiceLevelIndicatorMetric { + s.MetricType = &v + return s +} + +// SetOperationName sets the OperationName field's value. +func (s *ServiceLevelIndicatorMetric) SetOperationName(v string) *ServiceLevelIndicatorMetric { + s.OperationName = &v + return s +} + +// Use this structure to specify the information for the metric that the SLO +// will monitor. +type ServiceLevelIndicatorMetricConfig struct { + _ struct{} `type:"structure"` + + // If this SLO is related to a metric collected by Application Signals, you + // must use this field to specify which service the SLO metric is related to. + // To do so, you must specify at least the Type, Name, and Environment attributes. + // + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + KeyAttributes map[string]*string `min:"1" type:"map"` + + // If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric + // math expression, use this structure to specify that metric or expression. + MetricDataQueries []*MetricDataQuery `type:"list"` + + // If the SLO is to monitor either the LATENCY or AVAILABILITY metric that Application + // Signals collects, use this field to specify which of those metrics is used. + MetricType *string `type:"string" enum:"ServiceLevelIndicatorMetricType"` + + // If the SLO is to monitor a specific operation of the service, use this field + // to specify the name of that operation. + OperationName *string `min:"1" type:"string"` + + // The number of seconds to use as the period for SLO evaluation. Your application's + // performance is compared to the SLI during each period. For each period, the + // application is determined to have either achieved or not achieved the necessary + // performance. + PeriodSeconds *int64 `min:"60" type:"integer"` + + // The statistic to use for comparison to the threshold. It can be any CloudWatch + // statistic or extended statistic. For more information about statistics, see + // CloudWatch statistics definitions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html). + Statistic *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicatorMetricConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelIndicatorMetricConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ServiceLevelIndicatorMetricConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ServiceLevelIndicatorMetricConfig"} + if s.KeyAttributes != nil && len(s.KeyAttributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyAttributes", 1)) + } + if s.OperationName != nil && len(*s.OperationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OperationName", 1)) + } + if s.PeriodSeconds != nil && *s.PeriodSeconds < 60 { + invalidParams.Add(request.NewErrParamMinValue("PeriodSeconds", 60)) + } + if s.Statistic != nil && len(*s.Statistic) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Statistic", 1)) + } + if s.MetricDataQueries != nil { + for i, v := range s.MetricDataQueries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDataQueries", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ServiceLevelIndicatorMetricConfig) SetKeyAttributes(v map[string]*string) *ServiceLevelIndicatorMetricConfig { + s.KeyAttributes = v + return s +} + +// SetMetricDataQueries sets the MetricDataQueries field's value. +func (s *ServiceLevelIndicatorMetricConfig) SetMetricDataQueries(v []*MetricDataQuery) *ServiceLevelIndicatorMetricConfig { + s.MetricDataQueries = v + return s +} + +// SetMetricType sets the MetricType field's value. +func (s *ServiceLevelIndicatorMetricConfig) SetMetricType(v string) *ServiceLevelIndicatorMetricConfig { + s.MetricType = &v + return s +} + +// SetOperationName sets the OperationName field's value. +func (s *ServiceLevelIndicatorMetricConfig) SetOperationName(v string) *ServiceLevelIndicatorMetricConfig { + s.OperationName = &v + return s +} + +// SetPeriodSeconds sets the PeriodSeconds field's value. +func (s *ServiceLevelIndicatorMetricConfig) SetPeriodSeconds(v int64) *ServiceLevelIndicatorMetricConfig { + s.PeriodSeconds = &v + return s +} + +// SetStatistic sets the Statistic field's value. +func (s *ServiceLevelIndicatorMetricConfig) SetStatistic(v string) *ServiceLevelIndicatorMetricConfig { + s.Statistic = &v + return s +} + +// A structure containing information about one service level objective (SLO) +// that has been created in Application Signals. Creating SLOs can help you +// ensure your services are performing to the level that you expect. SLOs help +// you set and track a specific target level for the reliability and availability +// of your applications and services. Each SLO uses a service level indicator +// (SLI), which is a key performance metric, to calculate how much underperformance +// can be tolerated before the goal that you set for the SLO is not achieved. +type ServiceLevelObjective struct { + _ struct{} `type:"structure"` + + // The ARN of this SLO. + // + // Arn is a required field + Arn *string `min:"1" type:"string" required:"true"` + + // The date and time that this SLO was created. When used in a raw HTTP Query + // API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + // + // CreatedTime is a required field + CreatedTime *time.Time `type:"timestamp" required:"true"` + + // The description that you created for this SLO. + Description *string `min:"1" type:"string"` + + // This structure contains the attributes that determine the goal of an SLO. + // This includes the time period for evaluation and the attainment threshold. + // + // Goal is a required field + Goal *Goal `type:"structure" required:"true"` + + // The time that this SLO was most recently updated. When used in a raw HTTP + // Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + // + // LastUpdatedTime is a required field + LastUpdatedTime *time.Time `type:"timestamp" required:"true"` + + // The name of this SLO. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // A structure containing information about the performance metric that this + // SLO monitors. + // + // Sli is a required field + Sli *ServiceLevelIndicator `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjective) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjective) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ServiceLevelObjective) SetArn(v string) *ServiceLevelObjective { + s.Arn = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *ServiceLevelObjective) SetCreatedTime(v time.Time) *ServiceLevelObjective { + s.CreatedTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ServiceLevelObjective) SetDescription(v string) *ServiceLevelObjective { + s.Description = &v + return s +} + +// SetGoal sets the Goal field's value. +func (s *ServiceLevelObjective) SetGoal(v *Goal) *ServiceLevelObjective { + s.Goal = v + return s +} + +// SetLastUpdatedTime sets the LastUpdatedTime field's value. +func (s *ServiceLevelObjective) SetLastUpdatedTime(v time.Time) *ServiceLevelObjective { + s.LastUpdatedTime = &v + return s +} + +// SetName sets the Name field's value. +func (s *ServiceLevelObjective) SetName(v string) *ServiceLevelObjective { + s.Name = &v + return s +} + +// SetSli sets the Sli field's value. +func (s *ServiceLevelObjective) SetSli(v *ServiceLevelIndicator) *ServiceLevelObjective { + s.Sli = v + return s +} + +// A structure containing an SLO budget report that you have requested. +type ServiceLevelObjectiveBudgetReport struct { + _ struct{} `type:"structure"` + + // The ARN of the SLO that this report is for. + // + // Arn is a required field + Arn *string `min:"1" type:"string" required:"true"` + + // A number between 0 and 100 that represents the percentage of time periods + // that the service has attained the SLO's attainment goal, as of the time of + // the request. + Attainment *float64 `type:"double"` + + // The budget amount remaining before the SLO status becomes BREACHING, at the + // time specified in the Timestemp parameter of the request. If this value is + // negative, then the SLO is already in BREACHING status. + BudgetSecondsRemaining *int64 `type:"integer"` + + // The status of this SLO, as it relates to the error budget for the entire + // time interval. + // + // * OK means that the SLO had remaining budget above the warning threshold, + // as of the time that you specified in TimeStamp. + // + // * WARNING means that the SLO's remaining budget was below the warning + // threshold, as of the time that you specified in TimeStamp. + // + // * BREACHED means that the SLO's budget was exhausted, as of the time that + // you specified in TimeStamp. + // + // * INSUFFICIENT_DATA means that the specifed start and end times were before + // the SLO was created, or that attainment data is missing. + // + // BudgetStatus is a required field + BudgetStatus *string `type:"string" required:"true" enum:"ServiceLevelObjectiveBudgetStatus"` + + // This structure contains the attributes that determine the goal of an SLO. + // This includes the time period for evaluation and the attainment threshold. + Goal *Goal `type:"structure"` + + // The name of the SLO that this report is for. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // A structure that contains information about the performance metric that this + // SLO monitors. + Sli *ServiceLevelIndicator `type:"structure"` + + // The total number of seconds in the error budget for the interval. + TotalBudgetSeconds *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjectiveBudgetReport) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjectiveBudgetReport) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetArn(v string) *ServiceLevelObjectiveBudgetReport { + s.Arn = &v + return s +} + +// SetAttainment sets the Attainment field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetAttainment(v float64) *ServiceLevelObjectiveBudgetReport { + s.Attainment = &v + return s +} + +// SetBudgetSecondsRemaining sets the BudgetSecondsRemaining field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetBudgetSecondsRemaining(v int64) *ServiceLevelObjectiveBudgetReport { + s.BudgetSecondsRemaining = &v + return s +} + +// SetBudgetStatus sets the BudgetStatus field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetBudgetStatus(v string) *ServiceLevelObjectiveBudgetReport { + s.BudgetStatus = &v + return s +} + +// SetGoal sets the Goal field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetGoal(v *Goal) *ServiceLevelObjectiveBudgetReport { + s.Goal = v + return s +} + +// SetName sets the Name field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetName(v string) *ServiceLevelObjectiveBudgetReport { + s.Name = &v + return s +} + +// SetSli sets the Sli field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetSli(v *ServiceLevelIndicator) *ServiceLevelObjectiveBudgetReport { + s.Sli = v + return s +} + +// SetTotalBudgetSeconds sets the TotalBudgetSeconds field's value. +func (s *ServiceLevelObjectiveBudgetReport) SetTotalBudgetSeconds(v int64) *ServiceLevelObjectiveBudgetReport { + s.TotalBudgetSeconds = &v + return s +} + +// A structure containing information about one error that occurred during a +// BatchGetServiceLevelObjectiveBudgetReport (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_BatchGetServiceLevelObjectiveBudgetReport.html) +// operation. +type ServiceLevelObjectiveBudgetReportError struct { + _ struct{} `type:"structure"` + + // The ARN of the SLO that this error is related to. + // + // Arn is a required field + Arn *string `min:"1" type:"string" required:"true"` + + // The error code for this error. + // + // ErrorCode is a required field + ErrorCode *string `type:"string" required:"true"` + + // The message for this error. + // + // ErrorMessage is a required field + ErrorMessage *string `type:"string" required:"true"` + + // The name of the SLO that this error is related to. + // + // Name is a required field + Name *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjectiveBudgetReportError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjectiveBudgetReportError) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ServiceLevelObjectiveBudgetReportError) SetArn(v string) *ServiceLevelObjectiveBudgetReportError { + s.Arn = &v + return s +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *ServiceLevelObjectiveBudgetReportError) SetErrorCode(v string) *ServiceLevelObjectiveBudgetReportError { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *ServiceLevelObjectiveBudgetReportError) SetErrorMessage(v string) *ServiceLevelObjectiveBudgetReportError { + s.ErrorMessage = &v + return s +} + +// SetName sets the Name field's value. +func (s *ServiceLevelObjectiveBudgetReportError) SetName(v string) *ServiceLevelObjectiveBudgetReportError { + s.Name = &v + return s +} + +// A structure that contains information about one service level objective (SLO) +// created in Application Signals. +type ServiceLevelObjectiveSummary struct { + _ struct{} `type:"structure"` + + // The ARN of this service level objective. + // + // Arn is a required field + Arn *string `min:"1" type:"string" required:"true"` + + // The date and time that this service level objective was created. It is expressed + // as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + CreatedTime *time.Time `type:"timestamp"` + + // This is a string-to-string map. It can include the following fields. + // + // * Type designates the type of object this service level objective is for. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + KeyAttributes map[string]*string `min:"1" type:"map"` + + // The name of the service level objective. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // If this service level objective is specific to a single operation, this field + // displays the name of that operation. + OperationName *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjectiveSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLevelObjectiveSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ServiceLevelObjectiveSummary) SetArn(v string) *ServiceLevelObjectiveSummary { + s.Arn = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *ServiceLevelObjectiveSummary) SetCreatedTime(v time.Time) *ServiceLevelObjectiveSummary { + s.CreatedTime = &v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ServiceLevelObjectiveSummary) SetKeyAttributes(v map[string]*string) *ServiceLevelObjectiveSummary { + s.KeyAttributes = v + return s +} + +// SetName sets the Name field's value. +func (s *ServiceLevelObjectiveSummary) SetName(v string) *ServiceLevelObjectiveSummary { + s.Name = &v + return s +} + +// SetOperationName sets the OperationName field's value. +func (s *ServiceLevelObjectiveSummary) SetOperationName(v string) *ServiceLevelObjectiveSummary { + s.OperationName = &v + return s +} + +// This structure contains information about an operation discovered by Application +// Signals. An operation is a specific function performed by a service that +// was discovered by Application Signals, and is often an API that is called +// by an upstream dependent. +type ServiceOperation struct { + _ struct{} `type:"structure"` + + // An array of structures that each contain information about one metric associated + // with this service operation that was discovered by Application Signals. + // + // MetricReferences is a required field + MetricReferences []*MetricReference `type:"list" required:"true"` + + // The name of the operation, discovered by Application Signals. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceOperation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceOperation) GoString() string { + return s.String() +} + +// SetMetricReferences sets the MetricReferences field's value. +func (s *ServiceOperation) SetMetricReferences(v []*MetricReference) *ServiceOperation { + s.MetricReferences = v + return s +} + +// SetName sets the Name field's value. +func (s *ServiceOperation) SetName(v string) *ServiceOperation { + s.Name = &v + return s +} + +// This request exceeds a service quota. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) GoString() string { + return s.String() +} + +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" +} + +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +// This structure contains information about one of your services that was discoverd +// by Application Signals +type ServiceSummary struct { + _ struct{} `type:"structure"` + + // This structure contains one or more string-to-string maps that help identify + // this service. It can include platform attributes, application attributes, + // and telemetry attributes. + // + // Platform attributes contain information the service's platform. + // + // * PlatformType defines the hosted-in platform. + // + // * EKS.Cluster is the name of the Amazon EKS cluster. + // + // * K8s.Cluster is the name of the self-hosted Kubernetes cluster. + // + // * K8s.Namespace is the name of the Kubernetes namespace in either Amazon + // EKS or Kubernetes clusters. + // + // * K8s.Workload is the name of the Kubernetes workload in either Amazon + // EKS or Kubernetes clusters. + // + // * K8s.Node is the name of the Kubernetes node in either Amazon EKS or + // Kubernetes clusters. + // + // * K8s.Pod is the name of the Kubernetes pod in either Amazon EKS or Kubernetes + // clusters. + // + // * EC2.AutoScalingGroup is the name of the Amazon EC2 Auto Scaling group. + // + // * EC2.InstanceId is the ID of the Amazon EC2 instance. + // + // * Host is the name of the host, for all platform types. + // + // Applciation attributes contain information about the application. + // + // * AWS.Application is the application's name in Amazon Web Services Service + // Catalog AppRegistry. + // + // * AWS.Application.ARN is the application's ARN in Amazon Web Services + // Service Catalog AppRegistry. + // + // Telemetry attributes contain telemetry information. + // + // * Telemetry.SDK is the fingerprint of the OpenTelemetry SDK version for + // instrumented services. + // + // * Telemetry.Agent is the fingerprint of the agent used to collect and + // send telemetry data. + // + // * Telemetry.Source Specifies the point of application where the telemetry + // was collected or specifies what was used for the source of telemetry data. + AttributeMaps []map[string]*string `type:"list"` + + // This is a string-to-string map that help identify the objects discovered + // by Application Signals. It can include the following fields. + // + // * Type designates the type of object this is. + // + // * ResourceType specifies the type of the resource. This field is used + // only when the value of the Type field is Resource or AWS::Resource. + // + // * Name specifies the name of the object. This is used only if the value + // of the Type field is Service, RemoteService, or AWS::Service. + // + // * Identifier identifies the resource objects of this resource. This is + // used only if the value of the Type field is Resource or AWS::Resource. + // + // * Environment specifies the location where this object is hosted, or what + // it belongs to. + // + // KeyAttributes is a required field + KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + + // An array of structures that each contain information about one metric associated + // with this service. + // + // MetricReferences is a required field + MetricReferences []*MetricReference `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceSummary) GoString() string { + return s.String() +} + +// SetAttributeMaps sets the AttributeMaps field's value. +func (s *ServiceSummary) SetAttributeMaps(v []map[string]*string) *ServiceSummary { + s.AttributeMaps = v + return s +} + +// SetKeyAttributes sets the KeyAttributes field's value. +func (s *ServiceSummary) SetKeyAttributes(v map[string]*string) *ServiceSummary { + s.KeyAttributes = v + return s +} + +// SetMetricReferences sets the MetricReferences field's value. +func (s *ServiceSummary) SetMetricReferences(v []*MetricReference) *ServiceSummary { + s.MetricReferences = v + return s +} + +type StartDiscoveryInput struct { + _ struct{} `type:"structure" nopayload:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartDiscoveryInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartDiscoveryInput) GoString() string { + return s.String() +} + +type StartDiscoveryOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartDiscoveryOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartDiscoveryOutput) GoString() string { + return s.String() +} + +// A key-value pair associated with a resource. Tags can help you organize and +// categorize your resources. +type Tag struct { + _ struct{} `type:"structure"` + + // A string that you can use to assign a value. The combination of tag keys + // and values can help you organize and categorize your resources. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The value for the specified tag key. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Tag) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Tag"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the CloudWatch resource that you want to + // set tags for. + // + // The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name + // + // For more information about ARN format, see Resource Types Defined by Amazon + // CloudWatch (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies) + // in the Amazon Web Services General Reference. + // + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` + + // The list of key-value pairs to associate with the alarm. + // + // Tags is a required field + Tags []*Tag `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// The request was throttled because of quota limits. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the CloudWatch resource that you want to + // delete tags from. + // + // The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name + // + // For more information about ARN format, see Resource Types Defined by Amazon + // CloudWatch (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies) + // in the Amazon Web Services General Reference. + // + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` + + // The list of tag keys to remove from the resource. + // + // TagKeys is a required field + TagKeys []*string `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +type UpdateServiceLevelObjectiveInput struct { + _ struct{} `type:"structure"` + + // An optional description for the SLO. + Description *string `min:"1" type:"string"` + + // A structure that contains the attributes that determine the goal of the SLO. + // This includes the time period for evaluation and the attainment threshold. + Goal *Goal `type:"structure"` + + // The Amazon Resource Name (ARN) or name of the service level objective that + // you want to update. + // + // Id is a required field + Id *string `location:"uri" locationName:"Id" type:"string" required:"true"` + + // A structure that contains information about what performance metric this + // SLO will monitor. + SliConfig *ServiceLevelIndicatorConfig `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateServiceLevelObjectiveInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateServiceLevelObjectiveInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateServiceLevelObjectiveInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateServiceLevelObjectiveInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.Goal != nil { + if err := s.Goal.Validate(); err != nil { + invalidParams.AddNested("Goal", err.(request.ErrInvalidParams)) + } + } + if s.SliConfig != nil { + if err := s.SliConfig.Validate(); err != nil { + invalidParams.AddNested("SliConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *UpdateServiceLevelObjectiveInput) SetDescription(v string) *UpdateServiceLevelObjectiveInput { + s.Description = &v + return s +} + +// SetGoal sets the Goal field's value. +func (s *UpdateServiceLevelObjectiveInput) SetGoal(v *Goal) *UpdateServiceLevelObjectiveInput { + s.Goal = v + return s +} + +// SetId sets the Id field's value. +func (s *UpdateServiceLevelObjectiveInput) SetId(v string) *UpdateServiceLevelObjectiveInput { + s.Id = &v + return s +} + +// SetSliConfig sets the SliConfig field's value. +func (s *UpdateServiceLevelObjectiveInput) SetSliConfig(v *ServiceLevelIndicatorConfig) *UpdateServiceLevelObjectiveInput { + s.SliConfig = v + return s +} + +type UpdateServiceLevelObjectiveOutput struct { + _ struct{} `type:"structure"` + + // A structure that contains information about the SLO that you just updated. + // + // Slo is a required field + Slo *ServiceLevelObjective `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateServiceLevelObjectiveOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateServiceLevelObjectiveOutput) GoString() string { + return s.String() +} + +// SetSlo sets the Slo field's value. +func (s *UpdateServiceLevelObjectiveOutput) SetSlo(v *ServiceLevelObjective) *UpdateServiceLevelObjectiveOutput { + s.Slo = v + return s +} + +// The resource is not valid. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +const ( + // DurationUnitDay is a DurationUnit enum value + DurationUnitDay = "DAY" + + // DurationUnitMonth is a DurationUnit enum value + DurationUnitMonth = "MONTH" +) + +// DurationUnit_Values returns all elements of the DurationUnit enum +func DurationUnit_Values() []string { + return []string{ + DurationUnitDay, + DurationUnitMonth, + } +} + +const ( + // ServiceLevelIndicatorComparisonOperatorGreaterThanOrEqualTo is a ServiceLevelIndicatorComparisonOperator enum value + ServiceLevelIndicatorComparisonOperatorGreaterThanOrEqualTo = "GreaterThanOrEqualTo" + + // ServiceLevelIndicatorComparisonOperatorGreaterThan is a ServiceLevelIndicatorComparisonOperator enum value + ServiceLevelIndicatorComparisonOperatorGreaterThan = "GreaterThan" + + // ServiceLevelIndicatorComparisonOperatorLessThan is a ServiceLevelIndicatorComparisonOperator enum value + ServiceLevelIndicatorComparisonOperatorLessThan = "LessThan" + + // ServiceLevelIndicatorComparisonOperatorLessThanOrEqualTo is a ServiceLevelIndicatorComparisonOperator enum value + ServiceLevelIndicatorComparisonOperatorLessThanOrEqualTo = "LessThanOrEqualTo" +) + +// ServiceLevelIndicatorComparisonOperator_Values returns all elements of the ServiceLevelIndicatorComparisonOperator enum +func ServiceLevelIndicatorComparisonOperator_Values() []string { + return []string{ + ServiceLevelIndicatorComparisonOperatorGreaterThanOrEqualTo, + ServiceLevelIndicatorComparisonOperatorGreaterThan, + ServiceLevelIndicatorComparisonOperatorLessThan, + ServiceLevelIndicatorComparisonOperatorLessThanOrEqualTo, + } +} + +const ( + // ServiceLevelIndicatorMetricTypeLatency is a ServiceLevelIndicatorMetricType enum value + ServiceLevelIndicatorMetricTypeLatency = "LATENCY" + + // ServiceLevelIndicatorMetricTypeAvailability is a ServiceLevelIndicatorMetricType enum value + ServiceLevelIndicatorMetricTypeAvailability = "AVAILABILITY" +) + +// ServiceLevelIndicatorMetricType_Values returns all elements of the ServiceLevelIndicatorMetricType enum +func ServiceLevelIndicatorMetricType_Values() []string { + return []string{ + ServiceLevelIndicatorMetricTypeLatency, + ServiceLevelIndicatorMetricTypeAvailability, + } +} + +const ( + // ServiceLevelObjectiveBudgetStatusOk is a ServiceLevelObjectiveBudgetStatus enum value + ServiceLevelObjectiveBudgetStatusOk = "OK" + + // ServiceLevelObjectiveBudgetStatusWarning is a ServiceLevelObjectiveBudgetStatus enum value + ServiceLevelObjectiveBudgetStatusWarning = "WARNING" + + // ServiceLevelObjectiveBudgetStatusBreached is a ServiceLevelObjectiveBudgetStatus enum value + ServiceLevelObjectiveBudgetStatusBreached = "BREACHED" + + // ServiceLevelObjectiveBudgetStatusInsufficientData is a ServiceLevelObjectiveBudgetStatus enum value + ServiceLevelObjectiveBudgetStatusInsufficientData = "INSUFFICIENT_DATA" +) + +// ServiceLevelObjectiveBudgetStatus_Values returns all elements of the ServiceLevelObjectiveBudgetStatus enum +func ServiceLevelObjectiveBudgetStatus_Values() []string { + return []string{ + ServiceLevelObjectiveBudgetStatusOk, + ServiceLevelObjectiveBudgetStatusWarning, + ServiceLevelObjectiveBudgetStatusBreached, + ServiceLevelObjectiveBudgetStatusInsufficientData, + } +} + +const ( + // StandardUnitMicroseconds is a StandardUnit enum value + StandardUnitMicroseconds = "Microseconds" + + // StandardUnitMilliseconds is a StandardUnit enum value + StandardUnitMilliseconds = "Milliseconds" + + // StandardUnitSeconds is a StandardUnit enum value + StandardUnitSeconds = "Seconds" + + // StandardUnitBytes is a StandardUnit enum value + StandardUnitBytes = "Bytes" + + // StandardUnitKilobytes is a StandardUnit enum value + StandardUnitKilobytes = "Kilobytes" + + // StandardUnitMegabytes is a StandardUnit enum value + StandardUnitMegabytes = "Megabytes" + + // StandardUnitGigabytes is a StandardUnit enum value + StandardUnitGigabytes = "Gigabytes" + + // StandardUnitTerabytes is a StandardUnit enum value + StandardUnitTerabytes = "Terabytes" + + // StandardUnitBits is a StandardUnit enum value + StandardUnitBits = "Bits" + + // StandardUnitKilobits is a StandardUnit enum value + StandardUnitKilobits = "Kilobits" + + // StandardUnitMegabits is a StandardUnit enum value + StandardUnitMegabits = "Megabits" + + // StandardUnitGigabits is a StandardUnit enum value + StandardUnitGigabits = "Gigabits" + + // StandardUnitTerabits is a StandardUnit enum value + StandardUnitTerabits = "Terabits" + + // StandardUnitPercent is a StandardUnit enum value + StandardUnitPercent = "Percent" + + // StandardUnitCount is a StandardUnit enum value + StandardUnitCount = "Count" + + // StandardUnitBytesSecond is a StandardUnit enum value + StandardUnitBytesSecond = "Bytes/Second" + + // StandardUnitKilobytesSecond is a StandardUnit enum value + StandardUnitKilobytesSecond = "Kilobytes/Second" + + // StandardUnitMegabytesSecond is a StandardUnit enum value + StandardUnitMegabytesSecond = "Megabytes/Second" + + // StandardUnitGigabytesSecond is a StandardUnit enum value + StandardUnitGigabytesSecond = "Gigabytes/Second" + + // StandardUnitTerabytesSecond is a StandardUnit enum value + StandardUnitTerabytesSecond = "Terabytes/Second" + + // StandardUnitBitsSecond is a StandardUnit enum value + StandardUnitBitsSecond = "Bits/Second" + + // StandardUnitKilobitsSecond is a StandardUnit enum value + StandardUnitKilobitsSecond = "Kilobits/Second" + + // StandardUnitMegabitsSecond is a StandardUnit enum value + StandardUnitMegabitsSecond = "Megabits/Second" + + // StandardUnitGigabitsSecond is a StandardUnit enum value + StandardUnitGigabitsSecond = "Gigabits/Second" + + // StandardUnitTerabitsSecond is a StandardUnit enum value + StandardUnitTerabitsSecond = "Terabits/Second" + + // StandardUnitCountSecond is a StandardUnit enum value + StandardUnitCountSecond = "Count/Second" + + // StandardUnitNone is a StandardUnit enum value + StandardUnitNone = "None" +) + +// StandardUnit_Values returns all elements of the StandardUnit enum +func StandardUnit_Values() []string { + return []string{ + StandardUnitMicroseconds, + StandardUnitMilliseconds, + StandardUnitSeconds, + StandardUnitBytes, + StandardUnitKilobytes, + StandardUnitMegabytes, + StandardUnitGigabytes, + StandardUnitTerabytes, + StandardUnitBits, + StandardUnitKilobits, + StandardUnitMegabits, + StandardUnitGigabits, + StandardUnitTerabits, + StandardUnitPercent, + StandardUnitCount, + StandardUnitBytesSecond, + StandardUnitKilobytesSecond, + StandardUnitMegabytesSecond, + StandardUnitGigabytesSecond, + StandardUnitTerabytesSecond, + StandardUnitBitsSecond, + StandardUnitKilobitsSecond, + StandardUnitMegabitsSecond, + StandardUnitGigabitsSecond, + StandardUnitTerabitsSecond, + StandardUnitCountSecond, + StandardUnitNone, + } +} diff --git a/service/applicationsignals/applicationsignalsiface/interface.go b/service/applicationsignals/applicationsignalsiface/interface.go new file mode 100644 index 00000000000..208ad4047ef --- /dev/null +++ b/service/applicationsignals/applicationsignalsiface/interface.go @@ -0,0 +1,139 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package applicationsignalsiface provides an interface to enable mocking the Amazon CloudWatch Application Signals service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package applicationsignalsiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/applicationsignals" +) + +// ApplicationSignalsAPI provides an interface to enable mocking the +// applicationsignals.ApplicationSignals service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon CloudWatch Application Signals. +// func myFunc(svc applicationsignalsiface.ApplicationSignalsAPI) bool { +// // Make svc.BatchGetServiceLevelObjectiveBudgetReport request +// } +// +// func main() { +// sess := session.New() +// svc := applicationsignals.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockApplicationSignalsClient struct { +// applicationsignalsiface.ApplicationSignalsAPI +// } +// func (m *mockApplicationSignalsClient) BatchGetServiceLevelObjectiveBudgetReport(input *applicationsignals.BatchGetServiceLevelObjectiveBudgetReportInput) (*applicationsignals.BatchGetServiceLevelObjectiveBudgetReportOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockApplicationSignalsClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ApplicationSignalsAPI interface { + BatchGetServiceLevelObjectiveBudgetReport(*applicationsignals.BatchGetServiceLevelObjectiveBudgetReportInput) (*applicationsignals.BatchGetServiceLevelObjectiveBudgetReportOutput, error) + BatchGetServiceLevelObjectiveBudgetReportWithContext(aws.Context, *applicationsignals.BatchGetServiceLevelObjectiveBudgetReportInput, ...request.Option) (*applicationsignals.BatchGetServiceLevelObjectiveBudgetReportOutput, error) + BatchGetServiceLevelObjectiveBudgetReportRequest(*applicationsignals.BatchGetServiceLevelObjectiveBudgetReportInput) (*request.Request, *applicationsignals.BatchGetServiceLevelObjectiveBudgetReportOutput) + + CreateServiceLevelObjective(*applicationsignals.CreateServiceLevelObjectiveInput) (*applicationsignals.CreateServiceLevelObjectiveOutput, error) + CreateServiceLevelObjectiveWithContext(aws.Context, *applicationsignals.CreateServiceLevelObjectiveInput, ...request.Option) (*applicationsignals.CreateServiceLevelObjectiveOutput, error) + CreateServiceLevelObjectiveRequest(*applicationsignals.CreateServiceLevelObjectiveInput) (*request.Request, *applicationsignals.CreateServiceLevelObjectiveOutput) + + DeleteServiceLevelObjective(*applicationsignals.DeleteServiceLevelObjectiveInput) (*applicationsignals.DeleteServiceLevelObjectiveOutput, error) + DeleteServiceLevelObjectiveWithContext(aws.Context, *applicationsignals.DeleteServiceLevelObjectiveInput, ...request.Option) (*applicationsignals.DeleteServiceLevelObjectiveOutput, error) + DeleteServiceLevelObjectiveRequest(*applicationsignals.DeleteServiceLevelObjectiveInput) (*request.Request, *applicationsignals.DeleteServiceLevelObjectiveOutput) + + GetService(*applicationsignals.GetServiceInput) (*applicationsignals.GetServiceOutput, error) + GetServiceWithContext(aws.Context, *applicationsignals.GetServiceInput, ...request.Option) (*applicationsignals.GetServiceOutput, error) + GetServiceRequest(*applicationsignals.GetServiceInput) (*request.Request, *applicationsignals.GetServiceOutput) + + GetServiceLevelObjective(*applicationsignals.GetServiceLevelObjectiveInput) (*applicationsignals.GetServiceLevelObjectiveOutput, error) + GetServiceLevelObjectiveWithContext(aws.Context, *applicationsignals.GetServiceLevelObjectiveInput, ...request.Option) (*applicationsignals.GetServiceLevelObjectiveOutput, error) + GetServiceLevelObjectiveRequest(*applicationsignals.GetServiceLevelObjectiveInput) (*request.Request, *applicationsignals.GetServiceLevelObjectiveOutput) + + ListServiceDependencies(*applicationsignals.ListServiceDependenciesInput) (*applicationsignals.ListServiceDependenciesOutput, error) + ListServiceDependenciesWithContext(aws.Context, *applicationsignals.ListServiceDependenciesInput, ...request.Option) (*applicationsignals.ListServiceDependenciesOutput, error) + ListServiceDependenciesRequest(*applicationsignals.ListServiceDependenciesInput) (*request.Request, *applicationsignals.ListServiceDependenciesOutput) + + ListServiceDependenciesPages(*applicationsignals.ListServiceDependenciesInput, func(*applicationsignals.ListServiceDependenciesOutput, bool) bool) error + ListServiceDependenciesPagesWithContext(aws.Context, *applicationsignals.ListServiceDependenciesInput, func(*applicationsignals.ListServiceDependenciesOutput, bool) bool, ...request.Option) error + + ListServiceDependents(*applicationsignals.ListServiceDependentsInput) (*applicationsignals.ListServiceDependentsOutput, error) + ListServiceDependentsWithContext(aws.Context, *applicationsignals.ListServiceDependentsInput, ...request.Option) (*applicationsignals.ListServiceDependentsOutput, error) + ListServiceDependentsRequest(*applicationsignals.ListServiceDependentsInput) (*request.Request, *applicationsignals.ListServiceDependentsOutput) + + ListServiceDependentsPages(*applicationsignals.ListServiceDependentsInput, func(*applicationsignals.ListServiceDependentsOutput, bool) bool) error + ListServiceDependentsPagesWithContext(aws.Context, *applicationsignals.ListServiceDependentsInput, func(*applicationsignals.ListServiceDependentsOutput, bool) bool, ...request.Option) error + + ListServiceLevelObjectives(*applicationsignals.ListServiceLevelObjectivesInput) (*applicationsignals.ListServiceLevelObjectivesOutput, error) + ListServiceLevelObjectivesWithContext(aws.Context, *applicationsignals.ListServiceLevelObjectivesInput, ...request.Option) (*applicationsignals.ListServiceLevelObjectivesOutput, error) + ListServiceLevelObjectivesRequest(*applicationsignals.ListServiceLevelObjectivesInput) (*request.Request, *applicationsignals.ListServiceLevelObjectivesOutput) + + ListServiceLevelObjectivesPages(*applicationsignals.ListServiceLevelObjectivesInput, func(*applicationsignals.ListServiceLevelObjectivesOutput, bool) bool) error + ListServiceLevelObjectivesPagesWithContext(aws.Context, *applicationsignals.ListServiceLevelObjectivesInput, func(*applicationsignals.ListServiceLevelObjectivesOutput, bool) bool, ...request.Option) error + + ListServiceOperations(*applicationsignals.ListServiceOperationsInput) (*applicationsignals.ListServiceOperationsOutput, error) + ListServiceOperationsWithContext(aws.Context, *applicationsignals.ListServiceOperationsInput, ...request.Option) (*applicationsignals.ListServiceOperationsOutput, error) + ListServiceOperationsRequest(*applicationsignals.ListServiceOperationsInput) (*request.Request, *applicationsignals.ListServiceOperationsOutput) + + ListServiceOperationsPages(*applicationsignals.ListServiceOperationsInput, func(*applicationsignals.ListServiceOperationsOutput, bool) bool) error + ListServiceOperationsPagesWithContext(aws.Context, *applicationsignals.ListServiceOperationsInput, func(*applicationsignals.ListServiceOperationsOutput, bool) bool, ...request.Option) error + + ListServices(*applicationsignals.ListServicesInput) (*applicationsignals.ListServicesOutput, error) + ListServicesWithContext(aws.Context, *applicationsignals.ListServicesInput, ...request.Option) (*applicationsignals.ListServicesOutput, error) + ListServicesRequest(*applicationsignals.ListServicesInput) (*request.Request, *applicationsignals.ListServicesOutput) + + ListServicesPages(*applicationsignals.ListServicesInput, func(*applicationsignals.ListServicesOutput, bool) bool) error + ListServicesPagesWithContext(aws.Context, *applicationsignals.ListServicesInput, func(*applicationsignals.ListServicesOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*applicationsignals.ListTagsForResourceInput) (*applicationsignals.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *applicationsignals.ListTagsForResourceInput, ...request.Option) (*applicationsignals.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*applicationsignals.ListTagsForResourceInput) (*request.Request, *applicationsignals.ListTagsForResourceOutput) + + StartDiscovery(*applicationsignals.StartDiscoveryInput) (*applicationsignals.StartDiscoveryOutput, error) + StartDiscoveryWithContext(aws.Context, *applicationsignals.StartDiscoveryInput, ...request.Option) (*applicationsignals.StartDiscoveryOutput, error) + StartDiscoveryRequest(*applicationsignals.StartDiscoveryInput) (*request.Request, *applicationsignals.StartDiscoveryOutput) + + TagResource(*applicationsignals.TagResourceInput) (*applicationsignals.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *applicationsignals.TagResourceInput, ...request.Option) (*applicationsignals.TagResourceOutput, error) + TagResourceRequest(*applicationsignals.TagResourceInput) (*request.Request, *applicationsignals.TagResourceOutput) + + UntagResource(*applicationsignals.UntagResourceInput) (*applicationsignals.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *applicationsignals.UntagResourceInput, ...request.Option) (*applicationsignals.UntagResourceOutput, error) + UntagResourceRequest(*applicationsignals.UntagResourceInput) (*request.Request, *applicationsignals.UntagResourceOutput) + + UpdateServiceLevelObjective(*applicationsignals.UpdateServiceLevelObjectiveInput) (*applicationsignals.UpdateServiceLevelObjectiveOutput, error) + UpdateServiceLevelObjectiveWithContext(aws.Context, *applicationsignals.UpdateServiceLevelObjectiveInput, ...request.Option) (*applicationsignals.UpdateServiceLevelObjectiveOutput, error) + UpdateServiceLevelObjectiveRequest(*applicationsignals.UpdateServiceLevelObjectiveInput) (*request.Request, *applicationsignals.UpdateServiceLevelObjectiveOutput) +} + +var _ ApplicationSignalsAPI = (*applicationsignals.ApplicationSignals)(nil) diff --git a/service/applicationsignals/doc.go b/service/applicationsignals/doc.go new file mode 100644 index 00000000000..8758c447693 --- /dev/null +++ b/service/applicationsignals/doc.go @@ -0,0 +1,49 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package applicationsignals provides the client and types for making API +// requests to Amazon CloudWatch Application Signals. +// +// This is a Preview release of the Application Signals API Reference. Operations +// and parameters are subject to change before the general availability release. +// +// Use CloudWatch Application Signals for comprehensive observability of your +// cloud-based applications. It enables real-time service health dashboards +// and helps you track long-term performance trends against your business goals. +// The application-centric view provides you with unified visibility across +// your applications, services, and dependencies, so you can proactively monitor +// and efficiently triage any issues that may arise, ensuring optimal customer +// experience. +// +// Application Signals provides the following benefits: +// +// - Automatically collect metrics and traces from your applications, and +// display key metrics such as call volume, availability, latency, faults, +// and errors. +// +// - Create and monitor service level objectives (SLOs). +// +// - See a map of your application topology that Application Signals automatically +// discovers, that gives you a visual representation of your applications, +// dependencies, and their connectivity. +// +// See https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15 for more information on this service. +// +// See applicationsignals package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/applicationsignals/ +// +// # Using the Client +// +// To contact Amazon CloudWatch Application Signals with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon CloudWatch Application Signals client ApplicationSignals for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/applicationsignals/#New +package applicationsignals diff --git a/service/applicationsignals/errors.go b/service/applicationsignals/errors.go new file mode 100644 index 00000000000..81feb47f5a1 --- /dev/null +++ b/service/applicationsignals/errors.go @@ -0,0 +1,55 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationsignals + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You don't have sufficient permissions to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // This operation attempted to create a resource that already exists. + ErrCodeConflictException = "ConflictException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // Resource not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // This request exceeds a service quota. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was throttled because of quota limits. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The resource is not valid. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/applicationsignals/service.go b/service/applicationsignals/service.go new file mode 100644 index 00000000000..888bcbaa726 --- /dev/null +++ b/service/applicationsignals/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package applicationsignals + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// ApplicationSignals provides the API operation methods for making requests to +// Amazon CloudWatch Application Signals. See this package's package overview docs +// for details on the service. +// +// ApplicationSignals methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type ApplicationSignals struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "Application Signals" // Name of service. + EndpointsID = "application-signals" // ID to lookup a service endpoint with. + ServiceID = "Application Signals" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the ApplicationSignals client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a ApplicationSignals client from just a session. +// svc := applicationsignals.New(mySession) +// +// // Create a ApplicationSignals client with additional configuration +// svc := applicationsignals.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *ApplicationSignals { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "application-signals" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *ApplicationSignals { + svc := &ApplicationSignals{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2024-04-15", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a ApplicationSignals operation and runs any +// custom request initialization. +func (c *ApplicationSignals) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/ecs/api.go b/service/ecs/api.go index f4ebcdd3b1e..14e1bf7ec36 100644 --- a/service/ecs/api.go +++ b/service/ecs/api.go @@ -4894,6 +4894,11 @@ func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, outpu // gracefully and exits within 30 seconds from receiving it, no SIGKILL value // is sent. // +// For Windows containers, POSIX signals do not work and runtime stops the container +// by sending a CTRL_SHUTDOWN_EVENT. For more information, see Unable to react +// to graceful shutdown of (Windows) container #25982 (https://github.com/moby/moby/issues/25982) +// on GitHub. +// // The default 30-second timeout can be configured on the Amazon ECS container // agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, // see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) @@ -7378,6 +7383,12 @@ func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider { // and only need to be associated with a cluster to be used in a capacity provider // strategy. // +// With FARGATE_SPOT, you can run interruption tolerant tasks at a rate that's +// discounted compared to the FARGATE price. FARGATE_SPOT runs tasks on spare +// compute capacity. When Amazon Web Services needs the capacity back, your +// tasks are interrupted with a two-minute warning. FARGATE_SPOT only supports +// Linux tasks with the X86_64 architecture on platform version 1.3.0 or later. +// // A capacity provider strategy may contain a maximum of 6 capacity providers. type CapacityProviderStrategyItem struct { _ struct{} `type:"structure"` @@ -7806,12 +7817,15 @@ func (s *Cluster) SetTags(v []*Tag) *Cluster { return s } -// The execute command configuration for the cluster. +// The execute command and managed storage configuration for the cluster. type ClusterConfiguration struct { _ struct{} `type:"structure"` // The details of the execute command configuration. ExecuteCommandConfiguration *ExecuteCommandConfiguration `locationName:"executeCommandConfiguration" type:"structure"` + + // The details of the managed storage configuration. + ManagedStorageConfiguration *ManagedStorageConfiguration `locationName:"managedStorageConfiguration" type:"structure"` } // String returns the string representation. @@ -7838,6 +7852,12 @@ func (s *ClusterConfiguration) SetExecuteCommandConfiguration(v *ExecuteCommandC return s } +// SetManagedStorageConfiguration sets the ManagedStorageConfiguration field's value. +func (s *ClusterConfiguration) SetManagedStorageConfiguration(v *ManagedStorageConfiguration) *ClusterConfiguration { + s.ManagedStorageConfiguration = v + return s +} + // You can't delete a cluster that has registered container instances. First, // deregister the container instances before you can delete the cluster. For // more information, see DeregisterContainerInstance. @@ -12057,6 +12077,9 @@ type Deployment struct { // failed task count resets to zero and stops being evaluated. FailedTasks *int64 `locationName:"failedTasks" type:"integer"` + // The Fargate ephemeral storage settings for the deployment. + FargateEphemeralStorage *DeploymentEphemeralStorage `locationName:"fargateEphemeralStorage" type:"structure"` + // The ID of the deployment. Id *string `locationName:"id" type:"string"` @@ -12197,6 +12220,12 @@ func (s *Deployment) SetFailedTasks(v int64) *Deployment { return s } +// SetFargateEphemeralStorage sets the FargateEphemeralStorage field's value. +func (s *Deployment) SetFargateEphemeralStorage(v *DeploymentEphemeralStorage) *Deployment { + s.FargateEphemeralStorage = v + return s +} + // SetId sets the Id field's value. func (s *Deployment) SetId(v string) *Deployment { s.Id = &v @@ -12682,6 +12711,39 @@ func (s *DeploymentController) SetType(v string) *DeploymentController { return s } +// The amount of ephemeral storage to allocate for the deployment. +type DeploymentEphemeralStorage struct { + _ struct{} `type:"structure"` + + // Specify an Key Management Service key ID to encrypt the ephemeral storage + // for deployment. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeploymentEphemeralStorage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeploymentEphemeralStorage) GoString() string { + return s.String() +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *DeploymentEphemeralStorage) SetKmsKeyId(v string) *DeploymentEphemeralStorage { + s.KmsKeyId = &v + return s +} + type DeregisterContainerInstanceInput struct { _ struct{} `type:"structure"` @@ -15076,12 +15138,14 @@ func (s *GetTaskProtectionOutput) SetProtectedTasks(v []*ProtectedTask) *GetTask // // The following are notes about container health check support: // -// - When the Amazon ECS agent cannot connect to the Amazon ECS service, -// the service reports the container as UNHEALTHY. -// -// - The health check statuses are the "last heard from" response from the -// Amazon ECS agent. There are no assumptions made about the status of the -// container health checks. +// - If the Amazon ECS container agent becomes disconnected from the Amazon +// ECS service, this won't cause a container to transition to an UNHEALTHY +// status. This is by design, to ensure that containers remain running during +// agent restarts or temporary unavailability. The health check status is +// the "last heard from" response from the Amazon ECS agent, so if the container +// was considered HEALTHY prior to the disconnect, that status will remain +// until the agent reconnects and another health check occurs. There are +// no assumptions made about the status of the container health checks. // // - Container health checks require version 1.17.0 or greater of the Amazon // ECS container agent. For more information, see Updating the Amazon ECS @@ -17672,6 +17736,47 @@ func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling { return s } +// The managed storage configuration for the cluster. +type ManagedStorageConfiguration struct { + _ struct{} `type:"structure"` + + // Specify the Key Management Service key ID for the Fargate ephemeral storage. + FargateEphemeralStorageKmsKeyId *string `locationName:"fargateEphemeralStorageKmsKeyId" type:"string"` + + // Specify a Key Management Service key ID to encrypt the managed storage. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ManagedStorageConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ManagedStorageConfiguration) GoString() string { + return s.String() +} + +// SetFargateEphemeralStorageKmsKeyId sets the FargateEphemeralStorageKmsKeyId field's value. +func (s *ManagedStorageConfiguration) SetFargateEphemeralStorageKmsKeyId(v string) *ManagedStorageConfiguration { + s.FargateEphemeralStorageKmsKeyId = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *ManagedStorageConfiguration) SetKmsKeyId(v string) *ManagedStorageConfiguration { + s.KmsKeyId = &v + return s +} + // Amazon ECS can't determine the current version of the Amazon ECS container // agent on the container instance and doesn't have enough information to proceed // with an update. This could be because the agent running on the container @@ -19876,9 +19981,6 @@ type RegisterTaskDefinitionInput struct { // The operating system that your tasks definitions run on. A platform family // is specified only for tasks using the Fargate launch type. - // - // When you specify a task definition in a service, this value must match the - // runtimePlatform value of the service. RuntimePlatform *RuntimePlatform `locationName:"runtimePlatform" type:"structure"` // The metadata that you apply to the task definition to help you categorize @@ -20417,21 +20519,20 @@ func (s *ResourceNotFoundException) RequestID() string { type ResourceRequirement struct { _ struct{} `type:"structure"` - // The type of resource to assign to a container. The supported values are GPU - // or InferenceAccelerator. + // The type of resource to assign to a container. // // Type is a required field Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"` // The value for the specified resource type. // - // If the GPU type is used, the value is the number of physical GPUs the Amazon + // When the type is GPU, the value is the number of physical GPUs the Amazon // ECS container agent reserves for the container. The number of GPUs that's // reserved for all containers in a task can't exceed the number of available // GPUs on the container instance that the task is launched on. // - // If the InferenceAccelerator type is used, the value matches the deviceName - // for an InferenceAccelerator (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_InferenceAccelerator.html) + // When the type is InferenceAccelerator, the value matches the deviceName for + // an InferenceAccelerator (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_InferenceAccelerator.html) // specified in a task definition. // // Value is a required field @@ -21957,8 +22058,7 @@ func (s *ServiceConnectServiceResource) SetDiscoveryName(v string) *ServiceConne return s } -// An object that represents the Amazon Web Services Private Certificate Authority -// certificate. +// The certificate root authority that secures your service. type ServiceConnectTlsCertificateAuthority struct { _ struct{} `type:"structure"` @@ -21990,7 +22090,7 @@ func (s *ServiceConnectTlsCertificateAuthority) SetAwsPcaAuthorityArn(v string) return s } -// An object that represents the configuration for Service Connect TLS. +// The key that encrypts and decrypts your resources for Service Connect TLS. type ServiceConnectTlsConfiguration struct { _ struct{} `type:"structure"` @@ -24028,6 +24128,9 @@ type Task struct { // The Unix timestamp for the time when the task execution stopped. ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"` + // The Fargate ephemeral storage settings for the task. + FargateEphemeralStorage *TaskEphemeralStorage `locationName:"fargateEphemeralStorage" type:"structure"` + // The name of the task group that's associated with the task. Group *string `locationName:"group" type:"string"` @@ -24292,6 +24395,12 @@ func (s *Task) SetExecutionStoppedAt(v time.Time) *Task { return s } +// SetFargateEphemeralStorage sets the FargateEphemeralStorage field's value. +func (s *Task) SetFargateEphemeralStorage(v *TaskEphemeralStorage) *Task { + s.FargateEphemeralStorage = v + return s +} + // SetGroup sets the Group field's value. func (s *Task) SetGroup(v string) *Task { s.Group = &v @@ -24911,6 +25020,50 @@ func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPla return s } +// The amount of ephemeral storage to allocate for the task. +type TaskEphemeralStorage struct { + _ struct{} `type:"structure"` + + // Specify an Key Management Service key ID to encrypt the ephemeral storage + // for the task. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + + // The total amount, in GiB, of the ephemeral storage to set for the task. The + // minimum supported value is 20 GiB and the maximum supported value is 200 + // GiB. + SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskEphemeralStorage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TaskEphemeralStorage) GoString() string { + return s.String() +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *TaskEphemeralStorage) SetKmsKeyId(v string) *TaskEphemeralStorage { + s.KmsKeyId = &v + return s +} + +// SetSizeInGiB sets the SizeInGiB field's value. +func (s *TaskEphemeralStorage) SetSizeInGiB(v int64) *TaskEphemeralStorage { + s.SizeInGiB = &v + return s +} + // The configuration for the Amazon EBS volume that Amazon ECS creates and manages // on your behalf. These settings are used to create each Amazon EBS volume, // with one volume created for each task. @@ -25359,6 +25512,9 @@ type TaskSet struct { // Cloud Map attribute. ExternalId *string `locationName:"externalId" type:"string"` + // The Fargate ephemeral storage settings for the task set. + FargateEphemeralStorage *DeploymentEphemeralStorage `locationName:"fargateEphemeralStorage" type:"structure"` + // The ID of the task set. Id *string `locationName:"id" type:"string"` @@ -25531,6 +25687,12 @@ func (s *TaskSet) SetExternalId(v string) *TaskSet { return s } +// SetFargateEphemeralStorage sets the FargateEphemeralStorage field's value. +func (s *TaskSet) SetFargateEphemeralStorage(v *DeploymentEphemeralStorage) *TaskSet { + s.FargateEphemeralStorage = v + return s +} + // SetId sets the Id field's value. func (s *TaskSet) SetId(v string) *TaskSet { s.Id = &v