From 17764bffd392cad54ec9c43669186e32df59db8d Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Thu, 20 Oct 2022 11:51:51 -0700 Subject: [PATCH] Release v1.44.120 (2022-10-20) (#4595) Release v1.44.120 (2022-10-20) === ### Service Client Updates * `service/devops-guru`: Updates service API and documentation * `service/globalaccelerator`: Updates service API and documentation * `service/resiliencehub`: Updates service API and documentation * `service/rum`: Updates service API, documentation, and paginators --- CHANGELOG.md | 9 + aws/endpoints/defaults.go | 21 + aws/version.go | 2 +- models/apis/devops-guru/2020-12-01/api-2.json | 48 +- .../apis/devops-guru/2020-12-01/docs-2.json | 13 +- .../2020-12-01/endpoint-rule-set-1.json | 315 ++ .../2020-12-01/endpoint-tests-1.json | 875 ++++ .../globalaccelerator/2018-08-08/api-2.json | 82 + .../globalaccelerator/2018-08-08/docs-2.json | 50 +- .../2018-08-08/endpoint-rule-set-1.json | 309 ++ .../2018-08-08/endpoint-tests-1.json | 43 + .../apis/resiliencehub/2020-04-30/api-2.json | 8 +- .../apis/resiliencehub/2020-04-30/docs-2.json | 5 +- .../2020-04-30/endpoint-rule-set-1.json | 315 ++ .../2020-04-30/endpoint-tests-1.json | 1083 +++++ models/apis/rum/2018-05-10/api-2.json | 494 +- models/apis/rum/2018-05-10/docs-2.json | 266 +- .../rum/2018-05-10/endpoint-rule-set-1.json | 315 ++ .../apis/rum/2018-05-10/endpoint-tests-1.json | 563 +++ models/apis/rum/2018-05-10/paginators-1.json | 12 + models/endpoints/endpoints.json | 17 +- service/cloudwatchrum/api.go | 4299 +++++++++++++---- .../cloudwatchrumiface/interface.go | 38 +- service/devopsguru/api.go | 181 +- service/globalaccelerator/api.go | 551 ++- service/globalaccelerator/errors.go | 7 + .../globalacceleratoriface/interface.go | 8 + service/resiliencehub/api.go | 18 +- 28 files changed, 8853 insertions(+), 1094 deletions(-) create mode 100644 models/apis/devops-guru/2020-12-01/endpoint-rule-set-1.json create mode 100644 models/apis/devops-guru/2020-12-01/endpoint-tests-1.json create mode 100644 models/apis/globalaccelerator/2018-08-08/endpoint-rule-set-1.json create mode 100644 models/apis/globalaccelerator/2018-08-08/endpoint-tests-1.json create mode 100644 models/apis/resiliencehub/2020-04-30/endpoint-rule-set-1.json create mode 100644 models/apis/resiliencehub/2020-04-30/endpoint-tests-1.json create mode 100644 models/apis/rum/2018-05-10/endpoint-rule-set-1.json create mode 100644 models/apis/rum/2018-05-10/endpoint-tests-1.json diff --git a/CHANGELOG.md b/CHANGELOG.md index d1643f9b408..082b87b6011 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +Release v1.44.120 (2022-10-20) +=== + +### Service Client Updates +* `service/devops-guru`: Updates service API and documentation +* `service/globalaccelerator`: Updates service API and documentation +* `service/resiliencehub`: Updates service API and documentation +* `service/rum`: Updates service API, documentation, and paginators + Release v1.44.119 (2022-10-19) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 1a9d22c4abf..4ceabfe96a9 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -13605,6 +13605,15 @@ var awsPartition = partition{ }, "kms": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "ProdFips", + }: endpoint{ + Hostname: "kms-fips.eu-central-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-2", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "af-south-1", }: endpoint{}, @@ -13803,6 +13812,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "eu-central-2-fips", + }: endpoint{ + Hostname: "kms-fips.eu-central-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-2", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "eu-north-1", }: endpoint{}, @@ -33637,6 +33655,9 @@ var awsisoPartition = partition{ endpointKey{ Region: "us-iso-east-1", }: endpoint{}, + endpointKey{ + Region: "us-iso-west-1", + }: endpoint{}, }, }, "states": service{ diff --git a/aws/version.go b/aws/version.go index a356b4c2521..8dbe5b2a39d 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.44.119" +const SDKVersion = "1.44.120" diff --git a/models/apis/devops-guru/2020-12-01/api-2.json b/models/apis/devops-guru/2020-12-01/api-2.json index 00c0e1d081d..0cd92096ee5 100644 --- a/models/apis/devops-guru/2020-12-01/api-2.json +++ b/models/apis/devops-guru/2020-12-01/api-2.json @@ -586,6 +586,7 @@ "Status":{"shape":"EventSourceOptInStatus"} } }, + "AnalyzedResourceCount":{"type":"long"}, "AnomalousLogGroup":{ "type":"structure", "members":{ @@ -725,7 +726,8 @@ "type":"structure", "members":{ "StackName":{"shape":"StackName"}, - "Insight":{"shape":"InsightHealth"} + "Insight":{"shape":"InsightHealth"}, + "AnalyzedResourceCount":{"shape":"AnalyzedResourceCount"} } }, "CloudFormationHealths":{ @@ -883,7 +885,8 @@ "OpenReactiveInsights":{"shape":"NumOpenReactiveInsights"}, "OpenProactiveInsights":{"shape":"NumOpenProactiveInsights"}, "MetricsAnalyzed":{"shape":"NumMetricsAnalyzed"}, - "ResourceHours":{"shape":"ResourceHours"} + "ResourceHours":{"shape":"ResourceHours"}, + "AnalyzedResourceCount":{"shape":"AnalyzedResourceCount"} } }, "DescribeAccountOverviewRequest":{ @@ -1508,7 +1511,6 @@ }, "ListMonitoredResourcesRequest":{ "type":"structure", - "required":["Filters"], "members":{ "Filters":{"shape":"ListMonitoredResourcesFilters"}, "MaxResults":{"shape":"ListMonitoredResourcesMaxResults"}, @@ -1670,7 +1672,9 @@ "members":{ "MonitoredResourceName":{"shape":"MonitoredResourceName"}, "Type":{"shape":"ResourceType"}, - "ResourcePermission":{"shape":"ResourcePermission"} + "ResourcePermission":{"shape":"ResourcePermission"}, + "LastUpdated":{"shape":"Timestamp"}, + "ResourceCollection":{"shape":"ResourceCollection"} } }, "MonitoredResourceIdentifiers":{ @@ -2249,7 +2253,35 @@ }, "ResourceTypeFilter":{ "type":"string", - "enum":["LOG_GROUPS"] + "enum":[ + "LOG_GROUPS", + "CLOUDFRONT_DISTRIBUTION", + "DYNAMODB_TABLE", + "EC2_NAT_GATEWAY", + "ECS_CLUSTER", + "ECS_SERVICE", + "EKS_CLUSTER", + "ELASTIC_BEANSTALK_ENVIRONMENT", + "ELASTIC_LOAD_BALANCER_LOAD_BALANCER", + "ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER", + "ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP", + "ELASTICACHE_CACHE_CLUSTER", + "ELASTICSEARCH_DOMAIN", + "KINESIS_STREAM", + "LAMBDA_FUNCTION", + "OPEN_SEARCH_SERVICE_DOMAIN", + "RDS_DB_INSTANCE", + "RDS_DB_CLUSTER", + "REDSHIFT_CLUSTER", + "ROUTE53_HOSTED_ZONE", + "ROUTE53_HEALTH_CHECK", + "S3_BUCKET", + "SAGEMAKER_ENDPOINT", + "SNS_TOPIC", + "SQS_QUEUE", + "STEP_FUNCTIONS_ACTIVITY", + "STEP_FUNCTIONS_STATE_MACHINE" + ] }, "ResourceTypeFilters":{ "type":"list", @@ -2346,7 +2378,8 @@ "type":"structure", "members":{ "ServiceName":{"shape":"ServiceName"}, - "Insight":{"shape":"ServiceInsightHealth"} + "Insight":{"shape":"ServiceInsightHealth"}, + "AnalyzedResourceCount":{"shape":"AnalyzedResourceCount"} } }, "ServiceHealths":{ @@ -2518,7 +2551,8 @@ "members":{ "AppBoundaryKey":{"shape":"AppBoundaryKey"}, "TagValue":{"shape":"TagValue"}, - "Insight":{"shape":"InsightHealth"} + "Insight":{"shape":"InsightHealth"}, + "AnalyzedResourceCount":{"shape":"AnalyzedResourceCount"} } }, "TagHealths":{ diff --git a/models/apis/devops-guru/2020-12-01/docs-2.json b/models/apis/devops-guru/2020-12-01/docs-2.json index e81600efaf9..daaa1db4a26 100644 --- a/models/apis/devops-guru/2020-12-01/docs-2.json +++ b/models/apis/devops-guru/2020-12-01/docs-2.json @@ -27,7 +27,7 @@ "ListRecommendations": "
Returns a list of a specified insight's recommendations. Each recommendation includes a list of related metrics and a list of related events.
", "PutFeedback": "Collects customer feedback about the specified insight.
", "RemoveNotificationChannel": "Removes a notification channel from DevOps Guru. A notification channel is used to notify you when DevOps Guru generates an insight that contains information about how to improve your operations.
", - "SearchInsights": " Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time, one or more statuses (ONGOING
, CLOSED
, and CLOSED
), one or more severities (LOW
, MEDIUM
, and HIGH
), and type (REACTIVE
or PROACTIVE
).
Use the Filters
parameter to specify status and severity search parameters. Use the Type
parameter to specify REACTIVE
or PROACTIVE
in your search.
Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time, one or more statuses (ONGOING
or CLOSED
), one or more severities (LOW
, MEDIUM
, and HIGH
), and type (REACTIVE
or PROACTIVE
).
Use the Filters
parameter to specify status and severity search parameters. Use the Type
parameter to specify REACTIVE
or PROACTIVE
in your search.
Returns a list of insights in your organization. You can specify which insights are returned by their start time, one or more statuses (ONGOING
, CLOSED
, and CLOSED
), one or more severities (LOW
, MEDIUM
, and HIGH
), and type (REACTIVE
or PROACTIVE
).
Use the Filters
parameter to specify status and severity search parameters. Use the Type
parameter to specify REACTIVE
or PROACTIVE
in your search.
Starts the creation of an estimate of the monthly cost to analyze your Amazon Web Services resources.
", "UpdateEventSourcesConfig": "Enables or disables integration with a service that can be integrated with DevOps Guru. The one service that can be integrated with DevOps Guru is Amazon CodeGuru Profiler, which can produce proactive recommendations which can be stored and viewed in DevOps Guru.
", @@ -82,6 +82,15 @@ "EventSourcesConfig$AmazonCodeGuruProfiler": "Information about whether DevOps Guru is configured to consume recommendations which are generated from AWS CodeGuru Profiler.
" } }, + "AnalyzedResourceCount": { + "base": null, + "refs": { + "CloudFormationHealth$AnalyzedResourceCount": "Number of resources that DevOps Guru is monitoring in your account that are specified by an Amazon Web Services CloudFormation stack.
", + "DescribeAccountHealthResponse$AnalyzedResourceCount": "Number of resources that DevOps Guru is monitoring in your Amazon Web Services account.
", + "ServiceHealth$AnalyzedResourceCount": "Number of resources that DevOps Guru is monitoring in an analyzed Amazon Web Services service.
", + "TagHealth$AnalyzedResourceCount": "Number of resources that DevOps Guru is monitoring in your account that are specified by an Amazon Web Services tag.
" + } + }, "AnomalousLogGroup": { "base": "An Amazon CloudWatch log group that contains log anomalies and is used to generate an insight.
", "refs": { @@ -1671,6 +1680,7 @@ "refs": { "Event$ResourceCollection": null, "ListEventsFilters$ResourceCollection": null, + "MonitoredResourceIdentifier$ResourceCollection": null, "ProactiveAnomaly$ResourceCollection": null, "ProactiveAnomalySummary$ResourceCollection": null, "ProactiveInsight$ResourceCollection": null, @@ -2023,6 +2033,7 @@ "InsightTimeRange$StartTime": "The time when the behavior described in an insight started.
", "InsightTimeRange$EndTime": "The time when the behavior described in an insight ended.
", "LogAnomalyClass$LogEventTimestamp": "The time of the first occurrence of the anomalous log event.
", + "MonitoredResourceIdentifier$LastUpdated": "The time at which DevOps Guru last updated this resource.
", "PredictionTimeRange$StartTime": "The time range during which a metric limit is expected to be exceeded. This applies to proactive insights only.
", "PredictionTimeRange$EndTime": "The time when the behavior in a proactive insight is expected to end.
", "ProactiveAnomaly$UpdateTime": "The time of the anomaly's most recent update.
", diff --git a/models/apis/devops-guru/2020-12-01/endpoint-rule-set-1.json b/models/apis/devops-guru/2020-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000000..396977d50f0 --- /dev/null +++ b/models/apis/devops-guru/2020-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "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" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/devops-guru/2020-12-01/endpoint-tests-1.json b/models/apis/devops-guru/2020-12-01/endpoint-tests-1.json new file mode 100644 index 00000000000..268ee8e4c28 --- /dev/null +++ b/models/apis/devops-guru/2020-12-01/endpoint-tests-1.json @@ -0,0 +1,875 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/globalaccelerator/2018-08-08/api-2.json b/models/apis/globalaccelerator/2018-08-08/api-2.json index ef83a44b7fc..291373a6e18 100644 --- a/models/apis/globalaccelerator/2018-08-08/api-2.json +++ b/models/apis/globalaccelerator/2018-08-08/api-2.json @@ -31,6 +31,23 @@ {"shape":"ConflictException"} ] }, + "AddEndpoints":{ + "name":"AddEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddEndpointsRequest"}, + "output":{"shape":"AddEndpointsResponse"}, + "errors":[ + {"shape":"TransactionInProgressException"}, + {"shape":"EndpointGroupNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"} + ] + }, "AdvertiseByoipCidr":{ "name":"AdvertiseByoipCidr", "http":{ @@ -563,6 +580,21 @@ {"shape":"ConflictException"} ] }, + "RemoveEndpoints":{ + "name":"RemoveEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveEndpointsRequest"}, + "errors":[ + {"shape":"EndpointGroupNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TransactionInProgressException"} + ] + }, "TagResource":{ "name":"TagResource", "http":{ @@ -801,6 +833,24 @@ "EndpointGroupArn":{"shape":"GenericString"} } }, + "AddEndpointsRequest":{ + "type":"structure", + "required":[ + "EndpointConfigurations", + "EndpointGroupArn" + ], + "members":{ + "EndpointConfigurations":{"shape":"EndpointConfigurations"}, + "EndpointGroupArn":{"shape":"GenericString"} + } + }, + "AddEndpointsResponse":{ + "type":"structure", + "members":{ + "EndpointDescriptions":{"shape":"EndpointDescriptions"}, + "EndpointGroupArn":{"shape":"GenericString"} + } + }, "AdvertiseByoipCidrRequest":{ "type":"structure", "required":["Cidr"], @@ -1460,6 +1510,20 @@ "type":"list", "member":{"shape":"EndpointGroup"} }, + "EndpointIdentifier":{ + "type":"structure", + "required":["EndpointId"], + "members":{ + "EndpointId":{"shape":"GenericString"}, + "ClientIPPreservationEnabled":{"shape":"GenericBoolean"} + } + }, + "EndpointIdentifiers":{ + "type":"list", + "member":{"shape":"EndpointIdentifier"}, + "max":10, + "min":1 + }, "EndpointIds":{ "type":"list", "member":{"shape":"GenericString"} @@ -1870,6 +1934,17 @@ "EndpointGroupArn":{"shape":"GenericString"} } }, + "RemoveEndpointsRequest":{ + "type":"structure", + "required":[ + "EndpointIdentifiers", + "EndpointGroupArn" + ], + "members":{ + "EndpointIdentifiers":{"shape":"EndpointIdentifiers"}, + "EndpointGroupArn":{"shape":"GenericString"} + } + }, "ResourceArn":{ "type":"string", "max":1011, @@ -1944,6 +2019,13 @@ "max":100, "min":0 }, + "TransactionInProgressException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "UntagResourceRequest":{ "type":"structure", "required":[ diff --git a/models/apis/globalaccelerator/2018-08-08/docs-2.json b/models/apis/globalaccelerator/2018-08-08/docs-2.json index 6bf5c56a9fb..87a0dcbc441 100644 --- a/models/apis/globalaccelerator/2018-08-08/docs-2.json +++ b/models/apis/globalaccelerator/2018-08-08/docs-2.json @@ -3,6 +3,7 @@ "service": "This is the Global Accelerator API Reference. This guide is for developers who need detailed information about Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the Global Accelerator Developer Guide.
Global Accelerator is a service in which you create accelerators to improve the performance of your applications for local and global users. Depending on the type of accelerator you choose, you can gain additional benefits.
By using a standard accelerator, you can improve availability of your internet applications that are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the Amazon Web Services global network.
For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you can use application logic to directly map one or more users to a specific endpoint among many endpoints.
Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2
on AWS CLI commands.
By default, Global Accelerator provides you with static IP addresses that you associate with your accelerator. The static IP addresses are anycast from the Amazon Web Services edge network. For IPv4, Global Accelerator provides two static IPv4 addresses. For dual-stack, Global Accelerator provides a total of four addresses: two static IPv4 addresses and two static IPv6 addresses. With a standard accelerator for IPv4, instead of using the addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges that you bring toGlobal Accelerator (BYOIP).
For a standard accelerator, they distribute incoming application traffic across multiple endpoint resources in multiple Amazon Web Services Regions , which increases the availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses that are located in one Amazon Web Services Region or multiple Amazon Web Services Regions. For custom routing accelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that are virtual private cloud (VPC) subnets.
The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies like tag-based permissions with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Tag-based policies.
For standard accelerators, Global Accelerator uses the Amazon Web Services global network to route traffic to the optimal regional endpoint based on health, client location, and policies that you configure. The service reacts instantly to changes in health or configuration to ensure that internet traffic from clients is always directed to healthy endpoints.
For more information about understanding and using Global Accelerator, see the Global Accelerator Developer Guide.
", "operations": { "AddCustomRoutingEndpoints": "Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.
The listener port range must be large enough to support the number of IP addresses that can be specified in your subnet. The number of ports required is: subnet size times the number of ports per destination EC2 instances. For example, a subnet defined as /24 requires a listener port range of at least 255 ports.
Note: You must have enough remaining listener ports available to map to the subnet ports, or the call will fail with a LimitExceededException.
By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the AllowCustomRoutingTraffic operation.
", + "AddEndpoints": "Add endpoints to an endpoint group. The AddEndpoints
API operation is the recommended option for adding endpoints. The alternative options are to add endpoints when you create an endpoint group (with the CreateEndpointGroup API) or when you update an endpoint group (with the UpdateEndpointGroup API).
There are two advantages to using AddEndpoints
to add endpoints:
It's faster, because Global Accelerator only has to resolve the new endpoints that you're adding.
It's more convenient, because you don't need to specify all of the current endpoints that are already in the endpoint group in addition to the new endpoints that you want to add.
Advertises an IPv4 address range that is provisioned for use with your Amazon Web Services resources through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts routing to Amazon Web Services because of propagation delays.
To stop advertising the BYOIP address range, use WithdrawByoipCidr.
For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.
", "AllowCustomRoutingTraffic": "Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive traffic for a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or allow traffic to a specified list of destination IP addresses and ports in the subnet. Note that you cannot specify IP addresses or ports outside of the range that you configured for the endpoint group.
After you make changes, you can verify that the updates are complete by checking the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.
", "CreateAccelerator": "Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.
Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2
on AWS CLI commands.
List all tags for an accelerator.
For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.
", "ProvisionByoipCidr": "Provisions an IP address range to use with your Amazon Web Services resources through bring your own IP addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr.
For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.
", "RemoveCustomRoutingEndpoints": "Remove endpoints from a custom routing accelerator.
", + "RemoveEndpoints": "Remove endpoints from an endpoint group.
The RemoveEndpoints
API operation is the recommended option for removing endpoints. The alternative is to remove endpoints by updating an endpoint group by using the UpdateEndpointGroup API operation. There are two advantages to using AddEndpoints
to remove endpoints instead:
It's more convenient, because you only need to specify the endpoints that you want to remove. With the UpdateEndpointGroup
API operation, you must specify all of the endpoints in the endpoint group except the ones that you want to remove from the group.
It's faster, because Global Accelerator doesn't need to resolve any endpoints. With the UpdateEndpointGroup
API operation, Global Accelerator must resolve all of the endpoints that remain in the group.
Add tags to an accelerator resource.
For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.
", "UntagResource": "Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. The operation succeeds even if you attempt to remove tags from an accelerator that was already removed.
For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.
", "UpdateAccelerator": "Update an accelerator.
Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2
on AWS CLI commands.
The list of endpoint objects.
", "CreateEndpointGroupRequest$EndpointConfigurations": "The list of endpoint objects.
", "UpdateEndpointGroupRequest$EndpointConfigurations": "The list of endpoint objects. A resource must be valid and active when you add it as an endpoint.
" } @@ -563,6 +576,7 @@ "EndpointDescriptions": { "base": null, "refs": { + "AddEndpointsResponse$EndpointDescriptions": "The list of endpoint objects.
", "EndpointGroup$EndpointDescriptions": "The list of endpoint objects.
" } }, @@ -591,6 +605,18 @@ "ListEndpointGroupsResponse$EndpointGroups": "The list of the endpoint groups associated with a listener.
" } }, + "EndpointIdentifier": { + "base": "A complex type for an endpoint. Specifies information about the endpoint to remove from the endpoint group.
", + "refs": { + "EndpointIdentifiers$member": null + } + }, + "EndpointIdentifiers": { + "base": null, + "refs": { + "RemoveEndpointsRequest$EndpointIdentifiers": "The identifiers of the endpoints that you want to remove.
" + } + }, "EndpointIds": { "base": null, "refs": { @@ -629,7 +655,8 @@ "InvalidNextTokenException$Message": null, "InvalidPortRangeException$Message": null, "LimitExceededException$Message": null, - "ListenerNotFoundException$Message": null + "ListenerNotFoundException$Message": null, + "TransactionInProgressException$Message": null } }, "GenericBoolean": { @@ -645,6 +672,7 @@ "DenyCustomRoutingTrafficRequest$DenyAllTrafficToEndpoint": "Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint cannot receive traffic from a custom routing accelerator. The value is TRUE or FALSE.
When set to TRUE, no destinations in the custom routing VPC subnet can receive traffic. Note that you cannot specify destination IP addresses and ports when the value is set to TRUE.
When set to FALSE (or not specified), you must specify a list of destination IP addresses that cannot receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is the same as the ports configured for the endpoint group.
The default value is FALSE.
", "EndpointConfiguration$ClientIPPreservationEnabled": "Indicates whether client IP address preservation is enabled for an endpoint. The value is true or false. The default value is true for new accelerators.
If the value is set to true, the client's IP address is preserved in the X-Forwarded-For
request header as traffic travels to applications on the endpoint fronted by the accelerator.
Client IP address preservation is supported, in specific Amazon Web Services Regions, for endpoints that are Application Load Balancers and Amazon EC2 instances.
For more information, see Preserve client IP addresses in Global Accelerator in the Global Accelerator Developer Guide.
", "EndpointDescription$ClientIPPreservationEnabled": "Indicates whether client IP address preservation is enabled for an endpoint. The value is true or false. The default value is true for new accelerators.
If the value is set to true, the client's IP address is preserved in the X-Forwarded-For
request header as traffic travels to applications on the endpoint fronted by the accelerator.
Client IP address preservation is supported, in specific Amazon Web Services Regions, for endpoints that are Application Load Balancers and Amazon EC2 instances.
For more information, see Preserve client IP addresses in Global Accelerator in the Global Accelerator Developer Guide.
", + "EndpointIdentifier$ClientIPPreservationEnabled": "Indicates whether client IP address preservation is enabled for an endpoint. The value is true or false.
If the value is set to true, the client's IP address is preserved in the X-Forwarded-For
request header as traffic travels to applications on the endpoint fronted by the accelerator.
Update whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket
and FlowLogsS3Prefix
must be specified.
For more information, see Flow Logs in the Global Accelerator Developer Guide.
", "UpdateAcceleratorRequest$Enabled": "Indicates whether an accelerator is enabled. The value is true or false. The default value is true.
If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.
", "UpdateCustomRoutingAcceleratorAttributesRequest$FlowLogsEnabled": "Update whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket
and FlowLogsS3Prefix
must be specified.
For more information, see Flow logs in the Global Accelerator Developer Guide.
", @@ -656,13 +684,15 @@ "refs": { "Accelerator$AcceleratorArn": "The Amazon Resource Name (ARN) of the accelerator.
", "Accelerator$Name": "The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.
", - "Accelerator$DnsName": "The Domain Name System (DNS) name that Global Accelerator creates that points to an accelerator's static IPv4 addresses.
The naming convention for the DNS name for an accelerator is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.
If you have a dual-stack accelerator, you also have a second DNS name, DualStackDnsName, that points to both the A record and the AAAA record for all four static addresses for the accelerator (two IPv4 addresses and two IPv6 addresses).
For more information about the default DNS name, see Support for DNS Addressing in Global Accelerator in the Global Accelerator Developer Guide.
", - "Accelerator$DualStackDnsName": "The Domain Name System (DNS) name that Global Accelerator creates that points to a dual-stack accelerator's four static IP addresses: two IPv4 addresses and two IPv6 addresses.
The naming convention for the dual-stack DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .dualstack.awsglobalaccelerator.com. For example: a1234567890abcdef.dualstack.awsglobalaccelerator.com.
Note: Global Accelerator also assigns a default DNS name, DnsName, to your accelerator that points just to the static IPv4 addresses.
For more information, see Support for DNS Addressing in Global Accelerator in the Global Accelerator Developer Guide.
", + "Accelerator$DnsName": "The Domain Name System (DNS) name that Global Accelerator creates that points to an accelerator's static IPv4 addresses.
The naming convention for the DNS name for an accelerator is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.
If you have a dual-stack accelerator, you also have a second DNS name, DualStackDnsName
, that points to both the A record and the AAAA record for all four static addresses for the accelerator: two IPv4 addresses and two IPv6 addresses.
For more information about the default DNS name, see Support for DNS addressing in Global Accelerator in the Global Accelerator Developer Guide.
", + "Accelerator$DualStackDnsName": "The Domain Name System (DNS) name that Global Accelerator creates that points to a dual-stack accelerator's four static IP addresses: two IPv4 addresses and two IPv6 addresses.
The naming convention for the dual-stack DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .dualstack.awsglobalaccelerator.com. For example: a1234567890abcdef.dualstack.awsglobalaccelerator.com.
Note: Global Accelerator also assigns a default DNS name, DnsName
, to your accelerator that points just to the static IPv4 addresses.
For more information, see Support for DNS addressing in Global Accelerator in the Global Accelerator Developer Guide.
", "AcceleratorAttributes$FlowLogsS3Bucket": "The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled
is true
. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.
The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled
is true
.
If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:
s3-bucket_name//AWSLogs/aws_account_id
", "AcceleratorEvent$Message": "A string that contains an Event
message describing changes or errors when you update an accelerator in Global Accelerator from IPv4 to dual-stack, or dual-stack to IPv4.
The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.
", "AddCustomRoutingEndpointsResponse$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.
", + "AddEndpointsRequest$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group.
", + "AddEndpointsResponse$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group.
", "AdvertiseByoipCidrRequest$Cidr": "The address range, in CIDR notation. This must be the exact range that you provisioned. You can't advertise only a portion of the provisioned range.
", "AllowCustomRoutingTrafficRequest$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group.
", "AllowCustomRoutingTrafficRequest$EndpointId": "An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.
", @@ -680,7 +710,7 @@ "CreateListenerRequest$AcceleratorArn": "The Amazon Resource Name (ARN) of your accelerator.
", "CustomRoutingAccelerator$AcceleratorArn": "The Amazon Resource Name (ARN) of the custom routing accelerator.
", "CustomRoutingAccelerator$Name": "The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.
", - "CustomRoutingAccelerator$DnsName": "The Domain Name System (DNS) name that Global Accelerator creates that points to an accelerator's static IPv4 addresses.
The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.
If you have a dual-stack accelerator, you also have a second DNS name, DualStackDnsName, that points to both the A record and the AAAA record for all four static addresses for the accelerator (two IPv4 addresses and two IPv6 addresses).
For more information about the default DNS name, see Support for DNS Addressing in Global Accelerator in the Global Accelerator Developer Guide.
", + "CustomRoutingAccelerator$DnsName": "The Domain Name System (DNS) name that Global Accelerator creates that points to an accelerator's static IPv4 addresses.
The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.
If you have a dual-stack accelerator, you also have a second DNS name, DualStackDnsName
, that points to both the A record and the AAAA record for all four static addresses for the accelerator: two IPv4 addresses and two IPv6 addresses.
For more information about the default DNS name, see Support for DNS addressing in Global Accelerator in the Global Accelerator Developer Guide.
", "CustomRoutingAcceleratorAttributes$FlowLogsS3Bucket": "The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled
is true
. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.
The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled
is true
.
If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:
DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id
", "CustomRoutingEndpointConfiguration$EndpointId": "An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.
", @@ -714,6 +744,7 @@ "EndpointDescription$HealthReason": "Returns a null result.
", "EndpointGroup$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group.
", "EndpointGroup$EndpointGroupRegion": "The Amazon Web Services Region where the endpoint group is located.
", + "EndpointIdentifier$EndpointId": "An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID.
An Application Load Balancer can be either internal or internet-facing.
", "EndpointIds$member": null, "IpSet$IpFamily": "IpFamily is deprecated and has been replaced by IpAddressFamily.
", "ListAcceleratorsRequest$NextToken": "The token for the next set of results. You receive this token from a previous call.
", @@ -747,6 +778,7 @@ "PortMapping$EndpointId": "The IP address of the VPC subnet (the subnet ID).
", "ProvisionByoipCidrRequest$Cidr": "The public IPv4 address range, in CIDR notation. The most specific IP prefix that you can specify is /24. The address range cannot overlap with another address range that you've brought to this or another Region.
", "RemoveCustomRoutingEndpointsRequest$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group to remove endpoints from.
", + "RemoveEndpointsRequest$EndpointGroupArn": "The Amazon Resource Name (ARN) of the endpoint group.
", "SocketAddress$IpAddress": "The IP address for the socket address.
", "UpdateAcceleratorAttributesRequest$AcceleratorArn": "The Amazon Resource Name (ARN) of the accelerator that you want to update.
", "UpdateAcceleratorAttributesRequest$FlowLogsS3Bucket": "The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled
is true
. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.
The percentage of traffic to send to an Amazon Web Services Region. Additional traffic is distributed to other endpoint groups for this listener.
Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.
The default value is 100.
" } }, + "TransactionInProgressException": { + "base": "There's already a transaction in progress. Another transaction can't be processed.
", + "refs": { + } + }, "UntagResourceRequest": { "base": null, "refs": { diff --git a/models/apis/globalaccelerator/2018-08-08/endpoint-rule-set-1.json b/models/apis/globalaccelerator/2018-08-08/endpoint-rule-set-1.json new file mode 100644 index 00000000000..66e10dd2e5c --- /dev/null +++ b/models/apis/globalaccelerator/2018-08-08/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "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" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/globalaccelerator/2018-08-08/endpoint-tests-1.json b/models/apis/globalaccelerator/2018-08-08/endpoint-tests-1.json new file mode 100644 index 00000000000..ff1bae97f53 --- /dev/null +++ b/models/apis/globalaccelerator/2018-08-08/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/resiliencehub/2020-04-30/api-2.json b/models/apis/resiliencehub/2020-04-30/api-2.json index 3519e3aba44..72646d9f086 100644 --- a/models/apis/resiliencehub/2020-04-30/api-2.json +++ b/models/apis/resiliencehub/2020-04-30/api-2.json @@ -904,7 +904,8 @@ "creationTime":{"shape":"TimeStamp"}, "description":{"shape":"EntityDescription"}, "name":{"shape":"EntityName"}, - "resiliencyScore":{"shape":"Double"} + "resiliencyScore":{"shape":"Double"}, + "status":{"shape":"AppStatusType"} } }, "AppSummaryList":{ @@ -913,7 +914,7 @@ }, "AppTemplateBody":{ "type":"string", - "max":51200, + "max":204800, "min":0, "pattern":"^[\\w\\s:,-\\.'{}\\[\\]:\"]+$" }, @@ -1036,7 +1037,8 @@ "LeastChange", "BestAZRecovery", "LeastErrors", - "BestAttainable" + "BestAttainable", + "BestRegionRecovery" ] }, "ConflictException":{ diff --git a/models/apis/resiliencehub/2020-04-30/docs-2.json b/models/apis/resiliencehub/2020-04-30/docs-2.json index 10b29c31fde..8a46796b310 100644 --- a/models/apis/resiliencehub/2020-04-30/docs-2.json +++ b/models/apis/resiliencehub/2020-04-30/docs-2.json @@ -146,7 +146,8 @@ "AppStatusType": { "base": null, "refs": { - "App$status": "The status of the action.
" + "App$status": "The status of the application.
", + "AppSummary$status": "The status of the application.
" } }, "AppSummary": { @@ -547,7 +548,7 @@ "refs": { "CreateResiliencyPolicyRequest$policy": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds.
", "ResiliencyPolicy$policy": "The resiliency policy.
", - "UpdateResiliencyPolicyRequest$policy": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds.
If you do not want to specify regional targets for a regional policy, you must set the values of rpoInSecs
and rtoInSecs
to -1
.
The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds.
" } }, "DisruptionResiliencyScore": { diff --git a/models/apis/resiliencehub/2020-04-30/endpoint-rule-set-1.json b/models/apis/resiliencehub/2020-04-30/endpoint-rule-set-1.json new file mode 100644 index 00000000000..4b3afb58e79 --- /dev/null +++ b/models/apis/resiliencehub/2020-04-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "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" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/resiliencehub/2020-04-30/endpoint-tests-1.json b/models/apis/resiliencehub/2020-04-30/endpoint-tests-1.json new file mode 100644 index 00000000000..dd7a4640ae6 --- /dev/null +++ b/models/apis/resiliencehub/2020-04-30/endpoint-tests-1.json @@ -0,0 +1,1083 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/rum/2018-05-10/api-2.json b/models/apis/rum/2018-05-10/api-2.json index 556142887d0..a4639204c24 100644 --- a/models/apis/rum/2018-05-10/api-2.json +++ b/models/apis/rum/2018-05-10/api-2.json @@ -12,6 +12,61 @@ "uid":"rum-2018-05-10" }, "operations":{ + "BatchCreateRumMetricDefinitions":{ + "name":"BatchCreateRumMetricDefinitions", + "http":{ + "method":"POST", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchCreateRumMetricDefinitionsRequest"}, + "output":{"shape":"BatchCreateRumMetricDefinitionsResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "BatchDeleteRumMetricDefinitions":{ + "name":"BatchDeleteRumMetricDefinitions", + "http":{ + "method":"DELETE", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchDeleteRumMetricDefinitionsRequest"}, + "output":{"shape":"BatchDeleteRumMetricDefinitionsResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "BatchGetRumMetricDefinitions":{ + "name":"BatchGetRumMetricDefinitions", + "http":{ + "method":"GET", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchGetRumMetricDefinitionsRequest"}, + "output":{"shape":"BatchGetRumMetricDefinitionsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ] + }, "CreateAppMonitor":{ "name":"CreateAppMonitor", "http":{ @@ -24,6 +79,7 @@ "errors":[ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, @@ -50,6 +106,25 @@ ], "idempotent":true }, + "DeleteRumMetricsDestination":{ + "name":"DeleteRumMetricsDestination", + "http":{ + "method":"DELETE", + "requestUri":"/rummetrics/{AppMonitorName}/metricsdestination", + "responseCode":200 + }, + "input":{"shape":"DeleteRumMetricsDestinationRequest"}, + "output":{"shape":"DeleteRumMetricsDestinationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, "GetAppMonitor":{ "name":"GetAppMonitor", "http":{ @@ -100,6 +175,22 @@ {"shape":"AccessDeniedException"} ] }, + "ListRumMetricsDestinations":{ + "name":"ListRumMetricsDestinations", + "http":{ + "method":"GET", + "requestUri":"/rummetrics/{AppMonitorName}/metricsdestination", + "responseCode":200 + }, + "input":{"shape":"ListRumMetricsDestinationsRequest"}, + "output":{"shape":"ListRumMetricsDestinationsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -133,6 +224,25 @@ ], "endpoint":{"hostPrefix":"dataplane."} }, + "PutRumMetricsDestination":{ + "name":"PutRumMetricsDestination", + "http":{ + "method":"POST", + "requestUri":"/rummetrics/{AppMonitorName}/metricsdestination", + "responseCode":200 + }, + "input":{"shape":"PutRumMetricsDestinationRequest"}, + "output":{"shape":"PutRumMetricsDestinationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, "TagResource":{ "name":"TagResource", "http":{ @@ -182,6 +292,26 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ] + }, + "UpdateRumMetricDefinition":{ + "name":"UpdateRumMetricDefinition", + "http":{ + "method":"PATCH", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"UpdateRumMetricDefinitionRequest"}, + "output":{"shape":"UpdateRumMetricDefinitionResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true } }, "shapes":{ @@ -269,6 +399,145 @@ "type":"string", "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*" }, + "BatchCreateRumMetricDefinitionsError":{ + "type":"structure", + "required":[ + "ErrorCode", + "ErrorMessage", + "MetricDefinition" + ], + "members":{ + "ErrorCode":{"shape":"String"}, + "ErrorMessage":{"shape":"String"}, + "MetricDefinition":{"shape":"MetricDefinitionRequest"} + } + }, + "BatchCreateRumMetricDefinitionsErrors":{ + "type":"list", + "member":{"shape":"BatchCreateRumMetricDefinitionsError"} + }, + "BatchCreateRumMetricDefinitionsRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination", + "MetricDefinitions" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{"shape":"MetricDestination"}, + "DestinationArn":{"shape":"DestinationArn"}, + "MetricDefinitions":{"shape":"MetricDefinitionsRequest"} + } + }, + "BatchCreateRumMetricDefinitionsResponse":{ + "type":"structure", + "required":["Errors"], + "members":{ + "Errors":{"shape":"BatchCreateRumMetricDefinitionsErrors"}, + "MetricDefinitions":{"shape":"MetricDefinitions"} + } + }, + "BatchDeleteRumMetricDefinitionsError":{ + "type":"structure", + "required":[ + "ErrorCode", + "ErrorMessage", + "MetricDefinitionId" + ], + "members":{ + "ErrorCode":{"shape":"String"}, + "ErrorMessage":{"shape":"String"}, + "MetricDefinitionId":{"shape":"MetricDefinitionId"} + } + }, + "BatchDeleteRumMetricDefinitionsErrors":{ + "type":"list", + "member":{"shape":"BatchDeleteRumMetricDefinitionsError"} + }, + "BatchDeleteRumMetricDefinitionsRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination", + "MetricDefinitionIds" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "location":"querystring", + "locationName":"destination" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "location":"querystring", + "locationName":"destinationArn" + }, + "MetricDefinitionIds":{ + "shape":"MetricDefinitionIds", + "location":"querystring", + "locationName":"metricDefinitionIds" + } + } + }, + "BatchDeleteRumMetricDefinitionsResponse":{ + "type":"structure", + "required":["Errors"], + "members":{ + "Errors":{"shape":"BatchDeleteRumMetricDefinitionsErrors"}, + "MetricDefinitionIds":{"shape":"MetricDefinitionIds"} + } + }, + "BatchGetRumMetricDefinitionsRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "location":"querystring", + "locationName":"destination" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "location":"querystring", + "locationName":"destinationArn" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "BatchGetRumMetricDefinitionsResponse":{ + "type":"structure", + "members":{ + "MetricDefinitions":{"shape":"MetricDefinitions"}, + "NextToken":{"shape":"String"} + } + }, "Boolean":{ "type":"boolean", "box":true @@ -339,11 +608,67 @@ "members":{ } }, + "DeleteRumMetricsDestinationRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "location":"querystring", + "locationName":"destination" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "location":"querystring", + "locationName":"destinationArn" + } + } + }, + "DeleteRumMetricsDestinationResponse":{ + "type":"structure", + "members":{ + } + }, + "DestinationArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*" + }, + "DimensionKey":{ + "type":"string", + "max":280, + "min":1 + }, + "DimensionKeysMap":{ + "type":"map", + "key":{"shape":"DimensionKey"}, + "value":{"shape":"DimensionName"} + }, + "DimensionName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^(?!:).*[^\\s].*" + }, "EventData":{"type":"string"}, "EventDataList":{ "type":"list", "member":{"shape":"EventData"} }, + "EventPattern":{ + "type":"string", + "max":4000, + "min":0 + }, "FavoritePages":{ "type":"list", "member":{"shape":"String"}, @@ -395,8 +720,11 @@ "ISOTimestampString":{ "type":"string", "max":19, - "min":19, - "pattern":"/d{4}-[01]/d-[0-3]/dT[0-2]/d:[0-5]/d:[0-5]/d/./d+([+-][0-2]/d:[0-5]/d|Z)" + "min":19 + }, + "IamRoleArn":{ + "type":"string", + "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*" }, "IdentityPoolId":{ "type":"string", @@ -429,7 +757,7 @@ "type":"structure", "members":{ "MaxResults":{ - "shape":"Integer", + "shape":"MaxResultsInteger", "location":"querystring", "locationName":"maxResults" }, @@ -447,6 +775,34 @@ "NextToken":{"shape":"String"} } }, + "ListRumMetricsDestinationsRequest":{ + "type":"structure", + "required":["AppMonitorName"], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListRumMetricsDestinationsResponse":{ + "type":"structure", + "members":{ + "Destinations":{"shape":"MetricDestinationSummaryList"}, + "NextToken":{"shape":"String"} + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -474,6 +830,79 @@ "max":100, "min":0 }, + "MaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MetricDefinition":{ + "type":"structure", + "required":[ + "MetricDefinitionId", + "Name" + ], + "members":{ + "DimensionKeys":{"shape":"DimensionKeysMap"}, + "EventPattern":{"shape":"EventPattern"}, + "MetricDefinitionId":{"shape":"MetricDefinitionId"}, + "Name":{"shape":"MetricName"}, + "UnitLabel":{"shape":"UnitLabel"}, + "ValueKey":{"shape":"ValueKey"} + } + }, + "MetricDefinitionId":{ + "type":"string", + "max":255, + "min":1 + }, + "MetricDefinitionIds":{ + "type":"list", + "member":{"shape":"MetricDefinitionId"} + }, + "MetricDefinitionRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "DimensionKeys":{"shape":"DimensionKeysMap"}, + "EventPattern":{"shape":"EventPattern"}, + "Name":{"shape":"MetricName"}, + "UnitLabel":{"shape":"UnitLabel"}, + "ValueKey":{"shape":"ValueKey"} + } + }, + "MetricDefinitions":{ + "type":"list", + "member":{"shape":"MetricDefinition"} + }, + "MetricDefinitionsRequest":{ + "type":"list", + "member":{"shape":"MetricDefinitionRequest"} + }, + "MetricDestination":{ + "type":"string", + "enum":[ + "CloudWatch", + "Evidently" + ] + }, + "MetricDestinationSummary":{ + "type":"structure", + "members":{ + "Destination":{"shape":"MetricDestination"}, + "DestinationArn":{"shape":"DestinationArn"}, + "IamRoleArn":{"shape":"IamRoleArn"} + } + }, + "MetricDestinationSummaryList":{ + "type":"list", + "member":{"shape":"MetricDestinationSummary"} + }, + "MetricName":{ + "type":"string", + "max":255, + "min":1 + }, "Pages":{ "type":"list", "member":{"shape":"Url"}, @@ -506,6 +935,28 @@ "members":{ } }, + "PutRumMetricsDestinationRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{"shape":"MetricDestination"}, + "DestinationArn":{"shape":"DestinationArn"}, + "IamRoleArn":{"shape":"IamRoleArn"} + } + }, + "PutRumMetricsDestinationResponse":{ + "type":"structure", + "members":{ + } + }, "QueryFilter":{ "type":"structure", "members":{ @@ -677,6 +1128,11 @@ }, "Timestamp":{"type":"timestamp"}, "Token":{"type":"string"}, + "UnitLabel":{ + "type":"string", + "max":256, + "min":1 + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -720,11 +1176,36 @@ "members":{ } }, + "UpdateRumMetricDefinitionRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination", + "MetricDefinition", + "MetricDefinitionId" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{"shape":"MetricDestination"}, + "DestinationArn":{"shape":"DestinationArn"}, + "MetricDefinition":{"shape":"MetricDefinitionRequest"}, + "MetricDefinitionId":{"shape":"MetricDefinitionId"} + } + }, + "UpdateRumMetricDefinitionResponse":{ + "type":"structure", + "members":{ + } + }, "Url":{ "type":"string", "max":1260, "min":1, - "pattern":"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)" + "pattern":"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&*//=]*)" }, "UserDetails":{ "type":"structure", @@ -744,6 +1225,11 @@ "senderFault":true }, "exception":true + }, + "ValueKey":{ + "type":"string", + "max":280, + "min":1 } } } diff --git a/models/apis/rum/2018-05-10/docs-2.json b/models/apis/rum/2018-05-10/docs-2.json index 9b37fc2a9a5..27b853fd1c6 100644 --- a/models/apis/rum/2018-05-10/docs-2.json +++ b/models/apis/rum/2018-05-10/docs-2.json @@ -2,16 +2,23 @@ "version": "2.0", "service": "With Amazon CloudWatch RUM, you can perform real-user monitoring to collect client-side data about your web application performance from actual user sessions in real time. The data collected includes page load times, client-side errors, and user behavior. When you view this data, you can see it all aggregated together and also see breakdowns by the browsers and devices that your customers use.
<p>You can use the collected data to quickly identify and debug client-side performance issues. CloudWatch RUM helps you visualize anomalies in your application performance and find relevant debugging data such as error messages, stack traces, and user sessions. You can also use RUM to understand the range of end-user impact including the number of users, geolocations, and browsers used.</p>
",
"operations": {
+ "BatchCreateRumMetricDefinitions": "Specifies the extended metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.
By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.
If you also send extended metrics, you can send metrics to Evidently as well as CloudWatch, and you can also optionally send the metrics with additional dimensions. The valid dimension names for the additional dimensions are BrowserName
, CountryCode
, DeviceType
, FileType
, OSName
, and PageId
. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.
The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions
operation is 200.
<p>The maximum number of metric definitions that one destination can contain is 2000.</p> <p>Extended metrics sent are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see <a href="https://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>.</p> <p>You must have already created a destination for the metrics before you send them. For more information, see <a href="https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html">PutRumMetricsDestination</a>.</p> <p>If some metric definitions specified in a <code>BatchCreateRumMetricDefinitions</code> operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.</p>
",
+ "BatchDeleteRumMetricDefinitions": "Removes the specified metrics from being sent to an extended metrics destination.
If some metric definition IDs specified in a BatchDeleteRumMetricDefinitions
operations are not valid, those metric definitions fail and return errors, but all valid metric definition IDs in the same operation are still deleted.
The maximum number of metric definitions that you can specify in one BatchDeleteRumMetricDefinitions
operation is 200.
Retrieves the list of metrics and dimensions that a RUM app monitor is sending to a single destination.
", "CreateAppMonitor": "Creates a Amazon CloudWatch RUM app monitor, which collects telemetry data from your application and sends that data to RUM. The data includes performance and reliability information such as page load time, client-side errors, and user behavior.
You use this operation only to create a new app monitor. To update an existing app monitor, use UpdateAppMonitor instead.
After you create an app monitor, sign in to the CloudWatch RUM console to get the JavaScript code snippet to add to your web application. For more information, see How do I find a code snippet that I've already generated?
", "DeleteAppMonitor": "Deletes an existing app monitor. This immediately stops the collection of data.
", + "DeleteRumMetricsDestination": "Deletes a destination for CloudWatch RUM extended metrics, so that the specified app monitor stops sending extended metrics to that destination.
", "GetAppMonitor": "Retrieves the complete configuration information for one app monitor.
", "GetAppMonitorData": "Retrieves the raw performance events that RUM has collected from your web application, so that you can do your own processing or analysis of this data.
", "ListAppMonitors": "Returns a list of the Amazon CloudWatch RUM app monitors in the account.
", + "ListRumMetricsDestinations": "Returns a list of destinations that you have created to receive RUM extended metrics, for the specified app monitor.
For more information about extended metrics, see AddRumMetrics.
", "ListTagsForResource": "Displays the tags associated with a CloudWatch RUM resource.
", "PutRumEvents": "Sends telemetry events about your application performance and user behavior to CloudWatch RUM. The code snippet that RUM generates for you to add to your application includes PutRumEvents
operations to send this data to RUM.
Each PutRumEvents
operation can send a batch of events from one user session.
Creates or updates a destination to receive extended metrics from CloudWatch RUM. You can send extended metrics to CloudWatch or to a CloudWatch Evidently experiment.
For more information about extended metrics, see AddRumMetrics.
", "TagResource": "Assigns one or more tags (key-value pairs) to the specified CloudWatch RUM resource. Currently, the only resources that can be tagged app monitors.
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 a resource that already has tags. If you specify a new tag key for the resource, 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 resource, the new tag value that you specify replaces the previous value for that tag.
You can associate as many as 50 tags with a resource.
For more information, see Tagging Amazon Web Services resources.
", "UntagResource": "Removes one or more tags from the specified resource.
", - "UpdateAppMonitor": "Updates the configuration of an existing app monitor. When you use this operation, only the parts of the app monitor configuration that you specify in this operation are changed. For any parameters that you omit, the existing values are kept.
You can't use this operation to change the tags of an existing app monitor. To change the tags of an existing app monitor, use TagResource.
To create a new app monitor, use CreateAppMonitor.
After you update an app monitor, sign in to the CloudWatch RUM console to get the updated JavaScript code snippet to add to your web application. For more information, see How do I find a code snippet that I've already generated?
" + "UpdateAppMonitor": "Updates the configuration of an existing app monitor. When you use this operation, only the parts of the app monitor configuration that you specify in this operation are changed. For any parameters that you omit, the existing values are kept.
You can't use this operation to change the tags of an existing app monitor. To change the tags of an existing app monitor, use TagResource.
To create a new app monitor, use CreateAppMonitor.
After you update an app monitor, sign in to the CloudWatch RUM console to get the updated JavaScript code snippet to add to your web application. For more information, see How do I find a code snippet that I've already generated?
", + "UpdateRumMetricDefinition": "Modifies one existing metric definition for CloudWatch RUM extended metrics. For more information about extended metrics, see BatchCreateRumMetricsDefinitions.
" }, "shapes": { "AccessDeniedException": { @@ -61,11 +68,18 @@ "refs": { "AppMonitor$Name": "The name of the app monitor.
", "AppMonitorSummary$Name": "The name of this app monitor.
", + "BatchCreateRumMetricDefinitionsRequest$AppMonitorName": "The name of the CloudWatch RUM app monitor that is to send the metrics.
", + "BatchDeleteRumMetricDefinitionsRequest$AppMonitorName": "The name of the CloudWatch RUM app monitor that is sending these metrics.
", + "BatchGetRumMetricDefinitionsRequest$AppMonitorName": "The name of the CloudWatch RUM app monitor that is sending the metrics.
", "CreateAppMonitorRequest$Name": "A name for the app monitor.
", "DeleteAppMonitorRequest$Name": "The name of the app monitor to delete.
", + "DeleteRumMetricsDestinationRequest$AppMonitorName": "The name of the app monitor that is sending metrics to the destination that you want to delete.
", "GetAppMonitorDataRequest$Name": "The name of the app monitor that collected the data that you want to retrieve.
", "GetAppMonitorRequest$Name": "The app monitor to retrieve information for.
", - "UpdateAppMonitorRequest$Name": "The name of the app monitor to update.
" + "ListRumMetricsDestinationsRequest$AppMonitorName": "The name of the app monitor associated with the destinations that you want to retrieve.
", + "PutRumMetricsDestinationRequest$AppMonitorName": "The name of the CloudWatch RUM app monitor that will send the metrics.
", + "UpdateAppMonitorRequest$Name": "The name of the app monitor to update.
", + "UpdateRumMetricDefinitionRequest$AppMonitorName": "The name of the CloudWatch RUM app monitor that sends these metrics.
" } }, "AppMonitorSummary": { @@ -90,6 +104,60 @@ "UntagResourceRequest$ResourceArn": "The ARN of the CloudWatch RUM resource that you're removing tags from.
" } }, + "BatchCreateRumMetricDefinitionsError": { + "base": "A structure that defines one error caused by a BatchCreateRumMetricsDefinitions operation.
", + "refs": { + "BatchCreateRumMetricDefinitionsErrors$member": null + } + }, + "BatchCreateRumMetricDefinitionsErrors": { + "base": null, + "refs": { + "BatchCreateRumMetricDefinitionsResponse$Errors": "An array of error objects, if the operation caused any errors.
" + } + }, + "BatchCreateRumMetricDefinitionsRequest": { + "base": null, + "refs": { + } + }, + "BatchCreateRumMetricDefinitionsResponse": { + "base": null, + "refs": { + } + }, + "BatchDeleteRumMetricDefinitionsError": { + "base": "A structure that defines one error caused by a BatchCreateRumMetricsDefinitions operation.
", + "refs": { + "BatchDeleteRumMetricDefinitionsErrors$member": null + } + }, + "BatchDeleteRumMetricDefinitionsErrors": { + "base": null, + "refs": { + "BatchDeleteRumMetricDefinitionsResponse$Errors": "An array of error objects, if the operation caused any errors.
" + } + }, + "BatchDeleteRumMetricDefinitionsRequest": { + "base": null, + "refs": { + } + }, + "BatchDeleteRumMetricDefinitionsResponse": { + "base": null, + "refs": { + } + }, + "BatchGetRumMetricDefinitionsRequest": { + "base": null, + "refs": { + } + }, + "BatchGetRumMetricDefinitionsResponse": { + "base": null, + "refs": { + } + }, "Boolean": { "base": null, "refs": { @@ -137,6 +205,47 @@ "refs": { } }, + "DeleteRumMetricsDestinationRequest": { + "base": null, + "refs": { + } + }, + "DeleteRumMetricsDestinationResponse": { + "base": null, + "refs": { + } + }, + "DestinationArn": { + "base": null, + "refs": { + "BatchCreateRumMetricDefinitionsRequest$DestinationArn": "This parameter is required if Destination
is Evidently
. If Destination
is CloudWatch
, do not use this parameter.
This parameter specifies the ARN of the Evidently experiment that is to receive the metrics. You must have already defined this experiment as a valid destination. For more information, see PutRumMetricsDestination.
", + "BatchDeleteRumMetricDefinitionsRequest$DestinationArn": "This parameter is required if Destination
is Evidently
. If Destination
is CloudWatch
, do not use this parameter.
This parameter specifies the ARN of the Evidently experiment that was receiving the metrics that are being deleted.
", + "BatchGetRumMetricDefinitionsRequest$DestinationArn": "This parameter is required if Destination
is Evidently
. If Destination
is CloudWatch
, do not use this parameter.
This parameter specifies the ARN of the Evidently experiment that corresponds to the destination.
", + "DeleteRumMetricsDestinationRequest$DestinationArn": "This parameter is required if Destination
is Evidently
. If Destination
is CloudWatch
, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that corresponds to the destination to delete.
If the destination is Evidently
, this specifies the ARN of the Evidently experiment that receives the metrics.
Use this parameter only if Destination
is Evidently
. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.
This parameter is required if Destination
is Evidently
. If Destination
is CloudWatch
, do not use this parameter.
This parameter specifies the ARN of the Evidently experiment that is to receive the metrics. You must have already defined this experiment as a valid destination. For more information, see PutRumMetricsDestination.
" + } + }, + "DimensionKey": { + "base": null, + "refs": { + "DimensionKeysMap$key": null + } + }, + "DimensionKeysMap": { + "base": null, + "refs": { + "MetricDefinition$DimensionKeys": "This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch The value of this field is used only if the metric destination is CloudWatch
. If the metric destination is Evidently
, the value of DimensionKeys
is ignored.
Use this field only if you are sending the metric to CloudWatch.
This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. Valid values for the entries in this field are the following:
\"metadata.pageId\": \"PageId\"
\"metadata.browserName\": \"BrowserName\"
\"metadata.deviceType\": \"DeviceType\"
\"metadata.osName\": \"OSName\"
\"metadata.countryCode\": \"CountryCode\"
\"event_details.fileType\": \"FileType\"
<p> All dimensions listed in this field must also be included in <code>EventPattern</code>.</p>
"
+ }
+ },
+ "DimensionName": {
+ "base": null,
+ "refs": {
+ "DimensionKeysMap$value": null
+ }
+ },
"EventData": {
"base": null,
"refs": {
@@ -149,10 +258,17 @@
"GetAppMonitorDataResponse$Events": "The events that RUM collected that match your request.
" } }, + "EventPattern": { + "base": null, + "refs": { + "MetricDefinition$EventPattern": "The pattern that defines the metric. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.
If the metrics destination is CloudWatch
and the event also matches a value in DimensionKeys
, then the metric is published with the specified dimensions.
The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.
When you define extended metrics, the metric definition is not valid if EventPattern
is omitted.
Example event patterns:
'{ \"event_type\": [\"com.amazon.rum.js_error_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], } }'
'{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Firefox\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \"<\", 2000 ] }] } }'
'{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], \"countryCode\": [ \"US\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \">=\", 2000, \"<\", 8000 ] }] } }'
If the metrics destination' is CloudWatch
and the event also matches a value in DimensionKeys
, then the metric is published with the specified dimensions.
A list of pages in the CloudWatch RUM console that are to be displayed with a \"favorite\" icon.
" + "AppMonitorConfiguration$FavoritePages": "A list of pages in your application that are to be displayed with a \"favorite\" icon in the CloudWatch RUM console.
" } }, "GetAppMonitorDataRequest": { @@ -184,6 +300,13 @@ "AppMonitorSummary$LastModified": "The date and time of the most recent changes to this app monitor's configuration.
" } }, + "IamRoleArn": { + "base": null, + "refs": { + "MetricDestinationSummary$IamRoleArn": "This field appears only when the destination is Evidently
. It specifies the ARN of the IAM role that is used to write to the Evidently experiment that receives the metrics.
This parameter is required if Destination
is Evidently
. If Destination
is CloudWatch
, do not use this parameter.
This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.
" + } + }, "IdentityPoolId": { "base": null, "refs": { @@ -194,7 +317,6 @@ "base": null, "refs": { "InternalServerException$retryAfterSeconds": "The value of a parameter in the request caused an error.
", - "ListAppMonitorsRequest$MaxResults": "The maximum number of results to return in one operation.
", "ThrottlingException$retryAfterSeconds": "The value of a parameter in the request caused an error.
" } }, @@ -220,6 +342,16 @@ "refs": { } }, + "ListRumMetricsDestinationsRequest": { + "base": null, + "refs": { + } + }, + "ListRumMetricsDestinationsResponse": { + "base": null, + "refs": { + } + }, "ListTagsForResourceRequest": { "base": null, "refs": { @@ -236,6 +368,88 @@ "GetAppMonitorDataRequest$MaxResults": "The maximum number of results to return in one operation.
" } }, + "MaxResultsInteger": { + "base": null, + "refs": { + "BatchGetRumMetricDefinitionsRequest$MaxResults": "The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100.
To retrieve the remaining results, make another call with the returned NextToken
value.
The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100.
", + "ListRumMetricsDestinationsRequest$MaxResults": "The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100.
To retrieve the remaining results, make another call with the returned NextToken
value.
A structure that displays the definition of one extended metric that RUM sends to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.
", + "refs": { + "MetricDefinitions$member": null + } + }, + "MetricDefinitionId": { + "base": null, + "refs": { + "BatchDeleteRumMetricDefinitionsError$MetricDefinitionId": "The ID of the metric definition that caused this error.
", + "MetricDefinition$MetricDefinitionId": "The ID of this metric definition.
", + "MetricDefinitionIds$member": null, + "UpdateRumMetricDefinitionRequest$MetricDefinitionId": "The ID of the metric definition to update.
" + } + }, + "MetricDefinitionIds": { + "base": null, + "refs": { + "BatchDeleteRumMetricDefinitionsRequest$MetricDefinitionIds": "An array of structures which define the metrics that you want to stop sending.
", + "BatchDeleteRumMetricDefinitionsResponse$MetricDefinitionIds": "The IDs of the metric definitions that were deleted.
" + } + }, + "MetricDefinitionRequest": { + "base": "Use this structure to define one extended metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.
Only certain combinations of values for Name
, ValueKey
, and EventPattern
are valid. In addition to what is displayed in the list below, the EventPattern
can also include information used by the DimensionKeys
field.
If Name
is PerformanceNavigationDuration
, then ValueKey
must be event_details.duration
and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}
If Name
is PerformanceResourceDuration
, then ValueKey
must be event_details.duration
and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}
If Name
is NavigationSatisfiedTransaction
, then ValueKey
must be null and the EventPattern
must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">\",2000] }] } }
If Name
is NavigationToleratedTransaction
, then ValueKey
must be null and the EventPattern
must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",2000,\"<\"8000] }] } }
If Name
is NavigationFrustratedTransaction
, then ValueKey
must be null and the EventPattern
must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",8000] }] } }
If Name
is WebVitalsCumulativeLayoutShift
, then ValueKey
must be event_details.value
and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}
If Name
is WebVitalsFirstInputDelay
, then ValueKey
must be event_details.value
and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}
If Name
is WebVitalsLargestContentfulPaint
, then ValueKey
must be event_details.value
and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}
If Name
is JsErrorCount
, then ValueKey
must be null and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}
If Name
is HttpErrorCount
, then ValueKey
must be null and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.http_event\"]}
If Name
is SessionCount
, then ValueKey
must be null and the EventPattern
must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}
The metric definition that caused this error.
", + "MetricDefinitionsRequest$member": null, + "UpdateRumMetricDefinitionRequest$MetricDefinition": "A structure that contains the new definition that you want to use for this metric.
" + } + }, + "MetricDefinitions": { + "base": null, + "refs": { + "BatchCreateRumMetricDefinitionsResponse$MetricDefinitions": "An array of structures that define the extended metrics.
", + "BatchGetRumMetricDefinitionsResponse$MetricDefinitions": "An array of structures that display information about the metrics that are sent by the specified app monitor to the specified destination.
" + } + }, + "MetricDefinitionsRequest": { + "base": null, + "refs": { + "BatchCreateRumMetricDefinitionsRequest$MetricDefinitions": "An array of structures which define the metrics that you want to send.
" + } + }, + "MetricDestination": { + "base": null, + "refs": { + "BatchCreateRumMetricDefinitionsRequest$Destination": "The destination to send the metrics to. Valid values are CloudWatch
and Evidently
. If you specify Evidently
, you must also specify the ARN of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.
Defines the destination where you want to stop sending the specified metrics. Valid values are CloudWatch
and Evidently
. If you specify Evidently
, you must also specify the ARN of the CloudWatchEvidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.
The type of destination that you want to view metrics for. Valid values are CloudWatch
and Evidently
.
The type of destination to delete. Valid values are CloudWatch
and Evidently
.
Specifies whether the destination is CloudWatch
or Evidently
.
Defines the destination to send the metrics to. Valid values are CloudWatch
and Evidently
. If you specify Evidently
, you must also specify the ARN of the CloudWatchEvidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.
The destination to send the metrics to. Valid values are CloudWatch
and Evidently
. If you specify Evidently
, you must also specify the ARN of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.
A structure that displays information about one destination that CloudWatch RUM sends extended metrics to.
", + "refs": { + "MetricDestinationSummaryList$member": null + } + }, + "MetricDestinationSummaryList": { + "base": null, + "refs": { + "ListRumMetricsDestinationsResponse$Destinations": "The list of CloudWatch RUM extended metrics destinations associated with the app monitor that you specified.
" + } + }, + "MetricName": { + "base": null, + "refs": { + "MetricDefinition$Name": "The name of the metric that is defined in this structure.
", + "MetricDefinitionRequest$Name": "The name for the metric that is defined in this structure. Valid values are the following:
PerformanceNavigationDuration
PerformanceResourceDuration
NavigationSatisfiedTransaction
NavigationToleratedTransaction
NavigationFrustratedTransaction
WebVitalsCumulativeLayoutShift
WebVitalsFirstInputDelay
WebVitalsLargestContentfulPaint
JsErrorCount
HttpErrorCount
SessionCount
A structure that defines a key and values that you can use to filter the results. The only performance events that are returned are those that have values matching the ones that you specify in one of your QueryFilter
structures.
For example, you could specify Browser
as the Name
and specify Chrome,Firefox
as the Values
to return events generated only from those browsers.
Specifying Invert
as the Name
works as a \"not equal to\" filter. For example, specify Invert
as the Name
and specify Chrome
as the value to return all events except events from user sessions with the Chrome browser.
Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs.
The number you specify is the percentage of user sessions that will be used.
If you omit this parameter, the default of 10 is used.
" + "AppMonitorConfiguration$SessionSampleRate": "Specifies the portion of user sessions to use for RUM data collection. Choosing a higher portion gives you more data but also incurs more costs.
The range for this value is 0 to 1 inclusive. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0.1 means that 10% of user sessions are sampled.
If you omit this parameter, the default of 0.1 is used, and 10% of sessions will be sampled.
" } }, "StateEnum": { @@ -332,6 +556,12 @@ "AppMonitorDetails$id": "The unique ID of the app monitor.
", "AppMonitorDetails$name": "The name of the app monitor.
", "AppMonitorDetails$version": "The version of the app monitor.
", + "BatchCreateRumMetricDefinitionsError$ErrorCode": "The error code.
", + "BatchCreateRumMetricDefinitionsError$ErrorMessage": "The error message for this metric definition.
", + "BatchDeleteRumMetricDefinitionsError$ErrorCode": "The error code.
", + "BatchDeleteRumMetricDefinitionsError$ErrorMessage": "The error message for this metric definition.
", + "BatchGetRumMetricDefinitionsRequest$NextToken": "Use the token returned by the previous operation to request the next page of results.
", + "BatchGetRumMetricDefinitionsResponse$NextToken": "A token that you can use in a subsequent operation to retrieve the next set of results.
", "ConflictException$message": null, "ConflictException$resourceName": "The name of the resource that is associated with the error.
", "ConflictException$resourceType": "The type of the resource that is associated with the error.
", @@ -340,6 +570,8 @@ "InternalServerException$message": null, "ListAppMonitorsRequest$NextToken": "Use the token returned by the previous operation to request the next page of results.
", "ListAppMonitorsResponse$NextToken": "A token that you can use in a subsequent operation to retrieve the next set of results.
", + "ListRumMetricsDestinationsRequest$NextToken": "Use the token returned by the previous operation to request the next page of results.
", + "ListRumMetricsDestinationsResponse$NextToken": "A token that you can use in a subsequent operation to retrieve the next set of results.
", "PutRumEventsRequest$BatchId": "A unique identifier for this batch of RUM event data.
", "ResourceNotFoundException$message": null, "ResourceNotFoundException$resourceName": "The name of the resource that is associated with the error.
", @@ -429,6 +661,13 @@ "GetAppMonitorDataResponse$NextToken": "A token that you can use in a subsequent operation to retrieve the next set of results.
" } }, + "UnitLabel": { + "base": null, + "refs": { + "MetricDefinition$UnitLabel": "Use this field only if you are sending this metric to CloudWatch. It defines the CloudWatch metric unit that this metric is measured in.
", + "MetricDefinitionRequest$UnitLabel": "The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit.
" + } + }, "UntagResourceRequest": { "base": null, "refs": { @@ -449,6 +688,16 @@ "refs": { } }, + "UpdateRumMetricDefinitionRequest": { + "base": null, + "refs": { + } + }, + "UpdateRumMetricDefinitionResponse": { + "base": null, + "refs": { + } + }, "Url": { "base": null, "refs": { @@ -465,6 +714,13 @@ "base": "One of the arguments for the request is not valid.
", "refs": { } + }, + "ValueKey": { + "base": null, + "refs": { + "MetricDefinition$ValueKey": "The field within the event object that the metric value is sourced from.
", + "MetricDefinitionRequest$ValueKey": "The field within the event object that the metric value is sourced from.
If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.
If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.
" + } } } } diff --git a/models/apis/rum/2018-05-10/endpoint-rule-set-1.json b/models/apis/rum/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000000..448f04b6f57 --- /dev/null +++ b/models/apis/rum/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "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" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rum.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/rum/2018-05-10/endpoint-tests-1.json b/models/apis/rum/2018-05-10/endpoint-tests-1.json new file mode 100644 index 00000000000..ba73cf6f16e --- /dev/null +++ b/models/apis/rum/2018-05-10/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/rum/2018-05-10/paginators-1.json b/models/apis/rum/2018-05-10/paginators-1.json index cf26166d6b4..67cc19335ec 100644 --- a/models/apis/rum/2018-05-10/paginators-1.json +++ b/models/apis/rum/2018-05-10/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "BatchGetRumMetricDefinitions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "MetricDefinitions" + }, "GetAppMonitorData": { "input_token": "NextToken", "output_token": "NextToken", @@ -11,6 +17,12 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "AppMonitorSummaries" + }, + "ListRumMetricsDestinations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Destinations" } } } diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 4af834826e7..6b7d0d43a33 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -7924,6 +7924,13 @@ }, "kms" : { "endpoints" : { + "ProdFips" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "deprecated" : true, + "hostname" : "kms-fips.eu-central-2.amazonaws.com" + }, "af-south-1" : { "variants" : [ { "hostname" : "kms-fips.af-south-1.amazonaws.com", @@ -8067,6 +8074,13 @@ "deprecated" : true, "hostname" : "kms-fips.eu-central-1.amazonaws.com" }, + "eu-central-2-fips" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "deprecated" : true, + "hostname" : "kms-fips.eu-central-2.amazonaws.com" + }, "eu-north-1" : { "variants" : [ { "hostname" : "kms-fips.eu-north-1.amazonaws.com", @@ -20620,7 +20634,8 @@ }, "ssm" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "states" : { diff --git a/service/cloudwatchrum/api.go b/service/cloudwatchrum/api.go index 551c237432d..8a4b1442393 100644 --- a/service/cloudwatchrum/api.go +++ b/service/cloudwatchrum/api.go @@ -13,69 +13,82 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) -const opCreateAppMonitor = "CreateAppMonitor" +const opBatchCreateRumMetricDefinitions = "BatchCreateRumMetricDefinitions" -// CreateAppMonitorRequest generates a "aws/request.Request" representing the -// client's request for the CreateAppMonitor operation. The "output" return +// BatchCreateRumMetricDefinitionsRequest generates a "aws/request.Request" representing the +// client's request for the BatchCreateRumMetricDefinitions 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 CreateAppMonitor for more information on using the CreateAppMonitor +// See BatchCreateRumMetricDefinitions for more information on using the BatchCreateRumMetricDefinitions // 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 CreateAppMonitorRequest method. -// req, resp := client.CreateAppMonitorRequest(params) +// // Example sending a request using the BatchCreateRumMetricDefinitionsRequest method. +// req, resp := client.BatchCreateRumMetricDefinitionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/CreateAppMonitor -func (c *CloudWatchRUM) CreateAppMonitorRequest(input *CreateAppMonitorInput) (req *request.Request, output *CreateAppMonitorOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/BatchCreateRumMetricDefinitions +func (c *CloudWatchRUM) BatchCreateRumMetricDefinitionsRequest(input *BatchCreateRumMetricDefinitionsInput) (req *request.Request, output *BatchCreateRumMetricDefinitionsOutput) { op := &request.Operation{ - Name: opCreateAppMonitor, + Name: opBatchCreateRumMetricDefinitions, HTTPMethod: "POST", - HTTPPath: "/appmonitor", + HTTPPath: "/rummetrics/{AppMonitorName}/metrics", } if input == nil { - input = &CreateAppMonitorInput{} + input = &BatchCreateRumMetricDefinitionsInput{} } - output = &CreateAppMonitorOutput{} + output = &BatchCreateRumMetricDefinitionsOutput{} req = c.newRequest(op, input, output) return } -// CreateAppMonitor API operation for CloudWatch RUM. +// BatchCreateRumMetricDefinitions API operation for CloudWatch RUM. // -// Creates a Amazon CloudWatch RUM app monitor, which collects telemetry data -// from your application and sends that data to RUM. The data includes performance -// and reliability information such as page load time, client-side errors, and -// user behavior. +// Specifies the extended metrics that you want a CloudWatch RUM app monitor +// to send to a destination. Valid destinations include CloudWatch and Evidently. // -// You use this operation only to create a new app monitor. To update an existing -// app monitor, use UpdateAppMonitor (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_UpdateAppMonitor.html) -// instead. +// By default, RUM app monitors send some metrics to CloudWatch. These default +// metrics are listed in CloudWatch metrics that you can collect with CloudWatch +// RUM (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-metrics.html). // -// After you create an app monitor, sign in to the CloudWatch RUM console to -// get the JavaScript code snippet to add to your web application. For more -// information, see How do I find a code snippet that I've already generated? -// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-find-code-snippet.html) +// If you also send extended metrics, you can send metrics to Evidently as well +// as CloudWatch, and you can also optionally send the metrics with additional +// dimensions. The valid dimension names for the additional dimensions are BrowserName, +// CountryCode, DeviceType, FileType, OSName, and PageId. For more information, +// see Extended metrics that you can send to CloudWatch and CloudWatch Evidently +// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-vended-metrics.html). +// +// The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions +// operation is 200. +// +//The maximum number of metric definitions that one destination can contain +// is 2000.
Extended metrics sent are charged as CloudWatch custom +// metrics. Each combination of additional dimension name and dimension value +// counts as a custom metric. For more information, see Amazon +// CloudWatch Pricing.
You must have already created a destination +// for the metrics before you send them. For more information, see PutRumMetricsDestination.
+//If some metric definitions specified in a BatchCreateRumMetricDefinitions
+// operations are not valid, those metric definitions fail and return errors,
+// but all valid metric definitions in the same operation still succeed.
You can't include both ExcludedPages
and IncludedPages
+ // in the same operation.
You can't include both ExcludedPages
and IncludedPages
- // in the same operation.
You can associate as many as 50 tags with an app monitor.
For + // more information, see Tagging + // Amazon Web Services resources.
+ Tags map[string]*string `type:"map"` } // String returns the string representation. @@ -1323,7 +3006,7 @@ type AppMonitorConfiguration struct { // 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 AppMonitorConfiguration) String() string { +func (s CreateAppMonitorInput) String() string { return awsutil.Prettify(s) } @@ -1332,15 +3015,29 @@ func (s AppMonitorConfiguration) String() string { // 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 AppMonitorConfiguration) GoString() string { +func (s CreateAppMonitorInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AppMonitorConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AppMonitorConfiguration"} - if s.IdentityPoolId != nil && len(*s.IdentityPoolId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("IdentityPoolId", 1)) +func (s *CreateAppMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAppMonitorInput"} + if s.Domain == nil { + invalidParams.Add(request.NewErrParamRequired("Domain")) + } + if s.Domain != nil && len(*s.Domain) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Domain", 1)) + } + 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.AppMonitorConfiguration != nil { + if err := s.AppMonitorConfiguration.Validate(); err != nil { + invalidParams.AddNested("AppMonitorConfiguration", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -1349,72 +3046,79 @@ func (s *AppMonitorConfiguration) Validate() error { return nil } -// SetAllowCookies sets the AllowCookies field's value. -func (s *AppMonitorConfiguration) SetAllowCookies(v bool) *AppMonitorConfiguration { - s.AllowCookies = &v +// SetAppMonitorConfiguration sets the AppMonitorConfiguration field's value. +func (s *CreateAppMonitorInput) SetAppMonitorConfiguration(v *AppMonitorConfiguration) *CreateAppMonitorInput { + s.AppMonitorConfiguration = v return s } -// SetEnableXRay sets the EnableXRay field's value. -func (s *AppMonitorConfiguration) SetEnableXRay(v bool) *AppMonitorConfiguration { - s.EnableXRay = &v +// SetCwLogEnabled sets the CwLogEnabled field's value. +func (s *CreateAppMonitorInput) SetCwLogEnabled(v bool) *CreateAppMonitorInput { + s.CwLogEnabled = &v return s } -// SetExcludedPages sets the ExcludedPages field's value. -func (s *AppMonitorConfiguration) SetExcludedPages(v []*string) *AppMonitorConfiguration { - s.ExcludedPages = v +// SetDomain sets the Domain field's value. +func (s *CreateAppMonitorInput) SetDomain(v string) *CreateAppMonitorInput { + s.Domain = &v return s } -// SetFavoritePages sets the FavoritePages field's value. -func (s *AppMonitorConfiguration) SetFavoritePages(v []*string) *AppMonitorConfiguration { - s.FavoritePages = v +// SetName sets the Name field's value. +func (s *CreateAppMonitorInput) SetName(v string) *CreateAppMonitorInput { + s.Name = &v return s } -// SetGuestRoleArn sets the GuestRoleArn field's value. -func (s *AppMonitorConfiguration) SetGuestRoleArn(v string) *AppMonitorConfiguration { - s.GuestRoleArn = &v +// SetTags sets the Tags field's value. +func (s *CreateAppMonitorInput) SetTags(v map[string]*string) *CreateAppMonitorInput { + s.Tags = v return s } -// SetIdentityPoolId sets the IdentityPoolId field's value. -func (s *AppMonitorConfiguration) SetIdentityPoolId(v string) *AppMonitorConfiguration { - s.IdentityPoolId = &v - return s +type CreateAppMonitorOutput struct { + _ struct{} `type:"structure"` + + // The unique ID of the new app monitor. + Id *string `min:"36" type:"string"` } -// SetIncludedPages sets the IncludedPages field's value. -func (s *AppMonitorConfiguration) SetIncludedPages(v []*string) *AppMonitorConfiguration { - s.IncludedPages = v - return s +// 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 CreateAppMonitorOutput) String() string { + return awsutil.Prettify(s) } -// SetSessionSampleRate sets the SessionSampleRate field's value. -func (s *AppMonitorConfiguration) SetSessionSampleRate(v float64) *AppMonitorConfiguration { - s.SessionSampleRate = &v - return 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 CreateAppMonitorOutput) GoString() string { + return s.String() } -// SetTelemetries sets the Telemetries field's value. -func (s *AppMonitorConfiguration) SetTelemetries(v []*string) *AppMonitorConfiguration { - s.Telemetries = v +// SetId sets the Id field's value. +func (s *CreateAppMonitorOutput) SetId(v string) *CreateAppMonitorOutput { + s.Id = &v return s } -// A structure that contains information about the RUM app monitor. -type AppMonitorDetails struct { +// A structure that contains the information about whether the app monitor stores +// copies of the data that RUM collects in CloudWatch Logs. If it does, this +// structure also contains the name of the log group. +type CwLog struct { _ struct{} `type:"structure"` - // The unique ID of the app monitor. - Id *string `locationName:"id" type:"string"` - - // The name of the app monitor. - Name *string `locationName:"name" type:"string"` + // Indicated whether the app monitor stores copies of the data that RUM collects + // in CloudWatch Logs. + CwLogEnabled *bool `type:"boolean"` - // The version of the app monitor. - Version *string `locationName:"version" type:"string"` + // The name of the log group where the copies are stored. + CwLogGroup *string `type:"string"` } // String returns the string representation. @@ -1422,7 +3126,7 @@ type AppMonitorDetails struct { // 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 AppMonitorDetails) String() string { +func (s CwLog) String() string { return awsutil.Prettify(s) } @@ -1431,46 +3135,64 @@ func (s AppMonitorDetails) String() string { // 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 AppMonitorDetails) GoString() string { +func (s CwLog) GoString() string { return s.String() } -// SetId sets the Id field's value. -func (s *AppMonitorDetails) SetId(v string) *AppMonitorDetails { - s.Id = &v - return s -} - -// SetName sets the Name field's value. -func (s *AppMonitorDetails) SetName(v string) *AppMonitorDetails { - s.Name = &v +// SetCwLogEnabled sets the CwLogEnabled field's value. +func (s *CwLog) SetCwLogEnabled(v bool) *CwLog { + s.CwLogEnabled = &v return s } -// SetVersion sets the Version field's value. -func (s *AppMonitorDetails) SetVersion(v string) *AppMonitorDetails { - s.Version = &v +// SetCwLogGroup sets the CwLogGroup field's value. +func (s *CwLog) SetCwLogGroup(v string) *CwLog { + s.CwLogGroup = &v return s } -// A structure that includes some data about app monitors and their settings. -type AppMonitorSummary struct { +// A structure that contains information about whether this app monitor stores +// a copy of the telemetry data that RUM collects using CloudWatch Logs. +type DataStorage struct { _ struct{} `type:"structure"` - // The date and time that the app monitor was created. - Created *string `min:"19" type:"string"` + // A structure that contains the information about whether the app monitor stores + // copies of the data that RUM collects in CloudWatch Logs. If it does, this + // structure also contains the name of the log group. + CwLog *CwLog `type:"structure"` +} - // The unique ID of this app monitor. - Id *string `min:"36" 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 DataStorage) String() string { + return awsutil.Prettify(s) +} - // The date and time of the most recent changes to this app monitor's configuration. - LastModified *string `min:"19" type:"string"` +// 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 DataStorage) GoString() string { + return s.String() +} - // The name of this app monitor. - Name *string `min:"1" type:"string"` +// SetCwLog sets the CwLog field's value. +func (s *DataStorage) SetCwLog(v *CwLog) *DataStorage { + s.CwLog = v + return s +} - // The current state of this app monitor. - State *string `type:"string" enum:"StateEnum"` +type DeleteAppMonitorInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the app monitor to delete. + // + // Name is a required field + Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -1478,7 +3200,7 @@ type AppMonitorSummary struct { // 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 AppMonitorSummary) String() string { +func (s DeleteAppMonitorInput) String() string { return awsutil.Prettify(s) } @@ -1487,54 +3209,72 @@ func (s AppMonitorSummary) String() string { // 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 AppMonitorSummary) GoString() string { +func (s DeleteAppMonitorInput) GoString() string { return s.String() } -// SetCreated sets the Created field's value. -func (s *AppMonitorSummary) SetCreated(v string) *AppMonitorSummary { - s.Created = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAppMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAppMonitorInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetId sets the Id field's value. -func (s *AppMonitorSummary) SetId(v string) *AppMonitorSummary { - s.Id = &v +// SetName sets the Name field's value. +func (s *DeleteAppMonitorInput) SetName(v string) *DeleteAppMonitorInput { + s.Name = &v return s } -// SetLastModified sets the LastModified field's value. -func (s *AppMonitorSummary) SetLastModified(v string) *AppMonitorSummary { - s.LastModified = &v - return s +type DeleteAppMonitorOutput struct { + _ struct{} `type:"structure"` } -// SetName sets the Name field's value. -func (s *AppMonitorSummary) SetName(v string) *AppMonitorSummary { - s.Name = &v - return s +// 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 DeleteAppMonitorOutput) String() string { + return awsutil.Prettify(s) } -// SetState sets the State field's value. -func (s *AppMonitorSummary) SetState(v string) *AppMonitorSummary { - s.State = &v - return 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 DeleteAppMonitorOutput) GoString() string { + return s.String() } -// This operation attempted to create a resource that already exists. -type ConflictException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +type DeleteRumMetricsDestinationInput struct { + _ struct{} `type:"structure" nopayload:"true"` - Message_ *string `locationName:"message" type:"string"` + // The name of the app monitor that is sending metrics to the destination that + // you want to delete. + // + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` - // The name of the resource that is associated with the error. + // The type of destination to delete. Valid values are CloudWatch and Evidently. // - // ResourceName is a required field - ResourceName *string `locationName:"resourceName" type:"string" required:"true"` + // Destination is a required field + Destination *string `location:"querystring" locationName:"destination" type:"string" required:"true" enum:"MetricDestination"` - // The type of the resource that is associated with the error. - ResourceType *string `locationName:"resourceType" type:"string"` + // This parameter is required if Destination is Evidently. If Destination is + // CloudWatch, do not use this parameter. This parameter specifies the ARN of + // the Evidently experiment that corresponds to the destination to delete. + DestinationArn *string `location:"querystring" locationName:"destinationArn" type:"string"` } // String returns the string representation. @@ -1542,7 +3282,7 @@ type ConflictException struct { // 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 { +func (s DeleteRumMetricsDestinationInput) String() string { return awsutil.Prettify(s) } @@ -1551,94 +3291,93 @@ func (s ConflictException) String() string { // 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 { +func (s DeleteRumMetricsDestinationInput) GoString() string { return s.String() } -func newErrorConflictException(v protocol.ResponseMetadata) error { - return &ConflictException{ - RespMetadata: v, +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRumMetricsDestinationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteRumMetricsDestinationInput"} + if s.AppMonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("AppMonitorName")) + } + if s.AppMonitorName != nil && len(*s.AppMonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AppMonitorName", 1)) } + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// Code returns the exception type name. -func (s *ConflictException) Code() string { - return "ConflictException" +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *DeleteRumMetricsDestinationInput) SetAppMonitorName(v string) *DeleteRumMetricsDestinationInput { + s.AppMonitorName = &v + return s } -// Message returns the exception's message. -func (s *ConflictException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetDestination sets the Destination field's value. +func (s *DeleteRumMetricsDestinationInput) SetDestination(v string) *DeleteRumMetricsDestinationInput { + s.Destination = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ConflictException) OrigErr() error { - return nil +// SetDestinationArn sets the DestinationArn field's value. +func (s *DeleteRumMetricsDestinationInput) SetDestinationArn(v string) *DeleteRumMetricsDestinationInput { + s.DestinationArn = &v + return s } -func (s *ConflictException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +type DeleteRumMetricsDestinationOutput struct { + _ struct{} `type:"structure"` } -// Status code returns the HTTP status code for the request's response error. -func (s *ConflictException) StatusCode() int { - return s.RespMetadata.StatusCode +// 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 DeleteRumMetricsDestinationOutput) String() string { + return awsutil.Prettify(s) } -// RequestID returns the service's response RequestID for request. -func (s *ConflictException) RequestID() string { - return s.RespMetadata.RequestID +// 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 DeleteRumMetricsDestinationOutput) GoString() string { + return s.String() } -type CreateAppMonitorInput struct { +type GetAppMonitorDataInput struct { _ struct{} `type:"structure"` - // A structure that contains much of the configuration data for the app monitor. - // If you are using Amazon Cognito for authorization, you must include this - // structure in your request, and it must include the ID of the Amazon Cognito - // identity pool to use for authorization. If you don't include AppMonitorConfiguration, - // you must set up your own authorization method. For more information, see - // Authorize your application to send data to Amazon Web Services (https://docs.aws.amazon.com/monitoring/CloudWatch-RUM-get-started-authorization.html). - // - // If you omit this argument, the sample rate used for RUM is set to 10% of - // the user sessions. - AppMonitorConfiguration *AppMonitorConfiguration `type:"structure"` - - // Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter - // specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch - // Logs in your account. This enables you to keep the telemetry data for more - // than 30 days, but it does incur Amazon CloudWatch Logs charges. - // - // If you omit this parameter, the default is false. - CwLogEnabled *bool `type:"boolean"` + // An array of structures that you can use to filter the results to those that + // match one or more sets of key-value pairs that you specify. + Filters []*QueryFilter `type:"list"` - // The top-level internet domain name for which your application has administrative - // authority. - // - // Domain is a required field - Domain *string `min:"1" type:"string" required:"true"` + // The maximum number of results to return in one operation. + MaxResults *int64 `type:"integer"` - // A name for the app monitor. + // The name of the app monitor that collected the data that you want to retrieve. // // Name is a required field - Name *string `min:"1" type:"string" required:"true"` + Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` - // Assigns one or more tags (key-value pairs) to the app monitor. - // - // 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. + // Use the token returned by the previous operation to request the next page + // of results. + NextToken *string `type:"string"` + + // A structure that defines the time range that you want to retrieve results + // from. // - //You can associate as many as 50 tags with an app monitor.
For - // more information, see Tagging - // Amazon Web Services resources.
- Tags map[string]*string `type:"map"` + // TimeRange is a required field + TimeRange *TimeRange `type:"structure" required:"true"` } // String returns the string representation. @@ -1646,7 +3385,7 @@ type CreateAppMonitorInput struct { // 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 CreateAppMonitorInput) String() string { +func (s GetAppMonitorDataInput) String() string { return awsutil.Prettify(s) } @@ -1655,28 +3394,25 @@ func (s CreateAppMonitorInput) String() string { // 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 CreateAppMonitorInput) GoString() string { +func (s GetAppMonitorDataInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAppMonitorInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAppMonitorInput"} - if s.Domain == nil { - invalidParams.Add(request.NewErrParamRequired("Domain")) - } - if s.Domain != nil && len(*s.Domain) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Domain", 1)) - } +func (s *GetAppMonitorDataInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAppMonitorDataInput"} 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.AppMonitorConfiguration != nil { - if err := s.AppMonitorConfiguration.Validate(); err != nil { - invalidParams.AddNested("AppMonitorConfiguration", err.(request.ErrInvalidParams)) + if s.TimeRange == nil { + invalidParams.Add(request.NewErrParamRequired("TimeRange")) + } + if s.TimeRange != nil { + if err := s.TimeRange.Validate(); err != nil { + invalidParams.AddNested("TimeRange", err.(request.ErrInvalidParams)) } } @@ -1686,41 +3422,45 @@ func (s *CreateAppMonitorInput) Validate() error { return nil } -// SetAppMonitorConfiguration sets the AppMonitorConfiguration field's value. -func (s *CreateAppMonitorInput) SetAppMonitorConfiguration(v *AppMonitorConfiguration) *CreateAppMonitorInput { - s.AppMonitorConfiguration = v +// SetFilters sets the Filters field's value. +func (s *GetAppMonitorDataInput) SetFilters(v []*QueryFilter) *GetAppMonitorDataInput { + s.Filters = v return s } -// SetCwLogEnabled sets the CwLogEnabled field's value. -func (s *CreateAppMonitorInput) SetCwLogEnabled(v bool) *CreateAppMonitorInput { - s.CwLogEnabled = &v +// SetMaxResults sets the MaxResults field's value. +func (s *GetAppMonitorDataInput) SetMaxResults(v int64) *GetAppMonitorDataInput { + s.MaxResults = &v return s } -// SetDomain sets the Domain field's value. -func (s *CreateAppMonitorInput) SetDomain(v string) *CreateAppMonitorInput { - s.Domain = &v +// SetName sets the Name field's value. +func (s *GetAppMonitorDataInput) SetName(v string) *GetAppMonitorDataInput { + s.Name = &v return s } -// SetName sets the Name field's value. -func (s *CreateAppMonitorInput) SetName(v string) *CreateAppMonitorInput { - s.Name = &v +// SetNextToken sets the NextToken field's value. +func (s *GetAppMonitorDataInput) SetNextToken(v string) *GetAppMonitorDataInput { + s.NextToken = &v return s } -// SetTags sets the Tags field's value. -func (s *CreateAppMonitorInput) SetTags(v map[string]*string) *CreateAppMonitorInput { - s.Tags = v +// SetTimeRange sets the TimeRange field's value. +func (s *GetAppMonitorDataInput) SetTimeRange(v *TimeRange) *GetAppMonitorDataInput { + s.TimeRange = v return s } -type CreateAppMonitorOutput struct { +type GetAppMonitorDataOutput struct { _ struct{} `type:"structure"` - // The unique ID of the new app monitor. - Id *string `min:"36" type:"string"` + // The events that RUM collected that match your request. + Events []*string `type:"list"` + + // A token that you can use in a subsequent operation to retrieve the next set + // of results. + NextToken *string `type:"string"` } // String returns the string representation. @@ -1728,7 +3468,7 @@ type CreateAppMonitorOutput struct { // 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 CreateAppMonitorOutput) String() string { +func (s GetAppMonitorDataOutput) String() string { return awsutil.Prettify(s) } @@ -1737,28 +3477,29 @@ func (s CreateAppMonitorOutput) String() string { // 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 CreateAppMonitorOutput) GoString() string { +func (s GetAppMonitorDataOutput) GoString() string { return s.String() } -// SetId sets the Id field's value. -func (s *CreateAppMonitorOutput) SetId(v string) *CreateAppMonitorOutput { - s.Id = &v +// SetEvents sets the Events field's value. +func (s *GetAppMonitorDataOutput) SetEvents(v []*string) *GetAppMonitorDataOutput { + s.Events = v return s } -// A structure that contains the information about whether the app monitor stores -// copies of the data that RUM collects in CloudWatch Logs. If it does, this -// structure also contains the name of the log group. -type CwLog struct { - _ struct{} `type:"structure"` +// SetNextToken sets the NextToken field's value. +func (s *GetAppMonitorDataOutput) SetNextToken(v string) *GetAppMonitorDataOutput { + s.NextToken = &v + return s +} - // Indicated whether the app monitor stores copies of the data that RUM collects - // in CloudWatch Logs. - CwLogEnabled *bool `type:"boolean"` +type GetAppMonitorInput struct { + _ struct{} `type:"structure" nopayload:"true"` - // The name of the log group where the copies are stored. - CwLogGroup *string `type:"string"` + // The app monitor to retrieve information for. + // + // Name is a required field + Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -1766,7 +3507,7 @@ type CwLog struct { // 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 CwLog) String() string { +func (s GetAppMonitorInput) String() string { return awsutil.Prettify(s) } @@ -1775,31 +3516,37 @@ func (s CwLog) String() string { // 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 CwLog) GoString() string { +func (s GetAppMonitorInput) GoString() string { return s.String() } -// SetCwLogEnabled sets the CwLogEnabled field's value. -func (s *CwLog) SetCwLogEnabled(v bool) *CwLog { - s.CwLogEnabled = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAppMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAppMonitorInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetCwLogGroup sets the CwLogGroup field's value. -func (s *CwLog) SetCwLogGroup(v string) *CwLog { - s.CwLogGroup = &v +// SetName sets the Name field's value. +func (s *GetAppMonitorInput) SetName(v string) *GetAppMonitorInput { + s.Name = &v return s } -// A structure that contains information about whether this app monitor stores -// a copy of the telemetry data that RUM collects using CloudWatch Logs. -type DataStorage struct { +type GetAppMonitorOutput struct { _ struct{} `type:"structure"` - // A structure that contains the information about whether the app monitor stores - // copies of the data that RUM collects in CloudWatch Logs. If it does, this - // structure also contains the name of the log group. - CwLog *CwLog `type:"structure"` + // A structure containing all the configuration information for the app monitor. + AppMonitor *AppMonitor `type:"structure"` } // String returns the string representation. @@ -1807,7 +3554,7 @@ type DataStorage struct { // 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 DataStorage) String() string { +func (s GetAppMonitorOutput) String() string { return awsutil.Prettify(s) } @@ -1816,23 +3563,25 @@ func (s DataStorage) String() string { // 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 DataStorage) GoString() string { +func (s GetAppMonitorOutput) GoString() string { return s.String() } -// SetCwLog sets the CwLog field's value. -func (s *DataStorage) SetCwLog(v *CwLog) *DataStorage { - s.CwLog = v +// SetAppMonitor sets the AppMonitor field's value. +func (s *GetAppMonitorOutput) SetAppMonitor(v *AppMonitor) *GetAppMonitorOutput { + s.AppMonitor = v return s } -type DeleteAppMonitorInput struct { - _ struct{} `type:"structure" nopayload:"true"` +// Internal service exception. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // The name of the app monitor to delete. - // - // Name is a required field - Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` + Message_ *string `locationName:"message" type:"string"` + + // The value of a parameter in the request caused an error. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` } // String returns the string representation. @@ -1840,7 +3589,7 @@ type DeleteAppMonitorInput struct { // 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 DeleteAppMonitorInput) String() string { +func (s InternalServerException) String() string { return awsutil.Prettify(s) } @@ -1849,78 +3598,58 @@ func (s DeleteAppMonitorInput) String() string { // 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 DeleteAppMonitorInput) GoString() string { +func (s InternalServerException) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAppMonitorInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAppMonitorInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, } - return nil } -// SetName sets the Name field's value. -func (s *DeleteAppMonitorInput) SetName(v string) *DeleteAppMonitorInput { - s.Name = &v - return s +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" } -type DeleteAppMonitorOutput struct { - _ struct{} `type:"structure"` +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" } -// 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 DeleteAppMonitorOutput) String() string { - return awsutil.Prettify(s) +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil } -// 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 DeleteAppMonitorOutput) GoString() string { - return s.String() +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) } -type GetAppMonitorDataInput struct { - _ struct{} `type:"structure"` - - // An array of structures that you can use to filter the results to those that - // match one or more sets of key-value pairs that you specify. - Filters []*QueryFilter `type:"list"` +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} - // The maximum number of results to return in one operation. - MaxResults *int64 `type:"integer"` +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} - // The name of the app monitor that collected the data that you want to retrieve. - // - // Name is a required field - Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` +type ListAppMonitorsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results to return in one operation. The default is + // 50. The maximum that you can specify is 100. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` // Use the token returned by the previous operation to request the next page // of results. - NextToken *string `type:"string"` - - // A structure that defines the time range that you want to retrieve results - // from. - // - // TimeRange is a required field - TimeRange *TimeRange `type:"structure" required:"true"` + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -1928,7 +3657,7 @@ type GetAppMonitorDataInput struct { // 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 GetAppMonitorDataInput) String() string { +func (s ListAppMonitorsInput) String() string { return awsutil.Prettify(s) } @@ -1937,26 +3666,15 @@ func (s GetAppMonitorDataInput) String() string { // 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 GetAppMonitorDataInput) GoString() string { +func (s ListAppMonitorsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAppMonitorDataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAppMonitorDataInput"} - 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.TimeRange == nil { - invalidParams.Add(request.NewErrParamRequired("TimeRange")) - } - if s.TimeRange != nil { - if err := s.TimeRange.Validate(); err != nil { - invalidParams.AddNested("TimeRange", err.(request.ErrInvalidParams)) - } +func (s *ListAppMonitorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAppMonitorsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if invalidParams.Len() > 0 { @@ -1965,41 +3683,23 @@ func (s *GetAppMonitorDataInput) Validate() error { return nil } -// SetFilters sets the Filters field's value. -func (s *GetAppMonitorDataInput) SetFilters(v []*QueryFilter) *GetAppMonitorDataInput { - s.Filters = v - return s -} - // SetMaxResults sets the MaxResults field's value. -func (s *GetAppMonitorDataInput) SetMaxResults(v int64) *GetAppMonitorDataInput { +func (s *ListAppMonitorsInput) SetMaxResults(v int64) *ListAppMonitorsInput { s.MaxResults = &v return s } -// SetName sets the Name field's value. -func (s *GetAppMonitorDataInput) SetName(v string) *GetAppMonitorDataInput { - s.Name = &v - return s -} - // SetNextToken sets the NextToken field's value. -func (s *GetAppMonitorDataInput) SetNextToken(v string) *GetAppMonitorDataInput { +func (s *ListAppMonitorsInput) SetNextToken(v string) *ListAppMonitorsInput { s.NextToken = &v return s } -// SetTimeRange sets the TimeRange field's value. -func (s *GetAppMonitorDataInput) SetTimeRange(v *TimeRange) *GetAppMonitorDataInput { - s.TimeRange = v - return s -} - -type GetAppMonitorDataOutput struct { +type ListAppMonitorsOutput struct { _ struct{} `type:"structure"` - // The events that RUM collected that match your request. - Events []*string `type:"list"` + // An array of structures that contain information about the returned app monitors. + AppMonitorSummaries []*AppMonitorSummary `type:"list"` // A token that you can use in a subsequent operation to retrieve the next set // of results. @@ -2011,7 +3711,7 @@ type GetAppMonitorDataOutput struct { // 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 GetAppMonitorDataOutput) String() string { +func (s ListAppMonitorsOutput) String() string { return awsutil.Prettify(s) } @@ -2020,29 +3720,41 @@ func (s GetAppMonitorDataOutput) String() string { // 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 GetAppMonitorDataOutput) GoString() string { +func (s ListAppMonitorsOutput) GoString() string { return s.String() } -// SetEvents sets the Events field's value. -func (s *GetAppMonitorDataOutput) SetEvents(v []*string) *GetAppMonitorDataOutput { - s.Events = v +// SetAppMonitorSummaries sets the AppMonitorSummaries field's value. +func (s *ListAppMonitorsOutput) SetAppMonitorSummaries(v []*AppMonitorSummary) *ListAppMonitorsOutput { + s.AppMonitorSummaries = v return s } // SetNextToken sets the NextToken field's value. -func (s *GetAppMonitorDataOutput) SetNextToken(v string) *GetAppMonitorDataOutput { +func (s *ListAppMonitorsOutput) SetNextToken(v string) *ListAppMonitorsOutput { s.NextToken = &v return s } -type GetAppMonitorInput struct { +type ListRumMetricsDestinationsInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The app monitor to retrieve information for. + // The name of the app monitor associated with the destinations that you want + // to retrieve. // - // Name is a required field - Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` + + // The maximum number of results to return in one operation. The default is + // 50. The maximum that you can specify is 100. + // + // To retrieve the remaining results, make another call with the returned NextToken + // value. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // Use the token returned by the previous operation to request the next page + // of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -2050,7 +3762,7 @@ type GetAppMonitorInput struct { // 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 GetAppMonitorInput) String() string { +func (s ListRumMetricsDestinationsInput) String() string { return awsutil.Prettify(s) } @@ -2059,18 +3771,21 @@ func (s GetAppMonitorInput) String() string { // 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 GetAppMonitorInput) GoString() string { +func (s ListRumMetricsDestinationsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAppMonitorInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAppMonitorInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) +func (s *ListRumMetricsDestinationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRumMetricsDestinationsInput"} + if s.AppMonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("AppMonitorName")) } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + if s.AppMonitorName != nil && len(*s.AppMonitorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AppMonitorName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if invalidParams.Len() > 0 { @@ -2079,17 +3794,34 @@ func (s *GetAppMonitorInput) Validate() error { return nil } -// SetName sets the Name field's value. -func (s *GetAppMonitorInput) SetName(v string) *GetAppMonitorInput { - s.Name = &v +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *ListRumMetricsDestinationsInput) SetAppMonitorName(v string) *ListRumMetricsDestinationsInput { + s.AppMonitorName = &v return s } -type GetAppMonitorOutput struct { +// SetMaxResults sets the MaxResults field's value. +func (s *ListRumMetricsDestinationsInput) SetMaxResults(v int64) *ListRumMetricsDestinationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRumMetricsDestinationsInput) SetNextToken(v string) *ListRumMetricsDestinationsInput { + s.NextToken = &v + return s +} + +type ListRumMetricsDestinationsOutput struct { _ struct{} `type:"structure"` - // A structure containing all the configuration information for the app monitor. - AppMonitor *AppMonitor `type:"structure"` + // The list of CloudWatch RUM extended metrics destinations associated with + // the app monitor that you specified. + Destinations []*MetricDestinationSummary `type:"list"` + + // A token that you can use in a subsequent operation to retrieve the next set + // of results. + NextToken *string `type:"string"` } // String returns the string representation. @@ -2097,7 +3829,7 @@ type GetAppMonitorOutput struct { // 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 GetAppMonitorOutput) String() string { +func (s ListRumMetricsDestinationsOutput) String() string { return awsutil.Prettify(s) } @@ -2106,25 +3838,29 @@ func (s GetAppMonitorOutput) String() string { // 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 GetAppMonitorOutput) GoString() string { +func (s ListRumMetricsDestinationsOutput) GoString() string { return s.String() } -// SetAppMonitor sets the AppMonitor field's value. -func (s *GetAppMonitorOutput) SetAppMonitor(v *AppMonitor) *GetAppMonitorOutput { - s.AppMonitor = v +// SetDestinations sets the Destinations field's value. +func (s *ListRumMetricsDestinationsOutput) SetDestinations(v []*MetricDestinationSummary) *ListRumMetricsDestinationsOutput { + s.Destinations = v return s } -// Internal service exception. -type InternalServerException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// SetNextToken sets the NextToken field's value. +func (s *ListRumMetricsDestinationsOutput) SetNextToken(v string) *ListRumMetricsDestinationsOutput { + s.NextToken = &v + return s +} - Message_ *string `locationName:"message" type:"string"` +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` - // The value of a parameter in the request caused an error. - RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` + // The ARN of the resource that you want to see the tags of. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"ResourceArn" type:"string" required:"true"` } // String returns the string representation. @@ -2132,7 +3868,7 @@ type InternalServerException struct { // 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 InternalServerException) String() string { +func (s ListTagsForResourceInput) String() string { return awsutil.Prettify(s) } @@ -2141,57 +3877,44 @@ func (s InternalServerException) String() string { // 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 InternalServerException) GoString() string { +func (s ListTagsForResourceInput) GoString() string { return s.String() } -func newErrorInternalServerException(v protocol.ResponseMetadata) error { - return &InternalServerException{ - RespMetadata: v, +// 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")) } -} - -// Code returns the exception type name. -func (s *InternalServerException) Code() string { - return "InternalServerException" -} - -// Message returns the exception's message. -func (s *InternalServerException) Message() string { - if s.Message_ != nil { - return *s.Message_ + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) } - return "" -} -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InternalServerException) OrigErr() error { + if invalidParams.Len() > 0 { + return invalidParams + } return nil } -func (s *InternalServerException) 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 *InternalServerException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InternalServerException) RequestID() string { - return s.RespMetadata.RequestID +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s } -type ListAppMonitorsInput struct { - _ struct{} `type:"structure" nopayload:"true"` +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` - // The maximum number of results to return in one operation. - MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + // The ARN of the resource that you are viewing. + // + // ResourceArn is a required field + ResourceArn *string `type:"string" required:"true"` - // Use the token returned by the previous operation to request the next page - // of results. - NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + // The list of tag keys and values associated with the resource you specified. + // + // Tags is a required field + Tags map[string]*string `type:"map" required:"true"` } // String returns the string representation. @@ -2199,7 +3922,7 @@ type ListAppMonitorsInput struct { // 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 ListAppMonitorsInput) String() string { +func (s ListTagsForResourceOutput) String() string { return awsutil.Prettify(s) } @@ -2208,31 +3931,58 @@ func (s ListAppMonitorsInput) String() string { // 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 ListAppMonitorsInput) GoString() string { +func (s ListTagsForResourceOutput) GoString() string { return s.String() } -// SetMaxResults sets the MaxResults field's value. -func (s *ListAppMonitorsInput) SetMaxResults(v int64) *ListAppMonitorsInput { - s.MaxResults = &v +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceOutput) SetResourceArn(v string) *ListTagsForResourceOutput { + s.ResourceArn = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListAppMonitorsInput) SetNextToken(v string) *ListAppMonitorsInput { - s.NextToken = &v +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v return s } -type ListAppMonitorsOutput struct { +// A structure that displays the definition of one extended metric that RUM +// sends to CloudWatch or CloudWatch Evidently. For more information, see Additional +// metrics that you can send to CloudWatch and CloudWatch Evidently (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-vended-metrics.html). +type MetricDefinition struct { _ struct{} `type:"structure"` - // An array of structures that contain information about the returned app monitors. - AppMonitorSummaries []*AppMonitorSummary `type:"list"` + // This field is a map of field paths to dimension names. It defines the dimensions + // to associate with this metric in CloudWatch The value of this field is used + // only if the metric destination is CloudWatch. If the metric destination is + // Evidently, the value of DimensionKeys is ignored. + DimensionKeys map[string]*string `type:"map"` - // A token that you can use in a subsequent operation to retrieve the next set - // of results. - NextToken *string `type:"string"` + // The pattern that defines the metric. RUM checks events that happen in a user's + // session against the pattern, and events that match the pattern are sent to + // the metric destination. + // + // If the metrics destination is CloudWatch and the event also matches a value + // in DimensionKeys, then the metric is published with the specified dimensions. + EventPattern *string `type:"string"` + + // The ID of this metric definition. + // + // MetricDefinitionId is a required field + MetricDefinitionId *string `min:"1" type:"string" required:"true"` + + // The name of the metric that is defined in this structure. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Use this field only if you are sending this metric to CloudWatch. It defines + // the CloudWatch metric unit that this metric is measured in. + UnitLabel *string `min:"1" type:"string"` + + // The field within the event object that the metric value is sourced from. + ValueKey *string `min:"1" type:"string"` } // String returns the string representation. @@ -2240,7 +3990,7 @@ type ListAppMonitorsOutput struct { // 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 ListAppMonitorsOutput) String() string { +func (s MetricDefinition) String() string { return awsutil.Prettify(s) } @@ -2249,29 +3999,179 @@ func (s ListAppMonitorsOutput) String() string { // 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 ListAppMonitorsOutput) GoString() string { +func (s MetricDefinition) GoString() string { return s.String() } -// SetAppMonitorSummaries sets the AppMonitorSummaries field's value. -func (s *ListAppMonitorsOutput) SetAppMonitorSummaries(v []*AppMonitorSummary) *ListAppMonitorsOutput { - s.AppMonitorSummaries = v - return s -} +// SetDimensionKeys sets the DimensionKeys field's value. +func (s *MetricDefinition) SetDimensionKeys(v map[string]*string) *MetricDefinition { + s.DimensionKeys = v + return s +} + +// SetEventPattern sets the EventPattern field's value. +func (s *MetricDefinition) SetEventPattern(v string) *MetricDefinition { + s.EventPattern = &v + return s +} + +// SetMetricDefinitionId sets the MetricDefinitionId field's value. +func (s *MetricDefinition) SetMetricDefinitionId(v string) *MetricDefinition { + s.MetricDefinitionId = &v + return s +} + +// SetName sets the Name field's value. +func (s *MetricDefinition) SetName(v string) *MetricDefinition { + s.Name = &v + return s +} + +// SetUnitLabel sets the UnitLabel field's value. +func (s *MetricDefinition) SetUnitLabel(v string) *MetricDefinition { + s.UnitLabel = &v + return s +} + +// SetValueKey sets the ValueKey field's value. +func (s *MetricDefinition) SetValueKey(v string) *MetricDefinition { + s.ValueKey = &v + return s +} + +// Use this structure to define one extended metric that RUM will send to CloudWatch +// or CloudWatch Evidently. For more information, see Additional metrics that +// you can send to CloudWatch and CloudWatch Evidently (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-vended-metrics.html). +// +// Only certain combinations of values for Name, ValueKey, and EventPattern +// are valid. In addition to what is displayed in the list below, the EventPattern +// can also include information used by the DimensionKeys field. +// +// - If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration +// and the EventPattern must include {"event_type":["com.amazon.rum.performance_navigation_event"]} +// +// - If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration +// and the EventPattern must include {"event_type":["com.amazon.rum.performance_resource_event"]} +// +// - If Name is NavigationSatisfiedTransaction, then ValueKeymust be null +// and the EventPattern must include { "event_type": ["com.amazon.rum.performance_navigation_event"], +// "event_details": { "duration": [{ "numeric": [">",2000] }] } } +// +// - If Name is NavigationToleratedTransaction, then ValueKeymust be null +// and the EventPattern must include { "event_type": ["com.amazon.rum.performance_navigation_event"], +// "event_details": { "duration": [{ "numeric": [">=",2000,"<"8000] }] } +// } +// +// - If Name is NavigationFrustratedTransaction, then ValueKeymust be null +// and the EventPattern must include { "event_type": ["com.amazon.rum.performance_navigation_event"], +// "event_details": { "duration": [{ "numeric": [">=",8000] }] } } +// +// - If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value +// and the EventPattern must include {"event_type":["com.amazon.rum.cumulative_layout_shift_event"]} +// +// - If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value +// and the EventPattern must include {"event_type":["com.amazon.rum.first_input_delay_event"]} +// +// - If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value +// and the EventPattern must include {"event_type":["com.amazon.rum.largest_contentful_paint_event"]} +// +// - If Name is JsErrorCount, then ValueKeymust be null and the EventPattern +// must include {"event_type":["com.amazon.rum.js_error_event"]} +// +// - If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern +// must include {"event_type":["com.amazon.rum.http_event"]} +// +// - If Name is SessionCount, then ValueKeymust be null and the EventPattern +// must include {"event_type":["com.amazon.rum.session_start_event"]} +type MetricDefinitionRequest struct { + _ struct{} `type:"structure"` + + // Use this field only if you are sending the metric to CloudWatch. + // + // This field is a map of field paths to dimension names. It defines the dimensions + // to associate with this metric in CloudWatch. Valid values for the entries + // in this field are the following: + // + // * "metadata.pageId": "PageId" + // + // * "metadata.browserName": "BrowserName" + // + // * "metadata.deviceType": "DeviceType" + // + // * "metadata.osName": "OSName" + // + // * "metadata.countryCode": "CountryCode" + // + // * "event_details.fileType": "FileType" + // + // All dimensions listed in this field must also be included in EventPattern
.