diff --git a/CHANGELOG.md b/CHANGELOG.md index d1643f9b40..082b87b601 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 1a9d22c4ab..4ceabfe96a 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 a356b4c252..8dbe5b2a39 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 00c0e1d081..0cd92096ee 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 e81600efaf..daaa1db4a2 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.

", + "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 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.

", "SearchOrganizationInsights": "

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.

", "StartCostEstimation": "

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 0000000000..396977d50f --- /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 0000000000..268ee8e4c2 --- /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 ef83a44b7f..291373a6e1 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 6bf5c56a9f..87a0dcbc44 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": "Global Accelerator

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.

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:

", "AdvertiseByoipCidr": "

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.

", @@ -39,6 +40,7 @@ "ListTagsForResource": "

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:

", "TagResource": "

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.

", @@ -116,6 +118,16 @@ "refs": { } }, + "AddEndpointsRequest": { + "base": null, + "refs": { + } + }, + "AddEndpointsResponse": { + "base": null, + "refs": { + } + }, "AdvertiseByoipCidrRequest": { "base": null, "refs": { @@ -550,6 +562,7 @@ "EndpointConfigurations": { "base": null, "refs": { + "AddEndpointsRequest$EndpointConfigurations": "

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.

", "UpdateAcceleratorAttributesRequest$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.

", "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.

", "AcceleratorAttributes$FlowLogsS3Prefix": "

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.

", "AddCustomRoutingEndpointsRequest$EndpointGroupArn": "

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.

", "CustomRoutingAcceleratorAttributes$FlowLogsS3Prefix": "

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.

", @@ -1117,6 +1149,11 @@ "refs": { } }, + "RemoveEndpointsRequest": { + "base": null, + "refs": { + } + }, "ResourceArn": { "base": null, "refs": { @@ -1210,6 +1247,11 @@ "UpdateEndpointGroupRequest$TrafficDialPercentage": "

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 0000000000..66e10dd2e5 --- /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 0000000000..ff1bae97f5 --- /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 3519e3aba4..72646d9f08 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 10b29c31fd..8a46796b31 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.

" + "UpdateResiliencyPolicyRequest$policy": "

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 0000000000..4b3afb58e7 --- /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 0000000000..dd7a4640ae --- /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 556142887d..a4639204c2 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 9b37fc2a9a..27b853fd1c 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.

", + "BatchGetRumMetricDefinitions": "

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.

", + "PutRumMetricsDestination": "

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.

", + "MetricDestinationSummary$DestinationArn": "

If the destination is Evidently, this specifies the ARN of the Evidently experiment that receives the metrics.

", + "PutRumMetricsDestinationRequest$DestinationArn": "

Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.

", + "UpdateRumMetricDefinitionRequest$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.

" + } + }, + "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.

", + "MetricDefinitionRequest$DimensionKeys": "

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:

 <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.

", + "MetricDefinitionRequest$EventPattern": "

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:

If the metrics destination' is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

" + } + }, "FavoritePages": { "base": null, "refs": { - "AppMonitorConfiguration$FavoritePages": "

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.

", + "PutRumMetricsDestinationRequest$IamRoleArn": "

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.

", + "ListAppMonitorsRequest$MaxResults": "

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.

" + } + }, + "MetricDefinition": { + "base": "

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.

", + "refs": { + "BatchCreateRumMetricDefinitionsError$MetricDefinition": "

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.

", + "BatchDeleteRumMetricDefinitionsRequest$Destination": "

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.

", + "BatchGetRumMetricDefinitionsRequest$Destination": "

The type of destination that you want to view metrics for. Valid values are CloudWatch and Evidently.

", + "DeleteRumMetricsDestinationRequest$Destination": "

The type of destination to delete. Valid values are CloudWatch and Evidently.

", + "MetricDestinationSummary$Destination": "

Specifies whether the destination is CloudWatch or Evidently.

", + "PutRumMetricsDestinationRequest$Destination": "

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.

", + "UpdateRumMetricDefinitionRequest$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.

" + } + }, + "MetricDestinationSummary": { + "base": "

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:

" + } + }, "Pages": { "base": null, "refs": { @@ -253,6 +467,16 @@ "refs": { } }, + "PutRumMetricsDestinationRequest": { + "base": null, + "refs": { + } + }, + "PutRumMetricsDestinationResponse": { + "base": null, + "refs": { + } + }, "QueryFilter": { "base": "

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.

", "refs": { @@ -315,7 +539,7 @@ "SessionSampleRate": { "base": null, "refs": { - "AppMonitorConfiguration$SessionSampleRate": "

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 0000000000..448f04b6f5 --- /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 0000000000..ba73cf6f16 --- /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 cf26166d6b..67cc19335e 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 4af834826e..6b7d0d43a3 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 551c237432..8a4b144239 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.

// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation CreateAppMonitor for usage and error information. +// API operation BatchCreateRumMetricDefinitions for usage and error information. // // Returned Error Types: // @@ -85,6 +98,9 @@ func (c *CloudWatchRUM) CreateAppMonitorRequest(input *CreateAppMonitorInput) (r // - ServiceQuotaExceededException // This request exceeds a service quota. // +// - ResourceNotFoundException +// Resource not found. +// // - InternalServerException // Internal service exception. // @@ -97,81 +113,86 @@ func (c *CloudWatchRUM) CreateAppMonitorRequest(input *CreateAppMonitorInput) (r // - AccessDeniedException // You don't have sufficient permissions to perform this action. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/CreateAppMonitor -func (c *CloudWatchRUM) CreateAppMonitor(input *CreateAppMonitorInput) (*CreateAppMonitorOutput, error) { - req, out := c.CreateAppMonitorRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/BatchCreateRumMetricDefinitions +func (c *CloudWatchRUM) BatchCreateRumMetricDefinitions(input *BatchCreateRumMetricDefinitionsInput) (*BatchCreateRumMetricDefinitionsOutput, error) { + req, out := c.BatchCreateRumMetricDefinitionsRequest(input) return out, req.Send() } -// CreateAppMonitorWithContext is the same as CreateAppMonitor with the addition of +// BatchCreateRumMetricDefinitionsWithContext is the same as BatchCreateRumMetricDefinitions with the addition of // the ability to pass a context and additional request options. // -// See CreateAppMonitor for details on how to use this API operation. +// See BatchCreateRumMetricDefinitions for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) CreateAppMonitorWithContext(ctx aws.Context, input *CreateAppMonitorInput, opts ...request.Option) (*CreateAppMonitorOutput, error) { - req, out := c.CreateAppMonitorRequest(input) +func (c *CloudWatchRUM) BatchCreateRumMetricDefinitionsWithContext(ctx aws.Context, input *BatchCreateRumMetricDefinitionsInput, opts ...request.Option) (*BatchCreateRumMetricDefinitionsOutput, error) { + req, out := c.BatchCreateRumMetricDefinitionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opDeleteAppMonitor = "DeleteAppMonitor" +const opBatchDeleteRumMetricDefinitions = "BatchDeleteRumMetricDefinitions" -// DeleteAppMonitorRequest generates a "aws/request.Request" representing the -// client's request for the DeleteAppMonitor operation. The "output" return +// BatchDeleteRumMetricDefinitionsRequest generates a "aws/request.Request" representing the +// client's request for the BatchDeleteRumMetricDefinitions 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 DeleteAppMonitor for more information on using the DeleteAppMonitor +// See BatchDeleteRumMetricDefinitions for more information on using the BatchDeleteRumMetricDefinitions // 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 DeleteAppMonitorRequest method. -// req, resp := client.DeleteAppMonitorRequest(params) +// // Example sending a request using the BatchDeleteRumMetricDefinitionsRequest method. +// req, resp := client.BatchDeleteRumMetricDefinitionsRequest(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/DeleteAppMonitor -func (c *CloudWatchRUM) DeleteAppMonitorRequest(input *DeleteAppMonitorInput) (req *request.Request, output *DeleteAppMonitorOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/BatchDeleteRumMetricDefinitions +func (c *CloudWatchRUM) BatchDeleteRumMetricDefinitionsRequest(input *BatchDeleteRumMetricDefinitionsInput) (req *request.Request, output *BatchDeleteRumMetricDefinitionsOutput) { op := &request.Operation{ - Name: opDeleteAppMonitor, + Name: opBatchDeleteRumMetricDefinitions, HTTPMethod: "DELETE", - HTTPPath: "/appmonitor/{Name}", + HTTPPath: "/rummetrics/{AppMonitorName}/metrics", } if input == nil { - input = &DeleteAppMonitorInput{} + input = &BatchDeleteRumMetricDefinitionsInput{} } - output = &DeleteAppMonitorOutput{} + output = &BatchDeleteRumMetricDefinitionsOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// DeleteAppMonitor API operation for CloudWatch RUM. +// BatchDeleteRumMetricDefinitions API operation for CloudWatch RUM. // -// Deletes an existing app monitor. This immediately stops the collection of -// data. +// 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. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation DeleteAppMonitor for usage and error information. +// API operation BatchDeleteRumMetricDefinitions for usage and error information. // // Returned Error Types: // @@ -193,149 +214,58 @@ func (c *CloudWatchRUM) DeleteAppMonitorRequest(input *DeleteAppMonitorInput) (r // - AccessDeniedException // You don't have sufficient permissions to perform this action. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/DeleteAppMonitor -func (c *CloudWatchRUM) DeleteAppMonitor(input *DeleteAppMonitorInput) (*DeleteAppMonitorOutput, error) { - req, out := c.DeleteAppMonitorRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/BatchDeleteRumMetricDefinitions +func (c *CloudWatchRUM) BatchDeleteRumMetricDefinitions(input *BatchDeleteRumMetricDefinitionsInput) (*BatchDeleteRumMetricDefinitionsOutput, error) { + req, out := c.BatchDeleteRumMetricDefinitionsRequest(input) return out, req.Send() } -// DeleteAppMonitorWithContext is the same as DeleteAppMonitor with the addition of +// BatchDeleteRumMetricDefinitionsWithContext is the same as BatchDeleteRumMetricDefinitions with the addition of // the ability to pass a context and additional request options. // -// See DeleteAppMonitor for details on how to use this API operation. +// See BatchDeleteRumMetricDefinitions for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) DeleteAppMonitorWithContext(ctx aws.Context, input *DeleteAppMonitorInput, opts ...request.Option) (*DeleteAppMonitorOutput, error) { - req, out := c.DeleteAppMonitorRequest(input) +func (c *CloudWatchRUM) BatchDeleteRumMetricDefinitionsWithContext(ctx aws.Context, input *BatchDeleteRumMetricDefinitionsInput, opts ...request.Option) (*BatchDeleteRumMetricDefinitionsOutput, error) { + req, out := c.BatchDeleteRumMetricDefinitionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAppMonitor = "GetAppMonitor" +const opBatchGetRumMetricDefinitions = "BatchGetRumMetricDefinitions" -// GetAppMonitorRequest generates a "aws/request.Request" representing the -// client's request for the GetAppMonitor operation. The "output" return +// BatchGetRumMetricDefinitionsRequest generates a "aws/request.Request" representing the +// client's request for the BatchGetRumMetricDefinitions 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 GetAppMonitor for more information on using the GetAppMonitor +// See BatchGetRumMetricDefinitions for more information on using the BatchGetRumMetricDefinitions // 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 GetAppMonitorRequest method. -// req, resp := client.GetAppMonitorRequest(params) +// // Example sending a request using the BatchGetRumMetricDefinitionsRequest method. +// req, resp := client.BatchGetRumMetricDefinitionsRequest(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/GetAppMonitor -func (c *CloudWatchRUM) GetAppMonitorRequest(input *GetAppMonitorInput) (req *request.Request, output *GetAppMonitorOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/BatchGetRumMetricDefinitions +func (c *CloudWatchRUM) BatchGetRumMetricDefinitionsRequest(input *BatchGetRumMetricDefinitionsInput) (req *request.Request, output *BatchGetRumMetricDefinitionsOutput) { op := &request.Operation{ - Name: opGetAppMonitor, + Name: opBatchGetRumMetricDefinitions, HTTPMethod: "GET", - HTTPPath: "/appmonitor/{Name}", - } - - if input == nil { - input = &GetAppMonitorInput{} - } - - output = &GetAppMonitorOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetAppMonitor API operation for CloudWatch RUM. -// -// Retrieves the complete configuration information for one app monitor. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for CloudWatch RUM's -// API operation GetAppMonitor for usage and error information. -// -// Returned Error Types: -// -// - ResourceNotFoundException -// Resource not found. -// -// - InternalServerException -// Internal service exception. -// -// - ValidationException -// One of the arguments for the request is not valid. -// -// - ThrottlingException -// The request was throttled because of quota limits. -// -// - AccessDeniedException -// You don't have sufficient permissions to perform this action. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/GetAppMonitor -func (c *CloudWatchRUM) GetAppMonitor(input *GetAppMonitorInput) (*GetAppMonitorOutput, error) { - req, out := c.GetAppMonitorRequest(input) - return out, req.Send() -} - -// GetAppMonitorWithContext is the same as GetAppMonitor with the addition of -// the ability to pass a context and additional request options. -// -// See GetAppMonitor for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *CloudWatchRUM) GetAppMonitorWithContext(ctx aws.Context, input *GetAppMonitorInput, opts ...request.Option) (*GetAppMonitorOutput, error) { - req, out := c.GetAppMonitorRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetAppMonitorData = "GetAppMonitorData" - -// GetAppMonitorDataRequest generates a "aws/request.Request" representing the -// client's request for the GetAppMonitorData 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 GetAppMonitorData for more information on using the GetAppMonitorData -// 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 GetAppMonitorDataRequest method. -// req, resp := client.GetAppMonitorDataRequest(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/GetAppMonitorData -func (c *CloudWatchRUM) GetAppMonitorDataRequest(input *GetAppMonitorDataInput) (req *request.Request, output *GetAppMonitorDataOutput) { - op := &request.Operation{ - Name: opGetAppMonitorData, - HTTPMethod: "POST", - HTTPPath: "/appmonitor/{Name}/data", + HTTPPath: "/rummetrics/{AppMonitorName}/metrics", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, @@ -345,25 +275,25 @@ func (c *CloudWatchRUM) GetAppMonitorDataRequest(input *GetAppMonitorDataInput) } if input == nil { - input = &GetAppMonitorDataInput{} + input = &BatchGetRumMetricDefinitionsInput{} } - output = &GetAppMonitorDataOutput{} + output = &BatchGetRumMetricDefinitionsOutput{} req = c.newRequest(op, input, output) return } -// GetAppMonitorData API operation for CloudWatch RUM. +// BatchGetRumMetricDefinitions API operation for CloudWatch RUM. // -// 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. +// Retrieves the list of metrics and dimensions that a RUM app monitor is sending +// to a single destination. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation GetAppMonitorData for usage and error information. +// API operation BatchGetRumMetricDefinitions for usage and error information. // // Returned Error Types: // @@ -376,70 +306,67 @@ func (c *CloudWatchRUM) GetAppMonitorDataRequest(input *GetAppMonitorDataInput) // - ValidationException // One of the arguments for the request is not valid. // -// - ThrottlingException -// The request was throttled because of quota limits. -// // - AccessDeniedException // You don't have sufficient permissions to perform this action. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/GetAppMonitorData -func (c *CloudWatchRUM) GetAppMonitorData(input *GetAppMonitorDataInput) (*GetAppMonitorDataOutput, error) { - req, out := c.GetAppMonitorDataRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/BatchGetRumMetricDefinitions +func (c *CloudWatchRUM) BatchGetRumMetricDefinitions(input *BatchGetRumMetricDefinitionsInput) (*BatchGetRumMetricDefinitionsOutput, error) { + req, out := c.BatchGetRumMetricDefinitionsRequest(input) return out, req.Send() } -// GetAppMonitorDataWithContext is the same as GetAppMonitorData with the addition of +// BatchGetRumMetricDefinitionsWithContext is the same as BatchGetRumMetricDefinitions with the addition of // the ability to pass a context and additional request options. // -// See GetAppMonitorData for details on how to use this API operation. +// See BatchGetRumMetricDefinitions for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) GetAppMonitorDataWithContext(ctx aws.Context, input *GetAppMonitorDataInput, opts ...request.Option) (*GetAppMonitorDataOutput, error) { - req, out := c.GetAppMonitorDataRequest(input) +func (c *CloudWatchRUM) BatchGetRumMetricDefinitionsWithContext(ctx aws.Context, input *BatchGetRumMetricDefinitionsInput, opts ...request.Option) (*BatchGetRumMetricDefinitionsOutput, error) { + req, out := c.BatchGetRumMetricDefinitionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// GetAppMonitorDataPages iterates over the pages of a GetAppMonitorData operation, +// BatchGetRumMetricDefinitionsPages iterates over the pages of a BatchGetRumMetricDefinitions operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See GetAppMonitorData method for more information on how to use this operation. +// See BatchGetRumMetricDefinitions method for more information on how to use this operation. // // Note: This operation can generate multiple requests to a service. // -// // Example iterating over at most 3 pages of a GetAppMonitorData operation. +// // Example iterating over at most 3 pages of a BatchGetRumMetricDefinitions operation. // pageNum := 0 -// err := client.GetAppMonitorDataPages(params, -// func(page *cloudwatchrum.GetAppMonitorDataOutput, lastPage bool) bool { +// err := client.BatchGetRumMetricDefinitionsPages(params, +// func(page *cloudwatchrum.BatchGetRumMetricDefinitionsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) -func (c *CloudWatchRUM) GetAppMonitorDataPages(input *GetAppMonitorDataInput, fn func(*GetAppMonitorDataOutput, bool) bool) error { - return c.GetAppMonitorDataPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *CloudWatchRUM) BatchGetRumMetricDefinitionsPages(input *BatchGetRumMetricDefinitionsInput, fn func(*BatchGetRumMetricDefinitionsOutput, bool) bool) error { + return c.BatchGetRumMetricDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn) } -// GetAppMonitorDataPagesWithContext same as GetAppMonitorDataPages except +// BatchGetRumMetricDefinitionsPagesWithContext same as BatchGetRumMetricDefinitionsPages except // it takes a Context and allows setting request options on the pages. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) GetAppMonitorDataPagesWithContext(ctx aws.Context, input *GetAppMonitorDataInput, fn func(*GetAppMonitorDataOutput, bool) bool, opts ...request.Option) error { +func (c *CloudWatchRUM) BatchGetRumMetricDefinitionsPagesWithContext(ctx aws.Context, input *BatchGetRumMetricDefinitionsInput, fn func(*BatchGetRumMetricDefinitionsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *GetAppMonitorDataInput + var inCpy *BatchGetRumMetricDefinitionsInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.GetAppMonitorDataRequest(inCpy) + req, _ := c.BatchGetRumMetricDefinitionsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -447,7 +374,7 @@ func (c *CloudWatchRUM) GetAppMonitorDataPagesWithContext(ctx aws.Context, input } for p.Next() { - if !fn(p.Page().(*GetAppMonitorDataOutput), !p.HasNextPage()) { + if !fn(p.Page().(*BatchGetRumMetricDefinitionsOutput), !p.HasNextPage()) { break } } @@ -455,66 +382,81 @@ func (c *CloudWatchRUM) GetAppMonitorDataPagesWithContext(ctx aws.Context, input return p.Err() } -const opListAppMonitors = "ListAppMonitors" +const opCreateAppMonitor = "CreateAppMonitor" -// ListAppMonitorsRequest generates a "aws/request.Request" representing the -// client's request for the ListAppMonitors operation. The "output" return +// CreateAppMonitorRequest generates a "aws/request.Request" representing the +// client's request for the CreateAppMonitor 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 ListAppMonitors for more information on using the ListAppMonitors +// See CreateAppMonitor for more information on using the CreateAppMonitor // 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 ListAppMonitorsRequest method. -// req, resp := client.ListAppMonitorsRequest(params) +// // Example sending a request using the CreateAppMonitorRequest method. +// req, resp := client.CreateAppMonitorRequest(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/ListAppMonitors -func (c *CloudWatchRUM) ListAppMonitorsRequest(input *ListAppMonitorsInput) (req *request.Request, output *ListAppMonitorsOutput) { +// 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) { op := &request.Operation{ - Name: opListAppMonitors, + Name: opCreateAppMonitor, HTTPMethod: "POST", - HTTPPath: "/appmonitors", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/appmonitor", } if input == nil { - input = &ListAppMonitorsInput{} + input = &CreateAppMonitorInput{} } - output = &ListAppMonitorsOutput{} + output = &CreateAppMonitorOutput{} req = c.newRequest(op, input, output) return } -// ListAppMonitors API operation for CloudWatch RUM. +// CreateAppMonitor API operation for CloudWatch RUM. // -// Returns a list of the Amazon CloudWatch RUM app monitors in the account. +// 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_UpdateAppMonitor.html) +// 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? +// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-find-code-snippet.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation ListAppMonitors for usage and error information. +// API operation CreateAppMonitor for usage and error information. // // Returned Error Types: // +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// - ResourceNotFoundException +// Resource not found. +// // - InternalServerException // Internal service exception. // @@ -527,133 +469,87 @@ func (c *CloudWatchRUM) ListAppMonitorsRequest(input *ListAppMonitorsInput) (req // - AccessDeniedException // You don't have sufficient permissions to perform this action. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListAppMonitors -func (c *CloudWatchRUM) ListAppMonitors(input *ListAppMonitorsInput) (*ListAppMonitorsOutput, error) { - req, out := c.ListAppMonitorsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/CreateAppMonitor +func (c *CloudWatchRUM) CreateAppMonitor(input *CreateAppMonitorInput) (*CreateAppMonitorOutput, error) { + req, out := c.CreateAppMonitorRequest(input) return out, req.Send() } -// ListAppMonitorsWithContext is the same as ListAppMonitors with the addition of +// CreateAppMonitorWithContext is the same as CreateAppMonitor with the addition of // the ability to pass a context and additional request options. // -// See ListAppMonitors for details on how to use this API operation. +// See CreateAppMonitor for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) ListAppMonitorsWithContext(ctx aws.Context, input *ListAppMonitorsInput, opts ...request.Option) (*ListAppMonitorsOutput, error) { - req, out := c.ListAppMonitorsRequest(input) +func (c *CloudWatchRUM) CreateAppMonitorWithContext(ctx aws.Context, input *CreateAppMonitorInput, opts ...request.Option) (*CreateAppMonitorOutput, error) { + req, out := c.CreateAppMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListAppMonitorsPages iterates over the pages of a ListAppMonitors operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAppMonitors method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListAppMonitors operation. -// pageNum := 0 -// err := client.ListAppMonitorsPages(params, -// func(page *cloudwatchrum.ListAppMonitorsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *CloudWatchRUM) ListAppMonitorsPages(input *ListAppMonitorsInput, fn func(*ListAppMonitorsOutput, bool) bool) error { - return c.ListAppMonitorsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAppMonitorsPagesWithContext same as ListAppMonitorsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *CloudWatchRUM) ListAppMonitorsPagesWithContext(ctx aws.Context, input *ListAppMonitorsInput, fn func(*ListAppMonitorsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAppMonitorsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAppMonitorsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAppMonitorsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListTagsForResource = "ListTagsForResource" +const opDeleteAppMonitor = "DeleteAppMonitor" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// DeleteAppMonitorRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAppMonitor operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See ListTagsForResource for more information on using the ListTagsForResource +// See DeleteAppMonitor for more information on using the DeleteAppMonitor // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListTagsForResourceRequest method. -// req, resp := client.ListTagsForResourceRequest(params) +// // Example sending a request using the DeleteAppMonitorRequest method. +// req, resp := client.DeleteAppMonitorRequest(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/ListTagsForResource -func (c *CloudWatchRUM) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/DeleteAppMonitor +func (c *CloudWatchRUM) DeleteAppMonitorRequest(input *DeleteAppMonitorInput) (req *request.Request, output *DeleteAppMonitorOutput) { op := &request.Operation{ - Name: opListTagsForResource, - HTTPMethod: "GET", - HTTPPath: "/tags/{ResourceArn}", + Name: opDeleteAppMonitor, + HTTPMethod: "DELETE", + HTTPPath: "/appmonitor/{Name}", } if input == nil { - input = &ListTagsForResourceInput{} + input = &DeleteAppMonitorInput{} } - output = &ListTagsForResourceOutput{} + output = &DeleteAppMonitorOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// ListTagsForResource API operation for CloudWatch RUM. +// DeleteAppMonitor API operation for CloudWatch RUM. // -// Displays the tags associated with a CloudWatch RUM resource. +// Deletes an existing app monitor. This immediately stops the collection of +// data. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation ListTagsForResource for usage and error information. +// API operation DeleteAppMonitor for usage and error information. // // Returned Error Types: // +// - ConflictException +// This operation attempted to create a resource that already exists. +// // - ResourceNotFoundException // Resource not found. // @@ -663,89 +559,93 @@ func (c *CloudWatchRUM) ListTagsForResourceRequest(input *ListTagsForResourceInp // - ValidationException // One of the arguments for the request is not valid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListTagsForResource -func (c *CloudWatchRUM) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/DeleteAppMonitor +func (c *CloudWatchRUM) DeleteAppMonitor(input *DeleteAppMonitorInput) (*DeleteAppMonitorOutput, error) { + req, out := c.DeleteAppMonitorRequest(input) return out, req.Send() } -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// DeleteAppMonitorWithContext is the same as DeleteAppMonitor with the addition of // the ability to pass a context and additional request options. // -// See ListTagsForResource for details on how to use this API operation. +// See DeleteAppMonitor for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +func (c *CloudWatchRUM) DeleteAppMonitorWithContext(ctx aws.Context, input *DeleteAppMonitorInput, opts ...request.Option) (*DeleteAppMonitorOutput, error) { + req, out := c.DeleteAppMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutRumEvents = "PutRumEvents" +const opDeleteRumMetricsDestination = "DeleteRumMetricsDestination" -// PutRumEventsRequest generates a "aws/request.Request" representing the -// client's request for the PutRumEvents operation. The "output" return +// DeleteRumMetricsDestinationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteRumMetricsDestination 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 PutRumEvents for more information on using the PutRumEvents +// See DeleteRumMetricsDestination for more information on using the DeleteRumMetricsDestination // 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 PutRumEventsRequest method. -// req, resp := client.PutRumEventsRequest(params) +// // Example sending a request using the DeleteRumMetricsDestinationRequest method. +// req, resp := client.DeleteRumMetricsDestinationRequest(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/PutRumEvents -func (c *CloudWatchRUM) PutRumEventsRequest(input *PutRumEventsInput) (req *request.Request, output *PutRumEventsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/DeleteRumMetricsDestination +func (c *CloudWatchRUM) DeleteRumMetricsDestinationRequest(input *DeleteRumMetricsDestinationInput) (req *request.Request, output *DeleteRumMetricsDestinationOutput) { op := &request.Operation{ - Name: opPutRumEvents, - HTTPMethod: "POST", - HTTPPath: "/appmonitors/{Id}/", + Name: opDeleteRumMetricsDestination, + HTTPMethod: "DELETE", + HTTPPath: "/rummetrics/{AppMonitorName}/metricsdestination", } if input == nil { - input = &PutRumEventsInput{} + input = &DeleteRumMetricsDestinationInput{} } - output = &PutRumEventsOutput{} + output = &DeleteRumMetricsDestinationOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("dataplane.", nil)) - req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutRumEvents API operation for CloudWatch RUM. -// -// 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. +// DeleteRumMetricsDestination API operation for CloudWatch RUM. // -// Each PutRumEvents operation can send a batch of events from one user session. +// Deletes a destination for CloudWatch RUM extended metrics, so that the specified +// app monitor stops sending extended metrics to that destination. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation PutRumEvents for usage and error information. +// API operation DeleteRumMetricsDestination for usage and error information. // // Returned Error Types: // +// - ConflictException +// This operation attempted to create a resource that already exists. +// // - ResourceNotFoundException // Resource not found. // @@ -761,98 +661,79 @@ func (c *CloudWatchRUM) PutRumEventsRequest(input *PutRumEventsInput) (req *requ // - AccessDeniedException // You don't have sufficient permissions to perform this action. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/PutRumEvents -func (c *CloudWatchRUM) PutRumEvents(input *PutRumEventsInput) (*PutRumEventsOutput, error) { - req, out := c.PutRumEventsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/DeleteRumMetricsDestination +func (c *CloudWatchRUM) DeleteRumMetricsDestination(input *DeleteRumMetricsDestinationInput) (*DeleteRumMetricsDestinationOutput, error) { + req, out := c.DeleteRumMetricsDestinationRequest(input) return out, req.Send() } -// PutRumEventsWithContext is the same as PutRumEvents with the addition of +// DeleteRumMetricsDestinationWithContext is the same as DeleteRumMetricsDestination with the addition of // the ability to pass a context and additional request options. // -// See PutRumEvents for details on how to use this API operation. +// See DeleteRumMetricsDestination for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) PutRumEventsWithContext(ctx aws.Context, input *PutRumEventsInput, opts ...request.Option) (*PutRumEventsOutput, error) { - req, out := c.PutRumEventsRequest(input) +func (c *CloudWatchRUM) DeleteRumMetricsDestinationWithContext(ctx aws.Context, input *DeleteRumMetricsDestinationInput, opts ...request.Option) (*DeleteRumMetricsDestinationOutput, error) { + req, out := c.DeleteRumMetricsDestinationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opTagResource = "TagResource" +const opGetAppMonitor = "GetAppMonitor" -// TagResourceRequest generates a "aws/request.Request" representing the -// client's request for the TagResource operation. The "output" return +// GetAppMonitorRequest generates a "aws/request.Request" representing the +// client's request for the GetAppMonitor operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See TagResource for more information on using the TagResource +// See GetAppMonitor for more information on using the GetAppMonitor // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the TagResourceRequest method. -// req, resp := client.TagResourceRequest(params) +// // Example sending a request using the GetAppMonitorRequest method. +// req, resp := client.GetAppMonitorRequest(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/TagResource -func (c *CloudWatchRUM) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/GetAppMonitor +func (c *CloudWatchRUM) GetAppMonitorRequest(input *GetAppMonitorInput) (req *request.Request, output *GetAppMonitorOutput) { op := &request.Operation{ - Name: opTagResource, - HTTPMethod: "POST", - HTTPPath: "/tags/{ResourceArn}", + Name: opGetAppMonitor, + HTTPMethod: "GET", + HTTPPath: "/appmonitor/{Name}", } if input == nil { - input = &TagResourceInput{} + input = &GetAppMonitorInput{} } - output = &TagResourceOutput{} + output = &GetAppMonitorOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// TagResource API operation for CloudWatch RUM. -// -// 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. +// GetAppMonitor API operation for CloudWatch RUM. // -// For more information, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). +// Retrieves the complete configuration information for one app monitor. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation TagResource for usage and error information. +// API operation GetAppMonitor for usage and error information. // // Returned Error Types: // @@ -865,80 +746,92 @@ func (c *CloudWatchRUM) TagResourceRequest(input *TagResourceInput) (req *reques // - ValidationException // One of the arguments for the request is not valid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/TagResource -func (c *CloudWatchRUM) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/GetAppMonitor +func (c *CloudWatchRUM) GetAppMonitor(input *GetAppMonitorInput) (*GetAppMonitorOutput, error) { + req, out := c.GetAppMonitorRequest(input) return out, req.Send() } -// TagResourceWithContext is the same as TagResource with the addition of +// GetAppMonitorWithContext is the same as GetAppMonitor with the addition of // the ability to pass a context and additional request options. // -// See TagResource for details on how to use this API operation. +// See GetAppMonitor for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +func (c *CloudWatchRUM) GetAppMonitorWithContext(ctx aws.Context, input *GetAppMonitorInput, opts ...request.Option) (*GetAppMonitorOutput, error) { + req, out := c.GetAppMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUntagResource = "UntagResource" +const opGetAppMonitorData = "GetAppMonitorData" -// UntagResourceRequest generates a "aws/request.Request" representing the -// client's request for the UntagResource operation. The "output" return +// GetAppMonitorDataRequest generates a "aws/request.Request" representing the +// client's request for the GetAppMonitorData operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See UntagResource for more information on using the UntagResource +// See GetAppMonitorData for more information on using the GetAppMonitorData // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UntagResourceRequest method. -// req, resp := client.UntagResourceRequest(params) +// // Example sending a request using the GetAppMonitorDataRequest method. +// req, resp := client.GetAppMonitorDataRequest(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/UntagResource -func (c *CloudWatchRUM) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/GetAppMonitorData +func (c *CloudWatchRUM) GetAppMonitorDataRequest(input *GetAppMonitorDataInput) (req *request.Request, output *GetAppMonitorDataOutput) { op := &request.Operation{ - Name: opUntagResource, - HTTPMethod: "DELETE", - HTTPPath: "/tags/{ResourceArn}", + Name: opGetAppMonitorData, + HTTPMethod: "POST", + HTTPPath: "/appmonitor/{Name}/data", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &UntagResourceInput{} + input = &GetAppMonitorDataInput{} } - output = &UntagResourceOutput{} + output = &GetAppMonitorDataOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// UntagResource API operation for CloudWatch RUM. -// -// Removes one or more tags from the specified resource. +// GetAppMonitorData API operation for CloudWatch RUM. +// +// 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. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation UntagResource for usage and error information. +// API operation GetAppMonitorData for usage and error information. // // Returned Error Types: // @@ -951,102 +844,145 @@ func (c *CloudWatchRUM) UntagResourceRequest(input *UntagResourceInput) (req *re // - ValidationException // One of the arguments for the request is not valid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/UntagResource -func (c *CloudWatchRUM) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/GetAppMonitorData +func (c *CloudWatchRUM) GetAppMonitorData(input *GetAppMonitorDataInput) (*GetAppMonitorDataOutput, error) { + req, out := c.GetAppMonitorDataRequest(input) return out, req.Send() } -// UntagResourceWithContext is the same as UntagResource with the addition of +// GetAppMonitorDataWithContext is the same as GetAppMonitorData with the addition of // the ability to pass a context and additional request options. // -// See UntagResource for details on how to use this API operation. +// See GetAppMonitorData for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) +func (c *CloudWatchRUM) GetAppMonitorDataWithContext(ctx aws.Context, input *GetAppMonitorDataInput, opts ...request.Option) (*GetAppMonitorDataOutput, error) { + req, out := c.GetAppMonitorDataRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateAppMonitor = "UpdateAppMonitor" +// GetAppMonitorDataPages iterates over the pages of a GetAppMonitorData operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetAppMonitorData method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a GetAppMonitorData operation. +// pageNum := 0 +// err := client.GetAppMonitorDataPages(params, +// func(page *cloudwatchrum.GetAppMonitorDataOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CloudWatchRUM) GetAppMonitorDataPages(input *GetAppMonitorDataInput, fn func(*GetAppMonitorDataOutput, bool) bool) error { + return c.GetAppMonitorDataPagesWithContext(aws.BackgroundContext(), input, fn) +} -// UpdateAppMonitorRequest generates a "aws/request.Request" representing the -// client's request for the UpdateAppMonitor operation. The "output" return +// GetAppMonitorDataPagesWithContext same as GetAppMonitorDataPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) GetAppMonitorDataPagesWithContext(ctx aws.Context, input *GetAppMonitorDataInput, fn func(*GetAppMonitorDataOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetAppMonitorDataInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetAppMonitorDataRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetAppMonitorDataOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAppMonitors = "ListAppMonitors" + +// ListAppMonitorsRequest generates a "aws/request.Request" representing the +// client's request for the ListAppMonitors 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 UpdateAppMonitor for more information on using the UpdateAppMonitor +// See ListAppMonitors for more information on using the ListAppMonitors // 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 UpdateAppMonitorRequest method. -// req, resp := client.UpdateAppMonitorRequest(params) +// // Example sending a request using the ListAppMonitorsRequest method. +// req, resp := client.ListAppMonitorsRequest(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/UpdateAppMonitor -func (c *CloudWatchRUM) UpdateAppMonitorRequest(input *UpdateAppMonitorInput) (req *request.Request, output *UpdateAppMonitorOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListAppMonitors +func (c *CloudWatchRUM) ListAppMonitorsRequest(input *ListAppMonitorsInput) (req *request.Request, output *ListAppMonitorsOutput) { op := &request.Operation{ - Name: opUpdateAppMonitor, - HTTPMethod: "PATCH", - HTTPPath: "/appmonitor/{Name}", + Name: opListAppMonitors, + HTTPMethod: "POST", + HTTPPath: "/appmonitors", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &UpdateAppMonitorInput{} + input = &ListAppMonitorsInput{} } - output = &UpdateAppMonitorOutput{} + output = &ListAppMonitorsOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// UpdateAppMonitor API operation for CloudWatch RUM. -// -// 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_TagResource.html). -// -// To create a new app monitor, use CreateAppMonitor (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_CreateAppMonitor.html). +// ListAppMonitors API operation for CloudWatch RUM. // -// 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? -// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-find-code-snippet.html) +// Returns a list of the Amazon CloudWatch RUM app monitors in the account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for CloudWatch RUM's -// API operation UpdateAppMonitor for usage and error information. +// API operation ListAppMonitors for usage and error information. // // Returned Error Types: // -// - ConflictException -// This operation attempted to create a resource that already exists. -// -// - ResourceNotFoundException -// Resource not found. -// // - InternalServerException // Internal service exception. // @@ -1059,126 +995,1860 @@ func (c *CloudWatchRUM) UpdateAppMonitorRequest(input *UpdateAppMonitorInput) (r // - AccessDeniedException // You don't have sufficient permissions to perform this action. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/UpdateAppMonitor -func (c *CloudWatchRUM) UpdateAppMonitor(input *UpdateAppMonitorInput) (*UpdateAppMonitorOutput, error) { - req, out := c.UpdateAppMonitorRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListAppMonitors +func (c *CloudWatchRUM) ListAppMonitors(input *ListAppMonitorsInput) (*ListAppMonitorsOutput, error) { + req, out := c.ListAppMonitorsRequest(input) return out, req.Send() } -// UpdateAppMonitorWithContext is the same as UpdateAppMonitor with the addition of +// ListAppMonitorsWithContext is the same as ListAppMonitors with the addition of // the ability to pass a context and additional request options. // -// See UpdateAppMonitor for details on how to use this API operation. +// See ListAppMonitors for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchRUM) UpdateAppMonitorWithContext(ctx aws.Context, input *UpdateAppMonitorInput, opts ...request.Option) (*UpdateAppMonitorOutput, error) { - req, out := c.UpdateAppMonitorRequest(input) +func (c *CloudWatchRUM) ListAppMonitorsWithContext(ctx aws.Context, input *ListAppMonitorsInput, opts ...request.Option) (*ListAppMonitorsOutput, error) { + req, out := c.ListAppMonitorsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// You don't have sufficient permissions to perform this action. -type AccessDeniedException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation. +// ListAppMonitorsPages iterates over the pages of a ListAppMonitors operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. // -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AccessDeniedException) String() string { - return awsutil.Prettify(s) +// See ListAppMonitors method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListAppMonitors operation. +// pageNum := 0 +// err := client.ListAppMonitorsPages(params, +// func(page *cloudwatchrum.ListAppMonitorsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CloudWatchRUM) ListAppMonitorsPages(input *ListAppMonitorsInput, fn func(*ListAppMonitorsOutput, bool) bool) error { + return c.ListAppMonitorsPagesWithContext(aws.BackgroundContext(), input, fn) } -// GoString returns the string representation. +// ListAppMonitorsPagesWithContext same as ListAppMonitorsPages except +// it takes a Context and allows setting request options on the pages. // -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AccessDeniedException) GoString() string { - return s.String() -} +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) ListAppMonitorsPagesWithContext(ctx aws.Context, input *ListAppMonitorsInput, fn func(*ListAppMonitorsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAppMonitorsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAppMonitorsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } -func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { - return &AccessDeniedException{ - RespMetadata: v, + for p.Next() { + if !fn(p.Page().(*ListAppMonitorsOutput), !p.HasNextPage()) { + break + } } -} -// Code returns the exception type name. -func (s *AccessDeniedException) Code() string { - return "AccessDeniedException" + return p.Err() } -// Message returns the exception's message. -func (s *AccessDeniedException) Message() string { - if s.Message_ != nil { - return *s.Message_ +const opListRumMetricsDestinations = "ListRumMetricsDestinations" + +// ListRumMetricsDestinationsRequest generates a "aws/request.Request" representing the +// client's request for the ListRumMetricsDestinations 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 ListRumMetricsDestinations for more information on using the ListRumMetricsDestinations +// 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 ListRumMetricsDestinationsRequest method. +// req, resp := client.ListRumMetricsDestinationsRequest(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/ListRumMetricsDestinations +func (c *CloudWatchRUM) ListRumMetricsDestinationsRequest(input *ListRumMetricsDestinationsInput) (req *request.Request, output *ListRumMetricsDestinationsOutput) { + op := &request.Operation{ + Name: opListRumMetricsDestinations, + HTTPMethod: "GET", + HTTPPath: "/rummetrics/{AppMonitorName}/metricsdestination", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } - return "" -} -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AccessDeniedException) OrigErr() error { - return nil -} + if input == nil { + input = &ListRumMetricsDestinationsInput{} + } + + output = &ListRumMetricsDestinationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRumMetricsDestinations API operation for CloudWatch RUM. +// +// 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_AddRumMetrcs.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation ListRumMetricsDestinations for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListRumMetricsDestinations +func (c *CloudWatchRUM) ListRumMetricsDestinations(input *ListRumMetricsDestinationsInput) (*ListRumMetricsDestinationsOutput, error) { + req, out := c.ListRumMetricsDestinationsRequest(input) + return out, req.Send() +} + +// ListRumMetricsDestinationsWithContext is the same as ListRumMetricsDestinations with the addition of +// the ability to pass a context and additional request options. +// +// See ListRumMetricsDestinations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) ListRumMetricsDestinationsWithContext(ctx aws.Context, input *ListRumMetricsDestinationsInput, opts ...request.Option) (*ListRumMetricsDestinationsOutput, error) { + req, out := c.ListRumMetricsDestinationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRumMetricsDestinationsPages iterates over the pages of a ListRumMetricsDestinations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRumMetricsDestinations method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListRumMetricsDestinations operation. +// pageNum := 0 +// err := client.ListRumMetricsDestinationsPages(params, +// func(page *cloudwatchrum.ListRumMetricsDestinationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CloudWatchRUM) ListRumMetricsDestinationsPages(input *ListRumMetricsDestinationsInput, fn func(*ListRumMetricsDestinationsOutput, bool) bool) error { + return c.ListRumMetricsDestinationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRumMetricsDestinationsPagesWithContext same as ListRumMetricsDestinationsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) ListRumMetricsDestinationsPagesWithContext(ctx aws.Context, input *ListRumMetricsDestinationsInput, fn func(*ListRumMetricsDestinationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRumMetricsDestinationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRumMetricsDestinationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRumMetricsDestinationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListTagsForResource +func (c *CloudWatchRUM) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{ResourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for CloudWatch RUM. +// +// Displays the tags associated with a CloudWatch RUM resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/ListTagsForResource +func (c *CloudWatchRUM) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutRumEvents = "PutRumEvents" + +// PutRumEventsRequest generates a "aws/request.Request" representing the +// client's request for the PutRumEvents 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 PutRumEvents for more information on using the PutRumEvents +// 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 PutRumEventsRequest method. +// req, resp := client.PutRumEventsRequest(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/PutRumEvents +func (c *CloudWatchRUM) PutRumEventsRequest(input *PutRumEventsInput) (req *request.Request, output *PutRumEventsOutput) { + op := &request.Operation{ + Name: opPutRumEvents, + HTTPMethod: "POST", + HTTPPath: "/appmonitors/{Id}/", + } + + if input == nil { + input = &PutRumEventsInput{} + } + + output = &PutRumEventsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("dataplane.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// PutRumEvents API operation for CloudWatch RUM. +// +// 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. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation PutRumEvents for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/PutRumEvents +func (c *CloudWatchRUM) PutRumEvents(input *PutRumEventsInput) (*PutRumEventsOutput, error) { + req, out := c.PutRumEventsRequest(input) + return out, req.Send() +} + +// PutRumEventsWithContext is the same as PutRumEvents with the addition of +// the ability to pass a context and additional request options. +// +// See PutRumEvents for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) PutRumEventsWithContext(ctx aws.Context, input *PutRumEventsInput, opts ...request.Option) (*PutRumEventsOutput, error) { + req, out := c.PutRumEventsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutRumMetricsDestination = "PutRumMetricsDestination" + +// PutRumMetricsDestinationRequest generates a "aws/request.Request" representing the +// client's request for the PutRumMetricsDestination 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 PutRumMetricsDestination for more information on using the PutRumMetricsDestination +// 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 PutRumMetricsDestinationRequest method. +// req, resp := client.PutRumMetricsDestinationRequest(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/PutRumMetricsDestination +func (c *CloudWatchRUM) PutRumMetricsDestinationRequest(input *PutRumMetricsDestinationInput) (req *request.Request, output *PutRumMetricsDestinationOutput) { + op := &request.Operation{ + Name: opPutRumMetricsDestination, + HTTPMethod: "POST", + HTTPPath: "/rummetrics/{AppMonitorName}/metricsdestination", + } + + if input == nil { + input = &PutRumMetricsDestinationInput{} + } + + output = &PutRumMetricsDestinationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutRumMetricsDestination API operation for CloudWatch RUM. +// +// 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_AddRumMetrics.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation PutRumMetricsDestination for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/PutRumMetricsDestination +func (c *CloudWatchRUM) PutRumMetricsDestination(input *PutRumMetricsDestinationInput) (*PutRumMetricsDestinationOutput, error) { + req, out := c.PutRumMetricsDestinationRequest(input) + return out, req.Send() +} + +// PutRumMetricsDestinationWithContext is the same as PutRumMetricsDestination with the addition of +// the ability to pass a context and additional request options. +// +// See PutRumMetricsDestination for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) PutRumMetricsDestinationWithContext(ctx aws.Context, input *PutRumMetricsDestinationInput, opts ...request.Option) (*PutRumMetricsDestinationOutput, error) { + req, out := c.PutRumMetricsDestinationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/TagResource +func (c *CloudWatchRUM) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{ResourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for CloudWatch RUM. +// +// 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 (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/TagResource +func (c *CloudWatchRUM) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/UntagResource +func (c *CloudWatchRUM) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{ResourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for CloudWatch RUM. +// +// Removes one or more tags from the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/UntagResource +func (c *CloudWatchRUM) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAppMonitor = "UpdateAppMonitor" + +// UpdateAppMonitorRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAppMonitor 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 UpdateAppMonitor for more information on using the UpdateAppMonitor +// 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 UpdateAppMonitorRequest method. +// req, resp := client.UpdateAppMonitorRequest(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/UpdateAppMonitor +func (c *CloudWatchRUM) UpdateAppMonitorRequest(input *UpdateAppMonitorInput) (req *request.Request, output *UpdateAppMonitorOutput) { + op := &request.Operation{ + Name: opUpdateAppMonitor, + HTTPMethod: "PATCH", + HTTPPath: "/appmonitor/{Name}", + } + + if input == nil { + input = &UpdateAppMonitorInput{} + } + + output = &UpdateAppMonitorOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateAppMonitor API operation for CloudWatch RUM. +// +// 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_TagResource.html). +// +// To create a new app monitor, use CreateAppMonitor (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_CreateAppMonitor.html). +// +// 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? +// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-find-code-snippet.html) +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation UpdateAppMonitor for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/UpdateAppMonitor +func (c *CloudWatchRUM) UpdateAppMonitor(input *UpdateAppMonitorInput) (*UpdateAppMonitorOutput, error) { + req, out := c.UpdateAppMonitorRequest(input) + return out, req.Send() +} + +// UpdateAppMonitorWithContext is the same as UpdateAppMonitor with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAppMonitor for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) UpdateAppMonitorWithContext(ctx aws.Context, input *UpdateAppMonitorInput, opts ...request.Option) (*UpdateAppMonitorOutput, error) { + req, out := c.UpdateAppMonitorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateRumMetricDefinition = "UpdateRumMetricDefinition" + +// UpdateRumMetricDefinitionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateRumMetricDefinition 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 UpdateRumMetricDefinition for more information on using the UpdateRumMetricDefinition +// 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 UpdateRumMetricDefinitionRequest method. +// req, resp := client.UpdateRumMetricDefinitionRequest(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/UpdateRumMetricDefinition +func (c *CloudWatchRUM) UpdateRumMetricDefinitionRequest(input *UpdateRumMetricDefinitionInput) (req *request.Request, output *UpdateRumMetricDefinitionOutput) { + op := &request.Operation{ + Name: opUpdateRumMetricDefinition, + HTTPMethod: "PATCH", + HTTPPath: "/rummetrics/{AppMonitorName}/metrics", + } + + if input == nil { + input = &UpdateRumMetricDefinitionInput{} + } + + output = &UpdateRumMetricDefinitionOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateRumMetricDefinition API operation for CloudWatch RUM. +// +// Modifies one existing metric definition for CloudWatch RUM extended metrics. +// For more information about extended metrics, see BatchCreateRumMetricsDefinitions +// (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricsDefinitions.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for CloudWatch RUM's +// API operation UpdateRumMetricDefinition for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// This operation attempted to create a resource that already exists. +// +// - ServiceQuotaExceededException +// This request exceeds a service quota. +// +// - ResourceNotFoundException +// Resource not found. +// +// - InternalServerException +// Internal service exception. +// +// - ValidationException +// One of the arguments for the request is not valid. +// +// - ThrottlingException +// The request was throttled because of quota limits. +// +// - AccessDeniedException +// You don't have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/rum-2018-05-10/UpdateRumMetricDefinition +func (c *CloudWatchRUM) UpdateRumMetricDefinition(input *UpdateRumMetricDefinitionInput) (*UpdateRumMetricDefinitionOutput, error) { + req, out := c.UpdateRumMetricDefinitionRequest(input) + return out, req.Send() +} + +// UpdateRumMetricDefinitionWithContext is the same as UpdateRumMetricDefinition with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateRumMetricDefinition for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchRUM) UpdateRumMetricDefinitionWithContext(ctx aws.Context, input *UpdateRumMetricDefinitionInput, opts ...request.Option) (*UpdateRumMetricDefinitionOutput, error) { + req, out := c.UpdateRumMetricDefinitionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You don't have sufficient permissions to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} func (s *AccessDeniedException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -// Status code returns the HTTP status code for the request's response error. -func (s *AccessDeniedException) StatusCode() int { - return s.RespMetadata.StatusCode +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// A RUM app monitor 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. +type AppMonitor struct { + _ struct{} `type:"structure"` + + // A structure that contains much of the configuration data for the app monitor. + AppMonitorConfiguration *AppMonitorConfiguration `type:"structure"` + + // The date and time that this app monitor was created. + Created *string `min:"19" type:"string"` + + // A structure that contains information about whether this app monitor stores + // a copy of the telemetry data that RUM collects using CloudWatch Logs. + DataStorage *DataStorage `type:"structure"` + + // The top-level internet domain name for which your application has administrative + // authority. + Domain *string `min:"1" type:"string"` + + // The unique ID of this app monitor. + Id *string `min:"36" type:"string"` + + // The date and time of the most recent changes to this app monitor's configuration. + LastModified *string `min:"19" type:"string"` + + // The name of the app monitor. + Name *string `min:"1" type:"string"` + + // The current state of the app monitor. + State *string `type:"string" enum:"StateEnum"` + + // The list of tag keys and values associated with this app monitor. + Tags map[string]*string `type:"map"` +} + +// 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 AppMonitor) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AppMonitor) GoString() string { + return s.String() +} + +// SetAppMonitorConfiguration sets the AppMonitorConfiguration field's value. +func (s *AppMonitor) SetAppMonitorConfiguration(v *AppMonitorConfiguration) *AppMonitor { + s.AppMonitorConfiguration = v + return s +} + +// SetCreated sets the Created field's value. +func (s *AppMonitor) SetCreated(v string) *AppMonitor { + s.Created = &v + return s +} + +// SetDataStorage sets the DataStorage field's value. +func (s *AppMonitor) SetDataStorage(v *DataStorage) *AppMonitor { + s.DataStorage = v + return s +} + +// SetDomain sets the Domain field's value. +func (s *AppMonitor) SetDomain(v string) *AppMonitor { + s.Domain = &v + return s +} + +// SetId sets the Id field's value. +func (s *AppMonitor) SetId(v string) *AppMonitor { + s.Id = &v + return s +} + +// SetLastModified sets the LastModified field's value. +func (s *AppMonitor) SetLastModified(v string) *AppMonitor { + s.LastModified = &v + return s +} + +// SetName sets the Name field's value. +func (s *AppMonitor) SetName(v string) *AppMonitor { + s.Name = &v + return s +} + +// SetState sets the State field's value. +func (s *AppMonitor) SetState(v string) *AppMonitor { + s.State = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *AppMonitor) SetTags(v map[string]*string) *AppMonitor { + s.Tags = v + return s +} + +// This structure contains much of the configuration data for the app monitor. +type AppMonitorConfiguration struct { + _ struct{} `type:"structure"` + + // If you set this to true, the RUM web client sets two cookies, a session cookie + // and a user cookie. The cookies allow the RUM web client to collect data relating + // to the number of users an application has and the behavior of the application + // across a sequence of events. Cookies are stored in the top-level domain of + // the current page. + AllowCookies *bool `type:"boolean"` + + // If you set this to true, RUM enables X-Ray tracing for the user sessions + // that RUM samples. RUM adds an X-Ray trace header to allowed HTTP requests. + // It also records an X-Ray segment for allowed HTTP requests. You can see traces + // and segments from these user sessions in the X-Ray console and the CloudWatch + // ServiceLens console. For more information, see What is X-Ray? (https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) + EnableXRay *bool `type:"boolean"` + + // A list of URLs in your website or application to exclude from RUM data collection. + // + // You can't include both ExcludedPages and IncludedPages in the same operation. + ExcludedPages []*string `type:"list"` + + // A list of pages in your application that are to be displayed with a "favorite" + // icon in the CloudWatch RUM console. + FavoritePages []*string `type:"list"` + + // The ARN of the guest IAM role that is attached to the Amazon Cognito identity + // pool that is used to authorize the sending of data to RUM. + GuestRoleArn *string `type:"string"` + + // The ID of the Amazon Cognito identity pool that is used to authorize the + // sending of data to RUM. + IdentityPoolId *string `min:"1" type:"string"` + + // If this app monitor is to collect data from only certain pages in your application, + // this structure lists those pages. + // + //

You can't include both ExcludedPages and IncludedPages + // in the same operation.

+ IncludedPages []*string `type:"list"` + + // 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. + SessionSampleRate *float64 `type:"double"` + + // An array that lists the types of telemetry data that this app monitor is + // to collect. + // + // * errors indicates that RUM collects data about unhandled JavaScript errors + // raised by your application. + // + // * performance indicates that RUM collects performance data about how your + // application and its resources are loaded and rendered. This includes Core + // Web Vitals. + // + // * http indicates that RUM collects data about HTTP errors thrown by your + // application. + Telemetries []*string `type:"list" enum:"Telemetry"` +} + +// 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 AppMonitorConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AppMonitorConfiguration) 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)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAllowCookies sets the AllowCookies field's value. +func (s *AppMonitorConfiguration) SetAllowCookies(v bool) *AppMonitorConfiguration { + s.AllowCookies = &v + return s +} + +// SetEnableXRay sets the EnableXRay field's value. +func (s *AppMonitorConfiguration) SetEnableXRay(v bool) *AppMonitorConfiguration { + s.EnableXRay = &v + return s +} + +// SetExcludedPages sets the ExcludedPages field's value. +func (s *AppMonitorConfiguration) SetExcludedPages(v []*string) *AppMonitorConfiguration { + s.ExcludedPages = v + return s +} + +// SetFavoritePages sets the FavoritePages field's value. +func (s *AppMonitorConfiguration) SetFavoritePages(v []*string) *AppMonitorConfiguration { + s.FavoritePages = v + return s +} + +// SetGuestRoleArn sets the GuestRoleArn field's value. +func (s *AppMonitorConfiguration) SetGuestRoleArn(v string) *AppMonitorConfiguration { + s.GuestRoleArn = &v + return s +} + +// SetIdentityPoolId sets the IdentityPoolId field's value. +func (s *AppMonitorConfiguration) SetIdentityPoolId(v string) *AppMonitorConfiguration { + s.IdentityPoolId = &v + return s +} + +// SetIncludedPages sets the IncludedPages field's value. +func (s *AppMonitorConfiguration) SetIncludedPages(v []*string) *AppMonitorConfiguration { + s.IncludedPages = v + return s +} + +// SetSessionSampleRate sets the SessionSampleRate field's value. +func (s *AppMonitorConfiguration) SetSessionSampleRate(v float64) *AppMonitorConfiguration { + s.SessionSampleRate = &v + return s +} + +// SetTelemetries sets the Telemetries field's value. +func (s *AppMonitorConfiguration) SetTelemetries(v []*string) *AppMonitorConfiguration { + s.Telemetries = v + return s +} + +// A structure that contains information about the RUM app monitor. +type AppMonitorDetails 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"` + + // The version of the app monitor. + Version *string `locationName:"version" 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 AppMonitorDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AppMonitorDetails) 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 + return s +} + +// SetVersion sets the Version field's value. +func (s *AppMonitorDetails) SetVersion(v string) *AppMonitorDetails { + s.Version = &v + return s +} + +// A structure that includes some data about app monitors and their settings. +type AppMonitorSummary struct { + _ struct{} `type:"structure"` + + // The date and time that the app monitor was created. + Created *string `min:"19" type:"string"` + + // The unique ID of this app monitor. + Id *string `min:"36" type:"string"` + + // The date and time of the most recent changes to this app monitor's configuration. + LastModified *string `min:"19" type:"string"` + + // The name of this app monitor. + Name *string `min:"1" type:"string"` + + // The current state of this app monitor. + State *string `type:"string" enum:"StateEnum"` +} + +// 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 AppMonitorSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AppMonitorSummary) GoString() string { + return s.String() +} + +// SetCreated sets the Created field's value. +func (s *AppMonitorSummary) SetCreated(v string) *AppMonitorSummary { + s.Created = &v + return s +} + +// SetId sets the Id field's value. +func (s *AppMonitorSummary) SetId(v string) *AppMonitorSummary { + s.Id = &v + return s +} + +// SetLastModified sets the LastModified field's value. +func (s *AppMonitorSummary) SetLastModified(v string) *AppMonitorSummary { + s.LastModified = &v + return s +} + +// SetName sets the Name field's value. +func (s *AppMonitorSummary) SetName(v string) *AppMonitorSummary { + s.Name = &v + return s +} + +// SetState sets the State field's value. +func (s *AppMonitorSummary) SetState(v string) *AppMonitorSummary { + s.State = &v + return s +} + +// A structure that defines one error caused by a BatchCreateRumMetricsDefinitions +// (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricsDefinitions.html) +// operation. +type BatchCreateRumMetricDefinitionsError struct { + _ struct{} `type:"structure"` + + // The error code. + // + // ErrorCode is a required field + ErrorCode *string `type:"string" required:"true"` + + // The error message for this metric definition. + // + // ErrorMessage is a required field + ErrorMessage *string `type:"string" required:"true"` + + // The metric definition that caused this error. + // + // MetricDefinition is a required field + MetricDefinition *MetricDefinitionRequest `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchCreateRumMetricDefinitionsError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchCreateRumMetricDefinitionsError) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *BatchCreateRumMetricDefinitionsError) SetErrorCode(v string) *BatchCreateRumMetricDefinitionsError { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *BatchCreateRumMetricDefinitionsError) SetErrorMessage(v string) *BatchCreateRumMetricDefinitionsError { + s.ErrorMessage = &v + return s +} + +// SetMetricDefinition sets the MetricDefinition field's value. +func (s *BatchCreateRumMetricDefinitionsError) SetMetricDefinition(v *MetricDefinitionRequest) *BatchCreateRumMetricDefinitionsError { + s.MetricDefinition = v + return s +} + +type BatchCreateRumMetricDefinitionsInput struct { + _ struct{} `type:"structure"` + + // The name of the CloudWatch RUM app monitor that is to send the metrics. + // + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` + + // 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. + // + // Destination is a required field + Destination *string `type:"string" required:"true" enum:"MetricDestination"` + + // 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html). + DestinationArn *string `type:"string"` + + // An array of structures which define the metrics that you want to send. + // + // MetricDefinitions is a required field + MetricDefinitions []*MetricDefinitionRequest `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchCreateRumMetricDefinitionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchCreateRumMetricDefinitionsInput) GoString() string { + return s.String() } -// RequestID returns the service's response RequestID for request. -func (s *AccessDeniedException) RequestID() string { - return s.RespMetadata.RequestID +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchCreateRumMetricDefinitionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchCreateRumMetricDefinitionsInput"} + 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 s.MetricDefinitions == nil { + invalidParams.Add(request.NewErrParamRequired("MetricDefinitions")) + } + if s.MetricDefinitions != nil { + for i, v := range s.MetricDefinitions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// A RUM app monitor 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. -type AppMonitor struct { +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *BatchCreateRumMetricDefinitionsInput) SetAppMonitorName(v string) *BatchCreateRumMetricDefinitionsInput { + s.AppMonitorName = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *BatchCreateRumMetricDefinitionsInput) SetDestination(v string) *BatchCreateRumMetricDefinitionsInput { + s.Destination = &v + return s +} + +// SetDestinationArn sets the DestinationArn field's value. +func (s *BatchCreateRumMetricDefinitionsInput) SetDestinationArn(v string) *BatchCreateRumMetricDefinitionsInput { + s.DestinationArn = &v + return s +} + +// SetMetricDefinitions sets the MetricDefinitions field's value. +func (s *BatchCreateRumMetricDefinitionsInput) SetMetricDefinitions(v []*MetricDefinitionRequest) *BatchCreateRumMetricDefinitionsInput { + s.MetricDefinitions = v + return s +} + +type BatchCreateRumMetricDefinitionsOutput struct { _ struct{} `type:"structure"` - // A structure that contains much of the configuration data for the app monitor. - AppMonitorConfiguration *AppMonitorConfiguration `type:"structure"` + // An array of error objects, if the operation caused any errors. + // + // Errors is a required field + Errors []*BatchCreateRumMetricDefinitionsError `type:"list" required:"true"` - // The date and time that this app monitor was created. - Created *string `min:"19" type:"string"` + // An array of structures that define the extended metrics. + MetricDefinitions []*MetricDefinition `type:"list"` +} - // A structure that contains information about whether this app monitor stores - // a copy of the telemetry data that RUM collects using CloudWatch Logs. - DataStorage *DataStorage `type:"structure"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchCreateRumMetricDefinitionsOutput) String() string { + return awsutil.Prettify(s) +} - // The top-level internet domain name for which your application has administrative - // authority. - Domain *string `min:"1" 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 BatchCreateRumMetricDefinitionsOutput) GoString() string { + return s.String() +} - // The unique ID of this app monitor. - Id *string `min:"36" type:"string"` +// SetErrors sets the Errors field's value. +func (s *BatchCreateRumMetricDefinitionsOutput) SetErrors(v []*BatchCreateRumMetricDefinitionsError) *BatchCreateRumMetricDefinitionsOutput { + s.Errors = v + return s +} - // The date and time of the most recent changes to this app monitor's configuration. - LastModified *string `min:"19" type:"string"` +// SetMetricDefinitions sets the MetricDefinitions field's value. +func (s *BatchCreateRumMetricDefinitionsOutput) SetMetricDefinitions(v []*MetricDefinition) *BatchCreateRumMetricDefinitionsOutput { + s.MetricDefinitions = v + return s +} + +// A structure that defines one error caused by a BatchCreateRumMetricsDefinitions +// (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchDeleteRumMetricsDefinitions.html) +// operation. +type BatchDeleteRumMetricDefinitionsError struct { + _ struct{} `type:"structure"` + + // The error code. + // + // ErrorCode is a required field + ErrorCode *string `type:"string" required:"true"` + + // The error message for this metric definition. + // + // ErrorMessage is a required field + ErrorMessage *string `type:"string" required:"true"` + + // The ID of the metric definition that caused this error. + // + // MetricDefinitionId is a required field + MetricDefinitionId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchDeleteRumMetricDefinitionsError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchDeleteRumMetricDefinitionsError) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *BatchDeleteRumMetricDefinitionsError) SetErrorCode(v string) *BatchDeleteRumMetricDefinitionsError { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *BatchDeleteRumMetricDefinitionsError) SetErrorMessage(v string) *BatchDeleteRumMetricDefinitionsError { + s.ErrorMessage = &v + return s +} + +// SetMetricDefinitionId sets the MetricDefinitionId field's value. +func (s *BatchDeleteRumMetricDefinitionsError) SetMetricDefinitionId(v string) *BatchDeleteRumMetricDefinitionsError { + s.MetricDefinitionId = &v + return s +} + +type BatchDeleteRumMetricDefinitionsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the CloudWatch RUM app monitor that is sending these metrics. + // + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` + + // 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. + // + // Destination is a required field + Destination *string `location:"querystring" locationName:"destination" type:"string" required:"true" enum:"MetricDestination"` + + // 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. + DestinationArn *string `location:"querystring" locationName:"destinationArn" type:"string"` + + // An array of structures which define the metrics that you want to stop sending. + // + // MetricDefinitionIds is a required field + MetricDefinitionIds []*string `location:"querystring" locationName:"metricDefinitionIds" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchDeleteRumMetricDefinitionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchDeleteRumMetricDefinitionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchDeleteRumMetricDefinitionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchDeleteRumMetricDefinitionsInput"} + 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 s.MetricDefinitionIds == nil { + invalidParams.Add(request.NewErrParamRequired("MetricDefinitionIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *BatchDeleteRumMetricDefinitionsInput) SetAppMonitorName(v string) *BatchDeleteRumMetricDefinitionsInput { + s.AppMonitorName = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *BatchDeleteRumMetricDefinitionsInput) SetDestination(v string) *BatchDeleteRumMetricDefinitionsInput { + s.Destination = &v + return s +} + +// SetDestinationArn sets the DestinationArn field's value. +func (s *BatchDeleteRumMetricDefinitionsInput) SetDestinationArn(v string) *BatchDeleteRumMetricDefinitionsInput { + s.DestinationArn = &v + return s +} + +// SetMetricDefinitionIds sets the MetricDefinitionIds field's value. +func (s *BatchDeleteRumMetricDefinitionsInput) SetMetricDefinitionIds(v []*string) *BatchDeleteRumMetricDefinitionsInput { + s.MetricDefinitionIds = v + return s +} + +type BatchDeleteRumMetricDefinitionsOutput struct { + _ struct{} `type:"structure"` + + // An array of error objects, if the operation caused any errors. + // + // Errors is a required field + Errors []*BatchDeleteRumMetricDefinitionsError `type:"list" required:"true"` + + // The IDs of the metric definitions that were deleted. + MetricDefinitionIds []*string `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchDeleteRumMetricDefinitionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchDeleteRumMetricDefinitionsOutput) GoString() string { + return s.String() +} + +// SetErrors sets the Errors field's value. +func (s *BatchDeleteRumMetricDefinitionsOutput) SetErrors(v []*BatchDeleteRumMetricDefinitionsError) *BatchDeleteRumMetricDefinitionsOutput { + s.Errors = v + return s +} + +// SetMetricDefinitionIds sets the MetricDefinitionIds field's value. +func (s *BatchDeleteRumMetricDefinitionsOutput) SetMetricDefinitionIds(v []*string) *BatchDeleteRumMetricDefinitionsOutput { + s.MetricDefinitionIds = v + return s +} + +type BatchGetRumMetricDefinitionsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the CloudWatch RUM app monitor that is sending the metrics. + // + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` + + // The type of destination that you want to view metrics for. Valid values are + // CloudWatch and Evidently. + // + // Destination is a required field + Destination *string `location:"querystring" locationName:"destination" type:"string" required:"true" enum:"MetricDestination"` + + // 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. + DestinationArn *string `location:"querystring" locationName:"destinationArn" type:"string"` + + // 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. +// +// 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 BatchGetRumMetricDefinitionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetRumMetricDefinitionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetRumMetricDefinitionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchGetRumMetricDefinitionsInput"} + 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 s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *BatchGetRumMetricDefinitionsInput) SetAppMonitorName(v string) *BatchGetRumMetricDefinitionsInput { + s.AppMonitorName = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *BatchGetRumMetricDefinitionsInput) SetDestination(v string) *BatchGetRumMetricDefinitionsInput { + s.Destination = &v + return s +} + +// SetDestinationArn sets the DestinationArn field's value. +func (s *BatchGetRumMetricDefinitionsInput) SetDestinationArn(v string) *BatchGetRumMetricDefinitionsInput { + s.DestinationArn = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *BatchGetRumMetricDefinitionsInput) SetMaxResults(v int64) *BatchGetRumMetricDefinitionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *BatchGetRumMetricDefinitionsInput) SetNextToken(v string) *BatchGetRumMetricDefinitionsInput { + s.NextToken = &v + return s +} - // The name of the app monitor. - Name *string `min:"1" type:"string"` +type BatchGetRumMetricDefinitionsOutput struct { + _ struct{} `type:"structure"` - // The current state of the app monitor. - State *string `type:"string" enum:"StateEnum"` + // An array of structures that display information about the metrics that are + // sent by the specified app monitor to the specified destination. + MetricDefinitions []*MetricDefinition `type:"list"` - // The list of tag keys and values associated with this app monitor. - Tags 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"` } // String returns the string representation. @@ -1186,7 +2856,7 @@ type AppMonitor 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 AppMonitor) String() string { +func (s BatchGetRumMetricDefinitionsOutput) String() string { return awsutil.Prettify(s) } @@ -1195,127 +2865,140 @@ func (s AppMonitor) 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 AppMonitor) GoString() string { +func (s BatchGetRumMetricDefinitionsOutput) GoString() string { return s.String() } -// SetAppMonitorConfiguration sets the AppMonitorConfiguration field's value. -func (s *AppMonitor) SetAppMonitorConfiguration(v *AppMonitorConfiguration) *AppMonitor { - s.AppMonitorConfiguration = v +// SetMetricDefinitions sets the MetricDefinitions field's value. +func (s *BatchGetRumMetricDefinitionsOutput) SetMetricDefinitions(v []*MetricDefinition) *BatchGetRumMetricDefinitionsOutput { + s.MetricDefinitions = v return s } -// SetCreated sets the Created field's value. -func (s *AppMonitor) SetCreated(v string) *AppMonitor { - s.Created = &v +// SetNextToken sets the NextToken field's value. +func (s *BatchGetRumMetricDefinitionsOutput) SetNextToken(v string) *BatchGetRumMetricDefinitionsOutput { + s.NextToken = &v return s } -// SetDataStorage sets the DataStorage field's value. -func (s *AppMonitor) SetDataStorage(v *DataStorage) *AppMonitor { - s.DataStorage = v - return s -} +// This operation attempted to create a resource that already exists. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` -// SetDomain sets the Domain field's value. -func (s *AppMonitor) SetDomain(v string) *AppMonitor { - s.Domain = &v - return s -} + Message_ *string `locationName:"message" type:"string"` -// SetId sets the Id field's value. -func (s *AppMonitor) SetId(v string) *AppMonitor { - s.Id = &v - return s + // The name of the resource that is associated with the error. + // + // ResourceName is a required field + ResourceName *string `locationName:"resourceName" type:"string" required:"true"` + + // The type of the resource that is associated with the error. + ResourceType *string `locationName:"resourceType" type:"string"` } -// SetLastModified sets the LastModified field's value. -func (s *AppMonitor) SetLastModified(v string) *AppMonitor { - s.LastModified = &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 ConflictException) String() string { + return awsutil.Prettify(s) } -// SetName sets the Name field's value. -func (s *AppMonitor) SetName(v string) *AppMonitor { - s.Name = &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 ConflictException) GoString() string { + return s.String() } -// SetState sets the State field's value. -func (s *AppMonitor) SetState(v string) *AppMonitor { - s.State = &v - return s +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } } -// SetTags sets the Tags field's value. -func (s *AppMonitor) SetTags(v map[string]*string) *AppMonitor { - s.Tags = v - return s +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" } -// This structure contains much of the configuration data for the app monitor. -type AppMonitorConfiguration struct { - _ struct{} `type:"structure"` +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} - // If you set this to true, the RUM web client sets two cookies, a session cookie - // and a user cookie. The cookies allow the RUM web client to collect data relating - // to the number of users an application has and the behavior of the application - // across a sequence of events. Cookies are stored in the top-level domain of - // the current page. - AllowCookies *bool `type:"boolean"` +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} - // If you set this to true, RUM enables X-Ray tracing for the user sessions - // that RUM samples. RUM adds an X-Ray trace header to allowed HTTP requests. - // It also records an X-Ray segment for allowed HTTP requests. You can see traces - // and segments from these user sessions in the X-Ray console and the CloudWatch - // ServiceLens console. For more information, see What is X-Ray? (https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) - EnableXRay *bool `type:"boolean"` +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} - // A list of URLs in your website or application to exclude from RUM data collection. - // - // You can't include both ExcludedPages and IncludedPages in the same operation. - ExcludedPages []*string `type:"list"` +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} - // A list of pages in the CloudWatch RUM console that are to be displayed with - // a "favorite" icon. - FavoritePages []*string `type:"list"` +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} - // The ARN of the guest IAM role that is attached to the Amazon Cognito identity - // pool that is used to authorize the sending of data to RUM. - GuestRoleArn *string `type:"string"` +type CreateAppMonitorInput struct { + _ struct{} `type:"structure"` - // The ID of the Amazon Cognito identity pool that is used to authorize the - // sending of data to RUM. - IdentityPoolId *string `min:"1" type:"string"` + // 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"` - // If this app monitor is to collect data from only certain pages in your application, - // this structure lists those pages. + // 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. // - //

You can't include both ExcludedPages and IncludedPages - // in the same operation.

- IncludedPages []*string `type:"list"` + // If you omit this parameter, the default is false. + CwLogEnabled *bool `type:"boolean"` - // 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 top-level internet domain name for which your application has administrative + // authority. // - // The number you specify is the percentage of user sessions that will be used. + // Domain is a required field + Domain *string `min:"1" type:"string" required:"true"` + + // A name for the app monitor. // - // If you omit this parameter, the default of 10 is used. - SessionSampleRate *float64 `type:"double"` + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` - // An array that lists the types of telemetry data that this app monitor is - // to collect. + // Assigns one or more tags (key-value pairs) to the app monitor. // - // * errors indicates that RUM collects data about unhandled JavaScript errors - // raised by your application. + // 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. // - // * performance indicates that RUM collects performance data about how your - // application and its resources are loaded and rendered. This includes Core - // Web Vitals. + // Tags don't have any semantic meaning to Amazon Web Services and are interpreted + // strictly as strings of characters. // - // * http indicates that RUM collects data about HTTP errors thrown by your - // application. - Telemetries []*string `type:"list" enum:"Telemetry"` + //

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.

+ DimensionKeys map[string]*string `type:"map"` -// SetNextToken sets the NextToken field's value. -func (s *ListAppMonitorsOutput) SetNextToken(v string) *ListAppMonitorsOutput { - s.NextToken = &v - return s -} + // 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. + EventPattern *string `type:"string"` -type ListTagsForResourceInput struct { - _ struct{} `type:"structure" nopayload:"true"` + // 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 + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` - // The ARN of the resource that you want to see the tags of. + // The CloudWatch metric unit to use for this metric. If you omit this field, + // the metric is recorded with no unit. + UnitLabel *string `min:"1" type:"string"` + + // The field within the event object that the metric value is sourced from. // - // ResourceArn is a required field - ResourceArn *string `location:"uri" locationName:"ResourceArn" type:"string" required:"true"` + // 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. + ValueKey *string `min:"1" type:"string"` } // String returns the string representation. @@ -2279,7 +4179,7 @@ type ListTagsForResourceInput 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 ListTagsForResourceInput) String() string { +func (s MetricDefinitionRequest) String() string { return awsutil.Prettify(s) } @@ -2288,18 +4188,24 @@ func (s ListTagsForResourceInput) 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 ListTagsForResourceInput) GoString() string { +func (s MetricDefinitionRequest) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListTagsForResourceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} - if s.ResourceArn == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceArn")) +func (s *MetricDefinitionRequest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricDefinitionRequest"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.UnitLabel != nil && len(*s.UnitLabel) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UnitLabel", 1)) + } + if s.ValueKey != nil && len(*s.ValueKey) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ValueKey", 1)) } if invalidParams.Len() > 0 { @@ -2308,24 +4214,52 @@ func (s *ListTagsForResourceInput) Validate() error { return nil } -// SetResourceArn sets the ResourceArn field's value. -func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { - s.ResourceArn = &v +// SetDimensionKeys sets the DimensionKeys field's value. +func (s *MetricDefinitionRequest) SetDimensionKeys(v map[string]*string) *MetricDefinitionRequest { + s.DimensionKeys = v return s } -type ListTagsForResourceOutput struct { +// SetEventPattern sets the EventPattern field's value. +func (s *MetricDefinitionRequest) SetEventPattern(v string) *MetricDefinitionRequest { + s.EventPattern = &v + return s +} + +// SetName sets the Name field's value. +func (s *MetricDefinitionRequest) SetName(v string) *MetricDefinitionRequest { + s.Name = &v + return s +} + +// SetUnitLabel sets the UnitLabel field's value. +func (s *MetricDefinitionRequest) SetUnitLabel(v string) *MetricDefinitionRequest { + s.UnitLabel = &v + return s +} + +// SetValueKey sets the ValueKey field's value. +func (s *MetricDefinitionRequest) SetValueKey(v string) *MetricDefinitionRequest { + s.ValueKey = &v + return s +} + +// A structure that displays information about one destination that CloudWatch +// RUM sends extended metrics to. +type MetricDestinationSummary struct { _ struct{} `type:"structure"` - // The ARN of the resource that you are viewing. - // - // ResourceArn is a required field - ResourceArn *string `type:"string" required:"true"` + // Specifies whether the destination is CloudWatch or Evidently. + Destination *string `type:"string" enum:"MetricDestination"` - // 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"` + // If the destination is Evidently, this specifies the ARN of the Evidently + // experiment that receives the metrics. + DestinationArn *string `type:"string"` + + // 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. + IamRoleArn *string `type:"string"` } // String returns the string representation. @@ -2333,7 +4267,7 @@ type ListTagsForResourceOutput 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 ListTagsForResourceOutput) String() string { +func (s MetricDestinationSummary) String() string { return awsutil.Prettify(s) } @@ -2342,19 +4276,25 @@ func (s ListTagsForResourceOutput) 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 ListTagsForResourceOutput) GoString() string { +func (s MetricDestinationSummary) GoString() string { return s.String() } -// SetResourceArn sets the ResourceArn field's value. -func (s *ListTagsForResourceOutput) SetResourceArn(v string) *ListTagsForResourceOutput { - s.ResourceArn = &v +// SetDestination sets the Destination field's value. +func (s *MetricDestinationSummary) SetDestination(v string) *MetricDestinationSummary { + s.Destination = &v return s } -// SetTags sets the Tags field's value. -func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { - s.Tags = v +// SetDestinationArn sets the DestinationArn field's value. +func (s *MetricDestinationSummary) SetDestinationArn(v string) *MetricDestinationSummary { + s.DestinationArn = &v + return s +} + +// SetIamRoleArn sets the IamRoleArn field's value. +func (s *MetricDestinationSummary) SetIamRoleArn(v string) *MetricDestinationSummary { + s.IamRoleArn = &v return s } @@ -2497,6 +4437,118 @@ func (s PutRumEventsOutput) GoString() string { return s.String() } +type PutRumMetricsDestinationInput struct { + _ struct{} `type:"structure"` + + // The name of the CloudWatch RUM app monitor that will send the metrics. + // + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` + + // 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. + // + // Destination is a required field + Destination *string `type:"string" required:"true" enum:"MetricDestination"` + + // Use this parameter only if Destination is Evidently. This parameter specifies + // the ARN of the Evidently experiment that will receive the extended metrics. + DestinationArn *string `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 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. + IamRoleArn *string `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 PutRumMetricsDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutRumMetricsDestinationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutRumMetricsDestinationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutRumMetricsDestinationInput"} + 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 +} + +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *PutRumMetricsDestinationInput) SetAppMonitorName(v string) *PutRumMetricsDestinationInput { + s.AppMonitorName = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *PutRumMetricsDestinationInput) SetDestination(v string) *PutRumMetricsDestinationInput { + s.Destination = &v + return s +} + +// SetDestinationArn sets the DestinationArn field's value. +func (s *PutRumMetricsDestinationInput) SetDestinationArn(v string) *PutRumMetricsDestinationInput { + s.DestinationArn = &v + return s +} + +// SetIamRoleArn sets the IamRoleArn field's value. +func (s *PutRumMetricsDestinationInput) SetIamRoleArn(v string) *PutRumMetricsDestinationInput { + s.IamRoleArn = &v + return s +} + +type PutRumMetricsDestinationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutRumMetricsDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutRumMetricsDestinationOutput) GoString() string { + return s.String() +} + // 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. @@ -3205,6 +5257,145 @@ func (s UpdateAppMonitorOutput) GoString() string { return s.String() } +type UpdateRumMetricDefinitionInput struct { + _ struct{} `type:"structure"` + + // The name of the CloudWatch RUM app monitor that sends these metrics. + // + // AppMonitorName is a required field + AppMonitorName *string `location:"uri" locationName:"AppMonitorName" min:"1" type:"string" required:"true"` + + // 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. + // + // Destination is a required field + Destination *string `type:"string" required:"true" enum:"MetricDestination"` + + // 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 (https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html). + DestinationArn *string `type:"string"` + + // A structure that contains the new definition that you want to use for this + // metric. + // + // MetricDefinition is a required field + MetricDefinition *MetricDefinitionRequest `type:"structure" required:"true"` + + // The ID of the metric definition to update. + // + // MetricDefinitionId is a required field + MetricDefinitionId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRumMetricDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRumMetricDefinitionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRumMetricDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateRumMetricDefinitionInput"} + 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 s.MetricDefinition == nil { + invalidParams.Add(request.NewErrParamRequired("MetricDefinition")) + } + if s.MetricDefinitionId == nil { + invalidParams.Add(request.NewErrParamRequired("MetricDefinitionId")) + } + if s.MetricDefinitionId != nil && len(*s.MetricDefinitionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MetricDefinitionId", 1)) + } + if s.MetricDefinition != nil { + if err := s.MetricDefinition.Validate(); err != nil { + invalidParams.AddNested("MetricDefinition", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAppMonitorName sets the AppMonitorName field's value. +func (s *UpdateRumMetricDefinitionInput) SetAppMonitorName(v string) *UpdateRumMetricDefinitionInput { + s.AppMonitorName = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *UpdateRumMetricDefinitionInput) SetDestination(v string) *UpdateRumMetricDefinitionInput { + s.Destination = &v + return s +} + +// SetDestinationArn sets the DestinationArn field's value. +func (s *UpdateRumMetricDefinitionInput) SetDestinationArn(v string) *UpdateRumMetricDefinitionInput { + s.DestinationArn = &v + return s +} + +// SetMetricDefinition sets the MetricDefinition field's value. +func (s *UpdateRumMetricDefinitionInput) SetMetricDefinition(v *MetricDefinitionRequest) *UpdateRumMetricDefinitionInput { + s.MetricDefinition = v + return s +} + +// SetMetricDefinitionId sets the MetricDefinitionId field's value. +func (s *UpdateRumMetricDefinitionInput) SetMetricDefinitionId(v string) *UpdateRumMetricDefinitionInput { + s.MetricDefinitionId = &v + return s +} + +type UpdateRumMetricDefinitionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRumMetricDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRumMetricDefinitionOutput) GoString() string { + return s.String() +} + // A structure that contains information about the user session that this batch // of events was collected from. type UserDetails struct { @@ -3312,6 +5503,22 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } +const ( + // MetricDestinationCloudWatch is a MetricDestination enum value + MetricDestinationCloudWatch = "CloudWatch" + + // MetricDestinationEvidently is a MetricDestination enum value + MetricDestinationEvidently = "Evidently" +) + +// MetricDestination_Values returns all elements of the MetricDestination enum +func MetricDestination_Values() []string { + return []string{ + MetricDestinationCloudWatch, + MetricDestinationEvidently, + } +} + const ( // StateEnumCreated is a StateEnum enum value StateEnumCreated = "CREATED" diff --git a/service/cloudwatchrum/cloudwatchrumiface/interface.go b/service/cloudwatchrum/cloudwatchrumiface/interface.go index 1de627e921..85e08c1745 100644 --- a/service/cloudwatchrum/cloudwatchrumiface/interface.go +++ b/service/cloudwatchrum/cloudwatchrumiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // CloudWatch RUM. // func myFunc(svc cloudwatchrumiface.CloudWatchRUMAPI) bool { -// // Make svc.CreateAppMonitor request +// // Make svc.BatchCreateRumMetricDefinitions request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockCloudWatchRUMClient struct { // cloudwatchrumiface.CloudWatchRUMAPI // } -// func (m *mockCloudWatchRUMClient) CreateAppMonitor(input *cloudwatchrum.CreateAppMonitorInput) (*cloudwatchrum.CreateAppMonitorOutput, error) { +// func (m *mockCloudWatchRUMClient) BatchCreateRumMetricDefinitions(input *cloudwatchrum.BatchCreateRumMetricDefinitionsInput) (*cloudwatchrum.BatchCreateRumMetricDefinitionsOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,21 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type CloudWatchRUMAPI interface { + BatchCreateRumMetricDefinitions(*cloudwatchrum.BatchCreateRumMetricDefinitionsInput) (*cloudwatchrum.BatchCreateRumMetricDefinitionsOutput, error) + BatchCreateRumMetricDefinitionsWithContext(aws.Context, *cloudwatchrum.BatchCreateRumMetricDefinitionsInput, ...request.Option) (*cloudwatchrum.BatchCreateRumMetricDefinitionsOutput, error) + BatchCreateRumMetricDefinitionsRequest(*cloudwatchrum.BatchCreateRumMetricDefinitionsInput) (*request.Request, *cloudwatchrum.BatchCreateRumMetricDefinitionsOutput) + + BatchDeleteRumMetricDefinitions(*cloudwatchrum.BatchDeleteRumMetricDefinitionsInput) (*cloudwatchrum.BatchDeleteRumMetricDefinitionsOutput, error) + BatchDeleteRumMetricDefinitionsWithContext(aws.Context, *cloudwatchrum.BatchDeleteRumMetricDefinitionsInput, ...request.Option) (*cloudwatchrum.BatchDeleteRumMetricDefinitionsOutput, error) + BatchDeleteRumMetricDefinitionsRequest(*cloudwatchrum.BatchDeleteRumMetricDefinitionsInput) (*request.Request, *cloudwatchrum.BatchDeleteRumMetricDefinitionsOutput) + + BatchGetRumMetricDefinitions(*cloudwatchrum.BatchGetRumMetricDefinitionsInput) (*cloudwatchrum.BatchGetRumMetricDefinitionsOutput, error) + BatchGetRumMetricDefinitionsWithContext(aws.Context, *cloudwatchrum.BatchGetRumMetricDefinitionsInput, ...request.Option) (*cloudwatchrum.BatchGetRumMetricDefinitionsOutput, error) + BatchGetRumMetricDefinitionsRequest(*cloudwatchrum.BatchGetRumMetricDefinitionsInput) (*request.Request, *cloudwatchrum.BatchGetRumMetricDefinitionsOutput) + + BatchGetRumMetricDefinitionsPages(*cloudwatchrum.BatchGetRumMetricDefinitionsInput, func(*cloudwatchrum.BatchGetRumMetricDefinitionsOutput, bool) bool) error + BatchGetRumMetricDefinitionsPagesWithContext(aws.Context, *cloudwatchrum.BatchGetRumMetricDefinitionsInput, func(*cloudwatchrum.BatchGetRumMetricDefinitionsOutput, bool) bool, ...request.Option) error + CreateAppMonitor(*cloudwatchrum.CreateAppMonitorInput) (*cloudwatchrum.CreateAppMonitorOutput, error) CreateAppMonitorWithContext(aws.Context, *cloudwatchrum.CreateAppMonitorInput, ...request.Option) (*cloudwatchrum.CreateAppMonitorOutput, error) CreateAppMonitorRequest(*cloudwatchrum.CreateAppMonitorInput) (*request.Request, *cloudwatchrum.CreateAppMonitorOutput) @@ -68,6 +83,10 @@ type CloudWatchRUMAPI interface { DeleteAppMonitorWithContext(aws.Context, *cloudwatchrum.DeleteAppMonitorInput, ...request.Option) (*cloudwatchrum.DeleteAppMonitorOutput, error) DeleteAppMonitorRequest(*cloudwatchrum.DeleteAppMonitorInput) (*request.Request, *cloudwatchrum.DeleteAppMonitorOutput) + DeleteRumMetricsDestination(*cloudwatchrum.DeleteRumMetricsDestinationInput) (*cloudwatchrum.DeleteRumMetricsDestinationOutput, error) + DeleteRumMetricsDestinationWithContext(aws.Context, *cloudwatchrum.DeleteRumMetricsDestinationInput, ...request.Option) (*cloudwatchrum.DeleteRumMetricsDestinationOutput, error) + DeleteRumMetricsDestinationRequest(*cloudwatchrum.DeleteRumMetricsDestinationInput) (*request.Request, *cloudwatchrum.DeleteRumMetricsDestinationOutput) + GetAppMonitor(*cloudwatchrum.GetAppMonitorInput) (*cloudwatchrum.GetAppMonitorOutput, error) GetAppMonitorWithContext(aws.Context, *cloudwatchrum.GetAppMonitorInput, ...request.Option) (*cloudwatchrum.GetAppMonitorOutput, error) GetAppMonitorRequest(*cloudwatchrum.GetAppMonitorInput) (*request.Request, *cloudwatchrum.GetAppMonitorOutput) @@ -86,6 +105,13 @@ type CloudWatchRUMAPI interface { ListAppMonitorsPages(*cloudwatchrum.ListAppMonitorsInput, func(*cloudwatchrum.ListAppMonitorsOutput, bool) bool) error ListAppMonitorsPagesWithContext(aws.Context, *cloudwatchrum.ListAppMonitorsInput, func(*cloudwatchrum.ListAppMonitorsOutput, bool) bool, ...request.Option) error + ListRumMetricsDestinations(*cloudwatchrum.ListRumMetricsDestinationsInput) (*cloudwatchrum.ListRumMetricsDestinationsOutput, error) + ListRumMetricsDestinationsWithContext(aws.Context, *cloudwatchrum.ListRumMetricsDestinationsInput, ...request.Option) (*cloudwatchrum.ListRumMetricsDestinationsOutput, error) + ListRumMetricsDestinationsRequest(*cloudwatchrum.ListRumMetricsDestinationsInput) (*request.Request, *cloudwatchrum.ListRumMetricsDestinationsOutput) + + ListRumMetricsDestinationsPages(*cloudwatchrum.ListRumMetricsDestinationsInput, func(*cloudwatchrum.ListRumMetricsDestinationsOutput, bool) bool) error + ListRumMetricsDestinationsPagesWithContext(aws.Context, *cloudwatchrum.ListRumMetricsDestinationsInput, func(*cloudwatchrum.ListRumMetricsDestinationsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*cloudwatchrum.ListTagsForResourceInput) (*cloudwatchrum.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *cloudwatchrum.ListTagsForResourceInput, ...request.Option) (*cloudwatchrum.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*cloudwatchrum.ListTagsForResourceInput) (*request.Request, *cloudwatchrum.ListTagsForResourceOutput) @@ -94,6 +120,10 @@ type CloudWatchRUMAPI interface { PutRumEventsWithContext(aws.Context, *cloudwatchrum.PutRumEventsInput, ...request.Option) (*cloudwatchrum.PutRumEventsOutput, error) PutRumEventsRequest(*cloudwatchrum.PutRumEventsInput) (*request.Request, *cloudwatchrum.PutRumEventsOutput) + PutRumMetricsDestination(*cloudwatchrum.PutRumMetricsDestinationInput) (*cloudwatchrum.PutRumMetricsDestinationOutput, error) + PutRumMetricsDestinationWithContext(aws.Context, *cloudwatchrum.PutRumMetricsDestinationInput, ...request.Option) (*cloudwatchrum.PutRumMetricsDestinationOutput, error) + PutRumMetricsDestinationRequest(*cloudwatchrum.PutRumMetricsDestinationInput) (*request.Request, *cloudwatchrum.PutRumMetricsDestinationOutput) + TagResource(*cloudwatchrum.TagResourceInput) (*cloudwatchrum.TagResourceOutput, error) TagResourceWithContext(aws.Context, *cloudwatchrum.TagResourceInput, ...request.Option) (*cloudwatchrum.TagResourceOutput, error) TagResourceRequest(*cloudwatchrum.TagResourceInput) (*request.Request, *cloudwatchrum.TagResourceOutput) @@ -105,6 +135,10 @@ type CloudWatchRUMAPI interface { UpdateAppMonitor(*cloudwatchrum.UpdateAppMonitorInput) (*cloudwatchrum.UpdateAppMonitorOutput, error) UpdateAppMonitorWithContext(aws.Context, *cloudwatchrum.UpdateAppMonitorInput, ...request.Option) (*cloudwatchrum.UpdateAppMonitorOutput, error) UpdateAppMonitorRequest(*cloudwatchrum.UpdateAppMonitorInput) (*request.Request, *cloudwatchrum.UpdateAppMonitorOutput) + + UpdateRumMetricDefinition(*cloudwatchrum.UpdateRumMetricDefinitionInput) (*cloudwatchrum.UpdateRumMetricDefinitionOutput, error) + UpdateRumMetricDefinitionWithContext(aws.Context, *cloudwatchrum.UpdateRumMetricDefinitionInput, ...request.Option) (*cloudwatchrum.UpdateRumMetricDefinitionOutput, error) + UpdateRumMetricDefinitionRequest(*cloudwatchrum.UpdateRumMetricDefinitionInput) (*request.Request, *cloudwatchrum.UpdateRumMetricDefinitionOutput) } var _ CloudWatchRUMAPI = (*cloudwatchrum.CloudWatchRUM)(nil) diff --git a/service/devopsguru/api.go b/service/devopsguru/api.go index b2dc38becf..fe1070deed 100644 --- a/service/devopsguru/api.go +++ b/service/devopsguru/api.go @@ -3192,9 +3192,9 @@ func (c *DevOpsGuru) SearchInsightsRequest(input *SearchInsightsInput) (req *req // SearchInsights API operation for Amazon DevOps Guru. // // 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). +// 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. @@ -4561,6 +4561,10 @@ func (s *CloudFormationCostEstimationResourceCollectionFilter) SetStackNames(v [ type CloudFormationHealth struct { _ struct{} `type:"structure"` + // Number of resources that DevOps Guru is monitoring in your account that are + // specified by an Amazon Web Services CloudFormation stack. + AnalyzedResourceCount *int64 `type:"long"` + // Information about the health of the Amazon Web Services resources in your // account that are specified by an Amazon Web Services CloudFormation stack, // including the number of open proactive, open reactive insights, and the Mean @@ -4589,6 +4593,12 @@ func (s CloudFormationHealth) GoString() string { return s.String() } +// SetAnalyzedResourceCount sets the AnalyzedResourceCount field's value. +func (s *CloudFormationHealth) SetAnalyzedResourceCount(v int64) *CloudFormationHealth { + s.AnalyzedResourceCount = &v + return s +} + // SetInsight sets the Insight field's value. func (s *CloudFormationHealth) SetInsight(v *InsightHealth) *CloudFormationHealth { s.Insight = v @@ -5090,6 +5100,10 @@ func (s DescribeAccountHealthInput) GoString() string { type DescribeAccountHealthOutput struct { _ struct{} `type:"structure"` + // Number of resources that DevOps Guru is monitoring in your Amazon Web Services + // account. + AnalyzedResourceCount *int64 `type:"long"` + // An integer that specifies the number of metrics that have been analyzed in // your Amazon Web Services account. // @@ -5133,6 +5147,12 @@ func (s DescribeAccountHealthOutput) GoString() string { return s.String() } +// SetAnalyzedResourceCount sets the AnalyzedResourceCount field's value. +func (s *DescribeAccountHealthOutput) SetAnalyzedResourceCount(v int64) *DescribeAccountHealthOutput { + s.AnalyzedResourceCount = &v + return s +} + // SetMetricsAnalyzed sets the MetricsAnalyzed field's value. func (s *DescribeAccountHealthOutput) SetMetricsAnalyzed(v int64) *DescribeAccountHealthOutput { s.MetricsAnalyzed = &v @@ -7955,9 +7975,7 @@ type ListMonitoredResourcesInput struct { // Filters to determine which monitored resources you want to retrieve. You // can filter by resource type or resource permission status. - // - // Filters is a required field - Filters *ListMonitoredResourcesFilters `type:"structure" required:"true"` + Filters *ListMonitoredResourcesFilters `type:"structure"` // The maximum number of results to return with a single call. To retrieve the // remaining results, make another call with the returned nextToken value. @@ -7989,9 +8007,6 @@ func (s ListMonitoredResourcesInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *ListMonitoredResourcesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ListMonitoredResourcesInput"} - if s.Filters == nil { - invalidParams.Add(request.NewErrParamRequired("Filters")) - } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } @@ -8626,9 +8641,21 @@ func (s *LogsAnomalyDetectionIntegrationConfig) SetOptInStatus(v string) *LogsAn type MonitoredResourceIdentifier struct { _ struct{} `type:"structure"` + // The time at which DevOps Guru last updated this resource. + LastUpdated *time.Time `type:"timestamp"` + // The name of the resource being monitored. MonitoredResourceName *string `min:"1" type:"string"` + // A collection of Amazon Web Services resources supported by DevOps Guru. The + // two types of Amazon Web Services resource collections supported are Amazon + // Web Services CloudFormation stacks and Amazon Web Services resources that + // contain the same Amazon Web Services tag. DevOps Guru can be configured to + // analyze the Amazon Web Services resources that are defined in the stacks + // or that are tagged using the same tag key. You can specify up to 500 Amazon + // Web Services CloudFormation stacks. + ResourceCollection *ResourceCollection `type:"structure"` + // The permission status of a resource. ResourcePermission *string `type:"string" enum:"ResourcePermission"` @@ -8654,12 +8681,24 @@ func (s MonitoredResourceIdentifier) GoString() string { return s.String() } +// SetLastUpdated sets the LastUpdated field's value. +func (s *MonitoredResourceIdentifier) SetLastUpdated(v time.Time) *MonitoredResourceIdentifier { + s.LastUpdated = &v + return s +} + // SetMonitoredResourceName sets the MonitoredResourceName field's value. func (s *MonitoredResourceIdentifier) SetMonitoredResourceName(v string) *MonitoredResourceIdentifier { s.MonitoredResourceName = &v return s } +// SetResourceCollection sets the ResourceCollection field's value. +func (s *MonitoredResourceIdentifier) SetResourceCollection(v *ResourceCollection) *MonitoredResourceIdentifier { + s.ResourceCollection = v + return s +} + // SetResourcePermission sets the ResourcePermission field's value. func (s *MonitoredResourceIdentifier) SetResourcePermission(v string) *MonitoredResourceIdentifier { s.ResourcePermission = &v @@ -12072,6 +12111,10 @@ func (s *ServiceCollection) SetServiceNames(v []*string) *ServiceCollection { type ServiceHealth struct { _ struct{} `type:"structure"` + // Number of resources that DevOps Guru is monitoring in an analyzed Amazon + // Web Services service. + AnalyzedResourceCount *int64 `type:"long"` + // Represents the health of an Amazon Web Services service. This is a ServiceInsightHealth // that contains the number of open proactive and reactive insights for this // service. @@ -12099,6 +12142,12 @@ func (s ServiceHealth) GoString() string { return s.String() } +// SetAnalyzedResourceCount sets the AnalyzedResourceCount field's value. +func (s *ServiceHealth) SetAnalyzedResourceCount(v int64) *ServiceHealth { + s.AnalyzedResourceCount = &v + return s +} + // SetInsight sets the Insight field's value. func (s *ServiceHealth) SetInsight(v *ServiceInsightHealth) *ServiceHealth { s.Insight = v @@ -12801,6 +12850,10 @@ func (s *TagCostEstimationResourceCollectionFilter) SetTagValues(v []*string) *T type TagHealth struct { _ struct{} `type:"structure"` + // Number of resources that DevOps Guru is monitoring in your account that are + // specified by an Amazon Web Services tag. + AnalyzedResourceCount *int64 `type:"long"` + // An Amazon Web Services tag key that is used to identify the Amazon Web Services // resources that DevOps Guru analyzes. All Amazon Web Services resources in // your account and Region tagged with this key make up your DevOps Guru application @@ -12850,6 +12903,12 @@ func (s TagHealth) GoString() string { return s.String() } +// SetAnalyzedResourceCount sets the AnalyzedResourceCount field's value. +func (s *TagHealth) SetAnalyzedResourceCount(v int64) *TagHealth { + s.AnalyzedResourceCount = &v + return s +} + // SetAppBoundaryKey sets the AppBoundaryKey field's value. func (s *TagHealth) SetAppBoundaryKey(v string) *TagHealth { s.AppBoundaryKey = &v @@ -14051,12 +14110,116 @@ func ResourcePermission_Values() []string { const ( // ResourceTypeFilterLogGroups is a ResourceTypeFilter enum value ResourceTypeFilterLogGroups = "LOG_GROUPS" + + // ResourceTypeFilterCloudfrontDistribution is a ResourceTypeFilter enum value + ResourceTypeFilterCloudfrontDistribution = "CLOUDFRONT_DISTRIBUTION" + + // ResourceTypeFilterDynamodbTable is a ResourceTypeFilter enum value + ResourceTypeFilterDynamodbTable = "DYNAMODB_TABLE" + + // ResourceTypeFilterEc2NatGateway is a ResourceTypeFilter enum value + ResourceTypeFilterEc2NatGateway = "EC2_NAT_GATEWAY" + + // ResourceTypeFilterEcsCluster is a ResourceTypeFilter enum value + ResourceTypeFilterEcsCluster = "ECS_CLUSTER" + + // ResourceTypeFilterEcsService is a ResourceTypeFilter enum value + ResourceTypeFilterEcsService = "ECS_SERVICE" + + // ResourceTypeFilterEksCluster is a ResourceTypeFilter enum value + ResourceTypeFilterEksCluster = "EKS_CLUSTER" + + // ResourceTypeFilterElasticBeanstalkEnvironment is a ResourceTypeFilter enum value + ResourceTypeFilterElasticBeanstalkEnvironment = "ELASTIC_BEANSTALK_ENVIRONMENT" + + // ResourceTypeFilterElasticLoadBalancerLoadBalancer is a ResourceTypeFilter enum value + ResourceTypeFilterElasticLoadBalancerLoadBalancer = "ELASTIC_LOAD_BALANCER_LOAD_BALANCER" + + // ResourceTypeFilterElasticLoadBalancingV2LoadBalancer is a ResourceTypeFilter enum value + ResourceTypeFilterElasticLoadBalancingV2LoadBalancer = "ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER" + + // ResourceTypeFilterElasticLoadBalancingV2TargetGroup is a ResourceTypeFilter enum value + ResourceTypeFilterElasticLoadBalancingV2TargetGroup = "ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP" + + // ResourceTypeFilterElasticacheCacheCluster is a ResourceTypeFilter enum value + ResourceTypeFilterElasticacheCacheCluster = "ELASTICACHE_CACHE_CLUSTER" + + // ResourceTypeFilterElasticsearchDomain is a ResourceTypeFilter enum value + ResourceTypeFilterElasticsearchDomain = "ELASTICSEARCH_DOMAIN" + + // ResourceTypeFilterKinesisStream is a ResourceTypeFilter enum value + ResourceTypeFilterKinesisStream = "KINESIS_STREAM" + + // ResourceTypeFilterLambdaFunction is a ResourceTypeFilter enum value + ResourceTypeFilterLambdaFunction = "LAMBDA_FUNCTION" + + // ResourceTypeFilterOpenSearchServiceDomain is a ResourceTypeFilter enum value + ResourceTypeFilterOpenSearchServiceDomain = "OPEN_SEARCH_SERVICE_DOMAIN" + + // ResourceTypeFilterRdsDbInstance is a ResourceTypeFilter enum value + ResourceTypeFilterRdsDbInstance = "RDS_DB_INSTANCE" + + // ResourceTypeFilterRdsDbCluster is a ResourceTypeFilter enum value + ResourceTypeFilterRdsDbCluster = "RDS_DB_CLUSTER" + + // ResourceTypeFilterRedshiftCluster is a ResourceTypeFilter enum value + ResourceTypeFilterRedshiftCluster = "REDSHIFT_CLUSTER" + + // ResourceTypeFilterRoute53HostedZone is a ResourceTypeFilter enum value + ResourceTypeFilterRoute53HostedZone = "ROUTE53_HOSTED_ZONE" + + // ResourceTypeFilterRoute53HealthCheck is a ResourceTypeFilter enum value + ResourceTypeFilterRoute53HealthCheck = "ROUTE53_HEALTH_CHECK" + + // ResourceTypeFilterS3Bucket is a ResourceTypeFilter enum value + ResourceTypeFilterS3Bucket = "S3_BUCKET" + + // ResourceTypeFilterSagemakerEndpoint is a ResourceTypeFilter enum value + ResourceTypeFilterSagemakerEndpoint = "SAGEMAKER_ENDPOINT" + + // ResourceTypeFilterSnsTopic is a ResourceTypeFilter enum value + ResourceTypeFilterSnsTopic = "SNS_TOPIC" + + // ResourceTypeFilterSqsQueue is a ResourceTypeFilter enum value + ResourceTypeFilterSqsQueue = "SQS_QUEUE" + + // ResourceTypeFilterStepFunctionsActivity is a ResourceTypeFilter enum value + ResourceTypeFilterStepFunctionsActivity = "STEP_FUNCTIONS_ACTIVITY" + + // ResourceTypeFilterStepFunctionsStateMachine is a ResourceTypeFilter enum value + ResourceTypeFilterStepFunctionsStateMachine = "STEP_FUNCTIONS_STATE_MACHINE" ) // ResourceTypeFilter_Values returns all elements of the ResourceTypeFilter enum func ResourceTypeFilter_Values() []string { return []string{ ResourceTypeFilterLogGroups, + ResourceTypeFilterCloudfrontDistribution, + ResourceTypeFilterDynamodbTable, + ResourceTypeFilterEc2NatGateway, + ResourceTypeFilterEcsCluster, + ResourceTypeFilterEcsService, + ResourceTypeFilterEksCluster, + ResourceTypeFilterElasticBeanstalkEnvironment, + ResourceTypeFilterElasticLoadBalancerLoadBalancer, + ResourceTypeFilterElasticLoadBalancingV2LoadBalancer, + ResourceTypeFilterElasticLoadBalancingV2TargetGroup, + ResourceTypeFilterElasticacheCacheCluster, + ResourceTypeFilterElasticsearchDomain, + ResourceTypeFilterKinesisStream, + ResourceTypeFilterLambdaFunction, + ResourceTypeFilterOpenSearchServiceDomain, + ResourceTypeFilterRdsDbInstance, + ResourceTypeFilterRdsDbCluster, + ResourceTypeFilterRedshiftCluster, + ResourceTypeFilterRoute53HostedZone, + ResourceTypeFilterRoute53HealthCheck, + ResourceTypeFilterS3Bucket, + ResourceTypeFilterSagemakerEndpoint, + ResourceTypeFilterSnsTopic, + ResourceTypeFilterSqsQueue, + ResourceTypeFilterStepFunctionsActivity, + ResourceTypeFilterStepFunctionsStateMachine, } } diff --git a/service/globalaccelerator/api.go b/service/globalaccelerator/api.go index bd0f691582..349d0271b7 100644 --- a/service/globalaccelerator/api.go +++ b/service/globalaccelerator/api.go @@ -126,6 +126,114 @@ func (c *GlobalAccelerator) AddCustomRoutingEndpointsWithContext(ctx aws.Context return out, req.Send() } +const opAddEndpoints = "AddEndpoints" + +// AddEndpointsRequest generates a "aws/request.Request" representing the +// client's request for the AddEndpoints 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 AddEndpoints for more information on using the AddEndpoints +// 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 AddEndpointsRequest method. +// req, resp := client.AddEndpointsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AddEndpoints +func (c *GlobalAccelerator) AddEndpointsRequest(input *AddEndpointsInput) (req *request.Request, output *AddEndpointsOutput) { + op := &request.Operation{ + Name: opAddEndpoints, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AddEndpointsInput{} + } + + output = &AddEndpointsOutput{} + req = c.newRequest(op, input, output) + return +} + +// AddEndpoints API operation for AWS Global Accelerator. +// +// 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 +// (https://docs.aws.amazon.com/global-accelerator/latest/api/API_CreateEndpointGroup.html) +// API) or when you update an endpoint group (with the UpdateEndpointGroup (https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html) +// 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. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Global Accelerator's +// API operation AddEndpoints for usage and error information. +// +// Returned Error Types: +// +// - TransactionInProgressException +// There's already a transaction in progress. Another transaction can't be processed. +// +// - EndpointGroupNotFoundException +// The endpoint group that you specified doesn't exist. +// +// - InternalServiceErrorException +// There was an internal error for Global Accelerator. +// +// - InvalidArgumentException +// An argument that you specified is invalid. +// +// - LimitExceededException +// Processing your request would cause you to exceed an Global Accelerator limit. +// +// - AccessDeniedException +// You don't have access permission. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AddEndpoints +func (c *GlobalAccelerator) AddEndpoints(input *AddEndpointsInput) (*AddEndpointsOutput, error) { + req, out := c.AddEndpointsRequest(input) + return out, req.Send() +} + +// AddEndpointsWithContext is the same as AddEndpoints with the addition of +// the ability to pass a context and additional request options. +// +// See AddEndpoints for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GlobalAccelerator) AddEndpointsWithContext(ctx aws.Context, input *AddEndpointsInput, opts ...request.Option) (*AddEndpointsOutput, error) { + req, out := c.AddEndpointsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAdvertiseByoipCidr = "AdvertiseByoipCidr" // AdvertiseByoipCidrRequest generates a "aws/request.Request" representing the @@ -3958,6 +4066,113 @@ func (c *GlobalAccelerator) RemoveCustomRoutingEndpointsWithContext(ctx aws.Cont return out, req.Send() } +const opRemoveEndpoints = "RemoveEndpoints" + +// RemoveEndpointsRequest generates a "aws/request.Request" representing the +// client's request for the RemoveEndpoints 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 RemoveEndpoints for more information on using the RemoveEndpoints +// 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 RemoveEndpointsRequest method. +// req, resp := client.RemoveEndpointsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveEndpoints +func (c *GlobalAccelerator) RemoveEndpointsRequest(input *RemoveEndpointsInput) (req *request.Request, output *RemoveEndpointsOutput) { + op := &request.Operation{ + Name: opRemoveEndpoints, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RemoveEndpointsInput{} + } + + output = &RemoveEndpointsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// RemoveEndpoints API operation for AWS Global Accelerator. +// +// 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 (https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html) +// 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. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Global Accelerator's +// API operation RemoveEndpoints for usage and error information. +// +// Returned Error Types: +// +// - EndpointGroupNotFoundException +// The endpoint group that you specified doesn't exist. +// +// - InternalServiceErrorException +// There was an internal error for Global Accelerator. +// +// - InvalidArgumentException +// An argument that you specified is invalid. +// +// - AccessDeniedException +// You don't have access permission. +// +// - TransactionInProgressException +// There's already a transaction in progress. Another transaction can't be processed. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveEndpoints +func (c *GlobalAccelerator) RemoveEndpoints(input *RemoveEndpointsInput) (*RemoveEndpointsOutput, error) { + req, out := c.RemoveEndpointsRequest(input) + return out, req.Send() +} + +// RemoveEndpointsWithContext is the same as RemoveEndpoints with the addition of +// the ability to pass a context and additional request options. +// +// See RemoveEndpoints for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GlobalAccelerator) RemoveEndpointsWithContext(ctx aws.Context, input *RemoveEndpointsInput, opts ...request.Option) (*RemoveEndpointsOutput, error) { + req, out := c.RemoveEndpointsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opTagResource = "TagResource" // TagResourceRequest generates a "aws/request.Request" representing the @@ -4890,9 +5105,9 @@ type Accelerator struct { // // 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). + // addresses for the accelerator: two IPv4 addresses and two IPv6 addresses. // - // For more information about the default DNS name, see Support for DNS Addressing + // For more information about the default DNS name, see Support for DNS addressing // in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html) // in the Global Accelerator Developer Guide. DnsName *string `type:"string"` @@ -4908,7 +5123,7 @@ type Accelerator struct { // 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 + // For more information, see Support for DNS addressing in Global Accelerator // (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing) // in the Global Accelerator Developer Guide. DualStackDnsName *string `type:"string"` @@ -5432,6 +5647,106 @@ func (s *AddCustomRoutingEndpointsOutput) SetEndpointGroupArn(v string) *AddCust return s } +type AddEndpointsInput struct { + _ struct{} `type:"structure"` + + // The list of endpoint objects. + // + // EndpointConfigurations is a required field + EndpointConfigurations []*EndpointConfiguration `type:"list" required:"true"` + + // The Amazon Resource Name (ARN) of the endpoint group. + // + // EndpointGroupArn is a required field + EndpointGroupArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddEndpointsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddEndpointsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddEndpointsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddEndpointsInput"} + if s.EndpointConfigurations == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointConfigurations")) + } + if s.EndpointGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndpointConfigurations sets the EndpointConfigurations field's value. +func (s *AddEndpointsInput) SetEndpointConfigurations(v []*EndpointConfiguration) *AddEndpointsInput { + s.EndpointConfigurations = v + return s +} + +// SetEndpointGroupArn sets the EndpointGroupArn field's value. +func (s *AddEndpointsInput) SetEndpointGroupArn(v string) *AddEndpointsInput { + s.EndpointGroupArn = &v + return s +} + +type AddEndpointsOutput struct { + _ struct{} `type:"structure"` + + // The list of endpoint objects. + EndpointDescriptions []*EndpointDescription `type:"list"` + + // The Amazon Resource Name (ARN) of the endpoint group. + EndpointGroupArn *string `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 AddEndpointsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddEndpointsOutput) GoString() string { + return s.String() +} + +// SetEndpointDescriptions sets the EndpointDescriptions field's value. +func (s *AddEndpointsOutput) SetEndpointDescriptions(v []*EndpointDescription) *AddEndpointsOutput { + s.EndpointDescriptions = v + return s +} + +// SetEndpointGroupArn sets the EndpointGroupArn field's value. +func (s *AddEndpointsOutput) SetEndpointGroupArn(v string) *AddEndpointsOutput { + s.EndpointGroupArn = &v + return s +} + type AdvertiseByoipCidrInput struct { _ struct{} `type:"structure"` @@ -7067,9 +7382,9 @@ type CustomRoutingAccelerator struct { // // 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). + // addresses for the accelerator: two IPv4 addresses and two IPv6 addresses. // - // For more information about the default DNS name, see Support for DNS Addressing + // For more information about the default DNS name, see Support for DNS addressing // in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html) // in the Global Accelerator Developer Guide. DnsName *string `type:"string"` @@ -9385,6 +9700,73 @@ func (s *EndpointGroupNotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// A complex type for an endpoint. Specifies information about the endpoint +// to remove from the endpoint group. +type EndpointIdentifier struct { + _ struct{} `type:"structure"` + + // 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. + ClientIPPreservationEnabled *bool `type:"boolean"` + + // 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. + // + // EndpointId is a required field + EndpointId *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EndpointIdentifier) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EndpointIdentifier) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EndpointIdentifier) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EndpointIdentifier"} + if s.EndpointId == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientIPPreservationEnabled sets the ClientIPPreservationEnabled field's value. +func (s *EndpointIdentifier) SetClientIPPreservationEnabled(v bool) *EndpointIdentifier { + s.ClientIPPreservationEnabled = &v + return s +} + +// SetEndpointId sets the EndpointId field's value. +func (s *EndpointIdentifier) SetEndpointId(v string) *EndpointIdentifier { + s.EndpointId = &v + return s +} + // The endpoint that you specified doesn't exist. type EndpointNotFoundException struct { _ struct{} `type:"structure"` @@ -11475,6 +11857,101 @@ func (s RemoveCustomRoutingEndpointsOutput) GoString() string { return s.String() } +type RemoveEndpointsInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the endpoint group. + // + // EndpointGroupArn is a required field + EndpointGroupArn *string `type:"string" required:"true"` + + // The identifiers of the endpoints that you want to remove. + // + // EndpointIdentifiers is a required field + EndpointIdentifiers []*EndpointIdentifier `min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveEndpointsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveEndpointsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RemoveEndpointsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RemoveEndpointsInput"} + if s.EndpointGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointGroupArn")) + } + if s.EndpointIdentifiers == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointIdentifiers")) + } + if s.EndpointIdentifiers != nil && len(s.EndpointIdentifiers) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EndpointIdentifiers", 1)) + } + if s.EndpointIdentifiers != nil { + for i, v := range s.EndpointIdentifiers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EndpointIdentifiers", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndpointGroupArn sets the EndpointGroupArn field's value. +func (s *RemoveEndpointsInput) SetEndpointGroupArn(v string) *RemoveEndpointsInput { + s.EndpointGroupArn = &v + return s +} + +// SetEndpointIdentifiers sets the EndpointIdentifiers field's value. +func (s *RemoveEndpointsInput) SetEndpointIdentifiers(v []*EndpointIdentifier) *RemoveEndpointsInput { + s.EndpointIdentifiers = v + return s +} + +type RemoveEndpointsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveEndpointsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveEndpointsOutput) GoString() string { + return s.String() +} + // An IP address/port combination. type SocketAddress struct { _ struct{} `type:"structure"` @@ -11677,6 +12154,70 @@ func (s TagResourceOutput) GoString() string { return s.String() } +// There's already a transaction in progress. Another transaction can't be processed. +type TransactionInProgressException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransactionInProgressException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TransactionInProgressException) GoString() string { + return s.String() +} + +func newErrorTransactionInProgressException(v protocol.ResponseMetadata) error { + return &TransactionInProgressException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TransactionInProgressException) Code() string { + return "TransactionInProgressException" +} + +// Message returns the exception's message. +func (s *TransactionInProgressException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TransactionInProgressException) OrigErr() error { + return nil +} + +func (s *TransactionInProgressException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TransactionInProgressException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TransactionInProgressException) RequestID() string { + return s.RespMetadata.RequestID +} + type UntagResourceInput struct { _ struct{} `type:"structure"` diff --git a/service/globalaccelerator/errors.go b/service/globalaccelerator/errors.go index 3f1bfc88a8..0406c64c5d 100644 --- a/service/globalaccelerator/errors.go +++ b/service/globalaccelerator/errors.go @@ -121,6 +121,12 @@ const ( // // The listener that you specified doesn't exist. ErrCodeListenerNotFoundException = "ListenerNotFoundException" + + // ErrCodeTransactionInProgressException for service response error code + // "TransactionInProgressException". + // + // There's already a transaction in progress. Another transaction can't be processed. + ErrCodeTransactionInProgressException = "TransactionInProgressException" ) var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ @@ -142,4 +148,5 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "InvalidPortRangeException": newErrorInvalidPortRangeException, "LimitExceededException": newErrorLimitExceededException, "ListenerNotFoundException": newErrorListenerNotFoundException, + "TransactionInProgressException": newErrorTransactionInProgressException, } diff --git a/service/globalaccelerator/globalacceleratoriface/interface.go b/service/globalaccelerator/globalacceleratoriface/interface.go index 9081fafae6..727a6d577b 100644 --- a/service/globalaccelerator/globalacceleratoriface/interface.go +++ b/service/globalaccelerator/globalacceleratoriface/interface.go @@ -64,6 +64,10 @@ type GlobalAcceleratorAPI interface { AddCustomRoutingEndpointsWithContext(aws.Context, *globalaccelerator.AddCustomRoutingEndpointsInput, ...request.Option) (*globalaccelerator.AddCustomRoutingEndpointsOutput, error) AddCustomRoutingEndpointsRequest(*globalaccelerator.AddCustomRoutingEndpointsInput) (*request.Request, *globalaccelerator.AddCustomRoutingEndpointsOutput) + AddEndpoints(*globalaccelerator.AddEndpointsInput) (*globalaccelerator.AddEndpointsOutput, error) + AddEndpointsWithContext(aws.Context, *globalaccelerator.AddEndpointsInput, ...request.Option) (*globalaccelerator.AddEndpointsOutput, error) + AddEndpointsRequest(*globalaccelerator.AddEndpointsInput) (*request.Request, *globalaccelerator.AddEndpointsOutput) + AdvertiseByoipCidr(*globalaccelerator.AdvertiseByoipCidrInput) (*globalaccelerator.AdvertiseByoipCidrOutput, error) AdvertiseByoipCidrWithContext(aws.Context, *globalaccelerator.AdvertiseByoipCidrInput, ...request.Option) (*globalaccelerator.AdvertiseByoipCidrOutput, error) AdvertiseByoipCidrRequest(*globalaccelerator.AdvertiseByoipCidrInput) (*request.Request, *globalaccelerator.AdvertiseByoipCidrOutput) @@ -235,6 +239,10 @@ type GlobalAcceleratorAPI interface { RemoveCustomRoutingEndpointsWithContext(aws.Context, *globalaccelerator.RemoveCustomRoutingEndpointsInput, ...request.Option) (*globalaccelerator.RemoveCustomRoutingEndpointsOutput, error) RemoveCustomRoutingEndpointsRequest(*globalaccelerator.RemoveCustomRoutingEndpointsInput) (*request.Request, *globalaccelerator.RemoveCustomRoutingEndpointsOutput) + RemoveEndpoints(*globalaccelerator.RemoveEndpointsInput) (*globalaccelerator.RemoveEndpointsOutput, error) + RemoveEndpointsWithContext(aws.Context, *globalaccelerator.RemoveEndpointsInput, ...request.Option) (*globalaccelerator.RemoveEndpointsOutput, error) + RemoveEndpointsRequest(*globalaccelerator.RemoveEndpointsInput) (*request.Request, *globalaccelerator.RemoveEndpointsOutput) + TagResource(*globalaccelerator.TagResourceInput) (*globalaccelerator.TagResourceOutput, error) TagResourceWithContext(aws.Context, *globalaccelerator.TagResourceInput, ...request.Option) (*globalaccelerator.TagResourceOutput, error) TagResourceRequest(*globalaccelerator.TagResourceInput) (*request.Request, *globalaccelerator.TagResourceOutput) diff --git a/service/resiliencehub/api.go b/service/resiliencehub/api.go index 5b7e92d84e..7cdd733bb6 100644 --- a/service/resiliencehub/api.go +++ b/service/resiliencehub/api.go @@ -4970,7 +4970,7 @@ type App struct { // The current resiliency score for the application. ResiliencyScore *float64 `locationName:"resiliencyScore" type:"double"` - // The status of the action. + // The status of the application. Status *string `locationName:"status" type:"string" enum:"AppStatusType"` // The tags assigned to the resource. A tag is a label that you assign to an @@ -5554,6 +5554,9 @@ type AppSummary struct { // The current resiliency score for the application. ResiliencyScore *float64 `locationName:"resiliencyScore" type:"double"` + + // The status of the application. + Status *string `locationName:"status" type:"string" enum:"AppStatusType"` } // String returns the string representation. @@ -5616,6 +5619,12 @@ func (s *AppSummary) SetResiliencyScore(v float64) *AppSummary { return s } +// SetStatus sets the Status field's value. +func (s *AppSummary) SetStatus(v string) *AppSummary { + s.Status = &v + return s +} + // The version of the application. type AppVersionSummary struct { _ struct{} `type:"structure"` @@ -12210,9 +12219,6 @@ type UpdateResiliencyPolicyInput struct { // 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. Policy map[string]*FailurePolicy `locationName:"policy" type:"map"` // The Amazon Resource Name (ARN) of the resiliency policy. The format for this @@ -12564,6 +12570,9 @@ const ( // ConfigRecommendationOptimizationTypeBestAttainable is a ConfigRecommendationOptimizationType enum value ConfigRecommendationOptimizationTypeBestAttainable = "BestAttainable" + + // ConfigRecommendationOptimizationTypeBestRegionRecovery is a ConfigRecommendationOptimizationType enum value + ConfigRecommendationOptimizationTypeBestRegionRecovery = "BestRegionRecovery" ) // ConfigRecommendationOptimizationType_Values returns all elements of the ConfigRecommendationOptimizationType enum @@ -12574,6 +12583,7 @@ func ConfigRecommendationOptimizationType_Values() []string { ConfigRecommendationOptimizationTypeBestAzrecovery, ConfigRecommendationOptimizationTypeLeastErrors, ConfigRecommendationOptimizationTypeBestAttainable, + ConfigRecommendationOptimizationTypeBestRegionRecovery, } }