diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e434906a7..0e127b6c7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +Release v1.32.12 (2020-06-29) +=== + +### Service Client Updates +* `service/autoscaling`: Updates service documentation and examples + * Documentation updates for Amazon EC2 Auto Scaling. +* `service/codeguruprofiler`: Updates service API, documentation, and paginators +* `service/codestar-connections`: Updates service API, documentation, and paginators +* `service/ec2`: Updates service API, documentation, and paginators + * Virtual Private Cloud (VPC) customers can now create and manage their own Prefix Lists to simplify VPC configurations. + Release v1.32.11 (2020-06-26) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index efa7645ba2..8bde8da5b3 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -3729,6 +3729,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, @@ -4056,9 +4057,11 @@ var awsPartition = partition{ "outposts": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, @@ -4098,6 +4101,7 @@ var awsPartition = partition{ }, }, "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -4537,6 +4541,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, @@ -7362,6 +7367,17 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "docdb": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{ + Hostname: "rds.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "ds": service{ Endpoints: endpoints{ diff --git a/aws/version.go b/aws/version.go index 571a406e1d..298adf57b7 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.32.11" +const SDKVersion = "1.32.12" diff --git a/models/apis/autoscaling/2011-01-01/docs-2.json b/models/apis/autoscaling/2011-01-01/docs-2.json index 94e6083ca0..84f8d9352f 100644 --- a/models/apis/autoscaling/2011-01-01/docs-2.json +++ b/models/apis/autoscaling/2011-01-01/docs-2.json @@ -44,7 +44,7 @@ "DisableMetricsCollection": "

Disables group metrics for the specified Auto Scaling group.

", "EnableMetricsCollection": "

Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring Your Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User Guide.

", "EnterStandby": "

Moves the specified instances into the standby state.

If you choose to decrement the desired capacity of the Auto Scaling group, the instances can enter standby as long as the desired capacity of the Auto Scaling group after the instances are placed into standby is equal to or greater than the minimum capacity of the group.

If you choose not to decrement the desired capacity of the Auto Scaling group, the Auto Scaling group launches new instances to replace the instances on standby.

For more information, see Temporarily Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

", - "ExecutePolicy": "

Executes the specified policy.

", + "ExecutePolicy": "

Executes the specified policy. This can be useful for testing the design of your scaling policy.

", "ExitStandby": "

Moves the specified instances out of the standby state.

After you put the instances back in service, the desired capacity is incremented.

For more information, see Temporarily Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

", "PutLifecycleHook": "

Creates or updates a lifecycle hook for the specified Auto Scaling group.

A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an instance when the instance launches (before it is put into service) or as the instance terminates (before it is fully terminated).

This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances.

  2. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.

  3. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.

  4. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state using the RecordLifecycleActionHeartbeat API call.

  5. If you finish before the timeout period ends, complete the lifecycle action using the CompleteLifecycleAction API call.

For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User Guide.

If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails.

You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks API call. If you are no longer using a lifecycle hook, you can delete it by calling the DeleteLifecycleHook API.

", "PutNotificationConfiguration": "

Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address.

This configuration overwrites any existing configuration.

For more information, see Getting Amazon SNS Notifications When Your Auto Scaling Group Scales in the Amazon EC2 Auto Scaling User Guide.

", @@ -309,7 +309,7 @@ "BlockDeviceEbsVolumeSize": { "base": null, "refs": { - "Ebs$VolumeSize": "

The volume size, in Gibibytes (GiB).

This can be a number from 1-1,024 for standard, 4-16,384 for io1, 1-16,384 for gp2, and 500-16,384 for st1 and sc1. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you create a volume from a snapshot and you don't specify a volume size, the default is the snapshot size.

At least one of VolumeSize or SnapshotId is required.

" + "Ebs$VolumeSize": "

The volume size, in Gibibytes (GiB).

This can be a number from 1-1,024 for standard, 4-16,384 for io1, 1-16,384 for gp2, and 500-16,384 for st1 and sc1. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you create a volume from a snapshot and you don't specify a volume size, the default is the snapshot size.

You must specify either a VolumeSize or a SnapshotId. If you specify both SnapshotId and VolumeSize, the volume size must be equal or greater than the size of the snapshot.

" } }, "BlockDeviceEbsVolumeType": { @@ -688,7 +688,7 @@ "HonorCooldown": { "base": null, "refs": { - "ExecutePolicyType$HonorCooldown": "

Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before executing the policy.

This parameter is not supported if the policy type is StepScaling or TargetTrackingScaling.

For more information, see Scaling Cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

", + "ExecutePolicyType$HonorCooldown": "

Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before executing the policy.

Valid only if the policy type is SimpleScaling. For more information, see Scaling Cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

", "SetDesiredCapacityType$HonorCooldown": "

Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before initiating a scaling activity to set your Auto Scaling group to its new capacity. By default, Amazon EC2 Auto Scaling does not honor the cooldown period during manual scaling activities.

" } }, @@ -1762,7 +1762,7 @@ "CreateLaunchConfigurationType$KernelId": "

The ID of the kernel associated with the AMI.

", "CreateLaunchConfigurationType$RamdiskId": "

The ID of the RAM disk to select.

", "DescribeInstanceRefreshesType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "Ebs$SnapshotId": "

The snapshot ID of the volume to use.

SnapshotId is optional if you specify a volume size. If you specify both SnapshotId and VolumeSize, the volume size must be equal or greater than the size of the snapshot.

", + "Ebs$SnapshotId": "

The snapshot ID of the volume to use.

You must specify either a VolumeSize or a SnapshotId.

", "EnableMetricsCollectionQuery$Granularity": "

The granularity to associate with the metrics to collect. The only valid value is 1Minute.

", "EnabledMetric$Metric": "

One of the following metrics:

", "EnabledMetric$Granularity": "

The granularity of the metric. The only valid value is 1Minute.

", diff --git a/models/apis/autoscaling/2011-01-01/examples-1.json b/models/apis/autoscaling/2011-01-01/examples-1.json index 33ffc9c0ed..731daca027 100644 --- a/models/apis/autoscaling/2011-01-01/examples-1.json +++ b/models/apis/autoscaling/2011-01-01/examples-1.json @@ -58,6 +58,25 @@ "title": "To attach a load balancer to an Auto Scaling group" } ], + "CancelInstanceRefresh": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example cancels an instance refresh operation in progress.", + "id": "to-cancel-an-instance-refresh-1592960979817", + "title": "To cancel an instance refresh" + } + ], "CompleteLifecycleAction": [ { "input": { @@ -81,10 +100,14 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", - "LaunchConfigurationName": "my-launch-config", + "LaunchTemplate": { + "LaunchTemplateId": "lt-0a20c965061f64abc", + "Version": "$Latest" + }, + "MaxInstanceLifetime": 2592000, "MaxSize": 3, "MinSize": 1, - "VPCZoneIdentifier": "subnet-4176792c" + "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE" }, "comments": { "input": { @@ -99,17 +122,15 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", - "AvailabilityZones": [ - "us-west-2c" - ], "HealthCheckGracePeriod": 120, "HealthCheckType": "ELB", "LaunchConfigurationName": "my-launch-config", - "LoadBalancerNames": [ - "my-load-balancer" - ], "MaxSize": 3, - "MinSize": 1 + "MinSize": 1, + "TargetGroupARNs": [ + "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" + ], + "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE" }, "comments": { "input": { @@ -117,22 +138,24 @@ "output": { } }, - "description": "This example creates an Auto Scaling group and attaches the specified Classic Load Balancer.", + "description": "This example creates an Auto Scaling group and attaches the specified target group.", "id": "autoscaling-create-auto-scaling-group-2", - "title": "To create an Auto Scaling group with an attached load balancer" + "title": "To create an Auto Scaling group with an attached target group" }, { "input": { "AutoScalingGroupName": "my-auto-scaling-group", + "AvailabilityZones": [ + "us-west-2c" + ], "HealthCheckGracePeriod": 120, "HealthCheckType": "ELB", "LaunchConfigurationName": "my-launch-config", - "MaxSize": 3, - "MinSize": 1, - "TargetGroupARNs": [ - "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" + "LoadBalancerNames": [ + "my-load-balancer" ], - "VPCZoneIdentifier": "subnet-4176792c, subnet-65ea5f08" + "MaxSize": 3, + "MinSize": 1 }, "comments": { "input": { @@ -140,9 +163,9 @@ "output": { } }, - "description": "This example creates an Auto Scaling group and attaches the specified target group.", + "description": "This example creates an Auto Scaling group and attaches the specified Classic Load Balancer.", "id": "autoscaling-create-auto-scaling-group-3", - "title": "To create an Auto Scaling group with an attached target group" + "title": "To create an Auto Scaling group with an attached load balancer" } ], "CreateLaunchConfiguration": [ @@ -283,7 +306,7 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", - "PolicyName": "ScaleIn" + "PolicyName": "my-step-scale-out-policy" }, "comments": { "input": { @@ -378,7 +401,7 @@ }, "description": "This example describes the available adjustment types.", "id": "autoscaling-describe-adjustment-types-1", - "title": "To describe the Auto Scaling adjustment types" + "title": "To describe the Amazon EC2 Auto Scaling adjustment types" } ], "DescribeAutoScalingGroups": [ @@ -498,6 +521,43 @@ "title": "To describe the Auto Scaling notification types" } ], + "DescribeInstanceRefreshes": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "InstanceRefreshes": [ + { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b", + "InstancesToUpdate": 5, + "PercentageComplete": 0, + "StartTime": "2020-06-02T18:11:27Z", + "Status": "InProgress" + }, + { + "AutoScalingGroupName": "my-auto-scaling-group", + "EndTime": "2020-06-02T16:53:37Z", + "InstanceRefreshId": "dd7728d0-5bc4-4575-96a3-1b2c52bf8bb1", + "InstancesToUpdate": 0, + "PercentageComplete": 100, + "StartTime": "2020-06-02T16:43:19Z", + "Status": "Successful" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the instance refreshes for the specified Auto Scaling group.", + "id": "to-list-instance-refreshes-1592959593746", + "title": "To list instance refreshes" + } + ], "DescribeLaunchConfigurations": [ { "input": { @@ -752,7 +812,7 @@ }, "description": "This example describes the policies for the specified Auto Scaling group.", "id": "autoscaling-describe-policies-1", - "title": "To describe Auto Scaling policies" + "title": "To describe scaling policies" } ], "DescribeScalingActivities": [ @@ -1067,8 +1127,9 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", - "HonorCooldown": true, - "PolicyName": "ScaleIn" + "BreachThreshold": 50.0, + "MetricValue": 59.0, + "PolicyName": "my-step-scale-out-policy" }, "comments": { "input": { @@ -1076,9 +1137,9 @@ "output": { } }, - "description": "This example executes the specified Auto Scaling policy for the specified Auto Scaling group.", + "description": "This example executes the specified policy.", "id": "autoscaling-execute-policy-1", - "title": "To execute an Auto Scaling policy" + "title": "To execute a scaling policy" } ], "ExitStandby": [ @@ -1157,13 +1218,29 @@ "PutScalingPolicy": [ { "input": { - "AdjustmentType": "ChangeInCapacity", "AutoScalingGroupName": "my-auto-scaling-group", - "PolicyName": "ScaleIn", - "ScalingAdjustment": -1 + "PolicyName": "alb1000-target-tracking-scaling-policy", + "PolicyType": "TargetTrackingScaling", + "TargetTrackingConfiguration": { + "PredefinedMetricSpecification": { + "PredefinedMetricType": "ALBRequestCountPerTarget", + "ResourceLabel": "app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d" + }, + "TargetValue": 1000.0 + } }, "output": { - "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:2233f3d7-6290-403b-b632-93c553560106:autoScalingGroupName/my-auto-scaling-group:policyName/ScaleIn" + "Alarms": [ + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", + "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" + }, + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", + "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" + } + ], + "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-auto-scaling-group:policyName/alb1000-target-tracking-scaling-policy" }, "comments": { "input": { @@ -1308,6 +1385,29 @@ "title": "To disable instance protection for an instance" } ], + "StartInstanceRefresh": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "Preferences": { + "InstanceWarmup": 400, + "MinHealthyPercentage": 50 + } + }, + "output": { + "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example starts an instance refresh for the specified Auto Scaling group.", + "id": "to-start-an-instance-refresh-1592957271522", + "title": "To start an instance refresh" + } + ], "SuspendProcesses": [ { "input": { diff --git a/models/apis/codeguruprofiler/2019-07-18/api-2.json b/models/apis/codeguruprofiler/2019-07-18/api-2.json index 3009258858..0adf9cb63b 100644 --- a/models/apis/codeguruprofiler/2019-07-18/api-2.json +++ b/models/apis/codeguruprofiler/2019-07-18/api-2.json @@ -12,6 +12,40 @@ "uid":"codeguruprofiler-2019-07-18" }, "operations":{ + "AddNotificationChannels":{ + "name":"AddNotificationChannels", + "http":{ + "method":"POST", + "requestUri":"/profilingGroups/{profilingGroupName}/notificationConfiguration", + "responseCode":200 + }, + "input":{"shape":"AddNotificationChannelsRequest"}, + "output":{"shape":"AddNotificationChannelsResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "BatchGetFrameMetricData":{ + "name":"BatchGetFrameMetricData", + "http":{ + "method":"POST", + "requestUri":"/profilingGroups/{profilingGroupName}/frames/-/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchGetFrameMetricDataRequest"}, + "output":{"shape":"BatchGetFrameMetricDataResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ConfigureAgent":{ "name":"ConfigureAgent", "http":{ @@ -79,6 +113,37 @@ {"shape":"ResourceNotFoundException"} ] }, + "GetFindingsReportAccountSummary":{ + "name":"GetFindingsReportAccountSummary", + "http":{ + "method":"GET", + "requestUri":"/internal/findingsReports", + "responseCode":200 + }, + "input":{"shape":"GetFindingsReportAccountSummaryRequest"}, + "output":{"shape":"GetFindingsReportAccountSummaryResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetNotificationConfiguration":{ + "name":"GetNotificationConfiguration", + "http":{ + "method":"GET", + "requestUri":"/profilingGroups/{profilingGroupName}/notificationConfiguration", + "responseCode":200 + }, + "input":{"shape":"GetNotificationConfigurationRequest"}, + "output":{"shape":"GetNotificationConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "GetPolicy":{ "name":"GetPolicy", "http":{ @@ -110,6 +175,38 @@ {"shape":"ResourceNotFoundException"} ] }, + "GetRecommendations":{ + "name":"GetRecommendations", + "http":{ + "method":"GET", + "requestUri":"/internal/profilingGroups/{profilingGroupName}/recommendations", + "responseCode":200 + }, + "input":{"shape":"GetRecommendationsRequest"}, + "output":{"shape":"GetRecommendationsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListFindingsReports":{ + "name":"ListFindingsReports", + "http":{ + "method":"GET", + "requestUri":"/internal/profilingGroups/{profilingGroupName}/findingsReports", + "responseCode":200 + }, + "input":{"shape":"ListFindingsReportsRequest"}, + "output":{"shape":"ListFindingsReportsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ListProfileTimes":{ "name":"ListProfileTimes", "http":{ @@ -174,6 +271,23 @@ ], "idempotent":true }, + "RemoveNotificationChannel":{ + "name":"RemoveNotificationChannel", + "http":{ + "method":"DELETE", + "requestUri":"/profilingGroups/{profilingGroupName}/notificationConfiguration/{channelId}", + "responseCode":200 + }, + "input":{"shape":"RemoveNotificationChannelRequest"}, + "output":{"shape":"RemoveNotificationChannelResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, "RemovePermission":{ "name":"RemovePermission", "http":{ @@ -191,6 +305,22 @@ {"shape":"ResourceNotFoundException"} ] }, + "SubmitFeedback":{ + "name":"SubmitFeedback", + "http":{ + "method":"POST", + "requestUri":"/internal/profilingGroups/{profilingGroupName}/anomalies/{anomalyInstanceId}/feedback", + "responseCode":204 + }, + "input":{"shape":"SubmitFeedbackRequest"}, + "output":{"shape":"SubmitFeedbackResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "UpdateProfilingGroup":{ "name":"UpdateProfilingGroup", "http":{ @@ -215,6 +345,27 @@ "type":"string", "enum":["agentPermissions"] }, + "AddNotificationChannelsRequest":{ + "type":"structure", + "required":[ + "channels", + "profilingGroupName" + ], + "members":{ + "channels":{"shape":"Channels"}, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "AddNotificationChannelsResponse":{ + "type":"structure", + "members":{ + "notificationConfiguration":{"shape":"NotificationConfiguration"} + } + }, "AgentConfiguration":{ "type":"structure", "required":[ @@ -222,6 +373,7 @@ "shouldProfile" ], "members":{ + "agentParameters":{"shape":"AgentParameters"}, "periodInSeconds":{"shape":"Integer"}, "shouldProfile":{"shape":"Boolean"} } @@ -233,6 +385,21 @@ "profilingEnabled":{"shape":"Boolean"} } }, + "AgentParameterField":{ + "type":"string", + "enum":[ + "MaxStackDepth", + "MemoryUsageLimitPercent", + "MinimumTimeForReportingInMilliseconds", + "ReportingIntervalInMilliseconds", + "SamplingIntervalInMilliseconds" + ] + }, + "AgentParameters":{ + "type":"map", + "key":{"shape":"AgentParameterField"}, + "value":{"shape":"String"} + }, "AgentProfile":{"type":"blob"}, "AggregatedProfile":{"type":"blob"}, "AggregatedProfileTime":{ @@ -250,21 +417,141 @@ "PT5M" ] }, + "Anomalies":{ + "type":"list", + "member":{"shape":"Anomaly"} + }, + "Anomaly":{ + "type":"structure", + "required":[ + "instances", + "metric", + "reason" + ], + "members":{ + "instances":{"shape":"AnomalyInstances"}, + "metric":{"shape":"Metric"}, + "reason":{"shape":"String"} + } + }, + "AnomalyInstance":{ + "type":"structure", + "required":[ + "id", + "startTime" + ], + "members":{ + "endTime":{"shape":"Timestamp"}, + "id":{"shape":"String"}, + "startTime":{"shape":"Timestamp"}, + "userFeedback":{"shape":"UserFeedback"} + } + }, + "AnomalyInstanceId":{ + "type":"string", + "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "AnomalyInstances":{ + "type":"list", + "member":{"shape":"AnomalyInstance"} + }, + "BatchGetFrameMetricDataRequest":{ + "type":"structure", + "required":["profilingGroupName"], + "members":{ + "endTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"endTime" + }, + "frameMetrics":{"shape":"FrameMetrics"}, + "period":{ + "shape":"Period", + "location":"querystring", + "locationName":"period" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + }, + "startTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"startTime" + }, + "targetResolution":{ + "shape":"AggregationPeriod", + "location":"querystring", + "locationName":"targetResolution" + } + } + }, + "BatchGetFrameMetricDataResponse":{ + "type":"structure", + "required":[ + "endTime", + "endTimes", + "frameMetricData", + "resolution", + "startTime", + "unprocessedEndTimes" + ], + "members":{ + "endTime":{"shape":"Timestamp"}, + "endTimes":{"shape":"ListOfTimestamps"}, + "frameMetricData":{"shape":"FrameMetricData"}, + "resolution":{"shape":"AggregationPeriod"}, + "startTime":{"shape":"Timestamp"}, + "unprocessedEndTimes":{"shape":"UnprocessedEndTimeMap"} + } + }, "Boolean":{ "type":"boolean", "box":true }, + "Channel":{ + "type":"structure", + "required":[ + "eventPublishers", + "uri" + ], + "members":{ + "eventPublishers":{"shape":"EventPublishers"}, + "id":{"shape":"ChannelId"}, + "uri":{"shape":"ChannelUri"} + } + }, + "ChannelId":{ + "type":"string", + "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "ChannelUri":{"type":"string"}, + "Channels":{ + "type":"list", + "member":{"shape":"Channel"}, + "max":2, + "min":1 + }, "ClientToken":{ "type":"string", "max":64, "min":1, "pattern":"^[\\w-]+$" }, + "ComputePlatform":{ + "type":"string", + "enum":[ + "AWSLambda", + "Default" + ] + }, "ConfigureAgentRequest":{ "type":"structure", "required":["profilingGroupName"], "members":{ "fleetInstanceId":{"shape":"FleetInstanceId"}, + "metadata":{"shape":"Metadata"}, "profilingGroupName":{ "shape":"ProfilingGroupName", "location":"uri", @@ -306,6 +593,7 @@ "location":"querystring", "locationName":"clientToken" }, + "computePlatform":{"shape":"ComputePlatform"}, "profilingGroupName":{"shape":"ProfilingGroupName"} } }, @@ -352,12 +640,133 @@ }, "payload":"profilingGroup" }, + "Double":{ + "type":"double", + "box":true + }, + "EventPublisher":{ + "type":"string", + "enum":["AnomalyDetection"] + }, + "EventPublishers":{ + "type":"list", + "member":{"shape":"EventPublisher"}, + "max":1, + "min":1 + }, + "FeedbackType":{ + "type":"string", + "enum":[ + "Negative", + "Positive" + ] + }, + "FindingsReportId":{ + "type":"string", + "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "FindingsReportSummaries":{ + "type":"list", + "member":{"shape":"FindingsReportSummary"} + }, + "FindingsReportSummary":{ + "type":"structure", + "members":{ + "id":{"shape":"FindingsReportId"}, + "profileEndTime":{"shape":"Timestamp"}, + "profileStartTime":{"shape":"Timestamp"}, + "profilingGroupName":{"shape":"String"}, + "totalNumberOfFindings":{"shape":"Integer"} + } + }, "FleetInstanceId":{ "type":"string", "max":255, "min":1, "pattern":"^[\\w-.:/]+$" }, + "FrameMetric":{ + "type":"structure", + "required":[ + "frameName", + "threadStates", + "type" + ], + "members":{ + "frameName":{"shape":"String"}, + "threadStates":{"shape":"ThreadStates"}, + "type":{"shape":"MetricType"} + } + }, + "FrameMetricData":{ + "type":"list", + "member":{"shape":"FrameMetricDatum"} + }, + "FrameMetricDatum":{ + "type":"structure", + "required":[ + "frameMetric", + "values" + ], + "members":{ + "frameMetric":{"shape":"FrameMetric"}, + "values":{"shape":"FrameMetricValues"} + } + }, + "FrameMetricValues":{ + "type":"list", + "member":{"shape":"Double"} + }, + "FrameMetrics":{ + "type":"list", + "member":{"shape":"FrameMetric"} + }, + "GetFindingsReportAccountSummaryRequest":{ + "type":"structure", + "members":{ + "dailyReportsOnly":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"dailyReportsOnly" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetFindingsReportAccountSummaryResponse":{ + "type":"structure", + "required":["reportSummaries"], + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "reportSummaries":{"shape":"FindingsReportSummaries"} + } + }, + "GetNotificationConfigurationRequest":{ + "type":"structure", + "required":["profilingGroupName"], + "members":{ + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "GetNotificationConfigurationResponse":{ + "type":"structure", + "required":["notificationConfiguration"], + "members":{ + "notificationConfiguration":{"shape":"NotificationConfiguration"} + } + }, "GetPolicyRequest":{ "type":"structure", "required":["profilingGroupName"], @@ -437,6 +846,53 @@ }, "payload":"profile" }, + "GetRecommendationsRequest":{ + "type":"structure", + "required":[ + "endTime", + "profilingGroupName", + "startTime" + ], + "members":{ + "endTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"endTime" + }, + "locale":{ + "shape":"Locale", + "location":"querystring", + "locationName":"locale" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + }, + "startTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"startTime" + } + } + }, + "GetRecommendationsResponse":{ + "type":"structure", + "required":[ + "anomalies", + "profileEndTime", + "profileStartTime", + "profilingGroupName", + "recommendations" + ], + "members":{ + "anomalies":{"shape":"Anomalies"}, + "profileEndTime":{"shape":"Timestamp"}, + "profileStartTime":{"shape":"Timestamp"}, + "profilingGroupName":{"shape":"ProfilingGroupName"}, + "recommendations":{"shape":"Recommendations"} + } + }, "Integer":{ "type":"integer", "box":true @@ -451,6 +907,58 @@ "exception":true, "fault":true }, + "ListFindingsReportsRequest":{ + "type":"structure", + "required":[ + "endTime", + "profilingGroupName", + "startTime" + ], + "members":{ + "dailyReportsOnly":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"dailyReportsOnly" + }, + "endTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"endTime" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + }, + "startTime":{ + "shape":"Timestamp", + "location":"querystring", + "locationName":"startTime" + } + } + }, + "ListFindingsReportsResponse":{ + "type":"structure", + "required":["findingsReportSummaries"], + "members":{ + "findingsReportSummaries":{"shape":"FindingsReportSummaries"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListOfTimestamps":{ + "type":"list", + "member":{"shape":"TimestampStructure"} + }, "ListProfileTimesRequest":{ "type":"structure", "required":[ @@ -534,6 +1042,19 @@ "profilingGroups":{"shape":"ProfilingGroupDescriptions"} } }, + "Locale":{"type":"string"}, + "Match":{ + "type":"structure", + "members":{ + "frameAddress":{"shape":"String"}, + "targetFramesIndex":{"shape":"Integer"}, + "thresholdBreachValue":{"shape":"Double"} + } + }, + "Matches":{ + "type":"list", + "member":{"shape":"Match"} + }, "MaxDepth":{ "type":"integer", "box":true, @@ -546,6 +1067,48 @@ "max":1000, "min":1 }, + "Metadata":{ + "type":"map", + "key":{"shape":"MetadataField"}, + "value":{"shape":"String"} + }, + "MetadataField":{ + "type":"string", + "enum":[ + "AgentId", + "AwsRequestId", + "ComputePlatform", + "ExecutionEnvironment", + "LambdaFunctionArn", + "LambdaMemoryLimitInMB", + "LambdaPreviousExecutionTimeInMilliseconds", + "LambdaRemainingTimeInMilliseconds", + "LambdaTimeGapBetweenInvokesInMilliseconds" + ] + }, + "Metric":{ + "type":"structure", + "required":[ + "frameName", + "threadStates", + "type" + ], + "members":{ + "frameName":{"shape":"String"}, + "threadStates":{"shape":"Strings"}, + "type":{"shape":"MetricType"} + } + }, + "MetricType":{ + "type":"string", + "enum":["AggregatedRelativeTotalTime"] + }, + "NotificationConfiguration":{ + "type":"structure", + "members":{ + "channels":{"shape":"Channels"} + } + }, "OrderBy":{ "type":"string", "enum":[ @@ -559,6 +1122,23 @@ "min":1, "pattern":"^[\\w-]+$" }, + "Pattern":{ + "type":"structure", + "members":{ + "countersToAggregate":{"shape":"Strings"}, + "description":{"shape":"String"}, + "id":{"shape":"String"}, + "name":{"shape":"String"}, + "resolutionSteps":{"shape":"String"}, + "targetFrames":{"shape":"TargetFrames"}, + "thresholdPercent":{"shape":"Percentage"} + } + }, + "Percentage":{ + "type":"double", + "max":100, + "min":0 + }, "Period":{ "type":"string", "max":64, @@ -620,6 +1200,7 @@ "members":{ "agentOrchestrationConfig":{"shape":"AgentOrchestrationConfig"}, "arn":{"shape":"ProfilingGroupArn"}, + "computePlatform":{"shape":"ComputePlatform"}, "createdAt":{"shape":"Timestamp"}, "name":{"shape":"ProfilingGroupName"}, "profilingStatus":{"shape":"ProfilingStatus"}, @@ -681,6 +1262,54 @@ "revisionId":{"shape":"RevisionId"} } }, + "Recommendation":{ + "type":"structure", + "required":[ + "allMatchesCount", + "allMatchesSum", + "endTime", + "pattern", + "startTime", + "topMatches" + ], + "members":{ + "allMatchesCount":{"shape":"Integer"}, + "allMatchesSum":{"shape":"Double"}, + "endTime":{"shape":"Timestamp"}, + "pattern":{"shape":"Pattern"}, + "startTime":{"shape":"Timestamp"}, + "topMatches":{"shape":"Matches"} + } + }, + "Recommendations":{ + "type":"list", + "member":{"shape":"Recommendation"} + }, + "RemoveNotificationChannelRequest":{ + "type":"structure", + "required":[ + "channelId", + "profilingGroupName" + ], + "members":{ + "channelId":{ + "shape":"ChannelId", + "location":"uri", + "locationName":"channelId" + }, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + } + } + }, + "RemoveNotificationChannelResponse":{ + "type":"structure", + "members":{ + "notificationConfiguration":{"shape":"NotificationConfiguration"} + } + }, "RemovePermissionRequest":{ "type":"structure", "required":[ @@ -746,6 +1375,49 @@ "exception":true }, "String":{"type":"string"}, + "Strings":{ + "type":"list", + "member":{"shape":"String"} + }, + "SubmitFeedbackRequest":{ + "type":"structure", + "required":[ + "anomalyInstanceId", + "profilingGroupName", + "type" + ], + "members":{ + "anomalyInstanceId":{ + "shape":"AnomalyInstanceId", + "location":"uri", + "locationName":"anomalyInstanceId" + }, + "comment":{"shape":"String"}, + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "location":"uri", + "locationName":"profilingGroupName" + }, + "type":{"shape":"FeedbackType"} + } + }, + "SubmitFeedbackResponse":{ + "type":"structure", + "members":{ + } + }, + "TargetFrame":{ + "type":"list", + "member":{"shape":"String"} + }, + "TargetFrames":{ + "type":"list", + "member":{"shape":"TargetFrame"} + }, + "ThreadStates":{ + "type":"list", + "member":{"shape":"String"} + }, "ThrottlingException":{ "type":"structure", "required":["message"], @@ -762,6 +1434,18 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "TimestampStructure":{ + "type":"structure", + "required":["value"], + "members":{ + "value":{"shape":"Timestamp"} + } + }, + "UnprocessedEndTimeMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"ListOfTimestamps"} + }, "UpdateProfilingGroupRequest":{ "type":"structure", "required":[ @@ -785,6 +1469,13 @@ }, "payload":"profilingGroup" }, + "UserFeedback":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"FeedbackType"} + } + }, "ValidationException":{ "type":"structure", "required":["message"], diff --git a/models/apis/codeguruprofiler/2019-07-18/docs-2.json b/models/apis/codeguruprofiler/2019-07-18/docs-2.json index b5353145c8..a0722cb1c3 100644 --- a/models/apis/codeguruprofiler/2019-07-18/docs-2.json +++ b/models/apis/codeguruprofiler/2019-07-18/docs-2.json @@ -1,46 +1,76 @@ { "version": "2.0", - "service": "

This section provides documentation for the Amazon CodeGuru Profiler API operations.

", + "service": "

This section provides documentation for the Amazon CodeGuru Profiler API operations.

 <p>Amazon CodeGuru Profiler collects runtime performance data from your live applications, and provides recommendations that can help you fine-tune your application performance. Using machine learning algorithms, CodeGuru Profiler can help you find your most expensive lines of code and suggest ways you can improve efficiency and remove CPU bottlenecks. </p> <p>Amazon CodeGuru Profiler provides different visualizations of profiling data to help you identify what code is running on the CPU, see how much time is consumed, and suggest ways to reduce CPU utilization. </p> <note> <p>Amazon CodeGuru Profiler currently supports applications written in all Java virtual machine (JVM) languages. While CodeGuru Profiler supports both visualizations and recommendations for applications written in Java, it can also generate visualizations and a subset of recommendations for applications written in other JVM languages.</p> </note> <p> For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html">What is Amazon CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>. </p> 
", "operations": { - "ConfigureAgent": "

", + "AddNotificationChannels": "

Add up to 2 anomaly notifications channels for a profiling group.

", + "BatchGetFrameMetricData": "

Returns the time series of values for a requested list of frame metrics from a time period.

", + "ConfigureAgent": "

Used by profiler agents to report their current state and to receive remote configuration updates. For example, ConfigureAgent can be used to tell and agent whether to profile or not and for how long to return profiling data.

", "CreateProfilingGroup": "

Creates a profiling group.

", "DeleteProfilingGroup": "

Deletes a profiling group.

", - "DescribeProfilingGroup": "

Describes a profiling group.

", - "GetPolicy": "

Gets the profiling group policy.

", - "GetProfile": "

Gets the aggregated profile of a profiling group for the specified time range. If the requested time range does not align with the available aggregated profiles, it is expanded to attain alignment. If aggregated profiles are available only for part of the period requested, the profile is returned from the earliest available to the latest within the requested time range.

For example, if the requested time range is from 00:00 to 00:20 and the available profiles are from 00:15 to 00:25, the returned profile will be from 00:15 to 00:20.

You must specify exactly two of the following parameters: startTime, period, and endTime.

", - "ListProfileTimes": "

List the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range.

", - "ListProfilingGroups": "

Lists profiling groups.

", - "PostAgentProfile": "

", - "PutPermission": "

Provides permission to the principals. This overwrites the existing permissions, and is not additive.

", - "RemovePermission": "

Removes statement for the provided action group from the policy.

", + "DescribeProfilingGroup": "

Returns a ProfilingGroupDescription object that contains information about the requested profiling group.

", + "GetFindingsReportAccountSummary": "

Returns a list of FindingsReportSummary objects that contain analysis results for all profiling groups in your AWS account.

", + "GetNotificationConfiguration": "

Get the current configuration for anomaly notifications for a profiling group.

", + "GetPolicy": "

Returns the JSON-formatted resource-based policy on a profiling group.

", + "GetProfile": "

Gets the aggregated profile of a profiling group for a specified time range. Amazon CodeGuru Profiler collects posted agent profiles for a profiling group into aggregated profiles.

 <note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol> 
", + "GetRecommendations": "

Returns a list of Recommendation objects that contain recommendations for a profiling group for a given time period. A list of Anomaly objects that contains details about anomalies detected in the profiling group for the same time period is also returned.

", + "ListFindingsReports": "

List the available reports for a given profiling group and time range.

", + "ListProfileTimes": "

Lists the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range.

", + "ListProfilingGroups": "

Returns a list of profiling groups. The profiling groups are returned as ProfilingGroupDescription objects.

", + "PostAgentProfile": "

Submits profiling data to an aggregated profile of a profiling group. To get an aggregated profile that is created with this profiling data, use GetProfile .

", + "PutPermission": "

Adds permissions to a profiling group's resource-based policy that are provided using an action group. If a profiling group doesn't have a resource-based policy, one is created for it using the permissions in the action group and the roles and users in the principals parameter.

 <p> The one supported action group that can be added is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code> on a profiling group, do not specify a <code>revisionId</code> because it doesn't have a resource-based policy. Subsequent calls must provide a <code>revisionId</code> to specify which revision of the resource-based policy to add the permissions to. </p> <p> The response contains the profiling group's JSON-formatted resource policy. </p> 
", + "RemoveNotificationChannel": "

Remove one anomaly notifications channel for a profiling group.

", + "RemovePermission": "

Removes permissions from a profiling group's resource-based policy that are provided using an action group. The one supported action group that can be removed is agentPermission which grants ConfigureAgent and PostAgent permissions. For more information, see Resource-based policies in CodeGuru Profiler in the Amazon CodeGuru Profiler User Guide, ConfigureAgent , and PostAgentProfile .

", + "SubmitFeedback": "

Sends feedback to CodeGuru Profiler about whether the anomaly detected by the analysis is useful or not.

", "UpdateProfilingGroup": "

Updates a profiling group.

" }, "shapes": { "ActionGroup": { "base": null, "refs": { - "PutPermissionRequest$actionGroup": "

The list of actions that the users and roles can perform on the profiling group.

", - "RemovePermissionRequest$actionGroup": "

The list of actions that the users and roles can perform on the profiling group.

" + "PutPermissionRequest$actionGroup": "

Specifies an action group that contains permissions to add to a profiling group resource. One action group is supported, agentPermissions, which grants permission to perform actions required by the profiling agent, ConfigureAgent and PostAgentProfile permissions.

", + "RemovePermissionRequest$actionGroup": "

Specifies an action group that contains the permissions to remove from a profiling group's resource-based policy. One action group is supported, agentPermissions, which grants ConfigureAgent and PostAgentProfile permissions.

" + } + }, + "AddNotificationChannelsRequest": { + "base": "

The structure representing the AddNotificationChannelsRequest.

", + "refs": { + } + }, + "AddNotificationChannelsResponse": { + "base": "

The structure representing the AddNotificationChannelsResponse.

", + "refs": { } }, "AgentConfiguration": { - "base": "

", + "base": "

The response of ConfigureAgent that specifies if an agent profiles or not and for how long to return profiling data.

", "refs": { - "ConfigureAgentResponse$configuration": "

" + "ConfigureAgentResponse$configuration": "

An AgentConfiguration object that specifies if an agent profiles or not and for how long to return profiling data.

" } }, "AgentOrchestrationConfig": { - "base": "

", + "base": "

Specifies whether profiling is enabled or disabled for a profiling group. It is used by ConfigureAgent to enable or disable profiling for a profiling group.

", + "refs": { + "CreateProfilingGroupRequest$agentOrchestrationConfig": "

Specifies whether profiling is enabled or disabled for the created profiling group.

", + "ProfilingGroupDescription$agentOrchestrationConfig": "

An AgentOrchestrationConfig object that indicates if the profiling group is enabled for profiled or not.

", + "UpdateProfilingGroupRequest$agentOrchestrationConfig": "

Specifies whether profiling is enabled or disabled for a profiling group.

" + } + }, + "AgentParameterField": { + "base": null, + "refs": { + "AgentParameters$key": null + } + }, + "AgentParameters": { + "base": null, "refs": { - "CreateProfilingGroupRequest$agentOrchestrationConfig": "

The agent orchestration configuration.

", - "ProfilingGroupDescription$agentOrchestrationConfig": "

", - "UpdateProfilingGroupRequest$agentOrchestrationConfig": "

" + "AgentConfiguration$agentParameters": "

Parameters used by the profiler. The valid parameters are:

" } }, "AgentProfile": { "base": null, "refs": { - "PostAgentProfileRequest$agentProfile": "

" + "PostAgentProfileRequest$agentProfile": "

The submitted profiling data.

" } }, "AggregatedProfile": { @@ -50,31 +80,108 @@ } }, "AggregatedProfileTime": { - "base": "

Information about the time range of the latest available aggregated profile.

", + "base": "

Specifies the aggregation period and aggregation start time for an aggregated profile. An aggregated profile is used to collect posted agent profiles during an aggregation period. There are three possible aggregation periods (1 day, 1 hour, or 5 minutes).

", "refs": { - "ProfilingStatus$latestAggregatedProfile": "

The latest aggregated profile

" + "ProfilingStatus$latestAggregatedProfile": "

An AggregatedProfileTime object that contains the aggregation period and start time for an aggregated profile.

" } }, "AggregationPeriod": { "base": null, "refs": { - "AggregatedProfileTime$period": "

The time period.

", - "ListProfileTimesRequest$period": "

The aggregation period.

" + "AggregatedProfileTime$period": "

The aggregation period. This indicates the period during which an aggregation profile collects posted agent profiles for a profiling group. Use one of three valid durations that are specified using the ISO 8601 format.

", + "BatchGetFrameMetricDataRequest$targetResolution": "

The requested resolution of time steps for the returned time series of values. If the requested target resolution is not available due to data not being retained we provide a best effort result by falling back to the most granular available resolution after the target resolution. There are 3 valid values.

", + "BatchGetFrameMetricDataResponse$resolution": "

Resolution or granularity of the profile data used to generate the time series. This is the value used to jump through time steps in a time series. There are 3 valid values.

", + "ListProfileTimesRequest$period": "

The aggregation period. This specifies the period during which an aggregation profile collects posted agent profiles for a profiling group. There are 3 valid values.

" + } + }, + "Anomalies": { + "base": null, + "refs": { + "GetRecommendationsResponse$anomalies": "

The list of anomalies that the analysis has found for this profile.

" + } + }, + "Anomaly": { + "base": "

Details about an anomaly in a specific metric of application profile. The anomaly is detected using analysis of the metric data over a period of time.

", + "refs": { + "Anomalies$member": null + } + }, + "AnomalyInstance": { + "base": "

The specific duration in which the metric is flagged as anomalous.

", + "refs": { + "AnomalyInstances$member": null + } + }, + "AnomalyInstanceId": { + "base": null, + "refs": { + "SubmitFeedbackRequest$anomalyInstanceId": "

The universally unique identifier (UUID) of the AnomalyInstance object that is included in the analysis data.

" + } + }, + "AnomalyInstances": { + "base": null, + "refs": { + "Anomaly$instances": "

A list of the instances of the detected anomalies during the requested period.

" + } + }, + "BatchGetFrameMetricDataRequest": { + "base": "

The structure representing the BatchGetFrameMetricDataRequest.

", + "refs": { + } + }, + "BatchGetFrameMetricDataResponse": { + "base": "

The structure representing the BatchGetFrameMetricDataResponse.

", + "refs": { } }, "Boolean": { "base": null, "refs": { - "AgentConfiguration$shouldProfile": "

", - "AgentOrchestrationConfig$profilingEnabled": "

", - "ListProfilingGroupsRequest$includeDescription": "

A Boolean value indicating whether to include a description.

" + "AgentConfiguration$shouldProfile": "

A Boolean that specifies whether the profiling agent collects profiling data or not. Set to true to enable profiling.

", + "AgentOrchestrationConfig$profilingEnabled": "

A Boolean that specifies whether the profiling agent collects profiling data or not. Set to true to enable profiling.

", + "GetFindingsReportAccountSummaryRequest$dailyReportsOnly": "

A Boolean value indicating whether to only return reports from daily profiles. If set to True, only analysis data from daily profiles is returned. If set to False, analysis data is returned from smaller time windows (for example, one hour).

", + "ListFindingsReportsRequest$dailyReportsOnly": "

A Boolean value indicating whether to only return reports from daily profiles. If set to True, only analysis data from daily profiles is returned. If set to False, analysis data is returned from smaller time windows (for example, one hour).

", + "ListProfilingGroupsRequest$includeDescription": "

A Boolean value indicating whether to include a description. If true, then a list of ProfilingGroupDescription objects that contain detailed information about profiling groups is returned. If false, then a list of profiling group names is returned.

" + } + }, + "Channel": { + "base": "

Notification medium for users to get alerted for events that occur in application profile. We support SNS topic as a notification channel.

", + "refs": { + "Channels$member": null + } + }, + "ChannelId": { + "base": null, + "refs": { + "Channel$id": "

Unique identifier for each Channel in the notification configuration of a Profiling Group. A random UUID for channelId is used when adding a channel to the notification configuration if not specified in the request.

", + "RemoveNotificationChannelRequest$channelId": "

The id of the channel that we want to stop receiving notifications.

" + } + }, + "ChannelUri": { + "base": "

Channel URI uniquely identifies a Notification Channel. TopicArn is the uri for an SNS channel, emailId is uri for an email channel etc. Currently we only support SNS channels and thus required to be an ARN

", + "refs": { + "Channel$uri": "

Unique arn of the resource to be used for notifications. We support a valid SNS topic arn as a channel uri.

" + } + }, + "Channels": { + "base": null, + "refs": { + "AddNotificationChannelsRequest$channels": "

One or 2 channels to report to when anomalies are detected.

", + "NotificationConfiguration$channels": "

List of up to two channels to be used for sending notifications for events detected from the application profile.

" } }, "ClientToken": { "base": null, "refs": { - "CreateProfilingGroupRequest$clientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

This parameter specifies a unique identifier for the new profiling group that helps ensure idempotency.

", - "PostAgentProfileRequest$profileToken": "

" + "CreateProfilingGroupRequest$clientToken": "

Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental creation of duplicate profiling groups if there are failures and retries.

", + "PostAgentProfileRequest$profileToken": "

Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental submission of duplicate profiling data if there are failures and retries.

" + } + }, + "ComputePlatform": { + "base": null, + "refs": { + "CreateProfilingGroupRequest$computePlatform": "

The compute platform of the profiling group. Use AWSLambda if your application runs on AWS Lambda. Use Default if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. If not specified, Default is used.

", + "ProfilingGroupDescription$computePlatform": "

The compute platform of the profiling group. If it is set to AWSLambda, then the profiled application runs on AWS Lambda. If it is set to Default, then the profiled application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. The default is Default.

" } }, "ConfigureAgentRequest": { @@ -122,19 +229,116 @@ "refs": { } }, + "Double": { + "base": null, + "refs": { + "FrameMetricValues$member": null, + "Match$thresholdBreachValue": "

The value in the profile data that exceeded the recommendation threshold.

", + "Recommendation$allMatchesSum": "

How much of the total sample count is potentially affected.

" + } + }, + "EventPublisher": { + "base": null, + "refs": { + "EventPublishers$member": null + } + }, + "EventPublishers": { + "base": null, + "refs": { + "Channel$eventPublishers": "

List of publishers for different type of events that may be detected in an application from the profile. Anomaly detection is the only event publisher in Profiler.

" + } + }, + "FeedbackType": { + "base": null, + "refs": { + "SubmitFeedbackRequest$type": "

The feedback tpye. Thee are two valid values, Positive and Negative.

", + "UserFeedback$type": "

Optional Positive or Negative feedback submitted by the user about whether the recommendation is useful or not.

" + } + }, + "FindingsReportId": { + "base": null, + "refs": { + "FindingsReportSummary$id": "

The universally unique identifier (UUID) of the recommendation report.

" + } + }, + "FindingsReportSummaries": { + "base": null, + "refs": { + "GetFindingsReportAccountSummaryResponse$reportSummaries": "

The return list of FindingsReportSummary objects taht contain summaries of analysis results for all profiling groups in your AWS account.

", + "ListFindingsReportsResponse$findingsReportSummaries": "

The list of analysis results summaries.

" + } + }, + "FindingsReportSummary": { + "base": "

Information about potential recommendations that might be created from the analysis of profiling data.

", + "refs": { + "FindingsReportSummaries$member": null + } + }, "FleetInstanceId": { "base": null, "refs": { - "ConfigureAgentRequest$fleetInstanceId": "

" + "ConfigureAgentRequest$fleetInstanceId": "

A universally unique identifier (UUID) for a profiling instance. For example, if the profiling instance is an Amazon EC2 instance, it is the instance ID. If it is an AWS Fargate container, it is the container's task ID.

" + } + }, + "FrameMetric": { + "base": "

The frame name, metric type, and thread states. These are used to derive the value of the metric for the frame.

", + "refs": { + "FrameMetricDatum$frameMetric": null, + "FrameMetrics$member": null + } + }, + "FrameMetricData": { + "base": null, + "refs": { + "BatchGetFrameMetricDataResponse$frameMetricData": "

Details of the metrics to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame.

" + } + }, + "FrameMetricDatum": { + "base": "

Information about a frame metric and its values.

", + "refs": { + "FrameMetricData$member": null + } + }, + "FrameMetricValues": { + "base": null, + "refs": { + "FrameMetricDatum$values": "

A list of values that are associated with a frame metric.

" + } + }, + "FrameMetrics": { + "base": null, + "refs": { + "BatchGetFrameMetricDataRequest$frameMetrics": "

The details of the metrics that are used to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame.

" + } + }, + "GetFindingsReportAccountSummaryRequest": { + "base": "

The structure representing the GetFindingsReportAccountSummaryRequest.

", + "refs": { + } + }, + "GetFindingsReportAccountSummaryResponse": { + "base": "

The structure representing the GetFindingsReportAccountSummaryResponse.

", + "refs": { + } + }, + "GetNotificationConfigurationRequest": { + "base": "

The structure representing the GetNotificationConfigurationRequest.

", + "refs": { + } + }, + "GetNotificationConfigurationResponse": { + "base": "

The structure representing the GetNotificationConfigurationResponse.

", + "refs": { } }, "GetPolicyRequest": { - "base": "

The structure representing the getPolicyRequest.

", + "base": "

The structure representing the getPolicyRequest.

", "refs": { } }, "GetPolicyResponse": { - "base": "

The structure representing the getPolicyResponse.

", + "base": "

The structure representing the getPolicyResponse.

", "refs": { } }, @@ -148,10 +352,23 @@ "refs": { } }, + "GetRecommendationsRequest": { + "base": "

The structure representing the GetRecommendationsRequest.

", + "refs": { + } + }, + "GetRecommendationsResponse": { + "base": "

The structure representing the GetRecommendationsResponse.

", + "refs": { + } + }, "Integer": { "base": null, "refs": { - "AgentConfiguration$periodInSeconds": "

" + "AgentConfiguration$periodInSeconds": "

How long a profiling agent should send profiling data using ConfigureAgent . For example, if this is set to 300, the profiling agent calls ConfigureAgent every 5 minutes to submit the profiled data collected during that period.

", + "FindingsReportSummary$totalNumberOfFindings": "

The total number of different recommendations that were found by the analysis.

", + "Match$targetFramesIndex": "

The target frame that triggered a match.

", + "Recommendation$allMatchesCount": "

How many different places in the profile graph triggered a match.

" } }, "InternalServerException": { @@ -159,6 +376,23 @@ "refs": { } }, + "ListFindingsReportsRequest": { + "base": "

The structure representing the ListFindingsReportsRequest.

", + "refs": { + } + }, + "ListFindingsReportsResponse": { + "base": "

The structure representing the ListFindingsReportsResponse.

", + "refs": { + } + }, + "ListOfTimestamps": { + "base": null, + "refs": { + "BatchGetFrameMetricDataResponse$endTimes": "

List of instances, or time steps, in the time series. For example, if the period is one day (PT24H)), and the resolution is five minutes (PT5M), then there are 288 endTimes in the list that are each five minutes appart.

", + "UnprocessedEndTimeMap$value": null + } + }, "ListProfileTimesRequest": { "base": "

The structure representing the listProfileTimesRequest.

", "refs": { @@ -179,19 +413,72 @@ "refs": { } }, + "Locale": { + "base": "

BCP47 language code. Supported locales: de-DE, en-GB, en-US, es-ES, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN, zh-TW

", + "refs": { + "GetRecommendationsRequest$locale": "

The language used to provide analysis. Specify using a string that is one of the following BCP 47 language codes.

" + } + }, + "Match": { + "base": "

The part of a profile that contains a recommendation found during analysis.

", + "refs": { + "Matches$member": null + } + }, + "Matches": { + "base": null, + "refs": { + "Recommendation$topMatches": "

List of the matches with most impact.

" + } + }, "MaxDepth": { "base": null, "refs": { - "GetProfileRequest$maxDepth": "

The maximum depth of the graph.

" + "GetProfileRequest$maxDepth": "

The maximum depth of the stacks in the code that is represented in the aggregated profile. For example, if CodeGuru Profiler finds a method A, which calls method B, which calls method C, which calls method D, then the depth is 4. If the maxDepth is set to 2, then the aggregated profile contains representations of methods A and B.

" } }, "MaxResults": { "base": null, "refs": { + "GetFindingsReportAccountSummaryRequest$maxResults": "

The maximum number of results returned by GetFindingsReportAccountSummary in paginated output. When this parameter is used, GetFindingsReportAccountSummary only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another GetFindingsReportAccountSummary request with the returned nextToken value.

", + "ListFindingsReportsRequest$maxResults": "

The maximum number of report results returned by ListFindingsReports in paginated output. When this parameter is used, ListFindingsReports only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListFindingsReports request with the returned nextToken value.

", "ListProfileTimesRequest$maxResults": "

The maximum number of profile time results returned by ListProfileTimes in paginated output. When this parameter is used, ListProfileTimes only returns maxResults results in a single page with a nextToken response element. The remaining results of the initial request can be seen by sending another ListProfileTimes request with the returned nextToken value.

", "ListProfilingGroupsRequest$maxResults": "

The maximum number of profiling groups results returned by ListProfilingGroups in paginated output. When this parameter is used, ListProfilingGroups only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListProfilingGroups request with the returned nextToken value.

" } }, + "Metadata": { + "base": null, + "refs": { + "ConfigureAgentRequest$metadata": "

Metadata captured about the compute platform the agent is running on. It includes information about sampling and reporting. The valid fields are:

" + } + }, + "MetadataField": { + "base": null, + "refs": { + "Metadata$key": null + } + }, + "Metric": { + "base": "

Details about the metric that the analysis used when it detected the anomaly. The metric what is analyzed to create recommendations. It includes the name of the frame that was analyzed and the type and thread states used to derive the metric value for that frame.

", + "refs": { + "Anomaly$metric": "

Details about the metric that the analysis used when it detected the anomaly. The metric includes the name of the frame that was analyzed with the type and thread states used to derive the metric value for that frame.

" + } + }, + "MetricType": { + "base": null, + "refs": { + "FrameMetric$type": "

A type of aggregation that specifies how a metric for a frame is analyzed. The supported value AggregatedRelativeTotalTime is an aggregation of the metric value for one frame that is calculated across the occurrences of all frames in a profile.

", + "Metric$type": "

A type that specifies how a metric for a frame is analyzed. The supported value AggregatedRelativeTotalTime is an aggregation of the metric value for one frame that is calculated across the occurences of all frames in a profile.

" + } + }, + "NotificationConfiguration": { + "base": "

The configuration for notifications stored for each profiling group. This includes up to to two channels and a list of event publishers associated with each channel.

", + "refs": { + "AddNotificationChannelsResponse$notificationConfiguration": "

The new notification configuration for this profiling group.

", + "GetNotificationConfigurationResponse$notificationConfiguration": "

The current notification configuration for this profiling group.

", + "RemoveNotificationChannelResponse$notificationConfiguration": "

The new notification configuration for this profiling group.

" + } + }, "OrderBy": { "base": null, "refs": { @@ -201,16 +488,33 @@ "PaginationToken": { "base": null, "refs": { + "GetFindingsReportAccountSummaryRequest$nextToken": "

The nextToken value returned from a previous paginated GetFindingsReportAccountSummary request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "GetFindingsReportAccountSummaryResponse$nextToken": "

The nextToken value to include in a future GetFindingsReportAccountSummary request. When the results of a GetFindingsReportAccountSummary request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListFindingsReportsRequest$nextToken": "

The nextToken value returned from a previous paginated ListFindingsReportsRequest request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListFindingsReportsResponse$nextToken": "

The nextToken value to include in a future ListFindingsReports request. When the results of a ListFindingsReports request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListProfileTimesRequest$nextToken": "

The nextToken value returned from a previous paginated ListProfileTimes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListProfileTimesResponse$nextToken": "

The nextToken value to include in a future ListProfileTimes request. When the results of a ListProfileTimes request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListProfilingGroupsRequest$nextToken": "

The nextToken value returned from a previous paginated ListProfilingGroups request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListProfilingGroupsResponse$nextToken": "

The nextToken value to include in a future ListProfilingGroups request. When the results of a ListProfilingGroups request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" } }, + "Pattern": { + "base": "

A set of rules used to make a recommendation during an analysis.

", + "refs": { + "Recommendation$pattern": "

The pattern that analysis recognized in the profile to make this recommendation.

" + } + }, + "Percentage": { + "base": null, + "refs": { + "Pattern$thresholdPercent": "

The percentage of time an application spends in one method that triggers a recommendation. The percentage of time is the same as the percentage of the total gathered sample counts during analysis.

" + } + }, "Period": { "base": null, "refs": { - "GetProfileRequest$period": "

The period of the profile to get. The time range must be in the past and not longer than one week.

You must specify exactly two of the following parameters: startTime, period, and endTime.

" + "BatchGetFrameMetricDataRequest$period": "

The duration of the frame metrics used to return the time series values. Specify using the ISO 8601 format. The maximum period duration is one day (PT24H or P1D).

", + "GetProfileRequest$period": "

Used with startTime or endTime to specify the time range for the returned aggregated profile. Specify using the ISO 8601 format. For example, P1DT1H1M1S.

 <p> To get the latest aggregated profile, specify only <code>period</code>. </p> 
" } }, "PostAgentProfileRequest": { @@ -232,11 +536,11 @@ "Principals": { "base": null, "refs": { - "PutPermissionRequest$principals": "

The list of role and user ARNs or the accountId that needs access (wildcards are not allowed).

" + "PutPermissionRequest$principals": "

A list ARNs for the roles and users you want to grant access to the profiling group. Wildcards are not are supported in the ARNs.

" } }, "ProfileTime": { - "base": "

Information about the profile time.

", + "base": "

Contains the start time of a profile.

", "refs": { "ProfileTimes$member": null } @@ -250,71 +554,101 @@ "ProfilingGroupArn": { "base": null, "refs": { - "ProfilingGroupDescription$arn": "

The Amazon Resource Name (ARN) identifying the profiling group.

" + "ProfilingGroupDescription$arn": "

The Amazon Resource Name (ARN) identifying the profiling group resource.

" } }, "ProfilingGroupDescription": { - "base": "

The description of a profiling group.

", + "base": "

Contains information about a profiling group.

", "refs": { - "CreateProfilingGroupResponse$profilingGroup": "

Information about the new profiling group

", - "DescribeProfilingGroupResponse$profilingGroup": "

Information about a profiling group.

", + "CreateProfilingGroupResponse$profilingGroup": "

The returned ProfilingGroupDescription object that contains information about the created profiling group.

", + "DescribeProfilingGroupResponse$profilingGroup": "

The returned ProfilingGroupDescription object that contains information about the requested profiling group.

", "ProfilingGroupDescriptions$member": null, - "UpdateProfilingGroupResponse$profilingGroup": "

Updated information about the profiling group.

" + "UpdateProfilingGroupResponse$profilingGroup": "

A ProfilingGroupDescription that contains information about the returned updated profiling group.

" } }, "ProfilingGroupDescriptions": { "base": null, "refs": { - "ListProfilingGroupsResponse$profilingGroups": "

Information about profiling groups.

" + "ListProfilingGroupsResponse$profilingGroups": "

A returned list ProfilingGroupDescription objects. A list of ProfilingGroupDescription objects is returned only if includeDescription is true, otherwise a list of profiling group names is returned.

" } }, "ProfilingGroupName": { "base": null, "refs": { - "ConfigureAgentRequest$profilingGroupName": "

", - "CreateProfilingGroupRequest$profilingGroupName": "

The name of the profiling group.

", - "DeleteProfilingGroupRequest$profilingGroupName": "

The profiling group name to delete.

", - "DescribeProfilingGroupRequest$profilingGroupName": "

The profiling group name.

", + "AddNotificationChannelsRequest$profilingGroupName": "

The name of the profiling group that we are setting up notifications for.

", + "BatchGetFrameMetricDataRequest$profilingGroupName": "

The name of the profiling group associated with the the frame metrics used to return the time series values.

", + "ConfigureAgentRequest$profilingGroupName": "

The name of the profiling group for which the configured agent is collecting profiling data.

", + "CreateProfilingGroupRequest$profilingGroupName": "

The name of the profiling group to create.

", + "DeleteProfilingGroupRequest$profilingGroupName": "

The name of the profiling group to delete.

", + "DescribeProfilingGroupRequest$profilingGroupName": "

The name of the profiling group to get information about.

", + "GetNotificationConfigurationRequest$profilingGroupName": "

The name of the profiling group we want to get the notification configuration for.

", "GetPolicyRequest$profilingGroupName": "

The name of the profiling group.

", "GetProfileRequest$profilingGroupName": "

The name of the profiling group to get.

", + "GetRecommendationsRequest$profilingGroupName": "

The name of the profiling group to get analysis data about.

", + "GetRecommendationsResponse$profilingGroupName": "

The name of the profiling group the analysis data is about.

", + "ListFindingsReportsRequest$profilingGroupName": "

The name of the profiling group from which to search for analysis data.

", "ListProfileTimesRequest$profilingGroupName": "

The name of the profiling group.

", - "PostAgentProfileRequest$profilingGroupName": "

", + "PostAgentProfileRequest$profilingGroupName": "

The name of the profiling group with the aggregated profile that receives the submitted profiling data.

", "ProfilingGroupDescription$name": "

The name of the profiling group.

", "ProfilingGroupNames$member": null, - "PutPermissionRequest$profilingGroupName": "

The name of the profiling group.

", + "PutPermissionRequest$profilingGroupName": "

The name of the profiling group to grant access to.

", + "RemoveNotificationChannelRequest$profilingGroupName": "

The name of the profiling group we want to change notification configuration for.

", "RemovePermissionRequest$profilingGroupName": "

The name of the profiling group.

", + "SubmitFeedbackRequest$profilingGroupName": "

The name of the profiling group that is associated with the analysis data.

", "UpdateProfilingGroupRequest$profilingGroupName": "

The name of the profiling group to update.

" } }, "ProfilingGroupNames": { "base": null, "refs": { - "ListProfilingGroupsResponse$profilingGroupNames": "

Information about profiling group names.

" + "ListProfilingGroupsResponse$profilingGroupNames": "

A returned list of profiling group names. A list of the names is returned only if includeDescription is false, otherwise a list of ProfilingGroupDescription objects is returned.

" } }, "ProfilingStatus": { - "base": "

Information about the profiling status.

", + "base": "

Profiling status includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile.

", "refs": { - "ProfilingGroupDescription$profilingStatus": "

The status of the profiling group.

" + "ProfilingGroupDescription$profilingStatus": "

A ProfilingStatus object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile.

" } }, "PutPermissionRequest": { - "base": "

The structure representing the putPermissionRequest.

", + "base": "

The structure representing the putPermissionRequest.

", "refs": { } }, "PutPermissionResponse": { - "base": "

The structure representing the putPermissionResponse.

", + "base": "

The structure representing the putPermissionResponse.

", + "refs": { + } + }, + "Recommendation": { + "base": "

A potential improvement that was found from analyzing the profiling data.

", + "refs": { + "Recommendations$member": null + } + }, + "Recommendations": { + "base": null, + "refs": { + "GetRecommendationsResponse$recommendations": "

The list of recommendations that the analysis found for this profile.

" + } + }, + "RemoveNotificationChannelRequest": { + "base": "

The structure representing the RemoveNotificationChannelRequest.

", + "refs": { + } + }, + "RemoveNotificationChannelResponse": { + "base": "

The structure representing the RemoveNotificationChannelResponse.

", "refs": { } }, "RemovePermissionRequest": { - "base": "

The structure representing the removePermissionRequest.

", + "base": "

 The structure representing the <code>removePermissionRequest</code>.</p> 
", "refs": { } }, "RemovePermissionResponse": { - "base": "

The structure representing the removePermissionResponse.

", + "base": "

The structure representing the removePermissionResponse.

", "refs": { } }, @@ -326,11 +660,11 @@ "RevisionId": { "base": null, "refs": { - "GetPolicyResponse$revisionId": "

A unique identifier for the current revision of the policy.

", - "PutPermissionRequest$revisionId": "

A unique identifier for the current revision of the policy. This is required, if a policy exists for the profiling group. This is not required when creating the policy for the first time.

", - "PutPermissionResponse$revisionId": "

A unique identifier for the current revision of the policy.

", - "RemovePermissionRequest$revisionId": "

A unique identifier for the current revision of the policy.

", - "RemovePermissionResponse$revisionId": "

A unique identifier for the current revision of the policy.

" + "GetPolicyResponse$revisionId": "

A unique identifier for the current revision of the returned policy.

", + "PutPermissionRequest$revisionId": "

A universally unique identifier (UUID) for the revision of the policy you are adding to the profiling group. Do not specify this when you add permissions to a profiling group for the first time. If a policy already exists on the profiling group, you must specify the revisionId.

", + "PutPermissionResponse$revisionId": "

A universally unique identifier (UUID) for the revision of the resource-based policy that includes the added permissions. The JSON-formatted policy is in the policy element of the response.

", + "RemovePermissionRequest$revisionId": "

A universally unique identifier (UUID) for the revision of the resource-based policy from which you want to remove permissions.

", + "RemovePermissionResponse$revisionId": "

A universally unique identifier (UUID) for the revision of the resource-based policy after the specified permissions were removed. The updated JSON-formatted policy is in the policy element of the response.

" } }, "ServiceQuotaExceededException": { @@ -341,21 +675,73 @@ "String": { "base": null, "refs": { + "AgentParameters$value": null, + "Anomaly$reason": "

The reason for which metric was flagged as anomalous.

", + "AnomalyInstance$id": "

The universally unique identifier (UUID) of an instance of an anomaly in a metric.

", "ConflictException$message": null, - "GetPolicyResponse$policy": "

The resource-based policy attached to the ProfilingGroup.

", - "GetProfileRequest$accept": "

The format of the profile to return. You can choose application/json or the default application/x-amzn-ion.

", + "FindingsReportSummary$profilingGroupName": "

The name of the profiling group that is associated with the analysis data.

", + "FrameMetric$frameName": "

Name of the method common across the multiple occurrences of a frame in an application profile.

", + "GetPolicyResponse$policy": "

The JSON-formatted resource-based policy attached to the ProfilingGroup.

", + "GetProfileRequest$accept": "

The format of the returned profiling data. The format maps to the Accept and Content-Type headers of the HTTP request. You can specify one of the following: or the default .

 <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul> 
", "GetProfileResponse$contentEncoding": "

The content encoding of the profile.

", "GetProfileResponse$contentType": "

The content type of the profile in the payload. It is either application/json or the default application/x-amzn-ion.

", "InternalServerException$message": null, - "PostAgentProfileRequest$contentType": "

", - "PutPermissionResponse$policy": "

The resource-based policy.

", - "RemovePermissionResponse$policy": "

The resource-based policy.

", + "Match$frameAddress": "

The location in the profiling graph that contains a recommendation found during analysis.

", + "Metadata$value": null, + "Metric$frameName": "

The name of the method that appears as a frame in any stack in a profile.

", + "Pattern$description": "

The description of the recommendation. This explains a potential inefficiency in a profiled application.

", + "Pattern$id": "

The universally unique identifier (UUID) of this pattern.

", + "Pattern$name": "

The name for this pattern.

", + "Pattern$resolutionSteps": "

A string that contains the steps recommended to address the potential inefficiency.

", + "PostAgentProfileRequest$contentType": "

The format of the submitted profiling data. The format maps to the Accept and Content-Type headers of the HTTP request. You can specify one of the following: or the default .

 <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul> 
", + "PutPermissionResponse$policy": "

The JSON-formatted resource-based policy on the profiling group that includes the added permissions.

", + "RemovePermissionResponse$policy": "

The JSON-formatted resource-based policy on the profiling group after the specified permissions were removed.

", "ResourceNotFoundException$message": null, "ServiceQuotaExceededException$message": null, + "Strings$member": null, + "SubmitFeedbackRequest$comment": "

Optional feedback about this anomaly.

", + "TargetFrame$member": null, + "ThreadStates$member": null, "ThrottlingException$message": null, + "UnprocessedEndTimeMap$key": null, "ValidationException$message": null } }, + "Strings": { + "base": null, + "refs": { + "Metric$threadStates": "

The list of application runtime thread states that is used to calculate the metric value for the frame.

", + "Pattern$countersToAggregate": "

A list of the different counters used to determine if there is a match.

" + } + }, + "SubmitFeedbackRequest": { + "base": "

The structure representing the SubmitFeedbackRequest.

", + "refs": { + } + }, + "SubmitFeedbackResponse": { + "base": "

The structure representing the SubmitFeedbackResponse.

", + "refs": { + } + }, + "TargetFrame": { + "base": null, + "refs": { + "TargetFrames$member": null + } + }, + "TargetFrames": { + "base": null, + "refs": { + "Pattern$targetFrames": "

A list of frame names that were searched during the analysis that generated a recommendation.

" + } + }, + "ThreadStates": { + "base": null, + "refs": { + "FrameMetric$threadStates": "

List of application runtime thread states used to get the counts for a frame a derive a metric value.

" + } + }, "ThrottlingException": { "base": "

The request was denied due to request throttling.

", "refs": { @@ -364,16 +750,45 @@ "Timestamp": { "base": null, "refs": { - "AggregatedProfileTime$start": "

The start time.

", - "GetProfileRequest$endTime": "

You must specify exactly two of the following parameters: startTime, period, and endTime.

", - "GetProfileRequest$startTime": "

The start time of the profile to get.

You must specify exactly two of the following parameters: startTime, period, and endTime.

", + "AggregatedProfileTime$start": "

The time that aggregation of posted agent profiles for a profiling group starts. The aggregation profile contains profiles posted by the agent starting at this time for an aggregation period specified by the period property of the AggregatedProfileTime object.

Specify start using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "AnomalyInstance$endTime": "

The end time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "AnomalyInstance$startTime": "

The start time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "BatchGetFrameMetricDataRequest$endTime": "

The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "BatchGetFrameMetricDataRequest$startTime": "

The start time of the time period for the frame metrics used to return the time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "BatchGetFrameMetricDataResponse$endTime": "

The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "BatchGetFrameMetricDataResponse$startTime": "

The start time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "FindingsReportSummary$profileEndTime": "

The end time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "FindingsReportSummary$profileStartTime": "

The start time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "GetProfileRequest$endTime": "

The end time of the requested profile. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

If you specify endTime, then you must also specify period or startTime, but not both.

", + "GetProfileRequest$startTime": "

The start time of the profile to get. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

 <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p> 
", + "GetRecommendationsRequest$endTime": "

The start time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "GetRecommendationsRequest$startTime": "

The end time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "GetRecommendationsResponse$profileEndTime": "

The end time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "GetRecommendationsResponse$profileStartTime": "

The start time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "ListFindingsReportsRequest$endTime": "

The end time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "ListFindingsReportsRequest$startTime": "

The start time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", "ListProfileTimesRequest$endTime": "

The end time of the time range from which to list the profiles.

", "ListProfileTimesRequest$startTime": "

The start time of the time range from which to list the profiles.

", - "ProfileTime$start": "

The start time of the profile.

", - "ProfilingGroupDescription$createdAt": "

The time, in milliseconds since the epoch, when the profiling group was created.

", - "ProfilingGroupDescription$updatedAt": "

The time, in milliseconds since the epoch, when the profiling group was last updated.

", - "ProfilingStatus$latestAgentOrchestratedAt": "

The time, in milliseconds since the epoch, when the latest agent was orchestrated.

", - "ProfilingStatus$latestAgentProfileReportedAt": "

The time, in milliseconds since the epoch, when the latest agent was reported..

" + "ProfileTime$start": "

The start time of a profile. It is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "ProfilingGroupDescription$createdAt": "

The time when the profiling group was created. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "ProfilingGroupDescription$updatedAt": "

The date and time when the profiling group was last updated. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "ProfilingStatus$latestAgentOrchestratedAt": "

The date and time when the profiling agent most recently pinged back. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "ProfilingStatus$latestAgentProfileReportedAt": "

The date and time when the most recent profile was received. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "Recommendation$endTime": "

End time of the profile that was used by this analysis. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "Recommendation$startTime": "

The start time of the profile that was used by this analysis. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "TimestampStructure$value": "

A Timestamp. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

" + } + }, + "TimestampStructure": { + "base": "

A data type that contains a Timestamp object. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

", + "refs": { + "ListOfTimestamps$member": null + } + }, + "UnprocessedEndTimeMap": { + "base": null, + "refs": { + "BatchGetFrameMetricDataResponse$unprocessedEndTimes": "

List of instances which remained unprocessed. This will create a missing time step in the list of end times.

" } }, "UpdateProfilingGroupRequest": { @@ -386,6 +801,12 @@ "refs": { } }, + "UserFeedback": { + "base": "

Feedback that can be submitted for each instance of an anomaly by the user. Feedback is be used for improvements in generating recommendations for the application.

", + "refs": { + "AnomalyInstance$userFeedback": "

Feedback type on a specific instance of anomaly submitted by the user.

" + } + }, "ValidationException": { "base": "

The parameter is not valid.

", "refs": { diff --git a/models/apis/codeguruprofiler/2019-07-18/paginators-1.json b/models/apis/codeguruprofiler/2019-07-18/paginators-1.json index 9dbcc85954..67d53f6bf1 100644 --- a/models/apis/codeguruprofiler/2019-07-18/paginators-1.json +++ b/models/apis/codeguruprofiler/2019-07-18/paginators-1.json @@ -1,5 +1,15 @@ { "pagination": { + "GetFindingsReportAccountSummary": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListFindingsReports": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListProfileTimes": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/codestar-connections/2019-12-01/api-2.json b/models/apis/codestar-connections/2019-12-01/api-2.json index 7a7795a82d..68a63aa602 100644 --- a/models/apis/codestar-connections/2019-12-01/api-2.json +++ b/models/apis/codestar-connections/2019-12-01/api-2.json @@ -21,6 +21,20 @@ }, "input":{"shape":"CreateConnectionInput"}, "output":{"shape":"CreateConnectionOutput"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"} + ] + }, + "CreateHost":{ + "name":"CreateHost", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHostInput"}, + "output":{"shape":"CreateHostOutput"}, "errors":[ {"shape":"LimitExceededException"} ] @@ -37,6 +51,19 @@ {"shape":"ResourceNotFoundException"} ] }, + "DeleteHost":{ + "name":"DeleteHost", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHostInput"}, + "output":{"shape":"DeleteHostOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"} + ] + }, "GetConnection":{ "name":"GetConnection", "http":{ @@ -45,6 +72,19 @@ }, "input":{"shape":"GetConnectionInput"}, "output":{"shape":"GetConnectionOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"} + ] + }, + "GetHost":{ + "name":"GetHost", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetHostInput"}, + "output":{"shape":"GetHostOutput"}, "errors":[ {"shape":"ResourceNotFoundException"} ] @@ -58,6 +98,15 @@ "input":{"shape":"ListConnectionsInput"}, "output":{"shape":"ListConnectionsOutput"} }, + "ListHosts":{ + "name":"ListHosts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHostsInput"}, + "output":{"shape":"ListHostsOutput"} + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -115,7 +164,8 @@ "ConnectionArn":{"shape":"ConnectionArn"}, "ProviderType":{"shape":"ProviderType"}, "OwnerAccountId":{"shape":"AccountId"}, - "ConnectionStatus":{"shape":"ConnectionStatus"} + "ConnectionStatus":{"shape":"ConnectionStatus"}, + "HostArn":{"shape":"HostArn"} } }, "ConnectionArn":{ @@ -143,14 +193,12 @@ }, "CreateConnectionInput":{ "type":"structure", - "required":[ - "ProviderType", - "ConnectionName" - ], + "required":["ConnectionName"], "members":{ "ProviderType":{"shape":"ProviderType"}, "ConnectionName":{"shape":"ConnectionName"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "HostArn":{"shape":"HostArn"} } }, "CreateConnectionOutput":{ @@ -161,6 +209,26 @@ "Tags":{"shape":"TagList"} } }, + "CreateHostInput":{ + "type":"structure", + "required":[ + "Name", + "ProviderType", + "ProviderEndpoint" + ], + "members":{ + "Name":{"shape":"HostName"}, + "ProviderType":{"shape":"ProviderType"}, + "ProviderEndpoint":{"shape":"Url"}, + "VpcConfiguration":{"shape":"VpcConfiguration"} + } + }, + "CreateHostOutput":{ + "type":"structure", + "members":{ + "HostArn":{"shape":"HostArn"} + } + }, "DeleteConnectionInput":{ "type":"structure", "required":["ConnectionArn"], @@ -173,6 +241,18 @@ "members":{ } }, + "DeleteHostInput":{ + "type":"structure", + "required":["HostArn"], + "members":{ + "HostArn":{"shape":"HostArn"} + } + }, + "DeleteHostOutput":{ + "type":"structure", + "members":{ + } + }, "ErrorMessage":{ "type":"string", "max":600 @@ -190,6 +270,52 @@ "Connection":{"shape":"Connection"} } }, + "GetHostInput":{ + "type":"structure", + "required":["HostArn"], + "members":{ + "HostArn":{"shape":"HostArn"} + } + }, + "GetHostOutput":{ + "type":"structure", + "members":{ + "Name":{"shape":"HostName"}, + "Status":{"shape":"HostStatus"}, + "ProviderType":{"shape":"ProviderType"}, + "ProviderEndpoint":{"shape":"Url"}, + "VpcConfiguration":{"shape":"VpcConfiguration"} + } + }, + "Host":{ + "type":"structure", + "members":{ + "Name":{"shape":"HostName"}, + "HostArn":{"shape":"HostArn"}, + "ProviderType":{"shape":"ProviderType"}, + "ProviderEndpoint":{"shape":"Url"}, + "VpcConfiguration":{"shape":"VpcConfiguration"}, + "Status":{"shape":"HostStatus"}, + "StatusMessage":{"shape":"HostStatusMessage"} + } + }, + "HostArn":{ + "type":"string", + "max":256, + "min":0, + "pattern":"arn:aws(-[\\w]+)*:codestar-connections:.+:[0-9]{12}:host\\/.+" + }, + "HostList":{ + "type":"list", + "member":{"shape":"Host"} + }, + "HostName":{ + "type":"string", + "max":32, + "min":1 + }, + "HostStatus":{"type":"string"}, + "HostStatusMessage":{"type":"string"}, "LimitExceededException":{ "type":"structure", "members":{ @@ -201,6 +327,7 @@ "type":"structure", "members":{ "ProviderTypeFilter":{"shape":"ProviderType"}, + "HostArnFilter":{"shape":"HostArn"}, "MaxResults":{"shape":"MaxResults"}, "NextToken":{"shape":"NextToken"} } @@ -212,6 +339,20 @@ "NextToken":{"shape":"NextToken"} } }, + "ListHostsInput":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListHostsOutput":{ + "type":"structure", + "members":{ + "Hosts":{"shape":"HostList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListTagsForResourceInput":{ "type":"structure", "required":["ResourceArn"], @@ -227,7 +368,7 @@ }, "MaxResults":{ "type":"integer", - "max":5000, + "max":100, "min":0 }, "NextToken":{ @@ -237,7 +378,10 @@ }, "ProviderType":{ "type":"string", - "enum":["Bitbucket"] + "enum":[ + "Bitbucket", + "GitHubEnterpriseServer" + ] }, "ResourceNotFoundException":{ "type":"structure", @@ -246,6 +390,33 @@ }, "exception":true }, + "ResourceUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "SecurityGroupId":{ + "type":"string", + "pattern":"sg-\\w{8}(\\w{9})?" + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":10, + "min":1 + }, + "SubnetId":{ + "type":"string", + "pattern":"subnet-\\w{8}(\\w{9})?" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":10, + "min":1 + }, "Tag":{ "type":"structure", "required":[ @@ -295,6 +466,11 @@ "max":256, "min":0 }, + "TlsCertificate":{ + "type":"string", + "max":16384, + "min":1 + }, "UntagResourceInput":{ "type":"structure", "required":[ @@ -310,6 +486,29 @@ "type":"structure", "members":{ } + }, + "Url":{ + "type":"string", + "max":512, + "min":1 + }, + "VpcConfiguration":{ + "type":"structure", + "required":[ + "VpcId", + "SubnetIds", + "SecurityGroupIds" + ], + "members":{ + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "SecurityGroupIds":{"shape":"SecurityGroupIds"}, + "TlsCertificate":{"shape":"TlsCertificate"} + } + }, + "VpcId":{ + "type":"string", + "pattern":"vpc-\\w{8}(\\w{9})?" } } } diff --git a/models/apis/codestar-connections/2019-12-01/docs-2.json b/models/apis/codestar-connections/2019-12-01/docs-2.json index 4abd27d205..7d39b6f450 100644 --- a/models/apis/codestar-connections/2019-12-01/docs-2.json +++ b/models/apis/codestar-connections/2019-12-01/docs-2.json @@ -1,11 +1,15 @@ { "version": "2.0", - "service": "

This AWS CodeStar Connections API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Connections API. You can use the Connections API to work with connections and installations.

Connections are configurations that you use to connect AWS resources to external code repositories. Each connection is a resource that can be given to services such as CodePipeline to connect to a third-party repository such as Bitbucket. For example, you can add the connection in CodePipeline so that it triggers your pipeline when a code change is made to your third-party code repository. Each connection is named and associated with a unique ARN that is used to reference the connection.

When you create a connection, the console initiates a third-party connection handshake. Installations are the apps that are used to conduct this handshake. For example, the installation for the Bitbucket provider type is the Bitbucket Cloud app. When you create a connection, you can choose an existing installation or create one.

You can work with connections by calling:

For information about how to use AWS CodeStar Connections, see the AWS CodePipeline User Guide.

", + "service": "AWS CodeStar Connections

The CodeStar Connections feature is in preview release and is subject to change.

This AWS CodeStar Connections API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Connections API. You can use the connections API to work with connections and installations.

Connections are configurations that you use to connect AWS resources to external code repositories. Each connection is a resource that can be given to services such as CodePipeline to connect to a third-party repository such as Bitbucket. For example, you can add the connection in CodePipeline so that it triggers your pipeline when a code change is made to your third-party code repository. Each connection is named and associated with a unique ARN that is used to reference the connection.

When you create a connection, the console initiates a third-party connection handshake. Installations are the apps that are used to conduct this handshake. For example, the installation for the Bitbucket provider type is the Bitbucket Cloud app. When you create a connection, you can choose an existing installation or create one.

When you want to create a connection to an installed provider type such as GitHub Enterprise Server, you create a host for your connections.

You can work with connections by calling:

You can work with hosts by calling:

You can work with tags in AWS CodeStar Connections by calling the following:

For information about how to use AWS CodeStar Connections, see the Developer Tools User Guide.

", "operations": { "CreateConnection": "

Creates a connection that can then be given to other AWS services like CodePipeline so that it can access third-party code repositories. The connection is in pending status until the third-party connection handshake is completed from the console.

", + "CreateHost": "

Creates a resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider.

A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console.

", "DeleteConnection": "

The connection to be deleted.

", + "DeleteHost": "

The host to be deleted. Before you delete a host, all connections associated to the host must be deleted.

A host cannot be deleted if it is in the VPC_CONFIG_INITIALIZING or VPC_CONFIG_DELETING state.

", "GetConnection": "

Returns the connection ARN and details such as status, owner, and provider type.

", + "GetHost": "

Returns the host ARN and details such as status, provider type, endpoint, and, if applicable, the VPC configuration.

", "ListConnections": "

Lists the connections associated with your account.

", + "ListHosts": "

Lists the hosts associated with your account.

", "ListTagsForResource": "

Gets the set of key-value pairs (metadata) that are used to manage the resource.

", "TagResource": "

Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource.

", "UntagResource": "

Removes tags from an AWS resource.

" @@ -26,7 +30,7 @@ } }, "Connection": { - "base": "

The AWS::CodeStarConnections::Connection resource can be used to connect external source providers with services like AWS CodePipeline.

Note: A connection created through CloudFormation is in `PENDING` status by default. You can make its status `AVAILABLE` by editing the connection in the CodePipeline console.

", + "base": "

A resource that is used to connect third-party source providers with services like AWS CodePipeline.

Note: A connection created through CloudFormation, the CLI, or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by updating the connection in the console.

", "refs": { "ConnectionList$member": null, "GetConnectionOutput$Connection": "

The connection details, such as status, owner, and provider type.

" @@ -70,6 +74,16 @@ "refs": { } }, + "CreateHostInput": { + "base": null, + "refs": { + } + }, + "CreateHostOutput": { + "base": null, + "refs": { + } + }, "DeleteConnectionInput": { "base": null, "refs": { @@ -80,11 +94,22 @@ "refs": { } }, + "DeleteHostInput": { + "base": null, + "refs": { + } + }, + "DeleteHostOutput": { + "base": null, + "refs": { + } + }, "ErrorMessage": { "base": null, "refs": { "LimitExceededException$Message": null, - "ResourceNotFoundException$Message": null + "ResourceNotFoundException$Message": null, + "ResourceUnavailableException$Message": null } }, "GetConnectionInput": { @@ -97,6 +122,61 @@ "refs": { } }, + "GetHostInput": { + "base": null, + "refs": { + } + }, + "GetHostOutput": { + "base": null, + "refs": { + } + }, + "Host": { + "base": "

A resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider.

A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console.

", + "refs": { + "HostList$member": null + } + }, + "HostArn": { + "base": null, + "refs": { + "Connection$HostArn": "

The Amazon Resource Name (ARN) of the host associated with the connection.

", + "CreateConnectionInput$HostArn": "

The Amazon Resource Name (ARN) of the host associated with the connection to be created.

", + "CreateHostOutput$HostArn": "

The Amazon Resource Name (ARN) of the host to be created.

", + "DeleteHostInput$HostArn": "

The Amazon Resource Name (ARN) of the host to be deleted.

", + "GetHostInput$HostArn": "

The Amazon Resource Name (ARN) of the requested host.

", + "Host$HostArn": "

The Amazon Resource Name (ARN) of the host.

", + "ListConnectionsInput$HostArnFilter": "

Filters the list of connections to those associated with a specified host.

" + } + }, + "HostList": { + "base": null, + "refs": { + "ListHostsOutput$Hosts": "

A list of hosts and the details for each host, such as status, endpoint, and provider type.

" + } + }, + "HostName": { + "base": null, + "refs": { + "CreateHostInput$Name": "

The name of the host to be created. The name must be unique in the calling AWS account.

", + "GetHostOutput$Name": "

The name of the requested host.

", + "Host$Name": "

The name of the host.

" + } + }, + "HostStatus": { + "base": null, + "refs": { + "GetHostOutput$Status": "

The status of the requested host.

", + "Host$Status": "

The status of the host, such as PENDING, AVAILABLE, VPC_CONFIG_DELETING, VPC_CONFIG_INITIALIZING, and VPC_CONFIG_FAILED_INITIALIZATION.

" + } + }, + "HostStatusMessage": { + "base": null, + "refs": { + "Host$StatusMessage": "

The status description for the host.

" + } + }, "LimitExceededException": { "base": "

Exceeded the maximum limit for connections.

", "refs": { @@ -112,6 +192,16 @@ "refs": { } }, + "ListHostsInput": { + "base": null, + "refs": { + } + }, + "ListHostsOutput": { + "base": null, + "refs": { + } + }, "ListTagsForResourceInput": { "base": null, "refs": { @@ -125,21 +215,27 @@ "MaxResults": { "base": null, "refs": { - "ListConnectionsInput$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "ListConnectionsInput$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "ListHostsInput$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" } }, "NextToken": { "base": null, "refs": { "ListConnectionsInput$NextToken": "

The token that was returned from the previous ListConnections call, which can be used to return the next set of connections in the list.

", - "ListConnectionsOutput$NextToken": "

A token that can be used in the next ListConnections call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

" + "ListConnectionsOutput$NextToken": "

A token that can be used in the next ListConnections call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

", + "ListHostsInput$NextToken": "

The token that was returned from the previous ListHosts call, which can be used to return the next set of hosts in the list.

", + "ListHostsOutput$NextToken": "

A token that can be used in the next ListHosts call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

" } }, "ProviderType": { "base": null, "refs": { - "Connection$ProviderType": "

The name of the external provider where your third-party code repository is configured. Currently, the valid provider type is Bitbucket.

", - "CreateConnectionInput$ProviderType": "

The name of the external provider where your third-party code repository is configured. Currently, the valid provider type is Bitbucket.

", + "Connection$ProviderType": "

The name of the external provider where your third-party code repository is configured. The valid provider type is Bitbucket.

", + "CreateConnectionInput$ProviderType": "

The name of the external provider where your third-party code repository is configured. The valid provider type is Bitbucket.

", + "CreateHostInput$ProviderType": "

The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server.

", + "GetHostOutput$ProviderType": "

The provider type of the requested host, such as GitHub Enterprise Server.

", + "Host$ProviderType": "

The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server.

", "ListConnectionsInput$ProviderTypeFilter": "

Filters the list of connections to those associated with a specified provider, such as Bitbucket.

" } }, @@ -148,6 +244,35 @@ "refs": { } }, + "ResourceUnavailableException": { + "base": "

Resource not found. Verify the ARN for the host resource and try again.

", + "refs": { + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "SecurityGroupIds$member": null + } + }, + "SecurityGroupIds": { + "base": null, + "refs": { + "VpcConfiguration$SecurityGroupIds": "

The ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIds$member": null + } + }, + "SubnetIds": { + "base": null, + "refs": { + "VpcConfiguration$SubnetIds": "

The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed.

" + } + }, "Tag": { "base": "

A tag is a key-value pair that is used to manage the resource.

This tag is available for use by AWS services that support tags.

", "refs": { @@ -192,6 +317,12 @@ "Tag$Value": "

The tag's value.

" } }, + "TlsCertificate": { + "base": null, + "refs": { + "VpcConfiguration$TlsCertificate": "

The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed.

" + } + }, "UntagResourceInput": { "base": null, "refs": { @@ -201,6 +332,28 @@ "base": null, "refs": { } + }, + "Url": { + "base": null, + "refs": { + "CreateHostInput$ProviderEndpoint": "

The endpoint of the infrastructure to be represented by the host after it is created.

", + "GetHostOutput$ProviderEndpoint": "

The endpoint of the infrastructure represented by the requested host.

", + "Host$ProviderEndpoint": "

The endpoint of the infrastructure where your provider type is installed.

" + } + }, + "VpcConfiguration": { + "base": "

The VPC configuration provisioned for the host.

", + "refs": { + "CreateHostInput$VpcConfiguration": "

The VPC configuration to be provisioned for the host. A VPC must be configured and the infrastructure to be represented by the host must already be connected to the VPC.

", + "GetHostOutput$VpcConfiguration": "

The VPC configuration of the requested host.

", + "Host$VpcConfiguration": "

The VPC configuration provisioned for the host.

" + } + }, + "VpcId": { + "base": null, + "refs": { + "VpcConfiguration$VpcId": "

The ID of the Amazon VPC connected to the infrastructure where your provider type is installed.

" + } } } } diff --git a/models/apis/codestar-connections/2019-12-01/paginators-1.json b/models/apis/codestar-connections/2019-12-01/paginators-1.json index deffa71f04..1b3698862c 100644 --- a/models/apis/codestar-connections/2019-12-01/paginators-1.json +++ b/models/apis/codestar-connections/2019-12-01/paginators-1.json @@ -4,6 +4,11 @@ "input_token": "NextToken", "output_token": "NextToken", "limit_key": "MaxResults" + }, + "ListHosts": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" } } } diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 5f0e11d9d4..9c7b924b94 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -546,6 +546,15 @@ "input":{"shape":"CreateLocalGatewayRouteTableVpcAssociationRequest"}, "output":{"shape":"CreateLocalGatewayRouteTableVpcAssociationResult"} }, + "CreateManagedPrefixList":{ + "name":"CreateManagedPrefixList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateManagedPrefixListRequest"}, + "output":{"shape":"CreateManagedPrefixListResult"} + }, "CreateNatGateway":{ "name":"CreateNatGateway", "http":{ @@ -971,6 +980,15 @@ "input":{"shape":"DeleteLocalGatewayRouteTableVpcAssociationRequest"}, "output":{"shape":"DeleteLocalGatewayRouteTableVpcAssociationResult"} }, + "DeleteManagedPrefixList":{ + "name":"DeleteManagedPrefixList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteManagedPrefixListRequest"}, + "output":{"shape":"DeleteManagedPrefixListResult"} + }, "DeleteNatGateway":{ "name":"DeleteNatGateway", "http":{ @@ -1800,6 +1818,15 @@ "input":{"shape":"DescribeLocalGatewaysRequest"}, "output":{"shape":"DescribeLocalGatewaysResult"} }, + "DescribeManagedPrefixLists":{ + "name":"DescribeManagedPrefixLists", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeManagedPrefixListsRequest"}, + "output":{"shape":"DescribeManagedPrefixListsResult"} + }, "DescribeMovingAddresses":{ "name":"DescribeMovingAddresses", "http":{ @@ -2665,6 +2692,24 @@ "input":{"shape":"GetLaunchTemplateDataRequest"}, "output":{"shape":"GetLaunchTemplateDataResult"} }, + "GetManagedPrefixListAssociations":{ + "name":"GetManagedPrefixListAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetManagedPrefixListAssociationsRequest"}, + "output":{"shape":"GetManagedPrefixListAssociationsResult"} + }, + "GetManagedPrefixListEntries":{ + "name":"GetManagedPrefixListEntries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetManagedPrefixListEntriesRequest"}, + "output":{"shape":"GetManagedPrefixListEntriesResult"} + }, "GetPasswordData":{ "name":"GetPasswordData", "http":{ @@ -2931,6 +2976,15 @@ "input":{"shape":"ModifyLaunchTemplateRequest"}, "output":{"shape":"ModifyLaunchTemplateResult"} }, + "ModifyManagedPrefixList":{ + "name":"ModifyManagedPrefixList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyManagedPrefixListRequest"}, + "output":{"shape":"ModifyManagedPrefixListResult"} + }, "ModifyNetworkInterfaceAttribute":{ "name":"ModifyNetworkInterfaceAttribute", "http":{ @@ -3403,6 +3457,15 @@ "input":{"shape":"RestoreAddressToClassicRequest"}, "output":{"shape":"RestoreAddressToClassicResult"} }, + "RestoreManagedPrefixListVersion":{ + "name":"RestoreManagedPrefixListVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreManagedPrefixListVersionRequest"}, + "output":{"shape":"RestoreManagedPrefixListVersionResult"} + }, "RevokeClientVpnIngress":{ "name":"RevokeClientVpnIngress", "http":{ @@ -3772,6 +3835,20 @@ "fulfilled" ] }, + "AddPrefixListEntries":{ + "type":"list", + "member":{"shape":"AddPrefixListEntry"}, + "max":1000, + "min":0 + }, + "AddPrefixListEntry":{ + "type":"structure", + "required":["Cidr"], + "members":{ + "Cidr":{"shape":"String"}, + "Description":{"shape":"String"} + } + }, "Address":{ "type":"structure", "members":{ @@ -6940,6 +7017,41 @@ } } }, + "CreateManagedPrefixListRequest":{ + "type":"structure", + "required":[ + "PrefixListName", + "MaxEntries", + "AddressFamily" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListName":{"shape":"String"}, + "Entries":{ + "shape":"AddPrefixListEntries", + "locationName":"Entry" + }, + "MaxEntries":{"shape":"Integer"}, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "locationName":"TagSpecification" + }, + "AddressFamily":{"shape":"String"}, + "ClientToken":{ + "shape":"String", + "idempotencyToken":true + } + } + }, + "CreateManagedPrefixListResult":{ + "type":"structure", + "members":{ + "PrefixList":{ + "shape":"ManagedPrefixList", + "locationName":"prefixList" + } + } + }, "CreateNatGatewayRequest":{ "type":"structure", "required":[ @@ -7202,6 +7314,7 @@ "shape":"String", "locationName":"destinationIpv6CidrBlock" }, + "DestinationPrefixListId":{"shape":"PrefixListResourceId"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -8460,6 +8573,23 @@ } } }, + "DeleteManagedPrefixListRequest":{ + "type":"structure", + "required":["PrefixListId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListId":{"shape":"PrefixListResourceId"} + } + }, + "DeleteManagedPrefixListResult":{ + "type":"structure", + "members":{ + "PrefixList":{ + "shape":"ManagedPrefixList", + "locationName":"prefixList" + } + } + }, "DeleteNatGatewayRequest":{ "type":"structure", "required":["NatGatewayId"], @@ -8629,6 +8759,7 @@ "shape":"String", "locationName":"destinationIpv6CidrBlock" }, + "DestinationPrefixListId":{"shape":"PrefixListResourceId"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -10887,6 +11018,35 @@ } } }, + "DescribeManagedPrefixListsRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"PrefixListMaxResults"}, + "NextToken":{"shape":"NextToken"}, + "PrefixListIds":{ + "shape":"ValueStringList", + "locationName":"PrefixListId" + } + } + }, + "DescribeManagedPrefixListsResult":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "locationName":"nextToken" + }, + "PrefixLists":{ + "shape":"ManagedPrefixListSet", + "locationName":"prefixListSet" + } + } + }, "DescribeMovingAddressesMaxResults":{ "type":"integer", "max":1000, @@ -15320,6 +15480,58 @@ } } }, + "GetManagedPrefixListAssociationsMaxResults":{ + "type":"integer", + "max":255, + "min":5 + }, + "GetManagedPrefixListAssociationsRequest":{ + "type":"structure", + "required":["PrefixListId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListId":{"shape":"PrefixListResourceId"}, + "MaxResults":{"shape":"GetManagedPrefixListAssociationsMaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "GetManagedPrefixListAssociationsResult":{ + "type":"structure", + "members":{ + "PrefixListAssociations":{ + "shape":"PrefixListAssociationSet", + "locationName":"prefixListAssociationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "GetManagedPrefixListEntriesRequest":{ + "type":"structure", + "required":["PrefixListId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListId":{"shape":"PrefixListResourceId"}, + "TargetVersion":{"shape":"Long"}, + "MaxResults":{"shape":"PrefixListMaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "GetManagedPrefixListEntriesResult":{ + "type":"structure", + "members":{ + "Entries":{ + "shape":"PrefixListEntrySet", + "locationName":"entrySet" + }, + "NextToken":{ + "shape":"NextToken", + "locationName":"nextToken" + } + } + }, "GetPasswordDataRequest":{ "type":"structure", "required":["InstanceId"], @@ -19928,6 +20140,58 @@ ] }, "Long":{"type":"long"}, + "ManagedPrefixList":{ + "type":"structure", + "members":{ + "PrefixListId":{ + "shape":"PrefixListResourceId", + "locationName":"prefixListId" + }, + "AddressFamily":{ + "shape":"String", + "locationName":"addressFamily" + }, + "State":{ + "shape":"PrefixListState", + "locationName":"state" + }, + "StateMessage":{ + "shape":"String", + "locationName":"stateMessage" + }, + "PrefixListArn":{ + "shape":"ResourceArn", + "locationName":"prefixListArn" + }, + "PrefixListName":{ + "shape":"String", + "locationName":"prefixListName" + }, + "MaxEntries":{ + "shape":"Integer", + "locationName":"maxEntries" + }, + "Version":{ + "shape":"Long", + "locationName":"version" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + } + } + }, + "ManagedPrefixListSet":{ + "type":"list", + "member":{ + "shape":"ManagedPrefixList", + "locationName":"item" + } + }, "MarketType":{ "type":"string", "enum":["spot"] @@ -20434,6 +20698,33 @@ } } }, + "ModifyManagedPrefixListRequest":{ + "type":"structure", + "required":["PrefixListId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListId":{"shape":"PrefixListResourceId"}, + "CurrentVersion":{"shape":"Long"}, + "PrefixListName":{"shape":"String"}, + "AddEntries":{ + "shape":"AddPrefixListEntries", + "locationName":"AddEntry" + }, + "RemoveEntries":{ + "shape":"RemovePrefixListEntries", + "locationName":"RemoveEntry" + } + } + }, + "ModifyManagedPrefixListResult":{ + "type":"structure", + "members":{ + "PrefixList":{ + "shape":"ManagedPrefixList", + "locationName":"prefixList" + } + } + }, "ModifyNetworkInterfaceAttributeRequest":{ "type":"structure", "required":["NetworkInterfaceId"], @@ -22195,6 +22486,46 @@ } } }, + "PrefixListAssociation":{ + "type":"structure", + "members":{ + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "ResourceOwner":{ + "shape":"String", + "locationName":"resourceOwner" + } + } + }, + "PrefixListAssociationSet":{ + "type":"list", + "member":{ + "shape":"PrefixListAssociation", + "locationName":"item" + } + }, + "PrefixListEntry":{ + "type":"structure", + "members":{ + "Cidr":{ + "shape":"String", + "locationName":"cidr" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "PrefixListEntrySet":{ + "type":"list", + "member":{ + "shape":"PrefixListEntry", + "locationName":"item" + } + }, "PrefixListId":{ "type":"structure", "members":{ @@ -22222,6 +22553,11 @@ "locationName":"item" } }, + "PrefixListMaxResults":{ + "type":"integer", + "max":1000, + "min":1 + }, "PrefixListResourceId":{"type":"string"}, "PrefixListResourceIdStringList":{ "type":"list", @@ -22237,6 +22573,23 @@ "locationName":"item" } }, + "PrefixListState":{ + "type":"string", + "enum":[ + "create-in-progress", + "create-complete", + "create-failed", + "modify-in-progress", + "modify-complete", + "modify-failed", + "restore-in-progress", + "restore-complete", + "restore-failed", + "delete-in-progress", + "delete-complete", + "delete-failed" + ] + }, "PriceSchedule":{ "type":"structure", "members":{ @@ -23088,6 +23441,19 @@ } } }, + "RemovePrefixListEntries":{ + "type":"list", + "member":{"shape":"RemovePrefixListEntry"}, + "max":1000, + "min":0 + }, + "RemovePrefixListEntry":{ + "type":"structure", + "required":["Cidr"], + "members":{ + "Cidr":{"shape":"String"} + } + }, "ReplaceIamInstanceProfileAssociationRequest":{ "type":"structure", "required":[ @@ -23202,6 +23568,7 @@ "shape":"String", "locationName":"destinationIpv6CidrBlock" }, + "DestinationPrefixListId":{"shape":"PrefixListResourceId"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -24157,6 +24524,11 @@ } } }, + "ResourceArn":{ + "type":"string", + "max":1283, + "min":1 + }, "ResourceIdList":{ "type":"list", "member":{"shape":"TaggableResourceId"} @@ -24383,6 +24755,29 @@ } } }, + "RestoreManagedPrefixListVersionRequest":{ + "type":"structure", + "required":[ + "PrefixListId", + "PreviousVersion", + "CurrentVersion" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListId":{"shape":"PrefixListResourceId"}, + "PreviousVersion":{"shape":"Long"}, + "CurrentVersion":{"shape":"Long"} + } + }, + "RestoreManagedPrefixListVersionResult":{ + "type":"structure", + "members":{ + "PrefixList":{ + "shape":"ManagedPrefixList", + "locationName":"prefixList" + } + } + }, "RevokeClientVpnIngressRequest":{ "type":"structure", "required":[ diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index c5548900ba..63ce1edeef 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -62,6 +62,7 @@ "CreateLaunchTemplateVersion": "

Creates a new version for a launch template. You can specify an existing version of launch template from which to base the new version.

Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions.

For more information, see Managing launch template versionsin the Amazon Elastic Compute Cloud User Guide.

", "CreateLocalGatewayRoute": "

Creates a static route for the specified local gateway route table.

", "CreateLocalGatewayRouteTableVpcAssociation": "

Associates the specified VPC with the specified local gateway route table.

", + "CreateManagedPrefixList": "

Creates a managed prefix list. You can specify one or more entries for the prefix list. Each entry consists of a CIDR block and an optional description.

You must specify the maximum number of entries for the prefix list. The maximum number of entries cannot be changed later.

", "CreateNatGateway": "

Creates a NAT gateway in the specified public subnet. This action creates a network interface in the specified subnet with a private IP address from the IP address range of the subnet. Internet-bound traffic from a private subnet can be routed to the NAT gateway, therefore enabling instances in the private subnet to connect to the internet. For more information, see NAT Gateways in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkAcl": "

Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.

For more information, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkAclEntry": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", @@ -75,7 +76,7 @@ "CreateSnapshot": "

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

You can tag your snapshots during creation. For more information, see Tagging Your Amazon EC2 Resources in the Amazon Elastic Compute Cloud User Guide.

For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "CreateSnapshots": "

Creates crash-consistent snapshots of multiple EBS volumes and stores the data in S3. Volumes are chosen by specifying an instance. Any attached volumes will produce one snapshot each that is crash-consistent across the instance. Boot volumes can be excluded by changing the parameters.

", "CreateSpotDatafeedSubscription": "

Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon EC2 User Guide for Linux Instances.

", - "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and IPv4 CIDR block for the subnet. After you create a subnet, you can't change its CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "CreateSubnet": "

Creates a subnet in a specified VPC.

You must specify an IPv4 CIDR block for the subnet. After you create a subnet, you can't change its CIDR block. The allowed block size is between a /16 netmask (65,536 IP addresses) and /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR block of an existing subnet in the VPC.

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

When you stop an instance in a subnet, it retains its private IPv4 address. It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", "CreateTags": "

Adds or overwrites only the specified tags for the specified Amazon EC2 resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide.

", "CreateTrafficMirrorFilter": "

Creates a Traffic Mirror filter.

A Traffic Mirror filter is a set of rules that defines the traffic to mirror.

By default, no traffic is mirrored. To mirror traffic, use CreateTrafficMirrorFilterRule to add Traffic Mirror rules to the filter. The rules you add define what traffic gets mirrored. You can also use ModifyTrafficMirrorFilterNetworkServices to mirror supported network services.

", "CreateTrafficMirrorFilterRule": "

Creates a Traffic Mirror filter rule.

A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror.

You need the Traffic Mirror filter ID when you create the rule.

", @@ -110,6 +111,7 @@ "DeleteLaunchTemplateVersions": "

Deletes one or more versions of a launch template. You cannot delete the default version of a launch template; you must first assign a different version as the default. If the default version is the only version for the launch template, you must delete the entire launch template using DeleteLaunchTemplate.

", "DeleteLocalGatewayRoute": "

Deletes the specified route from the specified local gateway route table.

", "DeleteLocalGatewayRouteTableVpcAssociation": "

Deletes the specified association between a VPC and local gateway route table.

", + "DeleteManagedPrefixList": "

Deletes the specified managed prefix list. You must first remove all references to the prefix list in your resources.

", "DeleteNatGateway": "

Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.

", "DeleteNetworkAcl": "

Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

", "DeleteNetworkAclEntry": "

Deletes the specified ingress or egress entry (rule) from the specified network ACL.

", @@ -204,6 +206,7 @@ "DescribeLocalGatewayVirtualInterfaceGroups": "

Describes the specified local gateway virtual interface groups.

", "DescribeLocalGatewayVirtualInterfaces": "

Describes the specified local gateway virtual interfaces.

", "DescribeLocalGateways": "

Describes one or more local gateways. By default, all local gateways are described. Alternatively, you can filter the results.

", + "DescribeManagedPrefixLists": "

Describes your managed prefix lists and any AWS-managed prefix lists.

To view the entries for your prefix list, use GetManagedPrefixListEntries.

", "DescribeMovingAddresses": "

Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.

", "DescribeNatGateways": "

Describes one or more of your NAT gateways.

", "DescribeNetworkAcls": "

Describes one or more of your network ACLs.

For more information, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", @@ -211,7 +214,7 @@ "DescribeNetworkInterfacePermissions": "

Describes the permissions for your network interfaces.

", "DescribeNetworkInterfaces": "

Describes one or more of your network interfaces.

", "DescribePlacementGroups": "

Describes the specified placement groups or all of your placement groups. For more information, see Placement groups in the Amazon Elastic Compute Cloud User Guide.

", - "DescribePrefixLists": "

Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a gateway VPC endpoint. Currently, the services that support this action are Amazon S3 and Amazon DynamoDB.

", + "DescribePrefixLists": "

Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service.

We recommend that you use DescribeManagedPrefixLists instead.

", "DescribePrincipalIdFormat": "

Describes the ID format settings for the root user and all IAM roles and IAM users that have explicitly specified a longer ID (17-character ID) preference.

By default, all IAM roles and IAM users default to the same ID settings as the root user, unless they explicitly override the settings. This request is useful for identifying those IAM users and IAM roles that have overridden the default ID settings.

The following resource types support longer IDs: bundle | conversion-task | customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image | import-task | instance | internet-gateway | network-acl | network-acl-association | network-interface | network-interface-attachment | prefix-list | reservation | route-table | route-table-association | security-group | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway.

", "DescribePublicIpv4Pools": "

Describes the specified IPv4 address pools.

", "DescribeRegions": "

Describes the Regions that are enabled for your account, or all Regions.

For a list of the Regions supported by Amazon EC2, see Regions and Endpoints.

For information about enabling and disabling Regions for your account, see Managing AWS Regions in the AWS General Reference.

", @@ -301,6 +304,8 @@ "GetEbsEncryptionByDefault": "

Describes whether EBS encryption by default is enabled for your account in the current Region.

For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "GetHostReservationPurchasePreview": "

Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation.

This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased.

", "GetLaunchTemplateData": "

Retrieves the configuration data of the specified instance. You can use this data to create a launch template.

", + "GetManagedPrefixListAssociations": "

Gets information about the resources that are associated with the specified managed prefix list.

", + "GetManagedPrefixListEntries": "

Gets information about the entries for a specified managed prefix list.

", "GetPasswordData": "

Retrieves the encrypted administrator password for a running Windows instance.

The Windows password is generated at boot by the EC2Config service or EC2Launch scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see EC2Config and EC2Launch in the Amazon Elastic Compute Cloud User Guide.

For the EC2Config service, the password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

When you launch an instance, password generation and encryption may take a few minutes. If you try to retrieve the password before it's available, the output returns an empty string. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", "GetReservedInstancesExchangeQuote": "

Returns a quote and exchange information for exchanging one or more specified Convertible Reserved Instances for a new Convertible Reserved Instance. If the exchange cannot be performed, the reason is returned in the response. Use AcceptReservedInstancesExchangeQuote to perform the exchange.

", "GetTransitGatewayAttachmentPropagations": "

Lists the route tables to which the specified resource attachment propagates routes.

", @@ -331,6 +336,7 @@ "ModifyInstanceMetadataOptions": "

Modify the instance metadata parameters on a running or stopped instance. When you modify the parameters on a stopped instance, they are applied when the instance is started. When you modify the parameters on a running instance, the API responds with a state of “pending”. After the parameter modifications are successfully applied to the instance, the state of the modifications changes from “pending” to “applied” in subsequent describe-instances API calls. For more information, see Instance metadata and user data.

", "ModifyInstancePlacement": "

Modifies the placement attributes for a specified instance. You can do the following:

At least one attribute for affinity, host ID, tenancy, or placement group name must be specified in the request. Affinity and tenancy can be modified in the same request.

To modify the host ID, tenancy, placement group, or partition for an instance, the instance must be in the stopped state.

", "ModifyLaunchTemplate": "

Modifies a launch template. You can specify which version of the launch template to set as the default version. When launching an instance, the default version applies when a launch template version is not specified.

", + "ModifyManagedPrefixList": "

Modifies the specified managed prefix list.

Adding or removing entries in a prefix list creates a new version of the prefix list. Changing the name of the prefix list does not affect the version.

If you specify a current version number that does not match the true current version number, the request fails.

", "ModifyNetworkInterfaceAttribute": "

Modifies the specified network interface attribute. You can specify only one attribute at a time. You can use this action to attach and detach security groups from an existing EC2 instance.

", "ModifyReservedInstances": "

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", "ModifySnapshotAttribute": "

Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single operation. If you need to both add and remove account IDs for a snapshot, you must use multiple operations. You can make up to 500 modifications to a snapshot in a single operation.

Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted with your default CMK cannot be shared with other accounts.

For more information about modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

", @@ -385,6 +391,7 @@ "ResetNetworkInterfaceAttribute": "

Resets a network interface attribute. You can specify only one attribute at a time.

", "ResetSnapshotAttribute": "

Resets permission settings for the specified snapshot.

For more information about modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

", "RestoreAddressToClassic": "

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

", + "RestoreManagedPrefixListVersion": "

Restores the entries from a previous version of a managed prefix list to a new version of the prefix list.

", "RevokeClientVpnIngress": "

Removes an ingress authorization rule from a Client VPN endpoint.

", "RevokeSecurityGroupEgress": "

[VPC only] Removes the specified egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", "RevokeSecurityGroupIngress": "

Removes the specified ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[EC2-Classic only] If the values you specify do not match the existing rule's values, no error is returned. Use DescribeSecurityGroups to verify that the rule has been removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", @@ -512,6 +519,19 @@ "SpotFleetRequestConfig$ActivityStatus": "

The progress of the Spot Fleet request. If there is an error, the status is error. After all requests are placed, the status is pending_fulfillment. If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled. If the size of the fleet is decreased, the status is pending_termination while Spot Instances are terminating.

" } }, + "AddPrefixListEntries": { + "base": null, + "refs": { + "CreateManagedPrefixListRequest$Entries": "

One or more entries for the prefix list.

", + "ModifyManagedPrefixListRequest$AddEntries": "

One or more entries to add to the prefix list.

" + } + }, + "AddPrefixListEntry": { + "base": "

An entry for a prefix list.

", + "refs": { + "AddPrefixListEntries$member": null + } + }, "Address": { "base": "

Describes an Elastic IP address.

", "refs": { @@ -1153,6 +1173,7 @@ "CreateLaunchTemplateVersionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CreateLocalGatewayRouteRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CreateLocalGatewayRouteTableVpcAssociationRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateManagedPrefixListRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CreateNatGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CreateNetworkAclEntryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CreateNetworkAclEntryRequest$Egress": "

Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).

", @@ -1210,6 +1231,7 @@ "DeleteLaunchTemplateVersionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteLocalGatewayRouteRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteLocalGatewayRouteTableVpcAssociationRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteManagedPrefixListRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteNatGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteNetworkAclEntryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DeleteNetworkAclEntryRequest$Egress": "

Indicates whether the rule is an egress rule.

", @@ -1304,6 +1326,7 @@ "DescribeLocalGatewayVirtualInterfaceGroupsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeLocalGatewayVirtualInterfacesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeLocalGatewaysRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeManagedPrefixListsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeMovingAddressesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeNatGatewaysRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeNetworkAclsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -1413,6 +1436,8 @@ "GetEbsEncryptionByDefaultRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "GetEbsEncryptionByDefaultResult$EbsEncryptionByDefault": "

Indicates whether encryption by default is enabled.

", "GetLaunchTemplateDataRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "GetManagedPrefixListAssociationsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "GetManagedPrefixListEntriesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "GetPasswordDataRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "GetReservedInstancesExchangeQuoteRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "GetReservedInstancesExchangeQuoteResult$IsValidExchange": "

If true, the exchange is valid. If false, the exchange cannot be completed.

", @@ -1485,6 +1510,7 @@ "ModifyInstanceMetadataOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifyInstancePlacementResult$Return": "

Is true if the request succeeds, and an error otherwise.

", "ModifyLaunchTemplateRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifyManagedPrefixListRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifyNetworkInterfaceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifySnapshotAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifySpotFleetRequestResponse$Return": "

Is true if the request succeeds, and an error otherwise.

", @@ -1575,6 +1601,7 @@ "ResponseLaunchTemplateData$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O.

", "ResponseLaunchTemplateData$DisableApiTermination": "

If set to true, indicates that the instance cannot be terminated using the Amazon EC2 console, command line tool, or API.

", "RestoreAddressToClassicRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RestoreManagedPrefixListVersionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "RevokeClientVpnIngressRequest$RevokeAllGroups": "

Indicates whether access should be revoked for all clients.

", "RevokeClientVpnIngressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "RevokeSecurityGroupEgressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -2612,6 +2639,16 @@ "refs": { } }, + "CreateManagedPrefixListRequest": { + "base": null, + "refs": { + } + }, + "CreateManagedPrefixListResult": { + "base": null, + "refs": { + } + }, "CreateNatGatewayRequest": { "base": null, "refs": { @@ -3356,6 +3393,16 @@ "refs": { } }, + "DeleteManagedPrefixListRequest": { + "base": null, + "refs": { + } + }, + "DeleteManagedPrefixListResult": { + "base": null, + "refs": { + } + }, "DeleteNatGatewayRequest": { "base": null, "refs": { @@ -4381,6 +4428,16 @@ "refs": { } }, + "DescribeManagedPrefixListsRequest": { + "base": null, + "refs": { + } + }, + "DescribeManagedPrefixListsResult": { + "base": null, + "refs": { + } + }, "DescribeMovingAddressesMaxResults": { "base": null, "refs": { @@ -6047,11 +6104,12 @@ "DescribeLocalGatewayVirtualInterfaceGroupsRequest$Filters": "

One or more filters.

", "DescribeLocalGatewayVirtualInterfacesRequest$Filters": "

One or more filters.

", "DescribeLocalGatewaysRequest$Filters": "

One or more filters.

", + "DescribeManagedPrefixListsRequest$Filters": "

One or more filters.

", "DescribeMovingAddressesRequest$Filters": "

One or more filters.

", "DescribeNatGatewaysRequest$Filter": "

One or more filters.

", "DescribeNetworkAclsRequest$Filters": "

One or more filters.

", "DescribeNetworkInterfacePermissionsRequest$Filters": "

One or more filters.

", - "DescribeNetworkInterfacesRequest$Filters": "

One or more filters.

", + "DescribeNetworkInterfacesRequest$Filters": "

One or more filters.

", "DescribePlacementGroupsRequest$Filters": "

The filters.

", "DescribePrefixListsRequest$Filters": "

One or more filters.

", "DescribePublicIpv4PoolsRequest$Filters": "

One or more filters.

", @@ -6063,7 +6121,7 @@ "DescribeRouteTablesRequest$Filters": "

One or more filters.

", "DescribeScheduledInstanceAvailabilityRequest$Filters": "

The filters.

", "DescribeScheduledInstancesRequest$Filters": "

The filters.

", - "DescribeSecurityGroupsRequest$Filters": "

The filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

", + "DescribeSecurityGroupsRequest$Filters": "

The filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

", "DescribeSnapshotsRequest$Filters": "

The filters.

", "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

", "DescribeSpotPriceHistoryRequest$Filters": "

One or more filters.

", @@ -6521,6 +6579,32 @@ "refs": { } }, + "GetManagedPrefixListAssociationsMaxResults": { + "base": null, + "refs": { + "GetManagedPrefixListAssociationsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "GetManagedPrefixListAssociationsRequest": { + "base": null, + "refs": { + } + }, + "GetManagedPrefixListAssociationsResult": { + "base": null, + "refs": { + } + }, + "GetManagedPrefixListEntriesRequest": { + "base": null, + "refs": { + } + }, + "GetManagedPrefixListEntriesResult": { + "base": null, + "refs": { + } + }, "GetPasswordDataRequest": { "base": null, "refs": { @@ -7728,6 +7812,7 @@ "CreateClientVpnEndpointRequest$VpnPort": "

The port number to assign to the Client VPN endpoint for TCP and UDP traffic.

Valid Values: 443 | 1194

Default Value: 443

", "CreateCustomerGatewayRequest$BgpAsn": "

For devices that support BGP, the customer gateway's BGP ASN.

Default: 65000

", "CreateFlowLogsRequest$MaxAggregationInterval": "

The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. You can specify 60 seconds (1 minute) or 600 seconds (10 minutes).

When a network interface is attached to a Nitro-based instance, the aggregation interval is always 60 seconds or less, regardless of the value that you specify.

Default: 600

", + "CreateManagedPrefixListRequest$MaxEntries": "

The maximum number of entries for the prefix list.

", "CreateNetworkAclEntryRequest$RuleNumber": "

The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.

Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.

", "CreateNetworkInterfaceRequest$Ipv6AddressCount": "

The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses. If your subnet has the AssignIpv6AddressOnCreation attribute set to true, you can specify 0 to override this setting.

", "CreateNetworkInterfaceRequest$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using privateIpAddresses.

The number of IP addresses you can assign to a network interface varies by instance type. For more information, see IP Addresses Per ENI Per Instance Type in the Amazon Virtual Private Cloud User Guide.

", @@ -7826,6 +7911,7 @@ "LocalGatewayVirtualInterface$Vlan": "

The ID of the VLAN.

", "LocalGatewayVirtualInterface$LocalBgpAsn": "

The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.

", "LocalGatewayVirtualInterface$PeerBgpAsn": "

The peer BGP ASN.

", + "ManagedPrefixList$MaxEntries": "

The maximum number of entries for the prefix list.

", "ModifyCapacityReservationRequest$InstanceCount": "

The number of instances for which to reserve capacity.

", "ModifyClientVpnEndpointRequest$VpnPort": "

The port number to assign to the Client VPN endpoint for TCP and UDP traffic.

Valid Values: 443 | 1194

Default Value: 443

", "ModifyInstanceMetadataOptionsRequest$HttpPutResponseHopLimit": "

The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. If no parameter is specified, the existing state is maintained.

Possible values: Integers from 1 to 64

", @@ -8933,15 +9019,20 @@ "DiskImageDescription$Size": "

The size of the disk image, in GiB.

", "DiskImageDetail$Bytes": "

The size of the disk image, in GiB.

", "DiskImageVolumeDescription$Size": "

The size of the volume, in GiB.

", + "GetManagedPrefixListEntriesRequest$TargetVersion": "

The version of the prefix list for which to return the entries. The default is the current version.

", "ImportInstanceVolumeDetailItem$BytesConverted": "

The number of bytes converted so far.

", "ImportVolumeTaskDetails$BytesConverted": "

The number of bytes converted so far.

", "LaunchTemplate$DefaultVersionNumber": "

The version number of the default version of the launch template.

", "LaunchTemplate$LatestVersionNumber": "

The version number of the latest version of the launch template.

", "LaunchTemplateVersion$VersionNumber": "

The version number.

", + "ManagedPrefixList$Version": "

The version of the prefix list.

", + "ModifyManagedPrefixListRequest$CurrentVersion": "

The current version of the prefix list.

", "PriceSchedule$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", "PriceScheduleSpecification$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", "ReservedInstances$Duration": "

The duration of the Reserved Instance, in seconds.

", "ReservedInstancesOffering$Duration": "

The duration of the Reserved Instance, in seconds.

", + "RestoreManagedPrefixListVersionRequest$PreviousVersion": "

The version to restore.

", + "RestoreManagedPrefixListVersionRequest$CurrentVersion": "

The current version number for the prefix list.

", "TransitGatewayOptions$AmazonSideAsn": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.

", "TransitGatewayRequestOptions$AmazonSideAsn": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.

", "VolumeDetail$Size": "

The size of the volume, in GiB.

", @@ -8949,6 +9040,22 @@ "VpnGateway$AmazonSideAsn": "

The private Autonomous System Number (ASN) for the Amazon side of a BGP session.

" } }, + "ManagedPrefixList": { + "base": "

Describes a managed prefix list.

", + "refs": { + "CreateManagedPrefixListResult$PrefixList": "

Information about the prefix list.

", + "DeleteManagedPrefixListResult$PrefixList": "

Information about the prefix list.

", + "ManagedPrefixListSet$member": null, + "ModifyManagedPrefixListResult$PrefixList": "

Information about the prefix list.

", + "RestoreManagedPrefixListVersionResult$PrefixList": "

Information about the prefix list.

" + } + }, + "ManagedPrefixListSet": { + "base": null, + "refs": { + "DescribeManagedPrefixListsResult$PrefixLists": "

Information about the prefix lists.

" + } + }, "MarketType": { "base": null, "refs": { @@ -9211,6 +9318,16 @@ "refs": { } }, + "ModifyManagedPrefixListRequest": { + "base": null, + "refs": { + } + }, + "ModifyManagedPrefixListResult": { + "base": null, + "refs": { + } + }, "ModifyNetworkInterfaceAttributeRequest": { "base": "

Contains the parameters for ModifyNetworkInterfaceAttribute.

", "refs": { @@ -9782,11 +9899,16 @@ "DescribeInstanceTypesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeIpv6PoolsRequest$NextToken": "

The token for the next page of results.

", "DescribeIpv6PoolsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeManagedPrefixListsRequest$NextToken": "

The token for the next page of results.

", + "DescribeManagedPrefixListsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribePublicIpv4PoolsRequest$NextToken": "

The token for the next page of results.

", "DescribeTrafficMirrorFiltersRequest$NextToken": "

The token for the next page of results.

", "DescribeTrafficMirrorSessionsRequest$NextToken": "

The token for the next page of results.

", "DescribeTrafficMirrorTargetsRequest$NextToken": "

The token for the next page of results.

", - "GetAssociatedIpv6PoolCidrsRequest$NextToken": "

The token for the next page of results.

" + "GetAssociatedIpv6PoolCidrsRequest$NextToken": "

The token for the next page of results.

", + "GetManagedPrefixListAssociationsRequest$NextToken": "

The token for the next page of results.

", + "GetManagedPrefixListEntriesRequest$NextToken": "

The token for the next page of results.

", + "GetManagedPrefixListEntriesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

" } }, "OccurrenceDayRequestSet": { @@ -10191,6 +10313,30 @@ "PrefixListSet$member": null } }, + "PrefixListAssociation": { + "base": "

Describes the resource with which a prefix list is associated.

", + "refs": { + "PrefixListAssociationSet$member": null + } + }, + "PrefixListAssociationSet": { + "base": null, + "refs": { + "GetManagedPrefixListAssociationsResult$PrefixListAssociations": "

Information about the associations.

" + } + }, + "PrefixListEntry": { + "base": "

Describes a prefix list entry.

", + "refs": { + "PrefixListEntrySet$member": null + } + }, + "PrefixListEntrySet": { + "base": null, + "refs": { + "GetManagedPrefixListEntriesResult$Entries": "

Information about the prefix list entries.

" + } + }, "PrefixListId": { "base": "

Describes a prefix list ID.

", "refs": { @@ -10200,19 +10346,35 @@ "PrefixListIdList": { "base": null, "refs": { - "IpPermission$PrefixListIds": "

[VPC only] The prefix list IDs for an AWS service. With outbound rules, this is the AWS service to access through a VPC endpoint from instances associated with the security group.

" + "IpPermission$PrefixListIds": "

[VPC only] The prefix list IDs.

" } }, "PrefixListIdSet": { "base": null, "refs": { - "StaleIpPermission$PrefixListIds": "

The prefix list IDs for an AWS service. Not applicable for stale security group rules.

" + "StaleIpPermission$PrefixListIds": "

The prefix list IDs. Not applicable for stale security group rules.

" + } + }, + "PrefixListMaxResults": { + "base": null, + "refs": { + "DescribeManagedPrefixListsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "GetManagedPrefixListEntriesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" } }, "PrefixListResourceId": { "base": null, "refs": { - "PrefixListResourceIdStringList$member": null + "CreateRouteRequest$DestinationPrefixListId": "

The ID of a prefix list used for the destination match.

", + "DeleteManagedPrefixListRequest$PrefixListId": "

The ID of the prefix list.

", + "DeleteRouteRequest$DestinationPrefixListId": "

The ID of the prefix list for the route.

", + "GetManagedPrefixListAssociationsRequest$PrefixListId": "

The ID of the prefix list.

", + "GetManagedPrefixListEntriesRequest$PrefixListId": "

The ID of the prefix list.

", + "ManagedPrefixList$PrefixListId": "

The ID of the prefix list.

", + "ModifyManagedPrefixListRequest$PrefixListId": "

The ID of the prefix list.

", + "PrefixListResourceIdStringList$member": null, + "ReplaceRouteRequest$DestinationPrefixListId": "

The ID of the prefix list for the route.

", + "RestoreManagedPrefixListVersionRequest$PrefixListId": "

The ID of the prefix list.

" } }, "PrefixListResourceIdStringList": { @@ -10227,6 +10389,12 @@ "DescribePrefixListsResult$PrefixLists": "

All available prefix lists.

" } }, + "PrefixListState": { + "base": null, + "refs": { + "ManagedPrefixList$State": "

The state of the prefix list.

" + } + }, "PriceSchedule": { "base": "

Describes the price for a Reserved Instance.

", "refs": { @@ -10659,6 +10827,18 @@ "refs": { } }, + "RemovePrefixListEntries": { + "base": null, + "refs": { + "ModifyManagedPrefixListRequest$RemoveEntries": "

One or more entries to remove from the prefix list.

" + } + }, + "RemovePrefixListEntry": { + "base": "

An entry for a prefix list.

", + "refs": { + "RemovePrefixListEntries$member": null + } + }, "ReplaceIamInstanceProfileAssociationRequest": { "base": null, "refs": { @@ -11039,6 +11219,12 @@ "refs": { } }, + "ResourceArn": { + "base": null, + "refs": { + "ManagedPrefixList$PrefixListArn": "

The Amazon Resource Name (ARN) for the prefix list.

" + } + }, "ResourceIdList": { "base": null, "refs": { @@ -11059,7 +11245,7 @@ "LaunchTemplateTagSpecificationRequest$ResourceType": "

The type of resource to tag. Currently, the resource types that support tagging on creation are instance and volume. To tag a resource after it has been created, see CreateTags.

", "SpotFleetTagSpecification$ResourceType": "

The type of resource. Currently, the only resource type that is supported is instance. To tag the Spot Fleet request on creation, use the TagSpecifications parameter in SpotFleetRequestConfigData .

", "TagDescription$ResourceType": "

The resource type.

", - "TagSpecification$ResourceType": "

The type of resource to tag. Currently, the resource types that support tagging on creation are: capacity-reservation | client-vpn-endpoint | dedicated-host | fleet | fpga-image | host-reservation | instance | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | natgateway | spot-fleet-request | placement-group | snapshot | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-route-table | vpc-endpoint (for interface and gateway endpoints) | vpc-endpoint-service (for AWS PrivateLink) | volume | vpc-flow-log.

To tag a resource after it has been created, see CreateTags.

" + "TagSpecification$ResourceType": "

The type of resource to tag. Currently, the resource types that support tagging on creation are: capacity-reservation | client-vpn-endpoint | dedicated-host | fleet | fpga-image | host-reservation | instance | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | natgateway | spot-fleet-request | placement-group | prefix-list | snapshot | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-route-table | vpc-endpoint (for interface and gateway endpoints) | vpc-endpoint-service (for AWS PrivateLink) | volume | vpc-flow-log.

To tag a resource after it has been created, see CreateTags.

" } }, "ResponseError": { @@ -11106,6 +11292,16 @@ "refs": { } }, + "RestoreManagedPrefixListVersionRequest": { + "base": null, + "refs": { + } + }, + "RestoreManagedPrefixListVersionResult": { + "base": null, + "refs": { + } + }, "RevokeClientVpnIngressRequest": { "base": null, "refs": { @@ -11969,6 +12165,8 @@ "ActiveInstance$InstanceId": "

The ID of the instance.

", "ActiveInstance$InstanceType": "

The instance type.

", "ActiveInstance$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "AddPrefixListEntry$Cidr": "

The CIDR block.

", + "AddPrefixListEntry$Description": "

A description for the entry.

Constraints: Up to 255 characters in length.

", "Address$InstanceId": "

The ID of the instance that the address is associated with (if any).

", "Address$PublicIp": "

The Elastic IP address.

", "Address$AllocationId": "

The ID representing the allocation of the address for use with EC2-VPC.

", @@ -12183,9 +12381,12 @@ "CreateLaunchTemplateVersionRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraint: Maximum 128 ASCII characters.

", "CreateLaunchTemplateVersionRequest$SourceVersion": "

The version number of the launch template version on which to base the new version. The new version inherits the same launch parameters as the source version, except for parameters that you specify in LaunchTemplateData. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included.

", "CreateLocalGatewayRouteRequest$DestinationCidrBlock": "

The CIDR range used for destination matches. Routing decisions are based on the most specific match.

", + "CreateManagedPrefixListRequest$PrefixListName": "

A name for the prefix list.

Constraints: Up to 255 characters in length. The name cannot start with com.amazonaws.

", + "CreateManagedPrefixListRequest$AddressFamily": "

The IP address type.

Valid Values: IPv4 | IPv6

", + "CreateManagedPrefixListRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraints: Up to 255 UTF-8 characters in length.

", "CreateNatGatewayRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

Constraint: Maximum 64 ASCII characters.

", "CreateNatGatewayResult$ClientToken": "

Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.

", - "CreateNetworkAclEntryRequest$CidrBlock": "

The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).

", + "CreateNetworkAclEntryRequest$CidrBlock": "

The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24). We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", "CreateNetworkAclEntryRequest$Ipv6CidrBlock": "

The IPv6 network range to allow or deny, in CIDR notation (for example 2001:db8:1234:1a00::/64).

", "CreateNetworkAclEntryRequest$Protocol": "

The protocol number. A value of \"-1\" means all protocols. If you specify \"-1\" or a protocol number other than \"6\" (TCP), \"17\" (UDP), or \"1\" (ICMP), traffic on all ports is allowed, regardless of any ports or ICMP types or codes that you specify. If you specify protocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless of any that you specify. If you specify protocol \"58\" (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code.

", "CreateNetworkInterfacePermissionRequest$AwsAccountId": "

The AWS account ID.

", @@ -12194,7 +12395,7 @@ "CreateNetworkInterfaceRequest$PrivateIpAddress": "

The primary private IPv4 address of the network interface. If you don't specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you specify an IP address, you cannot indicate any IP addresses specified in privateIpAddresses as primary (only one IP address can be designated as primary).

", "CreatePlacementGroupRequest$GroupName": "

A name for the placement group. Must be unique within the scope of your account for the Region.

Constraints: Up to 255 ASCII characters

", "CreateReservedInstancesListingRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

", - "CreateRouteRequest$DestinationCidrBlock": "

The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match.

", + "CreateRouteRequest$DestinationCidrBlock": "

The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", "CreateRouteRequest$DestinationIpv6CidrBlock": "

The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.

", "CreateSecurityGroupRequest$Description": "

A description for the security group. This is informational only.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", "CreateSecurityGroupRequest$GroupName": "

The name of the security group.

Constraints: Up to 255 characters in length. Cannot start with sg-.

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", @@ -12205,7 +12406,7 @@ "CreateSpotDatafeedSubscriptionRequest$Prefix": "

A prefix for the data feed file names.

", "CreateSubnetRequest$AvailabilityZone": "

The Availability Zone or Local Zone for the subnet.

Default: AWS selects one for you. If you create more than one subnet in your VPC, we do not necessarily select a different zone for each subnet.

To create a subnet in a Local Zone, set this value to the Local Zone ID, for example us-west-2-lax-1a. For information about the Regions that support Local Zones, see Available Regions in the Amazon Elastic Compute Cloud User Guide.

To create a subnet in an Outpost, set this value to the Availability Zone for the Outpost and specify the Outpost ARN.

", "CreateSubnetRequest$AvailabilityZoneId": "

The AZ ID or the Local Zone ID of the subnet.

", - "CreateSubnetRequest$CidrBlock": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.

", + "CreateSubnetRequest$CidrBlock": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", "CreateSubnetRequest$Ipv6CidrBlock": "

The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length.

", "CreateSubnetRequest$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost. If you specify an Outpost ARN, you must also specify the Availability Zone of the Outpost subnet.

", "CreateTrafficMirrorFilterRequest$Description": "

The description of the Traffic Mirror filter.

", @@ -12243,7 +12444,7 @@ "CreateVpcPeeringConnectionRequest$PeerOwnerId": "

The AWS account ID of the owner of the accepter VPC.

Default: Your AWS account ID

", "CreateVpcPeeringConnectionRequest$PeerVpcId": "

The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.

", "CreateVpcPeeringConnectionRequest$PeerRegion": "

The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request.

Default: The Region in which you make the request.

", - "CreateVpcRequest$CidrBlock": "

The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16.

", + "CreateVpcRequest$CidrBlock": "

The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.

", "CreateVpcRequest$Ipv6CidrBlock": "

The IPv6 CIDR block from the IPv6 address pool. You must also specify Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR block for you, omit this parameter.

", "CreateVpcRequest$Ipv6CidrBlockNetworkBorderGroup": "

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

", "CreateVpnConnectionRequest$Type": "

The type of VPN connection (ipsec.1).

", @@ -12569,6 +12770,7 @@ "GetEbsDefaultKmsKeyIdResult$KmsKeyId": "

The Amazon Resource Name (ARN) of the default CMK for encryption by default.

", "GetHostReservationPurchasePreviewResult$TotalHourlyPrice": "

The potential total hourly price of the reservation per hour.

", "GetHostReservationPurchasePreviewResult$TotalUpfrontPrice": "

The potential total upfront price. This is billed immediately.

", + "GetManagedPrefixListAssociationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "GetPasswordDataResult$InstanceId": "

The ID of the Windows instance.

", "GetPasswordDataResult$PasswordData": "

The password of the instance. Returns an empty string if the password is not available.

", "GetReservedInstancesExchangeQuoteResult$CurrencyCode": "

The currency of the transaction.

", @@ -12839,6 +13041,10 @@ "LocalGatewayVirtualInterface$LocalAddress": "

The local address.

", "LocalGatewayVirtualInterface$PeerAddress": "

The peer address.

", "LocalGatewayVirtualInterfaceGroup$LocalGatewayId": "

The ID of the local gateway.

", + "ManagedPrefixList$AddressFamily": "

The IP address version.

", + "ManagedPrefixList$StateMessage": "

The state message.

", + "ManagedPrefixList$PrefixListName": "

The name of the prefix list.

", + "ManagedPrefixList$OwnerId": "

The ID of the owner of the prefix list.

", "ModifyAvailabilityZoneGroupRequest$GroupName": "

The name of the Availability Zone Group.

", "ModifyClientVpnEndpointRequest$ServerCertificateArn": "

The ARN of the server certificate to be used. The server certificate must be provisioned in AWS Certificate Manager (ACM).

", "ModifyClientVpnEndpointRequest$Description": "

A brief description of the Client VPN endpoint.

", @@ -12860,6 +13066,7 @@ "ModifyInstancePlacementRequest$HostResourceGroupArn": "

The ARN of the host resource group in which to place the instance.

", "ModifyLaunchTemplateRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraint: Maximum 128 ASCII characters.

", "ModifyLaunchTemplateRequest$DefaultVersion": "

The version number of the launch template to set as the default version.

", + "ModifyManagedPrefixListRequest$PrefixListName": "

A name for the prefix list.

", "ModifyReservedInstancesRequest$ClientToken": "

A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", "ModifyReservedInstancesResult$ReservedInstancesModificationId": "

The ID for the modification.

", "ModifyTrafficMirrorFilterRuleRequest$DestinationCidrBlock": "

The destination CIDR block to assign to the Traffic Mirror rule.

", @@ -12954,6 +13161,10 @@ "PoolCidrBlock$Cidr": "

The CIDR block.

", "PrefixList$PrefixListId": "

The ID of the prefix.

", "PrefixList$PrefixListName": "

The name of the prefix.

", + "PrefixListAssociation$ResourceId": "

The ID of the resource.

", + "PrefixListAssociation$ResourceOwner": "

The owner of the resource.

", + "PrefixListEntry$Cidr": "

The CIDR block.

", + "PrefixListEntry$Description": "

The description.

", "PrefixListId$Description": "

A description for the security group rule that references this prefix list ID.

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*

", "PrefixListId$PrefixListId": "

The ID of the prefix.

", "PrefixListIdSet$member": null, @@ -13005,6 +13216,7 @@ "RegisterTransitGatewayMulticastGroupSourcesRequest$GroupIpAddress": "

The IP address assigned to the transit gateway multicast group.

", "ReleaseAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", "ReleaseAddressRequest$NetworkBorderGroup": "

The location that the IP address is released from.

If you provide an incorrect network border group, you will receive an InvalidAddress.NotFound error. For more information, see Error Codes.

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

", + "RemovePrefixListEntry$Cidr": "

The CIDR block.

", "ReplaceNetworkAclAssociationResult$NewAssociationId": "

The ID of the new association.

", "ReplaceNetworkAclEntryRequest$CidrBlock": "

The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).

", "ReplaceNetworkAclEntryRequest$Ipv6CidrBlock": "

The IPv6 network range to allow or deny, in CIDR notation (for example 2001:bd8:1234:1a00::/64).

", @@ -13606,6 +13818,7 @@ "LocalGatewayRouteTableVpcAssociation$Tags": "

The tags assigned to the association.

", "LocalGatewayVirtualInterface$Tags": "

The tags assigned to the virtual interface.

", "LocalGatewayVirtualInterfaceGroup$Tags": "

The tags assigned to the virtual interface group.

", + "ManagedPrefixList$Tags": "

The tags for the prefix list.

", "NatGateway$Tags": "

The tags for the NAT gateway.

", "NetworkAcl$Tags": "

Any tags assigned to the network ACL.

", "NetworkInterface$TagSet": "

Any tags assigned to the network interface.

", @@ -13662,6 +13875,7 @@ "CreateKeyPairRequest$TagSpecifications": "

The tags to apply to the new key pair.

", "CreateLaunchTemplateRequest$TagSpecifications": "

The tags to apply to the launch template during creation.

", "CreateLocalGatewayRouteTableVpcAssociationRequest$TagSpecifications": "

The tags to assign to the local gateway route table VPC association.

", + "CreateManagedPrefixListRequest$TagSpecifications": "

The tags to apply to the prefix list during creation.

", "CreateNatGatewayRequest$TagSpecifications": "

The tags to assign to the NAT gateway.

", "CreatePlacementGroupRequest$TagSpecifications": "

The tags to apply to the new placement group.

", "CreateSnapshotRequest$TagSpecifications": "

The tags to apply to the snapshot during creation.

", @@ -14720,6 +14934,7 @@ "CreateVpcEndpointServiceConfigurationRequest$NetworkLoadBalancerArns": "

The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your service.

", "DeleteVpcEndpointConnectionNotificationsRequest$ConnectionNotificationIds": "

One or more notification IDs.

", "DescribeClientVpnTargetNetworksRequest$AssociationIds": "

The IDs of the target network associations.

", + "DescribeManagedPrefixListsRequest$PrefixListIds": "

One or more prefix list IDs.

", "DescribeMovingAddressesRequest$PublicIps": "

One or more Elastic IP addresses.

", "DescribeVpcEndpointServicesRequest$ServiceNames": "

One or more service names.

", "DescribeVpcEndpointServicesResult$ServiceNames": "

A list of supported services.

", diff --git a/models/apis/ec2/2016-11-15/paginators-1.json b/models/apis/ec2/2016-11-15/paginators-1.json index c6fa9c8329..0cb7eb79ee 100755 --- a/models/apis/ec2/2016-11-15/paginators-1.json +++ b/models/apis/ec2/2016-11-15/paginators-1.json @@ -249,6 +249,12 @@ "output_token": "NextToken", "result_key": "LocalGateways" }, + "DescribeManagedPrefixLists": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "PrefixLists" + }, "DescribeMovingAddresses": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -518,6 +524,18 @@ "output_token": "NextToken", "result_key": "Ipv6CidrAssociations" }, + "GetManagedPrefixListAssociations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "PrefixListAssociations" + }, + "GetManagedPrefixListEntries": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Entries" + }, "GetTransitGatewayAttachmentPropagations": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 4473c2856e..3c8039fd32 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -3555,6 +3555,7 @@ } }, "endpoints" : { + "ap-northeast-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, @@ -3874,9 +3875,11 @@ }, "outposts" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ca-central-1" : { }, @@ -3916,6 +3919,7 @@ "hostname" : "outposts-fips.us-west-2.amazonaws.com" }, "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-1" : { }, @@ -4343,6 +4347,7 @@ } }, "endpoints" : { + "ap-northeast-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, @@ -7032,6 +7037,16 @@ "us-gov-west-1" : { } } }, + "docdb" : { + "endpoints" : { + "us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "rds.us-gov-west-1.amazonaws.com" + } + } + }, "ds" : { "endpoints" : { "fips-us-gov-east-1" : { diff --git a/service/autoscaling/api.go b/service/autoscaling/api.go index 8b3546a612..4dad56eaa9 100644 --- a/service/autoscaling/api.go +++ b/service/autoscaling/api.go @@ -4243,7 +4243,8 @@ func (c *AutoScaling) ExecutePolicyRequest(input *ExecutePolicyInput) (req *requ // ExecutePolicy API operation for Auto Scaling. // -// Executes the specified policy. +// Executes the specified policy. This can be useful for testing the design +// of your scaling policy. // // 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 @@ -9693,9 +9694,7 @@ type Ebs struct { // The snapshot ID of the volume to use. // - // SnapshotId is optional if you specify a volume size. If you specify both - // SnapshotId and VolumeSize, the volume size must be equal or greater than - // the size of the snapshot. + // You must specify either a VolumeSize or a SnapshotId. SnapshotId *string `min:"1" type:"string"` // The volume size, in Gibibytes (GiB). @@ -9707,7 +9706,9 @@ type Ebs struct { // Default: If you create a volume from a snapshot and you don't specify a volume // size, the default is the snapshot size. // - // At least one of VolumeSize or SnapshotId is required. + // You must specify either a VolumeSize or a SnapshotId. If you specify both + // SnapshotId and VolumeSize, the volume size must be equal or greater than + // the size of the snapshot. VolumeSize *int64 `min:"1" type:"integer"` // The volume type, which can be standard for Magnetic, io1 for Provisioned @@ -10061,9 +10062,8 @@ type ExecutePolicyInput struct { // Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to // complete before executing the policy. // - // This parameter is not supported if the policy type is StepScaling or TargetTrackingScaling. - // - // For more information, see Scaling Cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) + // Valid only if the policy type is SimpleScaling. For more information, see + // Scaling Cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) // in the Amazon EC2 Auto Scaling User Guide. HonorCooldown *bool `type:"boolean"` diff --git a/service/autoscaling/examples_test.go b/service/autoscaling/examples_test.go index b9410b8620..3aa2642dc8 100644 --- a/service/autoscaling/examples_test.go +++ b/service/autoscaling/examples_test.go @@ -127,6 +127,39 @@ func ExampleAutoScaling_AttachLoadBalancers_shared00() { fmt.Println(result) } +// To cancel an instance refresh +// +// This example cancels an instance refresh operation in progress. +func ExampleAutoScaling_CancelInstanceRefresh_shared00() { + svc := autoscaling.New(session.New()) + input := &autoscaling.CancelInstanceRefreshInput{ + AutoScalingGroupName: aws.String("my-auto-scaling-group"), + } + + result, err := svc.CancelInstanceRefresh(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case autoscaling.ErrCodeLimitExceededFault: + fmt.Println(autoscaling.ErrCodeLimitExceededFault, aerr.Error()) + case autoscaling.ErrCodeResourceContentionFault: + fmt.Println(autoscaling.ErrCodeResourceContentionFault, aerr.Error()) + case autoscaling.ErrCodeActiveInstanceRefreshNotFoundFault: + fmt.Println(autoscaling.ErrCodeActiveInstanceRefreshNotFoundFault, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To complete the lifecycle action // // This example notifies Auto Scaling that the specified lifecycle action is complete @@ -166,11 +199,15 @@ func ExampleAutoScaling_CompleteLifecycleAction_shared00() { func ExampleAutoScaling_CreateAutoScalingGroup_shared00() { svc := autoscaling.New(session.New()) input := &autoscaling.CreateAutoScalingGroupInput{ - AutoScalingGroupName: aws.String("my-auto-scaling-group"), - LaunchConfigurationName: aws.String("my-launch-config"), - MaxSize: aws.Int64(3), - MinSize: aws.Int64(1), - VPCZoneIdentifier: aws.String("subnet-4176792c"), + AutoScalingGroupName: aws.String("my-auto-scaling-group"), + LaunchTemplate: &autoscaling.LaunchTemplateSpecification{ + LaunchTemplateId: aws.String("lt-0a20c965061f64abc"), + Version: aws.String("$Latest"), + }, + MaxInstanceLifetime: aws.Int64(2592000), + MaxSize: aws.Int64(3), + MinSize: aws.Int64(1), + VPCZoneIdentifier: aws.String("subnet-057fa0918fEXAMPLE"), } result, err := svc.CreateAutoScalingGroup(input) @@ -199,25 +236,22 @@ func ExampleAutoScaling_CreateAutoScalingGroup_shared00() { fmt.Println(result) } -// To create an Auto Scaling group with an attached load balancer +// To create an Auto Scaling group with an attached target group // -// This example creates an Auto Scaling group and attaches the specified Classic Load -// Balancer. +// This example creates an Auto Scaling group and attaches the specified target group. func ExampleAutoScaling_CreateAutoScalingGroup_shared01() { svc := autoscaling.New(session.New()) input := &autoscaling.CreateAutoScalingGroupInput{ - AutoScalingGroupName: aws.String("my-auto-scaling-group"), - AvailabilityZones: []*string{ - aws.String("us-west-2c"), - }, + AutoScalingGroupName: aws.String("my-auto-scaling-group"), HealthCheckGracePeriod: aws.Int64(120), HealthCheckType: aws.String("ELB"), LaunchConfigurationName: aws.String("my-launch-config"), - LoadBalancerNames: []*string{ - aws.String("my-load-balancer"), + MaxSize: aws.Int64(3), + MinSize: aws.Int64(1), + TargetGroupARNs: []*string{ + aws.String("arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"), }, - MaxSize: aws.Int64(3), - MinSize: aws.Int64(1), + VPCZoneIdentifier: aws.String("subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE"), } result, err := svc.CreateAutoScalingGroup(input) @@ -246,22 +280,25 @@ func ExampleAutoScaling_CreateAutoScalingGroup_shared01() { fmt.Println(result) } -// To create an Auto Scaling group with an attached target group +// To create an Auto Scaling group with an attached load balancer // -// This example creates an Auto Scaling group and attaches the specified target group. +// This example creates an Auto Scaling group and attaches the specified Classic Load +// Balancer. func ExampleAutoScaling_CreateAutoScalingGroup_shared02() { svc := autoscaling.New(session.New()) input := &autoscaling.CreateAutoScalingGroupInput{ - AutoScalingGroupName: aws.String("my-auto-scaling-group"), + AutoScalingGroupName: aws.String("my-auto-scaling-group"), + AvailabilityZones: []*string{ + aws.String("us-west-2c"), + }, HealthCheckGracePeriod: aws.Int64(120), HealthCheckType: aws.String("ELB"), LaunchConfigurationName: aws.String("my-launch-config"), - MaxSize: aws.Int64(3), - MinSize: aws.Int64(1), - TargetGroupARNs: []*string{ - aws.String("arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"), + LoadBalancerNames: []*string{ + aws.String("my-load-balancer"), }, - VPCZoneIdentifier: aws.String("subnet-4176792c, subnet-65ea5f08"), + MaxSize: aws.Int64(3), + MinSize: aws.Int64(1), } result, err := svc.CreateAutoScalingGroup(input) @@ -544,7 +581,7 @@ func ExampleAutoScaling_DeletePolicy_shared00() { svc := autoscaling.New(session.New()) input := &autoscaling.DeletePolicyInput{ AutoScalingGroupName: aws.String("my-auto-scaling-group"), - PolicyName: aws.String("ScaleIn"), + PolicyName: aws.String("my-step-scale-out-policy"), } result, err := svc.DeletePolicy(input) @@ -665,7 +702,7 @@ func ExampleAutoScaling_DescribeAccountLimits_shared00() { fmt.Println(result) } -// To describe the Auto Scaling adjustment types +// To describe the Amazon EC2 Auto Scaling adjustment types // // This example describes the available adjustment types. func ExampleAutoScaling_DescribeAdjustmentTypes_shared00() { @@ -785,6 +822,37 @@ func ExampleAutoScaling_DescribeAutoScalingNotificationTypes_shared00() { fmt.Println(result) } +// To list instance refreshes +// +// This example describes the instance refreshes for the specified Auto Scaling group. +func ExampleAutoScaling_DescribeInstanceRefreshes_shared00() { + svc := autoscaling.New(session.New()) + input := &autoscaling.DescribeInstanceRefreshesInput{ + AutoScalingGroupName: aws.String("my-auto-scaling-group"), + } + + result, err := svc.DescribeInstanceRefreshes(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case autoscaling.ErrCodeInvalidNextToken: + fmt.Println(autoscaling.ErrCodeInvalidNextToken, aerr.Error()) + case autoscaling.ErrCodeResourceContentionFault: + fmt.Println(autoscaling.ErrCodeResourceContentionFault, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To describe Auto Scaling launch configurations // // This example describes the specified launch configuration. @@ -994,7 +1062,7 @@ func ExampleAutoScaling_DescribeNotificationConfigurations_shared00() { fmt.Println(result) } -// To describe Auto Scaling policies +// To describe scaling policies // // This example describes the policies for the specified Auto Scaling group. func ExampleAutoScaling_DescribePolicies_shared00() { @@ -1376,16 +1444,16 @@ func ExampleAutoScaling_EnterStandby_shared00() { fmt.Println(result) } -// To execute an Auto Scaling policy +// To execute a scaling policy // -// This example executes the specified Auto Scaling policy for the specified Auto Scaling -// group. +// This example executes the specified policy. func ExampleAutoScaling_ExecutePolicy_shared00() { svc := autoscaling.New(session.New()) input := &autoscaling.ExecutePolicyInput{ AutoScalingGroupName: aws.String("my-auto-scaling-group"), - HonorCooldown: aws.Bool(true), - PolicyName: aws.String("ScaleIn"), + BreachThreshold: aws.Float64(50.000000), + MetricValue: aws.Float64(59.000000), + PolicyName: aws.String("my-step-scale-out-policy"), } result, err := svc.ExecutePolicy(input) @@ -1520,10 +1588,16 @@ func ExampleAutoScaling_PutNotificationConfiguration_shared00() { func ExampleAutoScaling_PutScalingPolicy_shared00() { svc := autoscaling.New(session.New()) input := &autoscaling.PutScalingPolicyInput{ - AdjustmentType: aws.String("ChangeInCapacity"), AutoScalingGroupName: aws.String("my-auto-scaling-group"), - PolicyName: aws.String("ScaleIn"), - ScalingAdjustment: aws.Int64(-1), + PolicyName: aws.String("alb1000-target-tracking-scaling-policy"), + PolicyType: aws.String("TargetTrackingScaling"), + TargetTrackingConfiguration: &autoscaling.TargetTrackingConfiguration{ + PredefinedMetricSpecification: &autoscaling.PredefinedMetricSpecification{ + PredefinedMetricType: aws.String("ALBRequestCountPerTarget"), + ResourceLabel: aws.String("app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d"), + }, + TargetValue: aws.Float64(1000.000000), + }, } result, err := svc.PutScalingPolicy(input) @@ -1789,6 +1863,43 @@ func ExampleAutoScaling_SetInstanceProtection_shared01() { fmt.Println(result) } +// To start an instance refresh +// +// This example starts an instance refresh for the specified Auto Scaling group. +func ExampleAutoScaling_StartInstanceRefresh_shared00() { + svc := autoscaling.New(session.New()) + input := &autoscaling.StartInstanceRefreshInput{ + AutoScalingGroupName: aws.String("my-auto-scaling-group"), + Preferences: &autoscaling.RefreshPreferences{ + InstanceWarmup: aws.Int64(400), + MinHealthyPercentage: aws.Int64(50), + }, + } + + result, err := svc.StartInstanceRefresh(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case autoscaling.ErrCodeLimitExceededFault: + fmt.Println(autoscaling.ErrCodeLimitExceededFault, aerr.Error()) + case autoscaling.ErrCodeResourceContentionFault: + fmt.Println(autoscaling.ErrCodeResourceContentionFault, aerr.Error()) + case autoscaling.ErrCodeInstanceRefreshInProgressFault: + fmt.Println(autoscaling.ErrCodeInstanceRefreshInProgressFault, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To suspend Auto Scaling processes // // This example suspends the specified scaling process for the specified Auto Scaling diff --git a/service/codeguruprofiler/api.go b/service/codeguruprofiler/api.go index f4434298a4..24a6846fc3 100644 --- a/service/codeguruprofiler/api.go +++ b/service/codeguruprofiler/api.go @@ -13,6 +13,193 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opAddNotificationChannels = "AddNotificationChannels" + +// AddNotificationChannelsRequest generates a "aws/request.Request" representing the +// client's request for the AddNotificationChannels 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 AddNotificationChannels for more information on using the AddNotificationChannels +// 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 AddNotificationChannelsRequest method. +// req, resp := client.AddNotificationChannelsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/AddNotificationChannels +func (c *CodeGuruProfiler) AddNotificationChannelsRequest(input *AddNotificationChannelsInput) (req *request.Request, output *AddNotificationChannelsOutput) { + op := &request.Operation{ + Name: opAddNotificationChannels, + HTTPMethod: "POST", + HTTPPath: "/profilingGroups/{profilingGroupName}/notificationConfiguration", + } + + if input == nil { + input = &AddNotificationChannelsInput{} + } + + output = &AddNotificationChannelsOutput{} + req = c.newRequest(op, input, output) + return +} + +// AddNotificationChannels API operation for Amazon CodeGuru Profiler. +// +// Add up to 2 anomaly notifications channels for a profiling 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 Amazon CodeGuru Profiler's +// API operation AddNotificationChannels for usage and error information. +// +// Returned Error Types: +// * ServiceQuotaExceededException +// You have exceeded your service quota. To perform the requested action, remove +// some of the relevant resources, or use Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html) +// to request a service quota increase. +// +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/AddNotificationChannels +func (c *CodeGuruProfiler) AddNotificationChannels(input *AddNotificationChannelsInput) (*AddNotificationChannelsOutput, error) { + req, out := c.AddNotificationChannelsRequest(input) + return out, req.Send() +} + +// AddNotificationChannelsWithContext is the same as AddNotificationChannels with the addition of +// the ability to pass a context and additional request options. +// +// See AddNotificationChannels 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 *CodeGuruProfiler) AddNotificationChannelsWithContext(ctx aws.Context, input *AddNotificationChannelsInput, opts ...request.Option) (*AddNotificationChannelsOutput, error) { + req, out := c.AddNotificationChannelsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opBatchGetFrameMetricData = "BatchGetFrameMetricData" + +// BatchGetFrameMetricDataRequest generates a "aws/request.Request" representing the +// client's request for the BatchGetFrameMetricData 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 BatchGetFrameMetricData for more information on using the BatchGetFrameMetricData +// 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 BatchGetFrameMetricDataRequest method. +// req, resp := client.BatchGetFrameMetricDataRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData +func (c *CodeGuruProfiler) BatchGetFrameMetricDataRequest(input *BatchGetFrameMetricDataInput) (req *request.Request, output *BatchGetFrameMetricDataOutput) { + op := &request.Operation{ + Name: opBatchGetFrameMetricData, + HTTPMethod: "POST", + HTTPPath: "/profilingGroups/{profilingGroupName}/frames/-/metrics", + } + + if input == nil { + input = &BatchGetFrameMetricDataInput{} + } + + output = &BatchGetFrameMetricDataOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchGetFrameMetricData API operation for Amazon CodeGuru Profiler. +// +// Returns the time series of values for a requested list of frame metrics from +// a time period. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CodeGuru Profiler's +// API operation BatchGetFrameMetricData for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData +func (c *CodeGuruProfiler) BatchGetFrameMetricData(input *BatchGetFrameMetricDataInput) (*BatchGetFrameMetricDataOutput, error) { + req, out := c.BatchGetFrameMetricDataRequest(input) + return out, req.Send() +} + +// BatchGetFrameMetricDataWithContext is the same as BatchGetFrameMetricData with the addition of +// the ability to pass a context and additional request options. +// +// See BatchGetFrameMetricData 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 *CodeGuruProfiler) BatchGetFrameMetricDataWithContext(ctx aws.Context, input *BatchGetFrameMetricDataInput, opts ...request.Option) (*BatchGetFrameMetricDataOutput, error) { + req, out := c.BatchGetFrameMetricDataRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opConfigureAgent = "ConfigureAgent" // ConfigureAgentRequest generates a "aws/request.Request" representing the @@ -57,6 +244,10 @@ func (c *CodeGuruProfiler) ConfigureAgentRequest(input *ConfigureAgentInput) (re // ConfigureAgent API operation for Amazon CodeGuru Profiler. // +// Used by profiler agents to report their current state and to receive remote +// configuration updates. For example, ConfigureAgent can be used to tell and +// agent whether to profile or not and for how long to return profiling 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. @@ -327,7 +518,8 @@ func (c *CodeGuruProfiler) DescribeProfilingGroupRequest(input *DescribeProfilin // DescribeProfilingGroup API operation for Amazon CodeGuru Profiler. // -// Describes a profiling group. +// Returns a ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) +// object that contains information about the requested profiling 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 @@ -371,154 +563,203 @@ func (c *CodeGuruProfiler) DescribeProfilingGroupWithContext(ctx aws.Context, in return out, req.Send() } -const opGetPolicy = "GetPolicy" +const opGetFindingsReportAccountSummary = "GetFindingsReportAccountSummary" -// GetPolicyRequest generates a "aws/request.Request" representing the -// client's request for the GetPolicy operation. The "output" return +// GetFindingsReportAccountSummaryRequest generates a "aws/request.Request" representing the +// client's request for the GetFindingsReportAccountSummary 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 GetPolicy for more information on using the GetPolicy +// See GetFindingsReportAccountSummary for more information on using the GetFindingsReportAccountSummary // 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 GetPolicyRequest method. -// req, resp := client.GetPolicyRequest(params) +// // Example sending a request using the GetFindingsReportAccountSummaryRequest method. +// req, resp := client.GetFindingsReportAccountSummaryRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy -func (c *CodeGuruProfiler) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary +func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryRequest(input *GetFindingsReportAccountSummaryInput) (req *request.Request, output *GetFindingsReportAccountSummaryOutput) { op := &request.Operation{ - Name: opGetPolicy, + Name: opGetFindingsReportAccountSummary, HTTPMethod: "GET", - HTTPPath: "/profilingGroups/{profilingGroupName}/policy", + HTTPPath: "/internal/findingsReports", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &GetPolicyInput{} + input = &GetFindingsReportAccountSummaryInput{} } - output = &GetPolicyOutput{} + output = &GetFindingsReportAccountSummaryOutput{} req = c.newRequest(op, input, output) return } -// GetPolicy API operation for Amazon CodeGuru Profiler. +// GetFindingsReportAccountSummary API operation for Amazon CodeGuru Profiler. // -// Gets the profiling group policy. +// Returns a list of FindingsReportSummary (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html) +// objects that contain analysis results for all profiling groups in your AWS +// account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon CodeGuru Profiler's -// API operation GetPolicy for usage and error information. +// API operation GetFindingsReportAccountSummary for usage and error information. // // Returned Error Types: // * InternalServerException // The server encountered an internal error and is unable to complete the request. // +// * ValidationException +// The parameter is not valid. +// // * ThrottlingException // The request was denied due to request throttling. // -// * ResourceNotFoundException -// The resource specified in the request does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy -func (c *CodeGuruProfiler) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) { - req, out := c.GetPolicyRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary +func (c *CodeGuruProfiler) GetFindingsReportAccountSummary(input *GetFindingsReportAccountSummaryInput) (*GetFindingsReportAccountSummaryOutput, error) { + req, out := c.GetFindingsReportAccountSummaryRequest(input) return out, req.Send() } -// GetPolicyWithContext is the same as GetPolicy with the addition of +// GetFindingsReportAccountSummaryWithContext is the same as GetFindingsReportAccountSummary with the addition of // the ability to pass a context and additional request options. // -// See GetPolicy for details on how to use this API operation. +// See GetFindingsReportAccountSummary 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 *CodeGuruProfiler) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) { - req, out := c.GetPolicyRequest(input) +func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryWithContext(ctx aws.Context, input *GetFindingsReportAccountSummaryInput, opts ...request.Option) (*GetFindingsReportAccountSummaryOutput, error) { + req, out := c.GetFindingsReportAccountSummaryRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetProfile = "GetProfile" +// GetFindingsReportAccountSummaryPages iterates over the pages of a GetFindingsReportAccountSummary operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetFindingsReportAccountSummary 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 GetFindingsReportAccountSummary operation. +// pageNum := 0 +// err := client.GetFindingsReportAccountSummaryPages(params, +// func(page *codeguruprofiler.GetFindingsReportAccountSummaryOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryPages(input *GetFindingsReportAccountSummaryInput, fn func(*GetFindingsReportAccountSummaryOutput, bool) bool) error { + return c.GetFindingsReportAccountSummaryPagesWithContext(aws.BackgroundContext(), input, fn) +} -// GetProfileRequest generates a "aws/request.Request" representing the -// client's request for the GetProfile operation. The "output" return +// GetFindingsReportAccountSummaryPagesWithContext same as GetFindingsReportAccountSummaryPages 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 *CodeGuruProfiler) GetFindingsReportAccountSummaryPagesWithContext(ctx aws.Context, input *GetFindingsReportAccountSummaryInput, fn func(*GetFindingsReportAccountSummaryOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetFindingsReportAccountSummaryInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetFindingsReportAccountSummaryRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetFindingsReportAccountSummaryOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opGetNotificationConfiguration = "GetNotificationConfiguration" + +// GetNotificationConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetNotificationConfiguration 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 GetProfile for more information on using the GetProfile +// See GetNotificationConfiguration for more information on using the GetNotificationConfiguration // 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 GetProfileRequest method. -// req, resp := client.GetProfileRequest(params) +// // Example sending a request using the GetNotificationConfigurationRequest method. +// req, resp := client.GetNotificationConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile -func (c *CodeGuruProfiler) GetProfileRequest(input *GetProfileInput) (req *request.Request, output *GetProfileOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration +func (c *CodeGuruProfiler) GetNotificationConfigurationRequest(input *GetNotificationConfigurationInput) (req *request.Request, output *GetNotificationConfigurationOutput) { op := &request.Operation{ - Name: opGetProfile, + Name: opGetNotificationConfiguration, HTTPMethod: "GET", - HTTPPath: "/profilingGroups/{profilingGroupName}/profile", + HTTPPath: "/profilingGroups/{profilingGroupName}/notificationConfiguration", } if input == nil { - input = &GetProfileInput{} + input = &GetNotificationConfigurationInput{} } - output = &GetProfileOutput{} + output = &GetNotificationConfigurationOutput{} req = c.newRequest(op, input, output) return } -// GetProfile API operation for Amazon CodeGuru Profiler. -// -// Gets the aggregated profile of a profiling group for the specified time range. -// If the requested time range does not align with the available aggregated -// profiles, it is expanded to attain alignment. If aggregated profiles are -// available only for part of the period requested, the profile is returned -// from the earliest available to the latest within the requested time range. +// GetNotificationConfiguration API operation for Amazon CodeGuru Profiler. // -// For example, if the requested time range is from 00:00 to 00:20 and the available -// profiles are from 00:15 to 00:25, the returned profile will be from 00:15 -// to 00:20. -// -// You must specify exactly two of the following parameters: startTime, period, -// and endTime. +// Get the current configuration for anomaly notifications for a profiling 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 Amazon CodeGuru Profiler's -// API operation GetProfile for usage and error information. +// API operation GetNotificationConfiguration for usage and error information. // // Returned Error Types: // * InternalServerException @@ -533,366 +774,291 @@ func (c *CodeGuruProfiler) GetProfileRequest(input *GetProfileInput) (req *reque // * ResourceNotFoundException // The resource specified in the request does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile -func (c *CodeGuruProfiler) GetProfile(input *GetProfileInput) (*GetProfileOutput, error) { - req, out := c.GetProfileRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration +func (c *CodeGuruProfiler) GetNotificationConfiguration(input *GetNotificationConfigurationInput) (*GetNotificationConfigurationOutput, error) { + req, out := c.GetNotificationConfigurationRequest(input) return out, req.Send() } -// GetProfileWithContext is the same as GetProfile with the addition of +// GetNotificationConfigurationWithContext is the same as GetNotificationConfiguration with the addition of // the ability to pass a context and additional request options. // -// See GetProfile for details on how to use this API operation. +// See GetNotificationConfiguration 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 *CodeGuruProfiler) GetProfileWithContext(ctx aws.Context, input *GetProfileInput, opts ...request.Option) (*GetProfileOutput, error) { - req, out := c.GetProfileRequest(input) +func (c *CodeGuruProfiler) GetNotificationConfigurationWithContext(ctx aws.Context, input *GetNotificationConfigurationInput, opts ...request.Option) (*GetNotificationConfigurationOutput, error) { + req, out := c.GetNotificationConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListProfileTimes = "ListProfileTimes" +const opGetPolicy = "GetPolicy" -// ListProfileTimesRequest generates a "aws/request.Request" representing the -// client's request for the ListProfileTimes operation. The "output" return +// GetPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetPolicy 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 ListProfileTimes for more information on using the ListProfileTimes +// See GetPolicy for more information on using the GetPolicy // 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 ListProfileTimesRequest method. -// req, resp := client.ListProfileTimesRequest(params) +// // Example sending a request using the GetPolicyRequest method. +// req, resp := client.GetPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes -func (c *CodeGuruProfiler) ListProfileTimesRequest(input *ListProfileTimesInput) (req *request.Request, output *ListProfileTimesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy +func (c *CodeGuruProfiler) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) { op := &request.Operation{ - Name: opListProfileTimes, + Name: opGetPolicy, HTTPMethod: "GET", - HTTPPath: "/profilingGroups/{profilingGroupName}/profileTimes", - Paginator: &request.Paginator{ - InputTokens: []string{"nextToken"}, - OutputTokens: []string{"nextToken"}, - LimitToken: "maxResults", - TruncationToken: "", - }, + HTTPPath: "/profilingGroups/{profilingGroupName}/policy", } if input == nil { - input = &ListProfileTimesInput{} + input = &GetPolicyInput{} } - output = &ListProfileTimesOutput{} + output = &GetPolicyOutput{} req = c.newRequest(op, input, output) return } -// ListProfileTimes API operation for Amazon CodeGuru Profiler. +// GetPolicy API operation for Amazon CodeGuru Profiler. // -// List the start times of the available aggregated profiles of a profiling -// group for an aggregation period within the specified time range. +// Returns the JSON-formatted resource-based policy on a profiling 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 Amazon CodeGuru Profiler's -// API operation ListProfileTimes for usage and error information. +// API operation GetPolicy for usage and error information. // // Returned Error Types: // * InternalServerException // The server encountered an internal error and is unable to complete the request. // -// * ValidationException -// The parameter is not valid. -// // * ThrottlingException // The request was denied due to request throttling. // // * ResourceNotFoundException // The resource specified in the request does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes -func (c *CodeGuruProfiler) ListProfileTimes(input *ListProfileTimesInput) (*ListProfileTimesOutput, error) { - req, out := c.ListProfileTimesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy +func (c *CodeGuruProfiler) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) { + req, out := c.GetPolicyRequest(input) return out, req.Send() } -// ListProfileTimesWithContext is the same as ListProfileTimes with the addition of +// GetPolicyWithContext is the same as GetPolicy with the addition of // the ability to pass a context and additional request options. // -// See ListProfileTimes for details on how to use this API operation. +// See GetPolicy 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 *CodeGuruProfiler) ListProfileTimesWithContext(ctx aws.Context, input *ListProfileTimesInput, opts ...request.Option) (*ListProfileTimesOutput, error) { - req, out := c.ListProfileTimesRequest(input) +func (c *CodeGuruProfiler) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) { + req, out := c.GetPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListProfileTimesPages iterates over the pages of a ListProfileTimes operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListProfileTimes 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 ListProfileTimes operation. -// pageNum := 0 -// err := client.ListProfileTimesPages(params, -// func(page *codeguruprofiler.ListProfileTimesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *CodeGuruProfiler) ListProfileTimesPages(input *ListProfileTimesInput, fn func(*ListProfileTimesOutput, bool) bool) error { - return c.ListProfileTimesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListProfileTimesPagesWithContext same as ListProfileTimesPages 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 *CodeGuruProfiler) ListProfileTimesPagesWithContext(ctx aws.Context, input *ListProfileTimesInput, fn func(*ListProfileTimesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListProfileTimesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListProfileTimesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListProfileTimesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListProfilingGroups = "ListProfilingGroups" +const opGetProfile = "GetProfile" -// ListProfilingGroupsRequest generates a "aws/request.Request" representing the -// client's request for the ListProfilingGroups operation. The "output" return +// GetProfileRequest generates a "aws/request.Request" representing the +// client's request for the GetProfile 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 ListProfilingGroups for more information on using the ListProfilingGroups +// See GetProfile for more information on using the GetProfile // 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 ListProfilingGroupsRequest method. -// req, resp := client.ListProfilingGroupsRequest(params) +// // Example sending a request using the GetProfileRequest method. +// req, resp := client.GetProfileRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups -func (c *CodeGuruProfiler) ListProfilingGroupsRequest(input *ListProfilingGroupsInput) (req *request.Request, output *ListProfilingGroupsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile +func (c *CodeGuruProfiler) GetProfileRequest(input *GetProfileInput) (req *request.Request, output *GetProfileOutput) { op := &request.Operation{ - Name: opListProfilingGroups, + Name: opGetProfile, HTTPMethod: "GET", - HTTPPath: "/profilingGroups", - Paginator: &request.Paginator{ - InputTokens: []string{"nextToken"}, - OutputTokens: []string{"nextToken"}, - LimitToken: "maxResults", - TruncationToken: "", - }, + HTTPPath: "/profilingGroups/{profilingGroupName}/profile", } if input == nil { - input = &ListProfilingGroupsInput{} + input = &GetProfileInput{} } - output = &ListProfilingGroupsOutput{} + output = &GetProfileOutput{} req = c.newRequest(op, input, output) return } -// ListProfilingGroups API operation for Amazon CodeGuru Profiler. +// GetProfile API operation for Amazon CodeGuru Profiler. // -// Lists profiling groups. +// Gets the aggregated profile of a profiling group for a specified time range. +// Amazon CodeGuru Profiler collects posted agent profiles for a profiling group +// into aggregated profiles. +// +//

Because aggregated profiles expire over time GetProfile +// is not idempotent.

Specify the time range for the requested +// aggregated profile using 1 or 2 of the following parameters: startTime, +// endTime, period. The maximum time range allowed +// is 7 days. If you specify all 3 parameters, an exception is thrown. If +// you specify only period, the latest aggregated profile is +// returned.

Aggregated profiles are available with aggregation +// periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation +// period of an aggregated profile determines how long it is retained. For +// more information, see +// AggregatedProfileTime . The aggregated profile's aggregation +// period determines how long it is retained by CodeGuru Profiler.

There are two use cases for +// calling GetProfile.

  1. If you want to return +// an aggregated profile that already exists, use +// ListProfileTimes to view the time ranges of existing +// aggregated profiles. Use them in a GetProfile request to +// return a specific, existing aggregated profile.

  2. If +// you want to return an aggregated profile for a time range that doesn't +// align with an existing aggregated profile, then CodeGuru Profiler makes +// a best effort to combine existing aggregated profiles from the requested +// time range and return them as one aggregated profile.

    If aggregated +// profiles do not exist for the full time range requested, then aggregated +// profiles for a smaller time range are returned. For example, if the requested +// time range is from 00:00 to 00:20, and the existing aggregated profiles +// are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 +// are returned.

// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon CodeGuru Profiler's -// API operation ListProfilingGroups for usage and error information. +// API operation GetProfile for usage and error information. // // Returned Error Types: // * InternalServerException // The server encountered an internal error and is unable to complete the request. // +// * ValidationException +// The parameter is not valid. +// // * ThrottlingException // The request was denied due to request throttling. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups -func (c *CodeGuruProfiler) ListProfilingGroups(input *ListProfilingGroupsInput) (*ListProfilingGroupsOutput, error) { - req, out := c.ListProfilingGroupsRequest(input) +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile +func (c *CodeGuruProfiler) GetProfile(input *GetProfileInput) (*GetProfileOutput, error) { + req, out := c.GetProfileRequest(input) return out, req.Send() } -// ListProfilingGroupsWithContext is the same as ListProfilingGroups with the addition of +// GetProfileWithContext is the same as GetProfile with the addition of // the ability to pass a context and additional request options. // -// See ListProfilingGroups for details on how to use this API operation. +// See GetProfile 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 *CodeGuruProfiler) ListProfilingGroupsWithContext(ctx aws.Context, input *ListProfilingGroupsInput, opts ...request.Option) (*ListProfilingGroupsOutput, error) { - req, out := c.ListProfilingGroupsRequest(input) +func (c *CodeGuruProfiler) GetProfileWithContext(ctx aws.Context, input *GetProfileInput, opts ...request.Option) (*GetProfileOutput, error) { + req, out := c.GetProfileRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListProfilingGroupsPages iterates over the pages of a ListProfilingGroups operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListProfilingGroups 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 ListProfilingGroups operation. -// pageNum := 0 -// err := client.ListProfilingGroupsPages(params, -// func(page *codeguruprofiler.ListProfilingGroupsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *CodeGuruProfiler) ListProfilingGroupsPages(input *ListProfilingGroupsInput, fn func(*ListProfilingGroupsOutput, bool) bool) error { - return c.ListProfilingGroupsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListProfilingGroupsPagesWithContext same as ListProfilingGroupsPages 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 *CodeGuruProfiler) ListProfilingGroupsPagesWithContext(ctx aws.Context, input *ListProfilingGroupsInput, fn func(*ListProfilingGroupsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListProfilingGroupsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListProfilingGroupsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListProfilingGroupsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opPostAgentProfile = "PostAgentProfile" +const opGetRecommendations = "GetRecommendations" -// PostAgentProfileRequest generates a "aws/request.Request" representing the -// client's request for the PostAgentProfile operation. The "output" return +// GetRecommendationsRequest generates a "aws/request.Request" representing the +// client's request for the GetRecommendations 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 PostAgentProfile for more information on using the PostAgentProfile +// See GetRecommendations for more information on using the GetRecommendations // 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 PostAgentProfileRequest method. -// req, resp := client.PostAgentProfileRequest(params) +// // Example sending a request using the GetRecommendationsRequest method. +// req, resp := client.GetRecommendationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile -func (c *CodeGuruProfiler) PostAgentProfileRequest(input *PostAgentProfileInput) (req *request.Request, output *PostAgentProfileOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations +func (c *CodeGuruProfiler) GetRecommendationsRequest(input *GetRecommendationsInput) (req *request.Request, output *GetRecommendationsOutput) { op := &request.Operation{ - Name: opPostAgentProfile, - HTTPMethod: "POST", - HTTPPath: "/profilingGroups/{profilingGroupName}/agentProfile", + Name: opGetRecommendations, + HTTPMethod: "GET", + HTTPPath: "/internal/profilingGroups/{profilingGroupName}/recommendations", } if input == nil { - input = &PostAgentProfileInput{} + input = &GetRecommendationsInput{} } - output = &PostAgentProfileOutput{} + output = &GetRecommendationsOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// PostAgentProfile API operation for Amazon CodeGuru Profiler. +// GetRecommendations API operation for Amazon CodeGuru Profiler. +// +// Returns a list of Recommendation (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html) +// objects that contain recommendations for a profiling group for a given time +// period. A list of Anomaly (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html) +// objects that contains details about anomalies detected in the profiling group +// for the same time period is also returned. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon CodeGuru Profiler's -// API operation PostAgentProfile for usage and error information. +// API operation GetRecommendations for usage and error information. // // Returned Error Types: // * InternalServerException @@ -907,91 +1073,91 @@ func (c *CodeGuruProfiler) PostAgentProfileRequest(input *PostAgentProfileInput) // * ResourceNotFoundException // The resource specified in the request does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile -func (c *CodeGuruProfiler) PostAgentProfile(input *PostAgentProfileInput) (*PostAgentProfileOutput, error) { - req, out := c.PostAgentProfileRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations +func (c *CodeGuruProfiler) GetRecommendations(input *GetRecommendationsInput) (*GetRecommendationsOutput, error) { + req, out := c.GetRecommendationsRequest(input) return out, req.Send() } -// PostAgentProfileWithContext is the same as PostAgentProfile with the addition of +// GetRecommendationsWithContext is the same as GetRecommendations with the addition of // the ability to pass a context and additional request options. // -// See PostAgentProfile for details on how to use this API operation. +// See GetRecommendations 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 *CodeGuruProfiler) PostAgentProfileWithContext(ctx aws.Context, input *PostAgentProfileInput, opts ...request.Option) (*PostAgentProfileOutput, error) { - req, out := c.PostAgentProfileRequest(input) +func (c *CodeGuruProfiler) GetRecommendationsWithContext(ctx aws.Context, input *GetRecommendationsInput, opts ...request.Option) (*GetRecommendationsOutput, error) { + req, out := c.GetRecommendationsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutPermission = "PutPermission" +const opListFindingsReports = "ListFindingsReports" -// PutPermissionRequest generates a "aws/request.Request" representing the -// client's request for the PutPermission operation. The "output" return +// ListFindingsReportsRequest generates a "aws/request.Request" representing the +// client's request for the ListFindingsReports 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 PutPermission for more information on using the PutPermission +// See ListFindingsReports for more information on using the ListFindingsReports // 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 PutPermissionRequest method. -// req, resp := client.PutPermissionRequest(params) +// // Example sending a request using the ListFindingsReportsRequest method. +// req, resp := client.ListFindingsReportsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission -func (c *CodeGuruProfiler) PutPermissionRequest(input *PutPermissionInput) (req *request.Request, output *PutPermissionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports +func (c *CodeGuruProfiler) ListFindingsReportsRequest(input *ListFindingsReportsInput) (req *request.Request, output *ListFindingsReportsOutput) { op := &request.Operation{ - Name: opPutPermission, - HTTPMethod: "PUT", - HTTPPath: "/profilingGroups/{profilingGroupName}/policy/{actionGroup}", + Name: opListFindingsReports, + HTTPMethod: "GET", + HTTPPath: "/internal/profilingGroups/{profilingGroupName}/findingsReports", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &PutPermissionInput{} + input = &ListFindingsReportsInput{} } - output = &PutPermissionOutput{} + output = &ListFindingsReportsOutput{} req = c.newRequest(op, input, output) return } -// PutPermission API operation for Amazon CodeGuru Profiler. +// ListFindingsReports API operation for Amazon CodeGuru Profiler. // -// Provides permission to the principals. This overwrites the existing permissions, -// and is not additive. +// List the available reports for a given profiling group and time range. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon CodeGuru Profiler's -// API operation PutPermission for usage and error information. +// API operation ListFindingsReports for usage and error information. // // Returned Error Types: // * InternalServerException // The server encountered an internal error and is unable to complete the request. // -// * ConflictException -// The requested operation would cause a conflict with the current state of -// a service resource associated with the request. Resolve the conflict before -// retrying this request. -// // * ValidationException // The parameter is not valid. // @@ -1001,90 +1167,144 @@ func (c *CodeGuruProfiler) PutPermissionRequest(input *PutPermissionInput) (req // * ResourceNotFoundException // The resource specified in the request does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission -func (c *CodeGuruProfiler) PutPermission(input *PutPermissionInput) (*PutPermissionOutput, error) { - req, out := c.PutPermissionRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports +func (c *CodeGuruProfiler) ListFindingsReports(input *ListFindingsReportsInput) (*ListFindingsReportsOutput, error) { + req, out := c.ListFindingsReportsRequest(input) return out, req.Send() } -// PutPermissionWithContext is the same as PutPermission with the addition of +// ListFindingsReportsWithContext is the same as ListFindingsReports with the addition of // the ability to pass a context and additional request options. // -// See PutPermission for details on how to use this API operation. +// See ListFindingsReports 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 *CodeGuruProfiler) PutPermissionWithContext(ctx aws.Context, input *PutPermissionInput, opts ...request.Option) (*PutPermissionOutput, error) { - req, out := c.PutPermissionRequest(input) +func (c *CodeGuruProfiler) ListFindingsReportsWithContext(ctx aws.Context, input *ListFindingsReportsInput, opts ...request.Option) (*ListFindingsReportsOutput, error) { + req, out := c.ListFindingsReportsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opRemovePermission = "RemovePermission" - -// RemovePermissionRequest generates a "aws/request.Request" representing the -// client's request for the RemovePermission operation. The "output" return +// ListFindingsReportsPages iterates over the pages of a ListFindingsReports operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListFindingsReports 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 ListFindingsReports operation. +// pageNum := 0 +// err := client.ListFindingsReportsPages(params, +// func(page *codeguruprofiler.ListFindingsReportsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CodeGuruProfiler) ListFindingsReportsPages(input *ListFindingsReportsInput, fn func(*ListFindingsReportsOutput, bool) bool) error { + return c.ListFindingsReportsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListFindingsReportsPagesWithContext same as ListFindingsReportsPages 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 *CodeGuruProfiler) ListFindingsReportsPagesWithContext(ctx aws.Context, input *ListFindingsReportsInput, fn func(*ListFindingsReportsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListFindingsReportsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListFindingsReportsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListFindingsReportsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListProfileTimes = "ListProfileTimes" + +// ListProfileTimesRequest generates a "aws/request.Request" representing the +// client's request for the ListProfileTimes 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 RemovePermission for more information on using the RemovePermission +// See ListProfileTimes for more information on using the ListProfileTimes // 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 RemovePermissionRequest method. -// req, resp := client.RemovePermissionRequest(params) +// // Example sending a request using the ListProfileTimesRequest method. +// req, resp := client.ListProfileTimesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission -func (c *CodeGuruProfiler) RemovePermissionRequest(input *RemovePermissionInput) (req *request.Request, output *RemovePermissionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes +func (c *CodeGuruProfiler) ListProfileTimesRequest(input *ListProfileTimesInput) (req *request.Request, output *ListProfileTimesOutput) { op := &request.Operation{ - Name: opRemovePermission, - HTTPMethod: "DELETE", - HTTPPath: "/profilingGroups/{profilingGroupName}/policy/{actionGroup}", + Name: opListProfileTimes, + HTTPMethod: "GET", + HTTPPath: "/profilingGroups/{profilingGroupName}/profileTimes", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &RemovePermissionInput{} + input = &ListProfileTimesInput{} } - output = &RemovePermissionOutput{} + output = &ListProfileTimesOutput{} req = c.newRequest(op, input, output) return } -// RemovePermission API operation for Amazon CodeGuru Profiler. +// ListProfileTimes API operation for Amazon CodeGuru Profiler. // -// Removes statement for the provided action group from the policy. +// Lists the start times of the available aggregated profiles of a profiling +// group for an aggregation period within the specified time range. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon CodeGuru Profiler's -// API operation RemovePermission for usage and error information. +// API operation ListProfileTimes for usage and error information. // // Returned Error Types: // * InternalServerException // The server encountered an internal error and is unable to complete the request. // -// * ConflictException -// The requested operation would cause a conflict with the current state of -// a service resource associated with the request. Resolve the conflict before -// retrying this request. -// // * ValidationException // The parameter is not valid. // @@ -1094,175 +1314,1972 @@ func (c *CodeGuruProfiler) RemovePermissionRequest(input *RemovePermissionInput) // * ResourceNotFoundException // The resource specified in the request does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission -func (c *CodeGuruProfiler) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) { - req, out := c.RemovePermissionRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes +func (c *CodeGuruProfiler) ListProfileTimes(input *ListProfileTimesInput) (*ListProfileTimesOutput, error) { + req, out := c.ListProfileTimesRequest(input) return out, req.Send() } -// RemovePermissionWithContext is the same as RemovePermission with the addition of +// ListProfileTimesWithContext is the same as ListProfileTimes with the addition of // the ability to pass a context and additional request options. // -// See RemovePermission for details on how to use this API operation. +// See ListProfileTimes 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 *CodeGuruProfiler) RemovePermissionWithContext(ctx aws.Context, input *RemovePermissionInput, opts ...request.Option) (*RemovePermissionOutput, error) { - req, out := c.RemovePermissionRequest(input) +func (c *CodeGuruProfiler) ListProfileTimesWithContext(ctx aws.Context, input *ListProfileTimesInput, opts ...request.Option) (*ListProfileTimesOutput, error) { + req, out := c.ListProfileTimesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateProfilingGroup = "UpdateProfilingGroup" +// ListProfileTimesPages iterates over the pages of a ListProfileTimes operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListProfileTimes 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 ListProfileTimes operation. +// pageNum := 0 +// err := client.ListProfileTimesPages(params, +// func(page *codeguruprofiler.ListProfileTimesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CodeGuruProfiler) ListProfileTimesPages(input *ListProfileTimesInput, fn func(*ListProfileTimesOutput, bool) bool) error { + return c.ListProfileTimesPagesWithContext(aws.BackgroundContext(), input, fn) +} -// UpdateProfilingGroupRequest generates a "aws/request.Request" representing the -// client's request for the UpdateProfilingGroup operation. The "output" return +// ListProfileTimesPagesWithContext same as ListProfileTimesPages 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 *CodeGuruProfiler) ListProfileTimesPagesWithContext(ctx aws.Context, input *ListProfileTimesInput, fn func(*ListProfileTimesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListProfileTimesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListProfileTimesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListProfileTimesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListProfilingGroups = "ListProfilingGroups" + +// ListProfilingGroupsRequest generates a "aws/request.Request" representing the +// client's request for the ListProfilingGroups 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 UpdateProfilingGroup for more information on using the UpdateProfilingGroup +// See ListProfilingGroups for more information on using the ListProfilingGroups // 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 UpdateProfilingGroupRequest method. -// req, resp := client.UpdateProfilingGroupRequest(params) +// // Example sending a request using the ListProfilingGroupsRequest method. +// req, resp := client.ListProfilingGroupsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup -func (c *CodeGuruProfiler) UpdateProfilingGroupRequest(input *UpdateProfilingGroupInput) (req *request.Request, output *UpdateProfilingGroupOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups +func (c *CodeGuruProfiler) ListProfilingGroupsRequest(input *ListProfilingGroupsInput) (req *request.Request, output *ListProfilingGroupsOutput) { op := &request.Operation{ - Name: opUpdateProfilingGroup, - HTTPMethod: "PUT", - HTTPPath: "/profilingGroups/{profilingGroupName}", + Name: opListProfilingGroups, + HTTPMethod: "GET", + HTTPPath: "/profilingGroups", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &UpdateProfilingGroupInput{} + input = &ListProfilingGroupsInput{} } - output = &UpdateProfilingGroupOutput{} + output = &ListProfilingGroupsOutput{} req = c.newRequest(op, input, output) return } -// UpdateProfilingGroup API operation for Amazon CodeGuru Profiler. +// ListProfilingGroups API operation for Amazon CodeGuru Profiler. // -// Updates a profiling group. +// Returns a list of profiling groups. The profiling groups are returned as +// ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) +// objects. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon CodeGuru Profiler's -// API operation UpdateProfilingGroup for usage and error information. +// API operation ListProfilingGroups for usage and error information. // // Returned Error Types: // * InternalServerException // The server encountered an internal error and is unable to complete the request. // -// * ConflictException -// The requested operation would cause a conflict with the current state of -// a service resource associated with the request. Resolve the conflict before -// retrying this request. -// -// * ValidationException -// The parameter is not valid. -// // * ThrottlingException // The request was denied due to request throttling. // -// * ResourceNotFoundException -// The resource specified in the request does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup -func (c *CodeGuruProfiler) UpdateProfilingGroup(input *UpdateProfilingGroupInput) (*UpdateProfilingGroupOutput, error) { - req, out := c.UpdateProfilingGroupRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups +func (c *CodeGuruProfiler) ListProfilingGroups(input *ListProfilingGroupsInput) (*ListProfilingGroupsOutput, error) { + req, out := c.ListProfilingGroupsRequest(input) return out, req.Send() } -// UpdateProfilingGroupWithContext is the same as UpdateProfilingGroup with the addition of +// ListProfilingGroupsWithContext is the same as ListProfilingGroups with the addition of // the ability to pass a context and additional request options. // -// See UpdateProfilingGroup for details on how to use this API operation. +// See ListProfilingGroups 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 *CodeGuruProfiler) UpdateProfilingGroupWithContext(ctx aws.Context, input *UpdateProfilingGroupInput, opts ...request.Option) (*UpdateProfilingGroupOutput, error) { - req, out := c.UpdateProfilingGroupRequest(input) +func (c *CodeGuruProfiler) ListProfilingGroupsWithContext(ctx aws.Context, input *ListProfilingGroupsInput, opts ...request.Option) (*ListProfilingGroupsOutput, error) { + req, out := c.ListProfilingGroupsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -type AgentConfiguration struct { - _ struct{} `type:"structure"` - - // PeriodInSeconds is a required field - PeriodInSeconds *int64 `locationName:"periodInSeconds" type:"integer" required:"true"` - - // ShouldProfile is a required field - ShouldProfile *bool `locationName:"shouldProfile" type:"boolean" required:"true"` -} - -// String returns the string representation -func (s AgentConfiguration) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AgentConfiguration) GoString() string { - return s.String() -} - -// SetPeriodInSeconds sets the PeriodInSeconds field's value. -func (s *AgentConfiguration) SetPeriodInSeconds(v int64) *AgentConfiguration { - s.PeriodInSeconds = &v - return s +// ListProfilingGroupsPages iterates over the pages of a ListProfilingGroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListProfilingGroups 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 ListProfilingGroups operation. +// pageNum := 0 +// err := client.ListProfilingGroupsPages(params, +// func(page *codeguruprofiler.ListProfilingGroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CodeGuruProfiler) ListProfilingGroupsPages(input *ListProfilingGroupsInput, fn func(*ListProfilingGroupsOutput, bool) bool) error { + return c.ListProfilingGroupsPagesWithContext(aws.BackgroundContext(), input, fn) } -// SetShouldProfile sets the ShouldProfile field's value. -func (s *AgentConfiguration) SetShouldProfile(v bool) *AgentConfiguration { - s.ShouldProfile = &v - return s -} +// ListProfilingGroupsPagesWithContext same as ListProfilingGroupsPages 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 *CodeGuruProfiler) ListProfilingGroupsPagesWithContext(ctx aws.Context, input *ListProfilingGroupsInput, fn func(*ListProfilingGroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListProfilingGroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListProfilingGroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListProfilingGroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opPostAgentProfile = "PostAgentProfile" + +// PostAgentProfileRequest generates a "aws/request.Request" representing the +// client's request for the PostAgentProfile 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 PostAgentProfile for more information on using the PostAgentProfile +// 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 PostAgentProfileRequest method. +// req, resp := client.PostAgentProfileRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile +func (c *CodeGuruProfiler) PostAgentProfileRequest(input *PostAgentProfileInput) (req *request.Request, output *PostAgentProfileOutput) { + op := &request.Operation{ + Name: opPostAgentProfile, + HTTPMethod: "POST", + HTTPPath: "/profilingGroups/{profilingGroupName}/agentProfile", + } + + if input == nil { + input = &PostAgentProfileInput{} + } + + output = &PostAgentProfileOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PostAgentProfile API operation for Amazon CodeGuru Profiler. +// +// Submits profiling data to an aggregated profile of a profiling group. To +// get an aggregated profile that is created with this profiling data, use GetProfile +// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CodeGuru Profiler's +// API operation PostAgentProfile for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile +func (c *CodeGuruProfiler) PostAgentProfile(input *PostAgentProfileInput) (*PostAgentProfileOutput, error) { + req, out := c.PostAgentProfileRequest(input) + return out, req.Send() +} + +// PostAgentProfileWithContext is the same as PostAgentProfile with the addition of +// the ability to pass a context and additional request options. +// +// See PostAgentProfile 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 *CodeGuruProfiler) PostAgentProfileWithContext(ctx aws.Context, input *PostAgentProfileInput, opts ...request.Option) (*PostAgentProfileOutput, error) { + req, out := c.PostAgentProfileRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutPermission = "PutPermission" + +// PutPermissionRequest generates a "aws/request.Request" representing the +// client's request for the PutPermission 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 PutPermission for more information on using the PutPermission +// 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 PutPermissionRequest method. +// req, resp := client.PutPermissionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission +func (c *CodeGuruProfiler) PutPermissionRequest(input *PutPermissionInput) (req *request.Request, output *PutPermissionOutput) { + op := &request.Operation{ + Name: opPutPermission, + HTTPMethod: "PUT", + HTTPPath: "/profilingGroups/{profilingGroupName}/policy/{actionGroup}", + } + + if input == nil { + input = &PutPermissionInput{} + } + + output = &PutPermissionOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutPermission API operation for Amazon CodeGuru Profiler. +// +// Adds permissions to a profiling group's resource-based policy that are provided +// using an action group. If a profiling group doesn't have a resource-based +// policy, one is created for it using the permissions in the action group and +// the roles and users in the principals parameter. +// +//

The one supported action group that can be added is agentPermission +// which grants ConfigureAgent and PostAgent permissions. +// For more information, see Resource-based +// policies in CodeGuru Profiler in the Amazon CodeGuru Profiler User +// Guide, +// ConfigureAgent , and +// PostAgentProfile .

The first time you call PutPermission +// on a profiling group, do not specify a revisionId because +// it doesn't have a resource-based policy. Subsequent calls must provide +// a revisionId to specify which revision of the resource-based +// policy to add the permissions to.

The response contains the profiling +// group's JSON-formatted resource policy.

+// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CodeGuru Profiler's +// API operation PutPermission for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission +func (c *CodeGuruProfiler) PutPermission(input *PutPermissionInput) (*PutPermissionOutput, error) { + req, out := c.PutPermissionRequest(input) + return out, req.Send() +} + +// PutPermissionWithContext is the same as PutPermission with the addition of +// the ability to pass a context and additional request options. +// +// See PutPermission 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 *CodeGuruProfiler) PutPermissionWithContext(ctx aws.Context, input *PutPermissionInput, opts ...request.Option) (*PutPermissionOutput, error) { + req, out := c.PutPermissionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRemoveNotificationChannel = "RemoveNotificationChannel" + +// RemoveNotificationChannelRequest generates a "aws/request.Request" representing the +// client's request for the RemoveNotificationChannel 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 RemoveNotificationChannel for more information on using the RemoveNotificationChannel +// 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 RemoveNotificationChannelRequest method. +// req, resp := client.RemoveNotificationChannelRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel +func (c *CodeGuruProfiler) RemoveNotificationChannelRequest(input *RemoveNotificationChannelInput) (req *request.Request, output *RemoveNotificationChannelOutput) { + op := &request.Operation{ + Name: opRemoveNotificationChannel, + HTTPMethod: "DELETE", + HTTPPath: "/profilingGroups/{profilingGroupName}/notificationConfiguration/{channelId}", + } + + if input == nil { + input = &RemoveNotificationChannelInput{} + } + + output = &RemoveNotificationChannelOutput{} + req = c.newRequest(op, input, output) + return +} + +// RemoveNotificationChannel API operation for Amazon CodeGuru Profiler. +// +// Remove one anomaly notifications channel for a profiling 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 Amazon CodeGuru Profiler's +// API operation RemoveNotificationChannel for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel +func (c *CodeGuruProfiler) RemoveNotificationChannel(input *RemoveNotificationChannelInput) (*RemoveNotificationChannelOutput, error) { + req, out := c.RemoveNotificationChannelRequest(input) + return out, req.Send() +} + +// RemoveNotificationChannelWithContext is the same as RemoveNotificationChannel with the addition of +// the ability to pass a context and additional request options. +// +// See RemoveNotificationChannel 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 *CodeGuruProfiler) RemoveNotificationChannelWithContext(ctx aws.Context, input *RemoveNotificationChannelInput, opts ...request.Option) (*RemoveNotificationChannelOutput, error) { + req, out := c.RemoveNotificationChannelRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRemovePermission = "RemovePermission" + +// RemovePermissionRequest generates a "aws/request.Request" representing the +// client's request for the RemovePermission 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 RemovePermission for more information on using the RemovePermission +// 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 RemovePermissionRequest method. +// req, resp := client.RemovePermissionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission +func (c *CodeGuruProfiler) RemovePermissionRequest(input *RemovePermissionInput) (req *request.Request, output *RemovePermissionOutput) { + op := &request.Operation{ + Name: opRemovePermission, + HTTPMethod: "DELETE", + HTTPPath: "/profilingGroups/{profilingGroupName}/policy/{actionGroup}", + } + + if input == nil { + input = &RemovePermissionInput{} + } + + output = &RemovePermissionOutput{} + req = c.newRequest(op, input, output) + return +} + +// RemovePermission API operation for Amazon CodeGuru Profiler. +// +// Removes permissions from a profiling group's resource-based policy that are +// provided using an action group. The one supported action group that can be +// removed is agentPermission which grants ConfigureAgent and PostAgent permissions. +// For more information, see Resource-based policies in CodeGuru Profiler (https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html) +// in the Amazon CodeGuru Profiler User Guide, ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html), +// and PostAgentProfile (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CodeGuru Profiler's +// API operation RemovePermission for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission +func (c *CodeGuruProfiler) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) { + req, out := c.RemovePermissionRequest(input) + return out, req.Send() +} + +// RemovePermissionWithContext is the same as RemovePermission with the addition of +// the ability to pass a context and additional request options. +// +// See RemovePermission 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 *CodeGuruProfiler) RemovePermissionWithContext(ctx aws.Context, input *RemovePermissionInput, opts ...request.Option) (*RemovePermissionOutput, error) { + req, out := c.RemovePermissionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSubmitFeedback = "SubmitFeedback" + +// SubmitFeedbackRequest generates a "aws/request.Request" representing the +// client's request for the SubmitFeedback 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 SubmitFeedback for more information on using the SubmitFeedback +// 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 SubmitFeedbackRequest method. +// req, resp := client.SubmitFeedbackRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback +func (c *CodeGuruProfiler) SubmitFeedbackRequest(input *SubmitFeedbackInput) (req *request.Request, output *SubmitFeedbackOutput) { + op := &request.Operation{ + Name: opSubmitFeedback, + HTTPMethod: "POST", + HTTPPath: "/internal/profilingGroups/{profilingGroupName}/anomalies/{anomalyInstanceId}/feedback", + } + + if input == nil { + input = &SubmitFeedbackInput{} + } + + output = &SubmitFeedbackOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// SubmitFeedback API operation for Amazon CodeGuru Profiler. +// +// Sends feedback to CodeGuru Profiler about whether the anomaly detected by +// the analysis is useful or not. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CodeGuru Profiler's +// API operation SubmitFeedback for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback +func (c *CodeGuruProfiler) SubmitFeedback(input *SubmitFeedbackInput) (*SubmitFeedbackOutput, error) { + req, out := c.SubmitFeedbackRequest(input) + return out, req.Send() +} + +// SubmitFeedbackWithContext is the same as SubmitFeedback with the addition of +// the ability to pass a context and additional request options. +// +// See SubmitFeedback 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 *CodeGuruProfiler) SubmitFeedbackWithContext(ctx aws.Context, input *SubmitFeedbackInput, opts ...request.Option) (*SubmitFeedbackOutput, error) { + req, out := c.SubmitFeedbackRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateProfilingGroup = "UpdateProfilingGroup" + +// UpdateProfilingGroupRequest generates a "aws/request.Request" representing the +// client's request for the UpdateProfilingGroup 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 UpdateProfilingGroup for more information on using the UpdateProfilingGroup +// 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 UpdateProfilingGroupRequest method. +// req, resp := client.UpdateProfilingGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup +func (c *CodeGuruProfiler) UpdateProfilingGroupRequest(input *UpdateProfilingGroupInput) (req *request.Request, output *UpdateProfilingGroupOutput) { + op := &request.Operation{ + Name: opUpdateProfilingGroup, + HTTPMethod: "PUT", + HTTPPath: "/profilingGroups/{profilingGroupName}", + } + + if input == nil { + input = &UpdateProfilingGroupInput{} + } + + output = &UpdateProfilingGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateProfilingGroup API operation for Amazon CodeGuru Profiler. +// +// Updates a profiling 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 Amazon CodeGuru Profiler's +// API operation UpdateProfilingGroup for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// * ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ValidationException +// The parameter is not valid. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * ResourceNotFoundException +// The resource specified in the request does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup +func (c *CodeGuruProfiler) UpdateProfilingGroup(input *UpdateProfilingGroupInput) (*UpdateProfilingGroupOutput, error) { + req, out := c.UpdateProfilingGroupRequest(input) + return out, req.Send() +} + +// UpdateProfilingGroupWithContext is the same as UpdateProfilingGroup with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateProfilingGroup 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 *CodeGuruProfiler) UpdateProfilingGroupWithContext(ctx aws.Context, input *UpdateProfilingGroupInput, opts ...request.Option) (*UpdateProfilingGroupOutput, error) { + req, out := c.UpdateProfilingGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// The structure representing the AddNotificationChannelsRequest. +type AddNotificationChannelsInput struct { + _ struct{} `type:"structure"` + + // One or 2 channels to report to when anomalies are detected. + // + // Channels is a required field + Channels []*Channel `locationName:"channels" min:"1" type:"list" required:"true"` + + // The name of the profiling group that we are setting up notifications for. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AddNotificationChannelsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddNotificationChannelsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddNotificationChannelsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddNotificationChannelsInput"} + if s.Channels == nil { + invalidParams.Add(request.NewErrParamRequired("Channels")) + } + if s.Channels != nil && len(s.Channels) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Channels", 1)) + } + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + if s.Channels != nil { + for i, v := range s.Channels { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Channels", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetChannels sets the Channels field's value. +func (s *AddNotificationChannelsInput) SetChannels(v []*Channel) *AddNotificationChannelsInput { + s.Channels = v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *AddNotificationChannelsInput) SetProfilingGroupName(v string) *AddNotificationChannelsInput { + s.ProfilingGroupName = &v + return s +} + +// The structure representing the AddNotificationChannelsResponse. +type AddNotificationChannelsOutput struct { + _ struct{} `type:"structure"` + + // The new notification configuration for this profiling group. + NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure"` +} + +// String returns the string representation +func (s AddNotificationChannelsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddNotificationChannelsOutput) GoString() string { + return s.String() +} + +// SetNotificationConfiguration sets the NotificationConfiguration field's value. +func (s *AddNotificationChannelsOutput) SetNotificationConfiguration(v *NotificationConfiguration) *AddNotificationChannelsOutput { + s.NotificationConfiguration = v + return s +} + +// The response of ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html) +// that specifies if an agent profiles or not and for how long to return profiling +// data. +type AgentConfiguration struct { + _ struct{} `type:"structure"` + + // Parameters used by the profiler. The valid parameters are: + // + // * MaxStackDepth - The maximum depth of the stacks in the code that is + // represented in the profile. For example, if CodeGuru Profiler finds a + // method A, which calls method B, which calls method C, which calls method + // D, then the depth is 4. If the maxDepth is set to 2, then the profiler + // evaluates A and B. + // + // * MemoryUsageLimitPercent - The percentage of memory that is used by the + // profiler. + // + // * MinimumTimeForReportingInMilliseconds - The minimum time in milliseconds + // between sending reports. + // + // * ReportingIntervalInMilliseconds - The reporting interval in milliseconds + // used to report profiles. + // + // * SamplingIntervalInMilliseconds - The sampling interval in milliseconds + // that is used to profile samples. + AgentParameters map[string]*string `locationName:"agentParameters" type:"map"` + + // How long a profiling agent should send profiling data using ConfigureAgent + // (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html). + // For example, if this is set to 300, the profiling agent calls ConfigureAgent + // (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html) + // every 5 minutes to submit the profiled data collected during that period. + // + // PeriodInSeconds is a required field + PeriodInSeconds *int64 `locationName:"periodInSeconds" type:"integer" required:"true"` + + // A Boolean that specifies whether the profiling agent collects profiling data + // or not. Set to true to enable profiling. + // + // ShouldProfile is a required field + ShouldProfile *bool `locationName:"shouldProfile" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s AgentConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AgentConfiguration) GoString() string { + return s.String() +} + +// SetAgentParameters sets the AgentParameters field's value. +func (s *AgentConfiguration) SetAgentParameters(v map[string]*string) *AgentConfiguration { + s.AgentParameters = v + return s +} + +// SetPeriodInSeconds sets the PeriodInSeconds field's value. +func (s *AgentConfiguration) SetPeriodInSeconds(v int64) *AgentConfiguration { + s.PeriodInSeconds = &v + return s +} + +// SetShouldProfile sets the ShouldProfile field's value. +func (s *AgentConfiguration) SetShouldProfile(v bool) *AgentConfiguration { + s.ShouldProfile = &v + return s +} + +// Specifies whether profiling is enabled or disabled for a profiling group. +// It is used by ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html) +// to enable or disable profiling for a profiling group. +type AgentOrchestrationConfig struct { + _ struct{} `type:"structure"` + + // A Boolean that specifies whether the profiling agent collects profiling data + // or not. Set to true to enable profiling. + // + // ProfilingEnabled is a required field + ProfilingEnabled *bool `locationName:"profilingEnabled" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s AgentOrchestrationConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AgentOrchestrationConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AgentOrchestrationConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AgentOrchestrationConfig"} + if s.ProfilingEnabled == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingEnabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProfilingEnabled sets the ProfilingEnabled field's value. +func (s *AgentOrchestrationConfig) SetProfilingEnabled(v bool) *AgentOrchestrationConfig { + s.ProfilingEnabled = &v + return s +} + +// Specifies the aggregation period and aggregation start time for an aggregated +// profile. An aggregated profile is used to collect posted agent profiles during +// an aggregation period. There are three possible aggregation periods (1 day, +// 1 hour, or 5 minutes). +type AggregatedProfileTime struct { + _ struct{} `type:"structure"` + + // The aggregation period. This indicates the period during which an aggregation + // profile collects posted agent profiles for a profiling group. Use one of + // three valid durations that are specified using the ISO 8601 format. + // + // * P1D — 1 day + // + // * PT1H — 1 hour + // + // * PT5M — 5 minutes + Period *string `locationName:"period" type:"string" enum:"AggregationPeriod"` + + // The time that aggregation of posted agent profiles for a profiling group + // starts. The aggregation profile contains profiles posted by the agent starting + // at this time for an aggregation period specified by the period property of + // the AggregatedProfileTime object. + // + // Specify start using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation +func (s AggregatedProfileTime) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AggregatedProfileTime) GoString() string { + return s.String() +} + +// SetPeriod sets the Period field's value. +func (s *AggregatedProfileTime) SetPeriod(v string) *AggregatedProfileTime { + s.Period = &v + return s +} + +// SetStart sets the Start field's value. +func (s *AggregatedProfileTime) SetStart(v time.Time) *AggregatedProfileTime { + s.Start = &v + return s +} + +// Details about an anomaly in a specific metric of application profile. The +// anomaly is detected using analysis of the metric data over a period of time. +type Anomaly struct { + _ struct{} `type:"structure"` + + // A list of the instances of the detected anomalies during the requested period. + // + // Instances is a required field + Instances []*AnomalyInstance `locationName:"instances" type:"list" required:"true"` + + // Details about the metric that the analysis used when it detected the anomaly. + // The metric includes the name of the frame that was analyzed with the type + // and thread states used to derive the metric value for that frame. + // + // Metric is a required field + Metric *Metric `locationName:"metric" type:"structure" required:"true"` + + // The reason for which metric was flagged as anomalous. + // + // Reason is a required field + Reason *string `locationName:"reason" type:"string" required:"true"` +} + +// String returns the string representation +func (s Anomaly) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Anomaly) GoString() string { + return s.String() +} + +// SetInstances sets the Instances field's value. +func (s *Anomaly) SetInstances(v []*AnomalyInstance) *Anomaly { + s.Instances = v + return s +} + +// SetMetric sets the Metric field's value. +func (s *Anomaly) SetMetric(v *Metric) *Anomaly { + s.Metric = v + return s +} + +// SetReason sets the Reason field's value. +func (s *Anomaly) SetReason(v string) *Anomaly { + s.Reason = &v + return s +} + +// The specific duration in which the metric is flagged as anomalous. +type AnomalyInstance struct { + _ struct{} `type:"structure"` + + // The end time of the period during which the metric is flagged as anomalous. + // This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + + // The universally unique identifier (UUID) of an instance of an anomaly in + // a metric. + // + // Id is a required field + Id *string `locationName:"id" type:"string" required:"true"` + + // The start time of the period during which the metric is flagged as anomalous. + // This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // StartTime is a required field + StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Feedback type on a specific instance of anomaly submitted by the user. + UserFeedback *UserFeedback `locationName:"userFeedback" type:"structure"` +} + +// String returns the string representation +func (s AnomalyInstance) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnomalyInstance) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *AnomalyInstance) SetEndTime(v time.Time) *AnomalyInstance { + s.EndTime = &v + return s +} + +// SetId sets the Id field's value. +func (s *AnomalyInstance) SetId(v string) *AnomalyInstance { + s.Id = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *AnomalyInstance) SetStartTime(v time.Time) *AnomalyInstance { + s.StartTime = &v + return s +} + +// SetUserFeedback sets the UserFeedback field's value. +func (s *AnomalyInstance) SetUserFeedback(v *UserFeedback) *AnomalyInstance { + s.UserFeedback = v + return s +} + +// The structure representing the BatchGetFrameMetricDataRequest. +type BatchGetFrameMetricDataInput struct { + _ struct{} `type:"structure"` + + // The end time of the time period for the returned time series values. This + // is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + + // The details of the metrics that are used to request a time series of values. + // The metric includes the name of the frame, the aggregation type to calculate + // the metric value for the frame, and the thread states to use to get the count + // for the metric value of the frame. + FrameMetrics []*FrameMetric `locationName:"frameMetrics" type:"list"` + + // The duration of the frame metrics used to return the time series values. + // Specify using the ISO 8601 format. The maximum period duration is one day + // (PT24H or P1D). + Period *string `location:"querystring" locationName:"period" min:"1" type:"string"` + + // The name of the profiling group associated with the the frame metrics used + // to return the time series values. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The start time of the time period for the frame metrics used to return the + // time series values. This is specified using the ISO 8601 format. For example, + // 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 + // PM UTC. + StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"` + + // The requested resolution of time steps for the returned time series of values. + // If the requested target resolution is not available due to data not being + // retained we provide a best effort result by falling back to the most granular + // available resolution after the target resolution. There are 3 valid values. + // + // * P1D — 1 day + // + // * PT1H — 1 hour + // + // * PT5M — 5 minutes + TargetResolution *string `location:"querystring" locationName:"targetResolution" type:"string" enum:"AggregationPeriod"` +} + +// String returns the string representation +func (s BatchGetFrameMetricDataInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BatchGetFrameMetricDataInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetFrameMetricDataInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchGetFrameMetricDataInput"} + if s.Period != nil && len(*s.Period) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Period", 1)) + } + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + if s.FrameMetrics != nil { + for i, v := range s.FrameMetrics { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FrameMetrics", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *BatchGetFrameMetricDataInput) SetEndTime(v time.Time) *BatchGetFrameMetricDataInput { + s.EndTime = &v + return s +} + +// SetFrameMetrics sets the FrameMetrics field's value. +func (s *BatchGetFrameMetricDataInput) SetFrameMetrics(v []*FrameMetric) *BatchGetFrameMetricDataInput { + s.FrameMetrics = v + return s +} + +// SetPeriod sets the Period field's value. +func (s *BatchGetFrameMetricDataInput) SetPeriod(v string) *BatchGetFrameMetricDataInput { + s.Period = &v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *BatchGetFrameMetricDataInput) SetProfilingGroupName(v string) *BatchGetFrameMetricDataInput { + s.ProfilingGroupName = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *BatchGetFrameMetricDataInput) SetStartTime(v time.Time) *BatchGetFrameMetricDataInput { + s.StartTime = &v + return s +} + +// SetTargetResolution sets the TargetResolution field's value. +func (s *BatchGetFrameMetricDataInput) SetTargetResolution(v string) *BatchGetFrameMetricDataInput { + s.TargetResolution = &v + return s +} + +// The structure representing the BatchGetFrameMetricDataResponse. +type BatchGetFrameMetricDataOutput struct { + _ struct{} `type:"structure"` + + // The end time of the time period for the returned time series values. This + // is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // EndTime is a required field + EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // List of instances, or time steps, in the time series. For example, if the + // period is one day (PT24H)), and the resolution is five minutes (PT5M), then + // there are 288 endTimes in the list that are each five minutes appart. + // + // EndTimes is a required field + EndTimes []*TimestampStructure `locationName:"endTimes" type:"list" required:"true"` + + // Details of the metrics to request a time series of values. The metric includes + // the name of the frame, the aggregation type to calculate the metric value + // for the frame, and the thread states to use to get the count for the metric + // value of the frame. + // + // FrameMetricData is a required field + FrameMetricData []*FrameMetricDatum `locationName:"frameMetricData" type:"list" required:"true"` + + // Resolution or granularity of the profile data used to generate the time series. + // This is the value used to jump through time steps in a time series. There + // are 3 valid values. + // + // * P1D — 1 day + // + // * PT1H — 1 hour + // + // * PT5M — 5 minutes + // + // Resolution is a required field + Resolution *string `locationName:"resolution" type:"string" required:"true" enum:"AggregationPeriod"` + + // The start time of the time period for the returned time series values. This + // is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // StartTime is a required field + StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // List of instances which remained unprocessed. This will create a missing + // time step in the list of end times. + // + // UnprocessedEndTimes is a required field + UnprocessedEndTimes map[string][]*TimestampStructure `locationName:"unprocessedEndTimes" type:"map" required:"true"` +} + +// String returns the string representation +func (s BatchGetFrameMetricDataOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BatchGetFrameMetricDataOutput) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *BatchGetFrameMetricDataOutput) SetEndTime(v time.Time) *BatchGetFrameMetricDataOutput { + s.EndTime = &v + return s +} + +// SetEndTimes sets the EndTimes field's value. +func (s *BatchGetFrameMetricDataOutput) SetEndTimes(v []*TimestampStructure) *BatchGetFrameMetricDataOutput { + s.EndTimes = v + return s +} + +// SetFrameMetricData sets the FrameMetricData field's value. +func (s *BatchGetFrameMetricDataOutput) SetFrameMetricData(v []*FrameMetricDatum) *BatchGetFrameMetricDataOutput { + s.FrameMetricData = v + return s +} + +// SetResolution sets the Resolution field's value. +func (s *BatchGetFrameMetricDataOutput) SetResolution(v string) *BatchGetFrameMetricDataOutput { + s.Resolution = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *BatchGetFrameMetricDataOutput) SetStartTime(v time.Time) *BatchGetFrameMetricDataOutput { + s.StartTime = &v + return s +} + +// SetUnprocessedEndTimes sets the UnprocessedEndTimes field's value. +func (s *BatchGetFrameMetricDataOutput) SetUnprocessedEndTimes(v map[string][]*TimestampStructure) *BatchGetFrameMetricDataOutput { + s.UnprocessedEndTimes = v + return s +} + +// Notification medium for users to get alerted for events that occur in application +// profile. We support SNS topic as a notification channel. +type Channel struct { + _ struct{} `type:"structure"` + + // List of publishers for different type of events that may be detected in an + // application from the profile. Anomaly detection is the only event publisher + // in Profiler. + // + // EventPublishers is a required field + EventPublishers []*string `locationName:"eventPublishers" min:"1" type:"list" required:"true"` + + // Unique identifier for each Channel in the notification configuration of a + // Profiling Group. A random UUID for channelId is used when adding a channel + // to the notification configuration if not specified in the request. + Id *string `locationName:"id" type:"string"` + + // Unique arn of the resource to be used for notifications. We support a valid + // SNS topic arn as a channel uri. + // + // Uri is a required field + Uri *string `locationName:"uri" type:"string" required:"true"` +} + +// String returns the string representation +func (s Channel) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Channel) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Channel) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Channel"} + if s.EventPublishers == nil { + invalidParams.Add(request.NewErrParamRequired("EventPublishers")) + } + if s.EventPublishers != nil && len(s.EventPublishers) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventPublishers", 1)) + } + if s.Uri == nil { + invalidParams.Add(request.NewErrParamRequired("Uri")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventPublishers sets the EventPublishers field's value. +func (s *Channel) SetEventPublishers(v []*string) *Channel { + s.EventPublishers = v + return s +} + +// SetId sets the Id field's value. +func (s *Channel) SetId(v string) *Channel { + s.Id = &v + return s +} + +// SetUri sets the Uri field's value. +func (s *Channel) SetUri(v string) *Channel { + s.Uri = &v + return s +} + +// The structure representing the configureAgentRequest. +type ConfigureAgentInput struct { + _ struct{} `type:"structure"` + + // A universally unique identifier (UUID) for a profiling instance. For example, + // if the profiling instance is an Amazon EC2 instance, it is the instance ID. + // If it is an AWS Fargate container, it is the container's task ID. + FleetInstanceId *string `locationName:"fleetInstanceId" min:"1" type:"string"` + + // Metadata captured about the compute platform the agent is running on. It + // includes information about sampling and reporting. The valid fields are: + // + // * COMPUTE_PLATFORM - The compute platform on which the agent is running + // + // * AGENT_ID - The ID for an agent instance. + // + // * AWS_REQUEST_ID - The AWS request ID of a Lambda invocation. + // + // * EXECUTION_ENVIRONMENT - The execution environment a Lambda function + // is running on. + // + // * LAMBDA_FUNCTION_ARN - The Amazon Resource Name (ARN) that is used to + // invoke a Lambda function. + // + // * LAMBDA_MEMORY_LIMIT_IN_MB - The memory allocated to a Lambda function. + // + // * LAMBDA_REMAINING_TIME_IN_MILLISECONDS - The time in milliseconds before + // execution of a Lambda function times out. + // + // * LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS - The time in milliseconds + // between two invocations of a Lambda function. + // + // * LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS - The time in milliseconds + // for the previous Lambda invocation. + Metadata map[string]*string `locationName:"metadata" type:"map"` + + // The name of the profiling group for which the configured agent is collecting + // profiling data. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ConfigureAgentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConfigureAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ConfigureAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ConfigureAgentInput"} + if s.FleetInstanceId != nil && len(*s.FleetInstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FleetInstanceId", 1)) + } + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetInstanceId sets the FleetInstanceId field's value. +func (s *ConfigureAgentInput) SetFleetInstanceId(v string) *ConfigureAgentInput { + s.FleetInstanceId = &v + return s +} + +// SetMetadata sets the Metadata field's value. +func (s *ConfigureAgentInput) SetMetadata(v map[string]*string) *ConfigureAgentInput { + s.Metadata = v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *ConfigureAgentInput) SetProfilingGroupName(v string) *ConfigureAgentInput { + s.ProfilingGroupName = &v + return s +} + +// The structure representing the configureAgentResponse. +type ConfigureAgentOutput struct { + _ struct{} `type:"structure" payload:"Configuration"` + + // An AgentConfiguration (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html) + // object that specifies if an agent profiles or not and for how long to return + // profiling data. + // + // Configuration is a required field + Configuration *AgentConfiguration `locationName:"configuration" type:"structure" required:"true"` +} + +// String returns the string representation +func (s ConfigureAgentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConfigureAgentOutput) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *ConfigureAgentOutput) SetConfiguration(v *AgentConfiguration) *ConfigureAgentOutput { + s.Configuration = v + return s +} + +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The structure representing the createProfiliingGroupRequest. +type CreateProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // Specifies whether profiling is enabled or disabled for the created profiling + // group. + AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"` + + // Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to + // prevent the accidental creation of duplicate profiling groups if there are + // failures and retries. + ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The compute platform of the profiling group. Use AWSLambda if your application + // runs on AWS Lambda. Use Default if your application runs on a compute platform + // that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, + // or a different platform. If not specified, Default is used. + ComputePlatform *string `locationName:"computePlatform" type:"string" enum:"ComputePlatform"` + + // The name of the profiling group to create. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateProfilingGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProfilingGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateProfilingGroupInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + if s.AgentOrchestrationConfig != nil { + if err := s.AgentOrchestrationConfig.Validate(); err != nil { + invalidParams.AddNested("AgentOrchestrationConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value. +func (s *CreateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *CreateProfilingGroupInput { + s.AgentOrchestrationConfig = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateProfilingGroupInput) SetClientToken(v string) *CreateProfilingGroupInput { + s.ClientToken = &v + return s +} + +// SetComputePlatform sets the ComputePlatform field's value. +func (s *CreateProfilingGroupInput) SetComputePlatform(v string) *CreateProfilingGroupInput { + s.ComputePlatform = &v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *CreateProfilingGroupInput) SetProfilingGroupName(v string) *CreateProfilingGroupInput { + s.ProfilingGroupName = &v + return s +} + +// The structure representing the createProfilingGroupResponse. +type CreateProfilingGroupOutput struct { + _ struct{} `type:"structure" payload:"ProfilingGroup"` + + // The returned ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // object that contains information about the created profiling group. + // + // ProfilingGroup is a required field + ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateProfilingGroupOutput) GoString() string { + return s.String() +} + +// SetProfilingGroup sets the ProfilingGroup field's value. +func (s *CreateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *CreateProfilingGroupOutput { + s.ProfilingGroup = v + return s +} + +// The structure representing the deleteProfilingGroupRequest. +type DeleteProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the profiling group to delete. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfilingGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProfilingGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProfilingGroupInput"} + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *DeleteProfilingGroupInput) SetProfilingGroupName(v string) *DeleteProfilingGroupInput { + s.ProfilingGroupName = &v + return s +} + +// The structure representing the deleteProfilingGroupResponse. +type DeleteProfilingGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfilingGroupOutput) GoString() string { + return s.String() +} + +// The structure representing the describeProfilingGroupRequest. +type DescribeProfilingGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the profiling group to get information about. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeProfilingGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeProfilingGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProfilingGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeProfilingGroupInput"} + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *DescribeProfilingGroupInput) SetProfilingGroupName(v string) *DescribeProfilingGroupInput { + s.ProfilingGroupName = &v + return s +} + +// The structure representing the describeProfilingGroupResponse. +type DescribeProfilingGroupOutput struct { + _ struct{} `type:"structure" payload:"ProfilingGroup"` + + // The returned ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // object that contains information about the requested profiling group. + // + // ProfilingGroup is a required field + ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` +} + +// String returns the string representation +func (s DescribeProfilingGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeProfilingGroupOutput) GoString() string { + return s.String() +} + +// SetProfilingGroup sets the ProfilingGroup field's value. +func (s *DescribeProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *DescribeProfilingGroupOutput { + s.ProfilingGroup = v + return s +} + +// Information about potential recommendations that might be created from the +// analysis of profiling data. +type FindingsReportSummary struct { + _ struct{} `type:"structure"` + + // The universally unique identifier (UUID) of the recommendation report. + Id *string `locationName:"id" type:"string"` + + // The end time of the period during which the metric is flagged as anomalous. + // This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + ProfileEndTime *time.Time `locationName:"profileEndTime" type:"timestamp" timestampFormat:"iso8601"` + + // The start time of the profile the analysis data is about. This is specified + // using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents + // 1 millisecond past June 1, 2020 1:15:02 PM UTC. + ProfileStartTime *time.Time `locationName:"profileStartTime" type:"timestamp" timestampFormat:"iso8601"` + + // The name of the profiling group that is associated with the analysis data. + ProfilingGroupName *string `locationName:"profilingGroupName" type:"string"` + + // The total number of different recommendations that were found by the analysis. + TotalNumberOfFindings *int64 `locationName:"totalNumberOfFindings" type:"integer"` +} + +// String returns the string representation +func (s FindingsReportSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FindingsReportSummary) GoString() string { + return s.String() +} + +// SetId sets the Id field's value. +func (s *FindingsReportSummary) SetId(v string) *FindingsReportSummary { + s.Id = &v + return s +} + +// SetProfileEndTime sets the ProfileEndTime field's value. +func (s *FindingsReportSummary) SetProfileEndTime(v time.Time) *FindingsReportSummary { + s.ProfileEndTime = &v + return s +} -type AgentOrchestrationConfig struct { +// SetProfileStartTime sets the ProfileStartTime field's value. +func (s *FindingsReportSummary) SetProfileStartTime(v time.Time) *FindingsReportSummary { + s.ProfileStartTime = &v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *FindingsReportSummary) SetProfilingGroupName(v string) *FindingsReportSummary { + s.ProfilingGroupName = &v + return s +} + +// SetTotalNumberOfFindings sets the TotalNumberOfFindings field's value. +func (s *FindingsReportSummary) SetTotalNumberOfFindings(v int64) *FindingsReportSummary { + s.TotalNumberOfFindings = &v + return s +} + +// The frame name, metric type, and thread states. These are used to derive +// the value of the metric for the frame. +type FrameMetric struct { _ struct{} `type:"structure"` - // ProfilingEnabled is a required field - ProfilingEnabled *bool `locationName:"profilingEnabled" type:"boolean" required:"true"` + // Name of the method common across the multiple occurrences of a frame in an + // application profile. + // + // FrameName is a required field + FrameName *string `locationName:"frameName" type:"string" required:"true"` + + // List of application runtime thread states used to get the counts for a frame + // a derive a metric value. + // + // ThreadStates is a required field + ThreadStates []*string `locationName:"threadStates" type:"list" required:"true"` + + // A type of aggregation that specifies how a metric for a frame is analyzed. + // The supported value AggregatedRelativeTotalTime is an aggregation of the + // metric value for one frame that is calculated across the occurrences of all + // frames in a profile. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"MetricType"` } // String returns the string representation -func (s AgentOrchestrationConfig) String() string { +func (s FrameMetric) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AgentOrchestrationConfig) GoString() string { +func (s FrameMetric) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AgentOrchestrationConfig) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AgentOrchestrationConfig"} - if s.ProfilingEnabled == nil { - invalidParams.Add(request.NewErrParamRequired("ProfilingEnabled")) +func (s *FrameMetric) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FrameMetric"} + if s.FrameName == nil { + invalidParams.Add(request.NewErrParamRequired("FrameName")) + } + if s.ThreadStates == nil { + invalidParams.Add(request.NewErrParamRequired("ThreadStates")) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) } if invalidParams.Len() > 0 { @@ -1271,76 +3288,108 @@ func (s *AgentOrchestrationConfig) Validate() error { return nil } -// SetProfilingEnabled sets the ProfilingEnabled field's value. -func (s *AgentOrchestrationConfig) SetProfilingEnabled(v bool) *AgentOrchestrationConfig { - s.ProfilingEnabled = &v +// SetFrameName sets the FrameName field's value. +func (s *FrameMetric) SetFrameName(v string) *FrameMetric { + s.FrameName = &v return s } -// Information about the time range of the latest available aggregated profile. -type AggregatedProfileTime struct { +// SetThreadStates sets the ThreadStates field's value. +func (s *FrameMetric) SetThreadStates(v []*string) *FrameMetric { + s.ThreadStates = v + return s +} + +// SetType sets the Type field's value. +func (s *FrameMetric) SetType(v string) *FrameMetric { + s.Type = &v + return s +} + +// Information about a frame metric and its values. +type FrameMetricDatum struct { _ struct{} `type:"structure"` - // The time period. - Period *string `locationName:"period" type:"string" enum:"AggregationPeriod"` + // The frame name, metric type, and thread states. These are used to derive + // the value of the metric for the frame. + // + // FrameMetric is a required field + FrameMetric *FrameMetric `locationName:"frameMetric" type:"structure" required:"true"` - // The start time. - Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"` + // A list of values that are associated with a frame metric. + // + // Values is a required field + Values []*float64 `locationName:"values" type:"list" required:"true"` } // String returns the string representation -func (s AggregatedProfileTime) String() string { +func (s FrameMetricDatum) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AggregatedProfileTime) GoString() string { +func (s FrameMetricDatum) GoString() string { return s.String() } -// SetPeriod sets the Period field's value. -func (s *AggregatedProfileTime) SetPeriod(v string) *AggregatedProfileTime { - s.Period = &v +// SetFrameMetric sets the FrameMetric field's value. +func (s *FrameMetricDatum) SetFrameMetric(v *FrameMetric) *FrameMetricDatum { + s.FrameMetric = v return s } -// SetStart sets the Start field's value. -func (s *AggregatedProfileTime) SetStart(v time.Time) *AggregatedProfileTime { - s.Start = &v +// SetValues sets the Values field's value. +func (s *FrameMetricDatum) SetValues(v []*float64) *FrameMetricDatum { + s.Values = v return s } -// The structure representing the configureAgentRequest. -type ConfigureAgentInput struct { +// The structure representing the GetFindingsReportAccountSummaryRequest. +type GetFindingsReportAccountSummaryInput struct { _ struct{} `type:"structure"` - FleetInstanceId *string `locationName:"fleetInstanceId" min:"1" type:"string"` + // A Boolean value indicating whether to only return reports from daily profiles. + // If set to True, only analysis data from daily profiles is returned. If set + // to False, analysis data is returned from smaller time windows (for example, + // one hour). + DailyReportsOnly *bool `location:"querystring" locationName:"dailyReportsOnly" type:"boolean"` - // ProfilingGroupName is a required field - ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + // The maximum number of results returned by GetFindingsReportAccountSummary + // in paginated output. When this parameter is used, GetFindingsReportAccountSummary + // only returns maxResults results in a single page along with a nextToken response + // element. The remaining results of the initial request can be seen by sending + // another GetFindingsReportAccountSummary request with the returned nextToken + // value. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The nextToken value returned from a previous paginated GetFindingsReportAccountSummary + // request where maxResults was used and the results exceeded the value of that + // parameter. Pagination continues from the end of the previous results that + // returned the nextToken value. + // + // This token should be treated as an opaque identifier that is only used to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation -func (s ConfigureAgentInput) String() string { +func (s GetFindingsReportAccountSummaryInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ConfigureAgentInput) GoString() string { +func (s GetFindingsReportAccountSummaryInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ConfigureAgentInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ConfigureAgentInput"} - if s.FleetInstanceId != nil && len(*s.FleetInstanceId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("FleetInstanceId", 1)) - } - if s.ProfilingGroupName == nil { - invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) +func (s *GetFindingsReportAccountSummaryInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetFindingsReportAccountSummaryInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } - if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } if invalidParams.Len() > 0 { @@ -1349,147 +3398,162 @@ func (s *ConfigureAgentInput) Validate() error { return nil } -// SetFleetInstanceId sets the FleetInstanceId field's value. -func (s *ConfigureAgentInput) SetFleetInstanceId(v string) *ConfigureAgentInput { - s.FleetInstanceId = &v +// SetDailyReportsOnly sets the DailyReportsOnly field's value. +func (s *GetFindingsReportAccountSummaryInput) SetDailyReportsOnly(v bool) *GetFindingsReportAccountSummaryInput { + s.DailyReportsOnly = &v return s } -// SetProfilingGroupName sets the ProfilingGroupName field's value. -func (s *ConfigureAgentInput) SetProfilingGroupName(v string) *ConfigureAgentInput { - s.ProfilingGroupName = &v +// SetMaxResults sets the MaxResults field's value. +func (s *GetFindingsReportAccountSummaryInput) SetMaxResults(v int64) *GetFindingsReportAccountSummaryInput { + s.MaxResults = &v return s } -// The structure representing the configureAgentResponse. -type ConfigureAgentOutput struct { - _ struct{} `type:"structure" payload:"Configuration"` +// SetNextToken sets the NextToken field's value. +func (s *GetFindingsReportAccountSummaryInput) SetNextToken(v string) *GetFindingsReportAccountSummaryInput { + s.NextToken = &v + return s +} - // Configuration is a required field - Configuration *AgentConfiguration `locationName:"configuration" type:"structure" required:"true"` +// The structure representing the GetFindingsReportAccountSummaryResponse. +type GetFindingsReportAccountSummaryOutput struct { + _ struct{} `type:"structure"` + + // The nextToken value to include in a future GetFindingsReportAccountSummary + // request. When the results of a GetFindingsReportAccountSummary request exceed + // maxResults, this value can be used to retrieve the next page of results. + // This value is null when there are no more results to return. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The return list of FindingsReportSummary (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html) + // objects taht contain summaries of analysis results for all profiling groups + // in your AWS account. + // + // ReportSummaries is a required field + ReportSummaries []*FindingsReportSummary `locationName:"reportSummaries" type:"list" required:"true"` } // String returns the string representation -func (s ConfigureAgentOutput) String() string { +func (s GetFindingsReportAccountSummaryOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ConfigureAgentOutput) GoString() string { +func (s GetFindingsReportAccountSummaryOutput) GoString() string { return s.String() } -// SetConfiguration sets the Configuration field's value. -func (s *ConfigureAgentOutput) SetConfiguration(v *AgentConfiguration) *ConfigureAgentOutput { - s.Configuration = v +// SetNextToken sets the NextToken field's value. +func (s *GetFindingsReportAccountSummaryOutput) SetNextToken(v string) *GetFindingsReportAccountSummaryOutput { + s.NextToken = &v return s } -// The requested operation would cause a conflict with the current state of -// a service resource associated with the request. Resolve the conflict before -// retrying this request. -type ConflictException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// SetReportSummaries sets the ReportSummaries field's value. +func (s *GetFindingsReportAccountSummaryOutput) SetReportSummaries(v []*FindingsReportSummary) *GetFindingsReportAccountSummaryOutput { + s.ReportSummaries = v + return s +} - Message_ *string `locationName:"message" type:"string"` +// The structure representing the GetNotificationConfigurationRequest. +type GetNotificationConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the profiling group we want to get the notification configuration + // for. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` } // String returns the string representation -func (s ConflictException) String() string { +func (s GetNotificationConfigurationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ConflictException) GoString() string { +func (s GetNotificationConfigurationInput) 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 *GetNotificationConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetNotificationConfigurationInput"} + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) } -} -// Code returns the exception type name. -func (s *ConflictException) Code() string { - return "ConflictException" + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// Message returns the exception's message. -func (s *ConflictException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *GetNotificationConfigurationInput) SetProfilingGroupName(v string) *GetNotificationConfigurationInput { + s.ProfilingGroupName = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ConflictException) OrigErr() error { - return nil +// The structure representing the GetNotificationConfigurationResponse. +type GetNotificationConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The current notification configuration for this profiling group. + // + // NotificationConfiguration is a required field + NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure" required:"true"` } -func (s *ConflictException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// String returns the string representation +func (s GetNotificationConfigurationOutput) String() string { + return awsutil.Prettify(s) } -// Status code returns the HTTP status code for the request's response error. -func (s *ConflictException) StatusCode() int { - return s.RespMetadata.StatusCode +// GoString returns the string representation +func (s GetNotificationConfigurationOutput) GoString() string { + return s.String() } -// RequestID returns the service's response RequestID for request. -func (s *ConflictException) RequestID() string { - return s.RespMetadata.RequestID +// SetNotificationConfiguration sets the NotificationConfiguration field's value. +func (s *GetNotificationConfigurationOutput) SetNotificationConfiguration(v *NotificationConfiguration) *GetNotificationConfigurationOutput { + s.NotificationConfiguration = v + return s } -// The structure representing the createProfiliingGroupRequest. -type CreateProfilingGroupInput struct { +// The structure representing the getPolicyRequest. +type GetPolicyInput struct { _ struct{} `type:"structure"` - // The agent orchestration configuration. - AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"` - - // Unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. - // - // This parameter specifies a unique identifier for the new profiling group - // that helps ensure idempotency. - ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` - // The name of the profiling group. // // ProfilingGroupName is a required field - ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` } // String returns the string representation -func (s CreateProfilingGroupInput) String() string { +func (s GetPolicyInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CreateProfilingGroupInput) GoString() string { +func (s GetPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateProfilingGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateProfilingGroupInput"} - if s.ClientToken != nil && len(*s.ClientToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) - } +func (s *GetPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"} if s.ProfilingGroupName == nil { invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) } if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) } - if s.AgentOrchestrationConfig != nil { - if err := s.AgentOrchestrationConfig.Validate(); err != nil { - invalidParams.AddNested("AgentOrchestrationConfig", err.(request.ErrInvalidParams)) - } - } if invalidParams.Len() > 0 { return invalidParams @@ -1497,73 +3561,118 @@ func (s *CreateProfilingGroupInput) Validate() error { return nil } -// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value. -func (s *CreateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *CreateProfilingGroupInput { - s.AgentOrchestrationConfig = v - return s -} - -// SetClientToken sets the ClientToken field's value. -func (s *CreateProfilingGroupInput) SetClientToken(v string) *CreateProfilingGroupInput { - s.ClientToken = &v - return s -} - // SetProfilingGroupName sets the ProfilingGroupName field's value. -func (s *CreateProfilingGroupInput) SetProfilingGroupName(v string) *CreateProfilingGroupInput { +func (s *GetPolicyInput) SetProfilingGroupName(v string) *GetPolicyInput { s.ProfilingGroupName = &v return s } -// The structure representing the createProfilingGroupResponse. -type CreateProfilingGroupOutput struct { - _ struct{} `type:"structure" payload:"ProfilingGroup"` +// The structure representing the getPolicyResponse. +type GetPolicyOutput struct { + _ struct{} `type:"structure"` - // Information about the new profiling group + // The JSON-formatted resource-based policy attached to the ProfilingGroup. // - // ProfilingGroup is a required field - ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` + // Policy is a required field + Policy *string `locationName:"policy" type:"string" required:"true"` + + // A unique identifier for the current revision of the returned policy. + // + // RevisionId is a required field + RevisionId *string `locationName:"revisionId" type:"string" required:"true"` } // String returns the string representation -func (s CreateProfilingGroupOutput) String() string { +func (s GetPolicyOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CreateProfilingGroupOutput) GoString() string { +func (s GetPolicyOutput) GoString() string { return s.String() } -// SetProfilingGroup sets the ProfilingGroup field's value. -func (s *CreateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *CreateProfilingGroupOutput { - s.ProfilingGroup = v +// SetPolicy sets the Policy field's value. +func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput { + s.Policy = &v return s } -// The structure representing the deleteProfilingGroupRequest. -type DeleteProfilingGroupInput struct { +// SetRevisionId sets the RevisionId field's value. +func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput { + s.RevisionId = &v + return s +} + +// The structure representing the getProfileRequest. +type GetProfileInput struct { _ struct{} `type:"structure"` - // The profiling group name to delete. + // The format of the returned profiling data. The format maps to the Accept + // and Content-Type headers of the HTTP request. You can specify one of the + // following: or the default . + // + // + Accept *string `location:"header" locationName:"Accept" type:"string"` + + // The end time of the requested profile. Specify using the ISO 8601 format. + // For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June + // 1, 2020 1:15:02 PM UTC. + // + // If you specify endTime, then you must also specify period or startTime, but + // not both. + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + + // The maximum depth of the stacks in the code that is represented in the aggregated + // profile. For example, if CodeGuru Profiler finds a method A, which calls + // method B, which calls method C, which calls method D, then the depth is 4. + // If the maxDepth is set to 2, then the aggregated profile contains representations + // of methods A and B. + MaxDepth *int64 `location:"querystring" locationName:"maxDepth" min:"1" type:"integer"` + + // Used with startTime or endTime to specify the time range for the returned + // aggregated profile. Specify using the ISO 8601 format. For example, P1DT1H1M1S. + // + //

To get the latest aggregated profile, specify only period. + //

+ Period *string `location:"querystring" locationName:"period" min:"1" type:"string"` + + // The name of the profiling group to get. // // ProfilingGroupName is a required field ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The start time of the profile to get. Specify using the ISO 8601 format. + // For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June + // 1, 2020 1:15:02 PM UTC. + // + //

If you specify startTime, then you must also specify + // period or endTime, but not both.

+ StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"` } // String returns the string representation -func (s DeleteProfilingGroupInput) String() string { +func (s GetProfileInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteProfilingGroupInput) GoString() string { +func (s GetProfileInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteProfilingGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteProfilingGroupInput"} +func (s *GetProfileInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetProfileInput"} + if s.MaxDepth != nil && *s.MaxDepth < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1)) + } + if s.Period != nil && len(*s.Period) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Period", 1)) + } if s.ProfilingGroupName == nil { invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) } @@ -1577,56 +3686,166 @@ func (s *DeleteProfilingGroupInput) Validate() error { return nil } +// SetAccept sets the Accept field's value. +func (s *GetProfileInput) SetAccept(v string) *GetProfileInput { + s.Accept = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *GetProfileInput) SetEndTime(v time.Time) *GetProfileInput { + s.EndTime = &v + return s +} + +// SetMaxDepth sets the MaxDepth field's value. +func (s *GetProfileInput) SetMaxDepth(v int64) *GetProfileInput { + s.MaxDepth = &v + return s +} + +// SetPeriod sets the Period field's value. +func (s *GetProfileInput) SetPeriod(v string) *GetProfileInput { + s.Period = &v + return s +} + // SetProfilingGroupName sets the ProfilingGroupName field's value. -func (s *DeleteProfilingGroupInput) SetProfilingGroupName(v string) *DeleteProfilingGroupInput { +func (s *GetProfileInput) SetProfilingGroupName(v string) *GetProfileInput { s.ProfilingGroupName = &v return s } -// The structure representing the deleteProfilingGroupResponse. -type DeleteProfilingGroupOutput struct { - _ struct{} `type:"structure"` +// SetStartTime sets the StartTime field's value. +func (s *GetProfileInput) SetStartTime(v time.Time) *GetProfileInput { + s.StartTime = &v + return s +} + +// The structure representing the getProfileResponse. +type GetProfileOutput struct { + _ struct{} `type:"structure" payload:"Profile"` + + // The content encoding of the profile. + ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` + + // The content type of the profile in the payload. It is either application/json + // or the default application/x-amzn-ion. + // + // ContentType is a required field + ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"` + + // Information about the profile. + // + // Profile is a required field + Profile []byte `locationName:"profile" type:"blob" required:"true"` } // String returns the string representation -func (s DeleteProfilingGroupOutput) String() string { +func (s GetProfileOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteProfilingGroupOutput) GoString() string { +func (s GetProfileOutput) GoString() string { return s.String() } -// The structure representing the describeProfilingGroupRequest. -type DescribeProfilingGroupInput struct { +// SetContentEncoding sets the ContentEncoding field's value. +func (s *GetProfileOutput) SetContentEncoding(v string) *GetProfileOutput { + s.ContentEncoding = &v + return s +} + +// SetContentType sets the ContentType field's value. +func (s *GetProfileOutput) SetContentType(v string) *GetProfileOutput { + s.ContentType = &v + return s +} + +// SetProfile sets the Profile field's value. +func (s *GetProfileOutput) SetProfile(v []byte) *GetProfileOutput { + s.Profile = v + return s +} + +// The structure representing the GetRecommendationsRequest. +type GetRecommendationsInput struct { _ struct{} `type:"structure"` - // The profiling group name. + // The start time of the profile to get analysis data about. You must specify + // startTime and endTime. This is specified using the ISO 8601 format. For example, + // 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 + // PM UTC. + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The language used to provide analysis. Specify using a string that is one + // of the following BCP 47 language codes. + // + // * de-DE - German, Germany + // + // * en-GB - English, United Kingdom + // + // * en-US - English, United States + // + // * es-ES - Spanish, Spain + // + // * fr-FR - French, France + // + // * it-IT - Italian, Italy + // + // * ja-JP - Japanese, Japan + // + // * ko-KR - Korean, Republic of Korea + // + // * pt-BR - Portugese, Brazil + // + // * zh-CN - Chinese, China + // + // * zh-TW - Chinese, Taiwan + Locale *string `location:"querystring" locationName:"locale" type:"string"` + + // The name of the profiling group to get analysis data about. // // ProfilingGroupName is a required field ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The end time of the profile to get analysis data about. You must specify + // startTime and endTime. This is specified using the ISO 8601 format. For example, + // 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 + // PM UTC. + // + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` } // String returns the string representation -func (s DescribeProfilingGroupInput) String() string { +func (s GetRecommendationsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeProfilingGroupInput) GoString() string { +func (s GetRecommendationsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeProfilingGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeProfilingGroupInput"} +func (s *GetRecommendationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetRecommendationsInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) + } if s.ProfilingGroupName == nil { invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) } if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } if invalidParams.Len() > 0 { return invalidParams @@ -1634,169 +3853,229 @@ func (s *DescribeProfilingGroupInput) Validate() error { return nil } -// SetProfilingGroupName sets the ProfilingGroupName field's value. -func (s *DescribeProfilingGroupInput) SetProfilingGroupName(v string) *DescribeProfilingGroupInput { - s.ProfilingGroupName = &v +// SetEndTime sets the EndTime field's value. +func (s *GetRecommendationsInput) SetEndTime(v time.Time) *GetRecommendationsInput { + s.EndTime = &v return s } -// The structure representing the describeProfilingGroupResponse. -type DescribeProfilingGroupOutput struct { - _ struct{} `type:"structure" payload:"ProfilingGroup"` - - // Information about a profiling group. - // - // ProfilingGroup is a required field - ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` -} - -// String returns the string representation -func (s DescribeProfilingGroupOutput) String() string { - return awsutil.Prettify(s) +// SetLocale sets the Locale field's value. +func (s *GetRecommendationsInput) SetLocale(v string) *GetRecommendationsInput { + s.Locale = &v + return s } -// GoString returns the string representation -func (s DescribeProfilingGroupOutput) GoString() string { - return s.String() +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *GetRecommendationsInput) SetProfilingGroupName(v string) *GetRecommendationsInput { + s.ProfilingGroupName = &v + return s } -// SetProfilingGroup sets the ProfilingGroup field's value. -func (s *DescribeProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *DescribeProfilingGroupOutput { - s.ProfilingGroup = v +// SetStartTime sets the StartTime field's value. +func (s *GetRecommendationsInput) SetStartTime(v time.Time) *GetRecommendationsInput { + s.StartTime = &v return s } -// The structure representing the getPolicyRequest. -type GetPolicyInput struct { +// The structure representing the GetRecommendationsResponse. +type GetRecommendationsOutput struct { _ struct{} `type:"structure"` - // The name of the profiling group. + // The list of anomalies that the analysis has found for this profile. + // + // Anomalies is a required field + Anomalies []*Anomaly `locationName:"anomalies" type:"list" required:"true"` + + // The end time of the profile the analysis data is about. This is specified + // using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents + // 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // ProfileEndTime is a required field + ProfileEndTime *time.Time `locationName:"profileEndTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The start time of the profile the analysis data is about. This is specified + // using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents + // 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // ProfileStartTime is a required field + ProfileStartTime *time.Time `locationName:"profileStartTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The name of the profiling group the analysis data is about. // // ProfilingGroupName is a required field - ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The list of recommendations that the analysis found for this profile. + // + // Recommendations is a required field + Recommendations []*Recommendation `locationName:"recommendations" type:"list" required:"true"` } // String returns the string representation -func (s GetPolicyInput) String() string { +func (s GetRecommendationsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetPolicyInput) GoString() string { +func (s GetRecommendationsOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"} - if s.ProfilingGroupName == nil { - invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) - } - if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) - } +// SetAnomalies sets the Anomalies field's value. +func (s *GetRecommendationsOutput) SetAnomalies(v []*Anomaly) *GetRecommendationsOutput { + s.Anomalies = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetProfileEndTime sets the ProfileEndTime field's value. +func (s *GetRecommendationsOutput) SetProfileEndTime(v time.Time) *GetRecommendationsOutput { + s.ProfileEndTime = &v + return s +} + +// SetProfileStartTime sets the ProfileStartTime field's value. +func (s *GetRecommendationsOutput) SetProfileStartTime(v time.Time) *GetRecommendationsOutput { + s.ProfileStartTime = &v + return s } // SetProfilingGroupName sets the ProfilingGroupName field's value. -func (s *GetPolicyInput) SetProfilingGroupName(v string) *GetPolicyInput { +func (s *GetRecommendationsOutput) SetProfilingGroupName(v string) *GetRecommendationsOutput { s.ProfilingGroupName = &v return s } -// The structure representing the getPolicyResponse. -type GetPolicyOutput struct { - _ struct{} `type:"structure"` +// SetRecommendations sets the Recommendations field's value. +func (s *GetRecommendationsOutput) SetRecommendations(v []*Recommendation) *GetRecommendationsOutput { + s.Recommendations = v + return s +} - // The resource-based policy attached to the ProfilingGroup. - // - // Policy is a required field - Policy *string `locationName:"policy" type:"string" required:"true"` +// The server encountered an internal error and is unable to complete the request. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // A unique identifier for the current revision of the policy. - // - // RevisionId is a required field - RevisionId *string `locationName:"revisionId" type:"string" required:"true"` + Message_ *string `locationName:"message" type:"string"` } // String returns the string representation -func (s GetPolicyOutput) String() string { +func (s InternalServerException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetPolicyOutput) GoString() string { +func (s InternalServerException) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput { - s.Policy = &v - return s +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } } -// SetRevisionId sets the RevisionId field's value. -func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput { - s.RevisionId = &v - return s +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" } -// The structure representing the getProfileRequest. -type GetProfileInput struct { +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) 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 *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 +} + +// The structure representing the ListFindingsReportsRequest. +type ListFindingsReportsInput struct { _ struct{} `type:"structure"` - // The format of the profile to return. You can choose application/json or the - // default application/x-amzn-ion. - Accept *string `location:"header" locationName:"Accept" type:"string"` + // A Boolean value indicating whether to only return reports from daily profiles. + // If set to True, only analysis data from daily profiles is returned. If set + // to False, analysis data is returned from smaller time windows (for example, + // one hour). + DailyReportsOnly *bool `location:"querystring" locationName:"dailyReportsOnly" type:"boolean"` - // You must specify exactly two of the following parameters: startTime, period, - // and endTime. - EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + // The end time of the profile to get analysis data about. You must specify + // startTime and endTime. This is specified using the ISO 8601 format. For example, + // 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 + // PM UTC. + // + // EndTime is a required field + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` - // The maximum depth of the graph. - MaxDepth *int64 `location:"querystring" locationName:"maxDepth" min:"1" type:"integer"` + // The maximum number of report results returned by ListFindingsReports in paginated + // output. When this parameter is used, ListFindingsReports only returns maxResults + // results in a single page along with a nextToken response element. The remaining + // results of the initial request can be seen by sending another ListFindingsReports + // request with the returned nextToken value. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` - // The period of the profile to get. The time range must be in the past and - // not longer than one week. + // The nextToken value returned from a previous paginated ListFindingsReportsRequest + // request where maxResults was used and the results exceeded the value of that + // parameter. Pagination continues from the end of the previous results that + // returned the nextToken value. // - // You must specify exactly two of the following parameters: startTime, period, - // and endTime. - Period *string `location:"querystring" locationName:"period" min:"1" type:"string"` + // This token should be treated as an opaque identifier that is only used to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` - // The name of the profiling group to get. + // The name of the profiling group from which to search for analysis data. // // ProfilingGroupName is a required field ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` - // The start time of the profile to get. + // The start time of the profile to get analysis data about. You must specify + // startTime and endTime. This is specified using the ISO 8601 format. For example, + // 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 + // PM UTC. // - // You must specify exactly two of the following parameters: startTime, period, - // and endTime. - StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"` + // StartTime is a required field + StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` } // String returns the string representation -func (s GetProfileInput) String() string { +func (s ListFindingsReportsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetProfileInput) GoString() string { +func (s ListFindingsReportsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetProfileInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetProfileInput"} - if s.MaxDepth != nil && *s.MaxDepth < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1)) +func (s *ListFindingsReportsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListFindingsReportsInput"} + if s.EndTime == nil { + invalidParams.Add(request.NewErrParamRequired("EndTime")) } - if s.Period != nil && len(*s.Period) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Period", 1)) + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } if s.ProfilingGroupName == nil { invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) @@ -1804,6 +4083,9 @@ func (s *GetProfileInput) Validate() error { if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } if invalidParams.Len() > 0 { return invalidParams @@ -1811,145 +4093,80 @@ func (s *GetProfileInput) Validate() error { return nil } -// SetAccept sets the Accept field's value. -func (s *GetProfileInput) SetAccept(v string) *GetProfileInput { - s.Accept = &v +// SetDailyReportsOnly sets the DailyReportsOnly field's value. +func (s *ListFindingsReportsInput) SetDailyReportsOnly(v bool) *ListFindingsReportsInput { + s.DailyReportsOnly = &v return s } // SetEndTime sets the EndTime field's value. -func (s *GetProfileInput) SetEndTime(v time.Time) *GetProfileInput { +func (s *ListFindingsReportsInput) SetEndTime(v time.Time) *ListFindingsReportsInput { s.EndTime = &v return s } -// SetMaxDepth sets the MaxDepth field's value. -func (s *GetProfileInput) SetMaxDepth(v int64) *GetProfileInput { - s.MaxDepth = &v +// SetMaxResults sets the MaxResults field's value. +func (s *ListFindingsReportsInput) SetMaxResults(v int64) *ListFindingsReportsInput { + s.MaxResults = &v return s } -// SetPeriod sets the Period field's value. -func (s *GetProfileInput) SetPeriod(v string) *GetProfileInput { - s.Period = &v +// SetNextToken sets the NextToken field's value. +func (s *ListFindingsReportsInput) SetNextToken(v string) *ListFindingsReportsInput { + s.NextToken = &v return s } // SetProfilingGroupName sets the ProfilingGroupName field's value. -func (s *GetProfileInput) SetProfilingGroupName(v string) *GetProfileInput { +func (s *ListFindingsReportsInput) SetProfilingGroupName(v string) *ListFindingsReportsInput { s.ProfilingGroupName = &v return s } // SetStartTime sets the StartTime field's value. -func (s *GetProfileInput) SetStartTime(v time.Time) *GetProfileInput { +func (s *ListFindingsReportsInput) SetStartTime(v time.Time) *ListFindingsReportsInput { s.StartTime = &v return s } -// The structure representing the getProfileResponse. -type GetProfileOutput struct { - _ struct{} `type:"structure" payload:"Profile"` - - // The content encoding of the profile. - ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` +// The structure representing the ListFindingsReportsResponse. +type ListFindingsReportsOutput struct { + _ struct{} `type:"structure"` - // The content type of the profile in the payload. It is either application/json - // or the default application/x-amzn-ion. + // The list of analysis results summaries. // - // ContentType is a required field - ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"` + // FindingsReportSummaries is a required field + FindingsReportSummaries []*FindingsReportSummary `locationName:"findingsReportSummaries" type:"list" required:"true"` - // Information about the profile. - // - // Profile is a required field - Profile []byte `locationName:"profile" type:"blob" required:"true"` + // The nextToken value to include in a future ListFindingsReports request. When + // the results of a ListFindingsReports request exceed maxResults, this value + // can be used to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation -func (s GetProfileOutput) String() string { +func (s ListFindingsReportsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetProfileOutput) GoString() string { +func (s ListFindingsReportsOutput) GoString() string { return s.String() } -// SetContentEncoding sets the ContentEncoding field's value. -func (s *GetProfileOutput) SetContentEncoding(v string) *GetProfileOutput { - s.ContentEncoding = &v - return s -} - -// SetContentType sets the ContentType field's value. -func (s *GetProfileOutput) SetContentType(v string) *GetProfileOutput { - s.ContentType = &v +// SetFindingsReportSummaries sets the FindingsReportSummaries field's value. +func (s *ListFindingsReportsOutput) SetFindingsReportSummaries(v []*FindingsReportSummary) *ListFindingsReportsOutput { + s.FindingsReportSummaries = v return s } -// SetProfile sets the Profile field's value. -func (s *GetProfileOutput) SetProfile(v []byte) *GetProfileOutput { - s.Profile = v +// SetNextToken sets the NextToken field's value. +func (s *ListFindingsReportsOutput) SetNextToken(v string) *ListFindingsReportsOutput { + s.NextToken = &v return s } -// The server encountered an internal error and is unable to complete the request. -type InternalServerException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InternalServerException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InternalServerException) GoString() string { - return s.String() -} - -func newErrorInternalServerException(v protocol.ResponseMetadata) error { - return &InternalServerException{ - RespMetadata: v, - } -} - -// 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_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InternalServerException) OrigErr() error { - return nil -} - -func (s *InternalServerException) 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 *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 -} - // The structure representing the listProfileTimesRequest. type ListProfileTimesInput struct { _ struct{} `type:"structure"` @@ -1979,7 +4196,15 @@ type ListProfileTimesInput struct { // listing profiles. Defaults to TIMESTAMP_DESCENDING. OrderBy *string `location:"querystring" locationName:"orderBy" type:"string" enum:"OrderBy"` - // The aggregation period. + // The aggregation period. This specifies the period during which an aggregation + // profile collects posted agent profiles for a profiling group. There are 3 + // valid values. + // + // * P1D — 1 day + // + // * PT1H — 1 hour + // + // * PT5M — 5 minutes // // Period is a required field Period *string `location:"querystring" locationName:"period" type:"string" required:"true" enum:"AggregationPeriod"` @@ -2121,7 +4346,10 @@ func (s *ListProfileTimesOutput) SetProfileTimes(v []*ProfileTime) *ListProfileT type ListProfilingGroupsInput struct { _ struct{} `type:"structure"` - // A Boolean value indicating whether to include a description. + // A Boolean value indicating whether to include a description. If true, then + // a list of ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // objects that contain detailed information about profiling groups is returned. + // If false, then a list of profiling group names is returned. IncludeDescription *bool `location:"querystring" locationName:"includeDescription" type:"boolean"` // The maximum number of profiling groups results returned by ListProfilingGroups @@ -2195,12 +4423,18 @@ type ListProfilingGroupsOutput struct { // there are no more results to return. NextToken *string `locationName:"nextToken" min:"1" type:"string"` - // Information about profiling group names. + // A returned list of profiling group names. A list of the names is returned + // only if includeDescription is false, otherwise a list of ProfilingGroupDescription + // (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // objects is returned. // // ProfilingGroupNames is a required field ProfilingGroupNames []*string `locationName:"profilingGroupNames" type:"list" required:"true"` - // Information about profiling groups. + // A returned list ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // objects. A list of ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // objects is returned only if includeDescription is true, otherwise a list + // of profiling group names is returned. ProfilingGroups []*ProfilingGroupDescription `locationName:"profilingGroups" type:"list"` } @@ -2209,26 +4443,232 @@ func (s ListProfilingGroupsOutput) String() string { return awsutil.Prettify(s) } -// GoString returns the string representation -func (s ListProfilingGroupsOutput) GoString() string { - return s.String() +// GoString returns the string representation +func (s ListProfilingGroupsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfilingGroupsOutput) SetNextToken(v string) *ListProfilingGroupsOutput { + s.NextToken = &v + return s +} + +// SetProfilingGroupNames sets the ProfilingGroupNames field's value. +func (s *ListProfilingGroupsOutput) SetProfilingGroupNames(v []*string) *ListProfilingGroupsOutput { + s.ProfilingGroupNames = v + return s +} + +// SetProfilingGroups sets the ProfilingGroups field's value. +func (s *ListProfilingGroupsOutput) SetProfilingGroups(v []*ProfilingGroupDescription) *ListProfilingGroupsOutput { + s.ProfilingGroups = v + return s +} + +// The part of a profile that contains a recommendation found during analysis. +type Match struct { + _ struct{} `type:"structure"` + + // The location in the profiling graph that contains a recommendation found + // during analysis. + FrameAddress *string `locationName:"frameAddress" type:"string"` + + // The target frame that triggered a match. + TargetFramesIndex *int64 `locationName:"targetFramesIndex" type:"integer"` + + // The value in the profile data that exceeded the recommendation threshold. + ThresholdBreachValue *float64 `locationName:"thresholdBreachValue" type:"double"` +} + +// String returns the string representation +func (s Match) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Match) GoString() string { + return s.String() +} + +// SetFrameAddress sets the FrameAddress field's value. +func (s *Match) SetFrameAddress(v string) *Match { + s.FrameAddress = &v + return s +} + +// SetTargetFramesIndex sets the TargetFramesIndex field's value. +func (s *Match) SetTargetFramesIndex(v int64) *Match { + s.TargetFramesIndex = &v + return s +} + +// SetThresholdBreachValue sets the ThresholdBreachValue field's value. +func (s *Match) SetThresholdBreachValue(v float64) *Match { + s.ThresholdBreachValue = &v + return s +} + +// Details about the metric that the analysis used when it detected the anomaly. +// The metric what is analyzed to create recommendations. It includes the name +// of the frame that was analyzed and the type and thread states used to derive +// the metric value for that frame. +type Metric struct { + _ struct{} `type:"structure"` + + // The name of the method that appears as a frame in any stack in a profile. + // + // FrameName is a required field + FrameName *string `locationName:"frameName" type:"string" required:"true"` + + // The list of application runtime thread states that is used to calculate the + // metric value for the frame. + // + // ThreadStates is a required field + ThreadStates []*string `locationName:"threadStates" type:"list" required:"true"` + + // A type that specifies how a metric for a frame is analyzed. The supported + // value AggregatedRelativeTotalTime is an aggregation of the metric value for + // one frame that is calculated across the occurences of all frames in a profile. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"MetricType"` +} + +// String returns the string representation +func (s Metric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Metric) GoString() string { + return s.String() +} + +// SetFrameName sets the FrameName field's value. +func (s *Metric) SetFrameName(v string) *Metric { + s.FrameName = &v + return s +} + +// SetThreadStates sets the ThreadStates field's value. +func (s *Metric) SetThreadStates(v []*string) *Metric { + s.ThreadStates = v + return s +} + +// SetType sets the Type field's value. +func (s *Metric) SetType(v string) *Metric { + s.Type = &v + return s +} + +// The configuration for notifications stored for each profiling group. This +// includes up to to two channels and a list of event publishers associated +// with each channel. +type NotificationConfiguration struct { + _ struct{} `type:"structure"` + + // List of up to two channels to be used for sending notifications for events + // detected from the application profile. + Channels []*Channel `locationName:"channels" min:"1" type:"list"` +} + +// String returns the string representation +func (s NotificationConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NotificationConfiguration) GoString() string { + return s.String() +} + +// SetChannels sets the Channels field's value. +func (s *NotificationConfiguration) SetChannels(v []*Channel) *NotificationConfiguration { + s.Channels = v + return s +} + +// A set of rules used to make a recommendation during an analysis. +type Pattern struct { + _ struct{} `type:"structure"` + + // A list of the different counters used to determine if there is a match. + CountersToAggregate []*string `locationName:"countersToAggregate" type:"list"` + + // The description of the recommendation. This explains a potential inefficiency + // in a profiled application. + Description *string `locationName:"description" type:"string"` + + // The universally unique identifier (UUID) of this pattern. + Id *string `locationName:"id" type:"string"` + + // The name for this pattern. + Name *string `locationName:"name" type:"string"` + + // A string that contains the steps recommended to address the potential inefficiency. + ResolutionSteps *string `locationName:"resolutionSteps" type:"string"` + + // A list of frame names that were searched during the analysis that generated + // a recommendation. + TargetFrames [][]*string `locationName:"targetFrames" type:"list"` + + // The percentage of time an application spends in one method that triggers + // a recommendation. The percentage of time is the same as the percentage of + // the total gathered sample counts during analysis. + ThresholdPercent *float64 `locationName:"thresholdPercent" type:"double"` +} + +// String returns the string representation +func (s Pattern) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Pattern) GoString() string { + return s.String() +} + +// SetCountersToAggregate sets the CountersToAggregate field's value. +func (s *Pattern) SetCountersToAggregate(v []*string) *Pattern { + s.CountersToAggregate = v + return s +} + +// SetDescription sets the Description field's value. +func (s *Pattern) SetDescription(v string) *Pattern { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *Pattern) SetId(v string) *Pattern { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *Pattern) SetName(v string) *Pattern { + s.Name = &v + return s } -// SetNextToken sets the NextToken field's value. -func (s *ListProfilingGroupsOutput) SetNextToken(v string) *ListProfilingGroupsOutput { - s.NextToken = &v +// SetResolutionSteps sets the ResolutionSteps field's value. +func (s *Pattern) SetResolutionSteps(v string) *Pattern { + s.ResolutionSteps = &v return s } -// SetProfilingGroupNames sets the ProfilingGroupNames field's value. -func (s *ListProfilingGroupsOutput) SetProfilingGroupNames(v []*string) *ListProfilingGroupsOutput { - s.ProfilingGroupNames = v +// SetTargetFrames sets the TargetFrames field's value. +func (s *Pattern) SetTargetFrames(v [][]*string) *Pattern { + s.TargetFrames = v return s } -// SetProfilingGroups sets the ProfilingGroups field's value. -func (s *ListProfilingGroupsOutput) SetProfilingGroups(v []*ProfilingGroupDescription) *ListProfilingGroupsOutput { - s.ProfilingGroups = v +// SetThresholdPercent sets the ThresholdPercent field's value. +func (s *Pattern) SetThresholdPercent(v float64) *Pattern { + s.ThresholdPercent = &v return s } @@ -2236,14 +4676,31 @@ func (s *ListProfilingGroupsOutput) SetProfilingGroups(v []*ProfilingGroupDescri type PostAgentProfileInput struct { _ struct{} `type:"structure" payload:"AgentProfile"` + // The submitted profiling data. + // // AgentProfile is a required field AgentProfile []byte `locationName:"agentProfile" type:"blob" required:"true"` + // The format of the submitted profiling data. The format maps to the Accept + // and Content-Type headers of the HTTP request. You can specify one of the + // following: or the default . + // + // + // // ContentType is a required field ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"` + // Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to + // prevent the accidental submission of duplicate profiling data if there are + // failures and retries. ProfileToken *string `location:"querystring" locationName:"profileToken" min:"1" type:"string" idempotencyToken:"true"` + // The name of the profiling group with the aggregated profile that receives + // the submitted profiling data. + // // ProfilingGroupName is a required field ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` } @@ -2322,11 +4779,13 @@ func (s PostAgentProfileOutput) GoString() string { return s.String() } -// Information about the profile time. +// Contains the start time of a profile. type ProfileTime struct { _ struct{} `type:"structure"` - // The start time of the profile. + // The start time of a profile. It is specified using the ISO 8601 format. For + // example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 + // 1:15:02 PM UTC. Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"` } @@ -2346,26 +4805,41 @@ func (s *ProfileTime) SetStart(v time.Time) *ProfileTime { return s } -// The description of a profiling group. +// Contains information about a profiling group. type ProfilingGroupDescription struct { _ struct{} `type:"structure"` + // An AgentOrchestrationConfig (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html) + // object that indicates if the profiling group is enabled for profiled or not. AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"` - // The Amazon Resource Name (ARN) identifying the profiling group. + // The Amazon Resource Name (ARN) identifying the profiling group resource. Arn *string `locationName:"arn" type:"string"` - // The time, in milliseconds since the epoch, when the profiling group was created. + // The compute platform of the profiling group. If it is set to AWSLambda, then + // the profiled application runs on AWS Lambda. If it is set to Default, then + // the profiled application runs on a compute platform that is not AWS Lambda, + // such an Amazon EC2 instance, an on-premises server, or a different platform. + // The default is Default. + ComputePlatform *string `locationName:"computePlatform" type:"string" enum:"ComputePlatform"` + + // The time when the profiling group was created. Specify using the ISO 8601 + // format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past + // June 1, 2020 1:15:02 PM UTC. CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"` // The name of the profiling group. Name *string `locationName:"name" min:"1" type:"string"` - // The status of the profiling group. + // A ProfilingStatus (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html) + // object that includes information about the last time a profile agent pinged + // back, the last time a profile was received, and the aggregation period and + // start time for the most recent aggregated profile. ProfilingStatus *ProfilingStatus `locationName:"profilingStatus" type:"structure"` - // The time, in milliseconds since the epoch, when the profiling group was last - // updated. + // The date and time when the profiling group was last updated. Specify using + // the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond + // past June 1, 2020 1:15:02 PM UTC. UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"` } @@ -2391,6 +4865,12 @@ func (s *ProfilingGroupDescription) SetArn(v string) *ProfilingGroupDescription return s } +// SetComputePlatform sets the ComputePlatform field's value. +func (s *ProfilingGroupDescription) SetComputePlatform(v string) *ProfilingGroupDescription { + s.ComputePlatform = &v + return s +} + // SetCreatedAt sets the CreatedAt field's value. func (s *ProfilingGroupDescription) SetCreatedAt(v time.Time) *ProfilingGroupDescription { s.CreatedAt = &v @@ -2415,17 +4895,25 @@ func (s *ProfilingGroupDescription) SetUpdatedAt(v time.Time) *ProfilingGroupDes return s } -// Information about the profiling status. +// Profiling status includes information about the last time a profile agent +// pinged back, the last time a profile was received, and the aggregation period +// and start time for the most recent aggregated profile. type ProfilingStatus struct { _ struct{} `type:"structure"` - // The time, in milliseconds since the epoch, when the latest agent was orchestrated. + // The date and time when the profiling agent most recently pinged back. Specify + // using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents + // 1 millisecond past June 1, 2020 1:15:02 PM UTC. LatestAgentOrchestratedAt *time.Time `locationName:"latestAgentOrchestratedAt" type:"timestamp" timestampFormat:"iso8601"` - // The time, in milliseconds since the epoch, when the latest agent was reported.. + // The date and time when the most recent profile was received. Specify using + // the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond + // past June 1, 2020 1:15:02 PM UTC. LatestAgentProfileReportedAt *time.Time `locationName:"latestAgentProfileReportedAt" type:"timestamp" timestampFormat:"iso8601"` - // The latest aggregated profile + // An AggregatedProfileTime (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html) + // object that contains the aggregation period and start time for an aggregated + // profile. LatestAggregatedProfile *AggregatedProfileTime `locationName:"latestAggregatedProfile" type:"structure"` } @@ -2461,26 +4949,29 @@ func (s *ProfilingStatus) SetLatestAggregatedProfile(v *AggregatedProfileTime) * type PutPermissionInput struct { _ struct{} `type:"structure"` - // The list of actions that the users and roles can perform on the profiling - // group. + // Specifies an action group that contains permissions to add to a profiling + // group resource. One action group is supported, agentPermissions, which grants + // permission to perform actions required by the profiling agent, ConfigureAgent + // and PostAgentProfile permissions. // // ActionGroup is a required field ActionGroup *string `location:"uri" locationName:"actionGroup" type:"string" required:"true" enum:"ActionGroup"` - // The list of role and user ARNs or the accountId that needs access (wildcards - // are not allowed). + // A list ARNs for the roles and users you want to grant access to the profiling + // group. Wildcards are not are supported in the ARNs. // // Principals is a required field Principals []*string `locationName:"principals" min:"1" type:"list" required:"true"` - // The name of the profiling group. + // The name of the profiling group to grant access to. // // ProfilingGroupName is a required field ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` - // A unique identifier for the current revision of the policy. This is required, - // if a policy exists for the profiling group. This is not required when creating - // the policy for the first time. + // A universally unique identifier (UUID) for the revision of the policy you + // are adding to the profiling group. Do not specify this when you add permissions + // to a profiling group for the first time. If a policy already exists on the + // profiling group, you must specify the revisionId. RevisionId *string `locationName:"revisionId" type:"string"` } @@ -2550,12 +5041,15 @@ func (s *PutPermissionInput) SetRevisionId(v string) *PutPermissionInput { type PutPermissionOutput struct { _ struct{} `type:"structure"` - // The resource-based policy. + // The JSON-formatted resource-based policy on the profiling group that includes + // the added permissions. // // Policy is a required field Policy *string `locationName:"policy" type:"string" required:"true"` - // A unique identifier for the current revision of the policy. + // A universally unique identifier (UUID) for the revision of the resource-based + // policy that includes the added permissions. The JSON-formatted policy is + // in the policy element of the response. // // RevisionId is a required field RevisionId *string `locationName:"revisionId" type:"string" required:"true"` @@ -2583,12 +5077,181 @@ func (s *PutPermissionOutput) SetRevisionId(v string) *PutPermissionOutput { return s } -// The structure representing the removePermissionRequest. +// A potential improvement that was found from analyzing the profiling data. +type Recommendation struct { + _ struct{} `type:"structure"` + + // How many different places in the profile graph triggered a match. + // + // AllMatchesCount is a required field + AllMatchesCount *int64 `locationName:"allMatchesCount" type:"integer" required:"true"` + + // How much of the total sample count is potentially affected. + // + // AllMatchesSum is a required field + AllMatchesSum *float64 `locationName:"allMatchesSum" type:"double" required:"true"` + + // End time of the profile that was used by this analysis. This is specified + // using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents + // 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // EndTime is a required field + EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The pattern that analysis recognized in the profile to make this recommendation. + // + // Pattern is a required field + Pattern *Pattern `locationName:"pattern" type:"structure" required:"true"` + + // The start time of the profile that was used by this analysis. This is specified + // using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents + // 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // StartTime is a required field + StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // List of the matches with most impact. + // + // TopMatches is a required field + TopMatches []*Match `locationName:"topMatches" type:"list" required:"true"` +} + +// String returns the string representation +func (s Recommendation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Recommendation) GoString() string { + return s.String() +} + +// SetAllMatchesCount sets the AllMatchesCount field's value. +func (s *Recommendation) SetAllMatchesCount(v int64) *Recommendation { + s.AllMatchesCount = &v + return s +} + +// SetAllMatchesSum sets the AllMatchesSum field's value. +func (s *Recommendation) SetAllMatchesSum(v float64) *Recommendation { + s.AllMatchesSum = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *Recommendation) SetEndTime(v time.Time) *Recommendation { + s.EndTime = &v + return s +} + +// SetPattern sets the Pattern field's value. +func (s *Recommendation) SetPattern(v *Pattern) *Recommendation { + s.Pattern = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *Recommendation) SetStartTime(v time.Time) *Recommendation { + s.StartTime = &v + return s +} + +// SetTopMatches sets the TopMatches field's value. +func (s *Recommendation) SetTopMatches(v []*Match) *Recommendation { + s.TopMatches = v + return s +} + +// The structure representing the RemoveNotificationChannelRequest. +type RemoveNotificationChannelInput struct { + _ struct{} `type:"structure"` + + // The id of the channel that we want to stop receiving notifications. + // + // ChannelId is a required field + ChannelId *string `location:"uri" locationName:"channelId" type:"string" required:"true"` + + // The name of the profiling group we want to change notification configuration + // for. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s RemoveNotificationChannelInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemoveNotificationChannelInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RemoveNotificationChannelInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RemoveNotificationChannelInput"} + if s.ChannelId == nil { + invalidParams.Add(request.NewErrParamRequired("ChannelId")) + } + if s.ChannelId != nil && len(*s.ChannelId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ChannelId", 1)) + } + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetChannelId sets the ChannelId field's value. +func (s *RemoveNotificationChannelInput) SetChannelId(v string) *RemoveNotificationChannelInput { + s.ChannelId = &v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *RemoveNotificationChannelInput) SetProfilingGroupName(v string) *RemoveNotificationChannelInput { + s.ProfilingGroupName = &v + return s +} + +// The structure representing the RemoveNotificationChannelResponse. +type RemoveNotificationChannelOutput struct { + _ struct{} `type:"structure"` + + // The new notification configuration for this profiling group. + NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure"` +} + +// String returns the string representation +func (s RemoveNotificationChannelOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemoveNotificationChannelOutput) GoString() string { + return s.String() +} + +// SetNotificationConfiguration sets the NotificationConfiguration field's value. +func (s *RemoveNotificationChannelOutput) SetNotificationConfiguration(v *NotificationConfiguration) *RemoveNotificationChannelOutput { + s.NotificationConfiguration = v + return s +} + type RemovePermissionInput struct { _ struct{} `type:"structure"` - // The list of actions that the users and roles can perform on the profiling - // group. + // Specifies an action group that contains the permissions to remove from a + // profiling group's resource-based policy. One action group is supported, agentPermissions, + // which grants ConfigureAgent and PostAgentProfile permissions. // // ActionGroup is a required field ActionGroup *string `location:"uri" locationName:"actionGroup" type:"string" required:"true" enum:"ActionGroup"` @@ -2598,7 +5261,8 @@ type RemovePermissionInput struct { // ProfilingGroupName is a required field ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` - // A unique identifier for the current revision of the policy. + // A universally unique identifier (UUID) for the revision of the resource-based + // policy from which you want to remove permissions. // // RevisionId is a required field RevisionId *string `location:"querystring" locationName:"revisionId" type:"string" required:"true"` @@ -2661,12 +5325,15 @@ func (s *RemovePermissionInput) SetRevisionId(v string) *RemovePermissionInput { type RemovePermissionOutput struct { _ struct{} `type:"structure"` - // The resource-based policy. + // The JSON-formatted resource-based policy on the profiling group after the + // specified permissions were removed. // // Policy is a required field Policy *string `locationName:"policy" type:"string" required:"true"` - // A unique identifier for the current revision of the policy. + // A universally unique identifier (UUID) for the revision of the resource-based + // policy after the specified permissions were removed. The updated JSON-formatted + // policy is in the policy element of the response. // // RevisionId is a required field RevisionId *string `locationName:"revisionId" type:"string" required:"true"` @@ -2808,6 +5475,104 @@ func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } +// The structure representing the SubmitFeedbackRequest. +type SubmitFeedbackInput struct { + _ struct{} `type:"structure"` + + // The universally unique identifier (UUID) of the AnomalyInstance (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html) + // object that is included in the analysis data. + // + // AnomalyInstanceId is a required field + AnomalyInstanceId *string `location:"uri" locationName:"anomalyInstanceId" type:"string" required:"true"` + + // Optional feedback about this anomaly. + Comment *string `locationName:"comment" type:"string"` + + // The name of the profiling group that is associated with the analysis data. + // + // ProfilingGroupName is a required field + ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"` + + // The feedback tpye. Thee are two valid values, Positive and Negative. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"FeedbackType"` +} + +// String returns the string representation +func (s SubmitFeedbackInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SubmitFeedbackInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SubmitFeedbackInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SubmitFeedbackInput"} + if s.AnomalyInstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyInstanceId")) + } + if s.AnomalyInstanceId != nil && len(*s.AnomalyInstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyInstanceId", 1)) + } + if s.ProfilingGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName")) + } + if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyInstanceId sets the AnomalyInstanceId field's value. +func (s *SubmitFeedbackInput) SetAnomalyInstanceId(v string) *SubmitFeedbackInput { + s.AnomalyInstanceId = &v + return s +} + +// SetComment sets the Comment field's value. +func (s *SubmitFeedbackInput) SetComment(v string) *SubmitFeedbackInput { + s.Comment = &v + return s +} + +// SetProfilingGroupName sets the ProfilingGroupName field's value. +func (s *SubmitFeedbackInput) SetProfilingGroupName(v string) *SubmitFeedbackInput { + s.ProfilingGroupName = &v + return s +} + +// SetType sets the Type field's value. +func (s *SubmitFeedbackInput) SetType(v string) *SubmitFeedbackInput { + s.Type = &v + return s +} + +// The structure representing the SubmitFeedbackResponse. +type SubmitFeedbackOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s SubmitFeedbackOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SubmitFeedbackOutput) GoString() string { + return s.String() +} + // The request was denied due to request throttling. type ThrottlingException struct { _ struct{} `type:"structure"` @@ -2864,10 +5629,41 @@ func (s *ThrottlingException) RequestID() string { return s.RespMetadata.RequestID } +// A data type that contains a Timestamp object. This is specified using the +// ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond +// past June 1, 2020 1:15:02 PM UTC. +type TimestampStructure struct { + _ struct{} `type:"structure"` + + // A Timestamp. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z + // represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + // + // Value is a required field + Value *time.Time `locationName:"value" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation +func (s TimestampStructure) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TimestampStructure) GoString() string { + return s.String() +} + +// SetValue sets the Value field's value. +func (s *TimestampStructure) SetValue(v time.Time) *TimestampStructure { + s.Value = &v + return s +} + // The structure representing the updateProfilingGroupRequest. type UpdateProfilingGroupInput struct { _ struct{} `type:"structure"` + // Specifies whether profiling is enabled or disabled for a profiling group. + // // AgentOrchestrationConfig is a required field AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure" required:"true"` @@ -2927,7 +5723,8 @@ func (s *UpdateProfilingGroupInput) SetProfilingGroupName(v string) *UpdateProfi type UpdateProfilingGroupOutput struct { _ struct{} `type:"structure" payload:"ProfilingGroup"` - // Updated information about the profiling group. + // A ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) + // that contains information about the returned updated profiling group. // // ProfilingGroup is a required field ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"` @@ -2949,6 +5746,35 @@ func (s *UpdateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescript return s } +// Feedback that can be submitted for each instance of an anomaly by the user. +// Feedback is be used for improvements in generating recommendations for the +// application. +type UserFeedback struct { + _ struct{} `type:"structure"` + + // Optional Positive or Negative feedback submitted by the user about whether + // the recommendation is useful or not. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"FeedbackType"` +} + +// String returns the string representation +func (s UserFeedback) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UserFeedback) GoString() string { + return s.String() +} + +// SetType sets the Type field's value. +func (s *UserFeedback) SetType(v string) *UserFeedback { + s.Type = &v + return s +} + // The parameter is not valid. type ValidationException struct { _ struct{} `type:"structure"` @@ -3010,6 +5836,23 @@ const ( ActionGroupAgentPermissions = "agentPermissions" ) +const ( + // AgentParameterFieldMaxStackDepth is a AgentParameterField enum value + AgentParameterFieldMaxStackDepth = "MaxStackDepth" + + // AgentParameterFieldMemoryUsageLimitPercent is a AgentParameterField enum value + AgentParameterFieldMemoryUsageLimitPercent = "MemoryUsageLimitPercent" + + // AgentParameterFieldMinimumTimeForReportingInMilliseconds is a AgentParameterField enum value + AgentParameterFieldMinimumTimeForReportingInMilliseconds = "MinimumTimeForReportingInMilliseconds" + + // AgentParameterFieldReportingIntervalInMilliseconds is a AgentParameterField enum value + AgentParameterFieldReportingIntervalInMilliseconds = "ReportingIntervalInMilliseconds" + + // AgentParameterFieldSamplingIntervalInMilliseconds is a AgentParameterField enum value + AgentParameterFieldSamplingIntervalInMilliseconds = "SamplingIntervalInMilliseconds" +) + const ( // AggregationPeriodP1d is a AggregationPeriod enum value AggregationPeriodP1d = "P1D" @@ -3021,6 +5864,61 @@ const ( AggregationPeriodPt5m = "PT5M" ) +const ( + // ComputePlatformAwslambda is a ComputePlatform enum value + ComputePlatformAwslambda = "AWSLambda" + + // ComputePlatformDefault is a ComputePlatform enum value + ComputePlatformDefault = "Default" +) + +const ( + // EventPublisherAnomalyDetection is a EventPublisher enum value + EventPublisherAnomalyDetection = "AnomalyDetection" +) + +const ( + // FeedbackTypeNegative is a FeedbackType enum value + FeedbackTypeNegative = "Negative" + + // FeedbackTypePositive is a FeedbackType enum value + FeedbackTypePositive = "Positive" +) + +const ( + // MetadataFieldAgentId is a MetadataField enum value + MetadataFieldAgentId = "AgentId" + + // MetadataFieldAwsRequestId is a MetadataField enum value + MetadataFieldAwsRequestId = "AwsRequestId" + + // MetadataFieldComputePlatform is a MetadataField enum value + MetadataFieldComputePlatform = "ComputePlatform" + + // MetadataFieldExecutionEnvironment is a MetadataField enum value + MetadataFieldExecutionEnvironment = "ExecutionEnvironment" + + // MetadataFieldLambdaFunctionArn is a MetadataField enum value + MetadataFieldLambdaFunctionArn = "LambdaFunctionArn" + + // MetadataFieldLambdaMemoryLimitInMb is a MetadataField enum value + MetadataFieldLambdaMemoryLimitInMb = "LambdaMemoryLimitInMB" + + // MetadataFieldLambdaPreviousExecutionTimeInMilliseconds is a MetadataField enum value + MetadataFieldLambdaPreviousExecutionTimeInMilliseconds = "LambdaPreviousExecutionTimeInMilliseconds" + + // MetadataFieldLambdaRemainingTimeInMilliseconds is a MetadataField enum value + MetadataFieldLambdaRemainingTimeInMilliseconds = "LambdaRemainingTimeInMilliseconds" + + // MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds is a MetadataField enum value + MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds = "LambdaTimeGapBetweenInvokesInMilliseconds" +) + +const ( + // MetricTypeAggregatedRelativeTotalTime is a MetricType enum value + MetricTypeAggregatedRelativeTotalTime = "AggregatedRelativeTotalTime" +) + const ( // OrderByTimestampAscending is a OrderBy enum value OrderByTimestampAscending = "TimestampAscending" diff --git a/service/codeguruprofiler/codeguruprofileriface/interface.go b/service/codeguruprofiler/codeguruprofileriface/interface.go index 1997f808f3..8091ebc1a4 100644 --- a/service/codeguruprofiler/codeguruprofileriface/interface.go +++ b/service/codeguruprofiler/codeguruprofileriface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon CodeGuru Profiler. // func myFunc(svc codeguruprofileriface.CodeGuruProfilerAPI) bool { -// // Make svc.ConfigureAgent request +// // Make svc.AddNotificationChannels request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockCodeGuruProfilerClient struct { // codeguruprofileriface.CodeGuruProfilerAPI // } -// func (m *mockCodeGuruProfilerClient) ConfigureAgent(input *codeguruprofiler.ConfigureAgentInput) (*codeguruprofiler.ConfigureAgentOutput, error) { +// func (m *mockCodeGuruProfilerClient) AddNotificationChannels(input *codeguruprofiler.AddNotificationChannelsInput) (*codeguruprofiler.AddNotificationChannelsOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,14 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type CodeGuruProfilerAPI interface { + AddNotificationChannels(*codeguruprofiler.AddNotificationChannelsInput) (*codeguruprofiler.AddNotificationChannelsOutput, error) + AddNotificationChannelsWithContext(aws.Context, *codeguruprofiler.AddNotificationChannelsInput, ...request.Option) (*codeguruprofiler.AddNotificationChannelsOutput, error) + AddNotificationChannelsRequest(*codeguruprofiler.AddNotificationChannelsInput) (*request.Request, *codeguruprofiler.AddNotificationChannelsOutput) + + BatchGetFrameMetricData(*codeguruprofiler.BatchGetFrameMetricDataInput) (*codeguruprofiler.BatchGetFrameMetricDataOutput, error) + BatchGetFrameMetricDataWithContext(aws.Context, *codeguruprofiler.BatchGetFrameMetricDataInput, ...request.Option) (*codeguruprofiler.BatchGetFrameMetricDataOutput, error) + BatchGetFrameMetricDataRequest(*codeguruprofiler.BatchGetFrameMetricDataInput) (*request.Request, *codeguruprofiler.BatchGetFrameMetricDataOutput) + ConfigureAgent(*codeguruprofiler.ConfigureAgentInput) (*codeguruprofiler.ConfigureAgentOutput, error) ConfigureAgentWithContext(aws.Context, *codeguruprofiler.ConfigureAgentInput, ...request.Option) (*codeguruprofiler.ConfigureAgentOutput, error) ConfigureAgentRequest(*codeguruprofiler.ConfigureAgentInput) (*request.Request, *codeguruprofiler.ConfigureAgentOutput) @@ -76,6 +84,17 @@ type CodeGuruProfilerAPI interface { DescribeProfilingGroupWithContext(aws.Context, *codeguruprofiler.DescribeProfilingGroupInput, ...request.Option) (*codeguruprofiler.DescribeProfilingGroupOutput, error) DescribeProfilingGroupRequest(*codeguruprofiler.DescribeProfilingGroupInput) (*request.Request, *codeguruprofiler.DescribeProfilingGroupOutput) + GetFindingsReportAccountSummary(*codeguruprofiler.GetFindingsReportAccountSummaryInput) (*codeguruprofiler.GetFindingsReportAccountSummaryOutput, error) + GetFindingsReportAccountSummaryWithContext(aws.Context, *codeguruprofiler.GetFindingsReportAccountSummaryInput, ...request.Option) (*codeguruprofiler.GetFindingsReportAccountSummaryOutput, error) + GetFindingsReportAccountSummaryRequest(*codeguruprofiler.GetFindingsReportAccountSummaryInput) (*request.Request, *codeguruprofiler.GetFindingsReportAccountSummaryOutput) + + GetFindingsReportAccountSummaryPages(*codeguruprofiler.GetFindingsReportAccountSummaryInput, func(*codeguruprofiler.GetFindingsReportAccountSummaryOutput, bool) bool) error + GetFindingsReportAccountSummaryPagesWithContext(aws.Context, *codeguruprofiler.GetFindingsReportAccountSummaryInput, func(*codeguruprofiler.GetFindingsReportAccountSummaryOutput, bool) bool, ...request.Option) error + + GetNotificationConfiguration(*codeguruprofiler.GetNotificationConfigurationInput) (*codeguruprofiler.GetNotificationConfigurationOutput, error) + GetNotificationConfigurationWithContext(aws.Context, *codeguruprofiler.GetNotificationConfigurationInput, ...request.Option) (*codeguruprofiler.GetNotificationConfigurationOutput, error) + GetNotificationConfigurationRequest(*codeguruprofiler.GetNotificationConfigurationInput) (*request.Request, *codeguruprofiler.GetNotificationConfigurationOutput) + GetPolicy(*codeguruprofiler.GetPolicyInput) (*codeguruprofiler.GetPolicyOutput, error) GetPolicyWithContext(aws.Context, *codeguruprofiler.GetPolicyInput, ...request.Option) (*codeguruprofiler.GetPolicyOutput, error) GetPolicyRequest(*codeguruprofiler.GetPolicyInput) (*request.Request, *codeguruprofiler.GetPolicyOutput) @@ -84,6 +103,17 @@ type CodeGuruProfilerAPI interface { GetProfileWithContext(aws.Context, *codeguruprofiler.GetProfileInput, ...request.Option) (*codeguruprofiler.GetProfileOutput, error) GetProfileRequest(*codeguruprofiler.GetProfileInput) (*request.Request, *codeguruprofiler.GetProfileOutput) + GetRecommendations(*codeguruprofiler.GetRecommendationsInput) (*codeguruprofiler.GetRecommendationsOutput, error) + GetRecommendationsWithContext(aws.Context, *codeguruprofiler.GetRecommendationsInput, ...request.Option) (*codeguruprofiler.GetRecommendationsOutput, error) + GetRecommendationsRequest(*codeguruprofiler.GetRecommendationsInput) (*request.Request, *codeguruprofiler.GetRecommendationsOutput) + + ListFindingsReports(*codeguruprofiler.ListFindingsReportsInput) (*codeguruprofiler.ListFindingsReportsOutput, error) + ListFindingsReportsWithContext(aws.Context, *codeguruprofiler.ListFindingsReportsInput, ...request.Option) (*codeguruprofiler.ListFindingsReportsOutput, error) + ListFindingsReportsRequest(*codeguruprofiler.ListFindingsReportsInput) (*request.Request, *codeguruprofiler.ListFindingsReportsOutput) + + ListFindingsReportsPages(*codeguruprofiler.ListFindingsReportsInput, func(*codeguruprofiler.ListFindingsReportsOutput, bool) bool) error + ListFindingsReportsPagesWithContext(aws.Context, *codeguruprofiler.ListFindingsReportsInput, func(*codeguruprofiler.ListFindingsReportsOutput, bool) bool, ...request.Option) error + ListProfileTimes(*codeguruprofiler.ListProfileTimesInput) (*codeguruprofiler.ListProfileTimesOutput, error) ListProfileTimesWithContext(aws.Context, *codeguruprofiler.ListProfileTimesInput, ...request.Option) (*codeguruprofiler.ListProfileTimesOutput, error) ListProfileTimesRequest(*codeguruprofiler.ListProfileTimesInput) (*request.Request, *codeguruprofiler.ListProfileTimesOutput) @@ -106,10 +136,18 @@ type CodeGuruProfilerAPI interface { PutPermissionWithContext(aws.Context, *codeguruprofiler.PutPermissionInput, ...request.Option) (*codeguruprofiler.PutPermissionOutput, error) PutPermissionRequest(*codeguruprofiler.PutPermissionInput) (*request.Request, *codeguruprofiler.PutPermissionOutput) + RemoveNotificationChannel(*codeguruprofiler.RemoveNotificationChannelInput) (*codeguruprofiler.RemoveNotificationChannelOutput, error) + RemoveNotificationChannelWithContext(aws.Context, *codeguruprofiler.RemoveNotificationChannelInput, ...request.Option) (*codeguruprofiler.RemoveNotificationChannelOutput, error) + RemoveNotificationChannelRequest(*codeguruprofiler.RemoveNotificationChannelInput) (*request.Request, *codeguruprofiler.RemoveNotificationChannelOutput) + RemovePermission(*codeguruprofiler.RemovePermissionInput) (*codeguruprofiler.RemovePermissionOutput, error) RemovePermissionWithContext(aws.Context, *codeguruprofiler.RemovePermissionInput, ...request.Option) (*codeguruprofiler.RemovePermissionOutput, error) RemovePermissionRequest(*codeguruprofiler.RemovePermissionInput) (*request.Request, *codeguruprofiler.RemovePermissionOutput) + SubmitFeedback(*codeguruprofiler.SubmitFeedbackInput) (*codeguruprofiler.SubmitFeedbackOutput, error) + SubmitFeedbackWithContext(aws.Context, *codeguruprofiler.SubmitFeedbackInput, ...request.Option) (*codeguruprofiler.SubmitFeedbackOutput, error) + SubmitFeedbackRequest(*codeguruprofiler.SubmitFeedbackInput) (*request.Request, *codeguruprofiler.SubmitFeedbackOutput) + UpdateProfilingGroup(*codeguruprofiler.UpdateProfilingGroupInput) (*codeguruprofiler.UpdateProfilingGroupOutput, error) UpdateProfilingGroupWithContext(aws.Context, *codeguruprofiler.UpdateProfilingGroupInput, ...request.Option) (*codeguruprofiler.UpdateProfilingGroupOutput, error) UpdateProfilingGroupRequest(*codeguruprofiler.UpdateProfilingGroupInput) (*request.Request, *codeguruprofiler.UpdateProfilingGroupOutput) diff --git a/service/codeguruprofiler/doc.go b/service/codeguruprofiler/doc.go index c4801697f3..8cf5ac960a 100644 --- a/service/codeguruprofiler/doc.go +++ b/service/codeguruprofiler/doc.go @@ -6,6 +6,23 @@ // This section provides documentation for the Amazon CodeGuru Profiler API // operations. // +//

Amazon CodeGuru Profiler collects runtime performance data from your +// live applications, and provides recommendations that can help you fine-tune +// your application performance. Using machine learning algorithms, CodeGuru +// Profiler can help you find your most expensive lines of code and suggest +// ways you can improve efficiency and remove CPU bottlenecks.

Amazon +// CodeGuru Profiler provides different visualizations of profiling data +// to help you identify what code is running on the CPU, see how much time +// is consumed, and suggest ways to reduce CPU utilization.

Amazon +// CodeGuru Profiler currently supports applications written in all Java +// virtual machine (JVM) languages. While CodeGuru Profiler supports both +// visualizations and recommendations for applications written in Java, it +// can also generate visualizations and a subset of recommendations for applications +// written in other JVM languages.

For more information, +// see What +// is Amazon CodeGuru Profiler in the Amazon CodeGuru Profiler User +// Guide.

+// // See https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18 for more information on this service. // // See codeguruprofiler package documentation for more information. diff --git a/service/codestarconnections/api.go b/service/codestarconnections/api.go index cdac55d73b..69b4097b98 100644 --- a/service/codestarconnections/api.go +++ b/service/codestarconnections/api.go @@ -72,6 +72,12 @@ func (c *CodeStarConnections) CreateConnectionRequest(input *CreateConnectionInp // * LimitExceededException // Exceeded the maximum limit for connections. // +// * ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// * ResourceUnavailableException +// Resource not found. Verify the ARN for the host resource and try again. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateConnection func (c *CodeStarConnections) CreateConnection(input *CreateConnectionInput) (*CreateConnectionOutput, error) { req, out := c.CreateConnectionRequest(input) @@ -94,6 +100,91 @@ func (c *CodeStarConnections) CreateConnectionWithContext(ctx aws.Context, input return out, req.Send() } +const opCreateHost = "CreateHost" + +// CreateHostRequest generates a "aws/request.Request" representing the +// client's request for the CreateHost 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 CreateHost for more information on using the CreateHost +// 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 CreateHostRequest method. +// req, resp := client.CreateHostRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateHost +func (c *CodeStarConnections) CreateHostRequest(input *CreateHostInput) (req *request.Request, output *CreateHostOutput) { + op := &request.Operation{ + Name: opCreateHost, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateHostInput{} + } + + output = &CreateHostOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateHost API operation for AWS CodeStar connections. +// +// Creates a resource that represents the infrastructure where a third-party +// provider is installed. The host is used when you create connections to an +// installed third-party provider type, such as GitHub Enterprise Server. You +// create one host for all connections to that provider. +// +// A host created through the CLI or the SDK is in `PENDING` status by default. +// You can make its status `AVAILABLE` by setting up the host in the console. +// +// 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 CodeStar connections's +// API operation CreateHost for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// Exceeded the maximum limit for connections. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateHost +func (c *CodeStarConnections) CreateHost(input *CreateHostInput) (*CreateHostOutput, error) { + req, out := c.CreateHostRequest(input) + return out, req.Send() +} + +// CreateHostWithContext is the same as CreateHost with the addition of +// the ability to pass a context and additional request options. +// +// See CreateHost 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 *CodeStarConnections) CreateHostWithContext(ctx aws.Context, input *CreateHostInput, opts ...request.Option) (*CreateHostOutput, error) { + req, out := c.CreateHostRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteConnection = "DeleteConnection" // DeleteConnectionRequest generates a "aws/request.Request" representing the @@ -174,6 +265,93 @@ func (c *CodeStarConnections) DeleteConnectionWithContext(ctx aws.Context, input return out, req.Send() } +const opDeleteHost = "DeleteHost" + +// DeleteHostRequest generates a "aws/request.Request" representing the +// client's request for the DeleteHost 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 DeleteHost for more information on using the DeleteHost +// 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 DeleteHostRequest method. +// req, resp := client.DeleteHostRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteHost +func (c *CodeStarConnections) DeleteHostRequest(input *DeleteHostInput) (req *request.Request, output *DeleteHostOutput) { + op := &request.Operation{ + Name: opDeleteHost, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteHostInput{} + } + + output = &DeleteHostOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteHost API operation for AWS CodeStar connections. +// +// The host to be deleted. Before you delete a host, all connections associated +// to the host must be deleted. +// +// A host cannot be deleted if it is in the VPC_CONFIG_INITIALIZING or VPC_CONFIG_DELETING +// state. +// +// 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 CodeStar connections's +// API operation DeleteHost for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// * ResourceUnavailableException +// Resource not found. Verify the ARN for the host resource and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteHost +func (c *CodeStarConnections) DeleteHost(input *DeleteHostInput) (*DeleteHostOutput, error) { + req, out := c.DeleteHostRequest(input) + return out, req.Send() +} + +// DeleteHostWithContext is the same as DeleteHost with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteHost 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 *CodeStarConnections) DeleteHostWithContext(ctx aws.Context, input *DeleteHostInput, opts ...request.Option) (*DeleteHostOutput, error) { + req, out := c.DeleteHostRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetConnection = "GetConnection" // GetConnectionRequest generates a "aws/request.Request" representing the @@ -232,6 +410,9 @@ func (c *CodeStarConnections) GetConnectionRequest(input *GetConnectionInput) (r // * ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // +// * ResourceUnavailableException +// Resource not found. Verify the ARN for the host resource and try again. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetConnection func (c *CodeStarConnections) GetConnection(input *GetConnectionInput) (*GetConnectionOutput, error) { req, out := c.GetConnectionRequest(input) @@ -254,6 +435,86 @@ func (c *CodeStarConnections) GetConnectionWithContext(ctx aws.Context, input *G return out, req.Send() } +const opGetHost = "GetHost" + +// GetHostRequest generates a "aws/request.Request" representing the +// client's request for the GetHost 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 GetHost for more information on using the GetHost +// 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 GetHostRequest method. +// req, resp := client.GetHostRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetHost +func (c *CodeStarConnections) GetHostRequest(input *GetHostInput) (req *request.Request, output *GetHostOutput) { + op := &request.Operation{ + Name: opGetHost, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetHostInput{} + } + + output = &GetHostOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetHost API operation for AWS CodeStar connections. +// +// Returns the host ARN and details such as status, provider type, endpoint, +// and, if applicable, the VPC configuration. +// +// 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 CodeStar connections's +// API operation GetHost for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetHost +func (c *CodeStarConnections) GetHost(input *GetHostInput) (*GetHostOutput, error) { + req, out := c.GetHostRequest(input) + return out, req.Send() +} + +// GetHostWithContext is the same as GetHost with the addition of +// the ability to pass a context and additional request options. +// +// See GetHost 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 *CodeStarConnections) GetHostWithContext(ctx aws.Context, input *GetHostInput, opts ...request.Option) (*GetHostOutput, error) { + req, out := c.GetHostRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListConnections = "ListConnections" // ListConnectionsRequest generates a "aws/request.Request" representing the @@ -318,59 +579,191 @@ func (c *CodeStarConnections) ListConnections(input *ListConnectionsInput) (*Lis return out, req.Send() } -// ListConnectionsWithContext is the same as ListConnections with the addition of +// ListConnectionsWithContext is the same as ListConnections with the addition of +// the ability to pass a context and additional request options. +// +// See ListConnections 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 *CodeStarConnections) ListConnectionsWithContext(ctx aws.Context, input *ListConnectionsInput, opts ...request.Option) (*ListConnectionsOutput, error) { + req, out := c.ListConnectionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListConnectionsPages iterates over the pages of a ListConnections operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListConnections 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 ListConnections operation. +// pageNum := 0 +// err := client.ListConnectionsPages(params, +// func(page *codestarconnections.ListConnectionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CodeStarConnections) ListConnectionsPages(input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool) error { + return c.ListConnectionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListConnectionsPagesWithContext same as ListConnectionsPages 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 *CodeStarConnections) ListConnectionsPagesWithContext(ctx aws.Context, input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListConnectionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListConnectionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListConnectionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListHosts = "ListHosts" + +// ListHostsRequest generates a "aws/request.Request" representing the +// client's request for the ListHosts 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 ListHosts for more information on using the ListHosts +// 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 ListHostsRequest method. +// req, resp := client.ListHostsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListHosts +func (c *CodeStarConnections) ListHostsRequest(input *ListHostsInput) (req *request.Request, output *ListHostsOutput) { + op := &request.Operation{ + Name: opListHosts, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListHostsInput{} + } + + output = &ListHostsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListHosts API operation for AWS CodeStar connections. +// +// Lists the hosts associated with your 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 AWS CodeStar connections's +// API operation ListHosts for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListHosts +func (c *CodeStarConnections) ListHosts(input *ListHostsInput) (*ListHostsOutput, error) { + req, out := c.ListHostsRequest(input) + return out, req.Send() +} + +// ListHostsWithContext is the same as ListHosts with the addition of // the ability to pass a context and additional request options. // -// See ListConnections for details on how to use this API operation. +// See ListHosts 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 *CodeStarConnections) ListConnectionsWithContext(ctx aws.Context, input *ListConnectionsInput, opts ...request.Option) (*ListConnectionsOutput, error) { - req, out := c.ListConnectionsRequest(input) +func (c *CodeStarConnections) ListHostsWithContext(ctx aws.Context, input *ListHostsInput, opts ...request.Option) (*ListHostsOutput, error) { + req, out := c.ListHostsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListConnectionsPages iterates over the pages of a ListConnections operation, +// ListHostsPages iterates over the pages of a ListHosts operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListConnections method for more information on how to use this operation. +// See ListHosts 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 ListConnections operation. +// // Example iterating over at most 3 pages of a ListHosts operation. // pageNum := 0 -// err := client.ListConnectionsPages(params, -// func(page *codestarconnections.ListConnectionsOutput, lastPage bool) bool { +// err := client.ListHostsPages(params, +// func(page *codestarconnections.ListHostsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) // -func (c *CodeStarConnections) ListConnectionsPages(input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool) error { - return c.ListConnectionsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *CodeStarConnections) ListHostsPages(input *ListHostsInput, fn func(*ListHostsOutput, bool) bool) error { + return c.ListHostsPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListConnectionsPagesWithContext same as ListConnectionsPages except +// ListHostsPagesWithContext same as ListHostsPages 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 *CodeStarConnections) ListConnectionsPagesWithContext(ctx aws.Context, input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool, opts ...request.Option) error { +func (c *CodeStarConnections) ListHostsPagesWithContext(ctx aws.Context, input *ListHostsInput, fn func(*ListHostsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListConnectionsInput + var inCpy *ListHostsInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListConnectionsRequest(inCpy) + req, _ := c.ListHostsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -378,7 +771,7 @@ func (c *CodeStarConnections) ListConnectionsPagesWithContext(ctx aws.Context, i } for p.Next() { - if !fn(p.Page().(*ListConnectionsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListHostsOutput), !p.HasNextPage()) { break } } @@ -629,12 +1022,12 @@ func (c *CodeStarConnections) UntagResourceWithContext(ctx aws.Context, input *U return out, req.Send() } -// The AWS::CodeStarConnections::Connection resource can be used to connect -// external source providers with services like AWS CodePipeline. +// A resource that is used to connect third-party source providers with services +// like AWS CodePipeline. // -// Note: A connection created through CloudFormation is in `PENDING` status -// by default. You can make its status `AVAILABLE` by editing the connection -// in the CodePipeline console. +// Note: A connection created through CloudFormation, the CLI, or the SDK is +// in `PENDING` status by default. You can make its status `AVAILABLE` by updating +// the connection in the console. type Connection struct { _ struct{} `type:"structure"` @@ -651,13 +1044,16 @@ type Connection struct { // The current status of the connection. ConnectionStatus *string `type:"string" enum:"ConnectionStatus"` + // The Amazon Resource Name (ARN) of the host associated with the connection. + HostArn *string `type:"string"` + // The identifier of the external provider where your third-party code repository // is configured. For Bitbucket, this is the account ID of the owner of the // Bitbucket repository. OwnerAccountId *string `min:"12" type:"string"` // The name of the external provider where your third-party code repository - // is configured. Currently, the valid provider type is Bitbucket. + // is configured. The valid provider type is Bitbucket. ProviderType *string `type:"string" enum:"ProviderType"` } @@ -689,6 +1085,12 @@ func (s *Connection) SetConnectionStatus(v string) *Connection { return s } +// SetHostArn sets the HostArn field's value. +func (s *Connection) SetHostArn(v string) *Connection { + s.HostArn = &v + return s +} + // SetOwnerAccountId sets the OwnerAccountId field's value. func (s *Connection) SetOwnerAccountId(v string) *Connection { s.OwnerAccountId = &v @@ -710,11 +1112,13 @@ type CreateConnectionInput struct { // ConnectionName is a required field ConnectionName *string `min:"1" type:"string" required:"true"` + // The Amazon Resource Name (ARN) of the host associated with the connection + // to be created. + HostArn *string `type:"string"` + // The name of the external provider where your third-party code repository - // is configured. Currently, the valid provider type is Bitbucket. - // - // ProviderType is a required field - ProviderType *string `type:"string" required:"true" enum:"ProviderType"` + // is configured. The valid provider type is Bitbucket. + ProviderType *string `type:"string" enum:"ProviderType"` // The key-value pair to use when tagging the resource. Tags []*Tag `type:"list"` @@ -739,9 +1143,6 @@ func (s *CreateConnectionInput) Validate() error { if s.ConnectionName != nil && len(*s.ConnectionName) < 1 { invalidParams.Add(request.NewErrParamMinLen("ConnectionName", 1)) } - if s.ProviderType == nil { - invalidParams.Add(request.NewErrParamRequired("ProviderType")) - } if s.Tags != nil { for i, v := range s.Tags { if v == nil { @@ -765,6 +1166,12 @@ func (s *CreateConnectionInput) SetConnectionName(v string) *CreateConnectionInp return s } +// SetHostArn sets the HostArn field's value. +func (s *CreateConnectionInput) SetHostArn(v string) *CreateConnectionInput { + s.HostArn = &v + return s +} + // SetProviderType sets the ProviderType field's value. func (s *CreateConnectionInput) SetProviderType(v string) *CreateConnectionInput { s.ProviderType = &v @@ -803,44 +1210,324 @@ func (s CreateConnectionOutput) GoString() string { return s.String() } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *CreateConnectionOutput) SetConnectionArn(v string) *CreateConnectionOutput { - s.ConnectionArn = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreateConnectionOutput) SetTags(v []*Tag) *CreateConnectionOutput { - s.Tags = v +// SetConnectionArn sets the ConnectionArn field's value. +func (s *CreateConnectionOutput) SetConnectionArn(v string) *CreateConnectionOutput { + s.ConnectionArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateConnectionOutput) SetTags(v []*Tag) *CreateConnectionOutput { + s.Tags = v + return s +} + +type CreateHostInput struct { + _ struct{} `type:"structure"` + + // The name of the host to be created. The name must be unique in the calling + // AWS account. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The endpoint of the infrastructure to be represented by the host after it + // is created. + // + // ProviderEndpoint is a required field + ProviderEndpoint *string `min:"1" type:"string" required:"true"` + + // The name of the installed provider to be associated with your connection. + // The host resource represents the infrastructure where your provider type + // is installed. The valid provider type is GitHub Enterprise Server. + // + // ProviderType is a required field + ProviderType *string `type:"string" required:"true" enum:"ProviderType"` + + // The VPC configuration to be provisioned for the host. A VPC must be configured + // and the infrastructure to be represented by the host must already be connected + // to the VPC. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s CreateHostInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateHostInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateHostInput"} + 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.ProviderEndpoint == nil { + invalidParams.Add(request.NewErrParamRequired("ProviderEndpoint")) + } + if s.ProviderEndpoint != nil && len(*s.ProviderEndpoint) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProviderEndpoint", 1)) + } + if s.ProviderType == nil { + invalidParams.Add(request.NewErrParamRequired("ProviderType")) + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateHostInput) SetName(v string) *CreateHostInput { + s.Name = &v + return s +} + +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *CreateHostInput) SetProviderEndpoint(v string) *CreateHostInput { + s.ProviderEndpoint = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *CreateHostInput) SetProviderType(v string) *CreateHostInput { + s.ProviderType = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *CreateHostInput) SetVpcConfiguration(v *VpcConfiguration) *CreateHostInput { + s.VpcConfiguration = v + return s +} + +type CreateHostOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the host to be created. + HostArn *string `type:"string"` +} + +// String returns the string representation +func (s CreateHostOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateHostOutput) GoString() string { + return s.String() +} + +// SetHostArn sets the HostArn field's value. +func (s *CreateHostOutput) SetHostArn(v string) *CreateHostOutput { + s.HostArn = &v + return s +} + +type DeleteConnectionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the connection to be deleted. + // + // The ARN is never reused if the connection is deleted. + // + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteConnectionInput"} + if s.ConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *DeleteConnectionInput) SetConnectionArn(v string) *DeleteConnectionInput { + s.ConnectionArn = &v + return s +} + +type DeleteConnectionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteConnectionOutput) GoString() string { + return s.String() +} + +type DeleteHostInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the host to be deleted. + // + // HostArn is a required field + HostArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteHostInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteHostInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteHostInput"} + if s.HostArn == nil { + invalidParams.Add(request.NewErrParamRequired("HostArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetHostArn sets the HostArn field's value. +func (s *DeleteHostInput) SetHostArn(v string) *DeleteHostInput { + s.HostArn = &v + return s +} + +type DeleteHostOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteHostOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteHostOutput) GoString() string { + return s.String() +} + +type GetConnectionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of a connection. + // + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetConnectionInput"} + if s.ConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *GetConnectionInput) SetConnectionArn(v string) *GetConnectionInput { + s.ConnectionArn = &v + return s +} + +type GetConnectionOutput struct { + _ struct{} `type:"structure"` + + // The connection details, such as status, owner, and provider type. + Connection *Connection `type:"structure"` +} + +// String returns the string representation +func (s GetConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetConnectionOutput) GoString() string { + return s.String() +} + +// SetConnection sets the Connection field's value. +func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput { + s.Connection = v return s } -type DeleteConnectionInput struct { +type GetHostInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the connection to be deleted. - // - // The ARN is never reused if the connection is deleted. + // The Amazon Resource Name (ARN) of the requested host. // - // ConnectionArn is a required field - ConnectionArn *string `type:"string" required:"true"` + // HostArn is a required field + HostArn *string `type:"string" required:"true"` } // String returns the string representation -func (s DeleteConnectionInput) String() string { +func (s GetHostInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteConnectionInput) GoString() string { +func (s GetHostInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteConnectionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteConnectionInput"} - if s.ConnectionArn == nil { - invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) +func (s *GetHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetHostInput"} + if s.HostArn == nil { + invalidParams.Add(request.NewErrParamRequired("HostArn")) } if invalidParams.Len() > 0 { @@ -849,84 +1536,155 @@ func (s *DeleteConnectionInput) Validate() error { return nil } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *DeleteConnectionInput) SetConnectionArn(v string) *DeleteConnectionInput { - s.ConnectionArn = &v +// SetHostArn sets the HostArn field's value. +func (s *GetHostInput) SetHostArn(v string) *GetHostInput { + s.HostArn = &v return s } -type DeleteConnectionOutput struct { +type GetHostOutput struct { _ struct{} `type:"structure"` + + // The name of the requested host. + Name *string `min:"1" type:"string"` + + // The endpoint of the infrastructure represented by the requested host. + ProviderEndpoint *string `min:"1" type:"string"` + + // The provider type of the requested host, such as GitHub Enterprise Server. + ProviderType *string `type:"string" enum:"ProviderType"` + + // The status of the requested host. + Status *string `type:"string"` + + // The VPC configuration of the requested host. + VpcConfiguration *VpcConfiguration `type:"structure"` } // String returns the string representation -func (s DeleteConnectionOutput) String() string { +func (s GetHostOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteConnectionOutput) GoString() string { +func (s GetHostOutput) GoString() string { return s.String() } -type GetConnectionInput struct { +// SetName sets the Name field's value. +func (s *GetHostOutput) SetName(v string) *GetHostOutput { + s.Name = &v + return s +} + +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *GetHostOutput) SetProviderEndpoint(v string) *GetHostOutput { + s.ProviderEndpoint = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *GetHostOutput) SetProviderType(v string) *GetHostOutput { + s.ProviderType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetHostOutput) SetStatus(v string) *GetHostOutput { + s.Status = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *GetHostOutput) SetVpcConfiguration(v *VpcConfiguration) *GetHostOutput { + s.VpcConfiguration = v + return s +} + +// A resource that represents the infrastructure where a third-party provider +// is installed. The host is used when you create connections to an installed +// third-party provider type, such as GitHub Enterprise Server. You create one +// host for all connections to that provider. +// +// A host created through the CLI or the SDK is in `PENDING` status by default. +// You can make its status `AVAILABLE` by setting up the host in the console. +type Host struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of a connection. - // - // ConnectionArn is a required field - ConnectionArn *string `type:"string" required:"true"` + // The Amazon Resource Name (ARN) of the host. + HostArn *string `type:"string"` + + // The name of the host. + Name *string `min:"1" type:"string"` + + // The endpoint of the infrastructure where your provider type is installed. + ProviderEndpoint *string `min:"1" type:"string"` + + // The name of the installed provider to be associated with your connection. + // The host resource represents the infrastructure where your provider type + // is installed. The valid provider type is GitHub Enterprise Server. + ProviderType *string `type:"string" enum:"ProviderType"` + + // The status of the host, such as PENDING, AVAILABLE, VPC_CONFIG_DELETING, + // VPC_CONFIG_INITIALIZING, and VPC_CONFIG_FAILED_INITIALIZATION. + Status *string `type:"string"` + + // The status description for the host. + StatusMessage *string `type:"string"` + + // The VPC configuration provisioned for the host. + VpcConfiguration *VpcConfiguration `type:"structure"` } // String returns the string representation -func (s GetConnectionInput) String() string { +func (s Host) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetConnectionInput) GoString() string { +func (s Host) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetConnectionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetConnectionInput"} - if s.ConnectionArn == nil { - invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetHostArn sets the HostArn field's value. +func (s *Host) SetHostArn(v string) *Host { + s.HostArn = &v + return s } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *GetConnectionInput) SetConnectionArn(v string) *GetConnectionInput { - s.ConnectionArn = &v +// SetName sets the Name field's value. +func (s *Host) SetName(v string) *Host { + s.Name = &v return s } -type GetConnectionOutput struct { - _ struct{} `type:"structure"` +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *Host) SetProviderEndpoint(v string) *Host { + s.ProviderEndpoint = &v + return s +} - // The connection details, such as status, owner, and provider type. - Connection *Connection `type:"structure"` +// SetProviderType sets the ProviderType field's value. +func (s *Host) SetProviderType(v string) *Host { + s.ProviderType = &v + return s } -// String returns the string representation -func (s GetConnectionOutput) String() string { - return awsutil.Prettify(s) +// SetStatus sets the Status field's value. +func (s *Host) SetStatus(v string) *Host { + s.Status = &v + return s } -// GoString returns the string representation -func (s GetConnectionOutput) GoString() string { - return s.String() +// SetStatusMessage sets the StatusMessage field's value. +func (s *Host) SetStatusMessage(v string) *Host { + s.StatusMessage = &v + return s } -// SetConnection sets the Connection field's value. -func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput { - s.Connection = v +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *Host) SetVpcConfiguration(v *VpcConfiguration) *Host { + s.VpcConfiguration = v return s } @@ -989,6 +1747,9 @@ func (s *LimitExceededException) RequestID() string { type ListConnectionsInput struct { _ struct{} `type:"structure"` + // Filters the list of connections to those associated with a specified host. + HostArnFilter *string `type:"string"` + // The maximum number of results to return in a single call. To retrieve the // remaining results, make another call with the returned nextToken value. MaxResults *int64 `type:"integer"` @@ -1025,6 +1786,12 @@ func (s *ListConnectionsInput) Validate() error { return nil } +// SetHostArnFilter sets the HostArnFilter field's value. +func (s *ListConnectionsInput) SetHostArnFilter(v string) *ListConnectionsInput { + s.HostArnFilter = &v + return s +} + // SetMaxResults sets the MaxResults field's value. func (s *ListConnectionsInput) SetMaxResults(v int64) *ListConnectionsInput { s.MaxResults = &v @@ -1078,6 +1845,88 @@ func (s *ListConnectionsOutput) SetNextToken(v string) *ListConnectionsOutput { return s } +type ListHostsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return in a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `type:"integer"` + + // The token that was returned from the previous ListHosts call, which can be + // used to return the next set of hosts in the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListHostsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListHostsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListHostsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListHostsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListHostsInput) SetMaxResults(v int64) *ListHostsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListHostsInput) SetNextToken(v string) *ListHostsInput { + s.NextToken = &v + return s +} + +type ListHostsOutput struct { + _ struct{} `type:"structure"` + + // A list of hosts and the details for each host, such as status, endpoint, + // and provider type. + Hosts []*Host `type:"list"` + + // A token that can be used in the next ListHosts call. To view all items in + // the list, continue to call this operation with each subsequent token until + // no more nextToken values are returned. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListHostsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListHostsOutput) GoString() string { + return s.String() +} + +// SetHosts sets the Hosts field's value. +func (s *ListHostsOutput) SetHosts(v []*Host) *ListHostsOutput { + s.Hosts = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListHostsOutput) SetNextToken(v string) *ListHostsOutput { + s.NextToken = &v + return s +} + type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -1199,6 +2048,62 @@ func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// Resource not found. Verify the ARN for the host resource and try again. +type ResourceUnavailableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s ResourceUnavailableException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceUnavailableException) GoString() string { + return s.String() +} + +func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error { + return &ResourceUnavailableException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceUnavailableException) Code() string { + return "ResourceUnavailableException" +} + +// Message returns the exception's message. +func (s *ResourceUnavailableException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceUnavailableException) OrigErr() error { + return nil +} + +func (s *ResourceUnavailableException) 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 *ResourceUnavailableException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceUnavailableException) RequestID() string { + return s.RespMetadata.RequestID +} + // A tag is a key-value pair that is used to manage the resource. // // This tag is available for use by AWS services that support tags. @@ -1406,6 +2311,95 @@ func (s UntagResourceOutput) GoString() string { return s.String() } +// The VPC configuration provisioned for the host. +type VpcConfiguration struct { + _ struct{} `type:"structure"` + + // The ID of the security group or security groups associated with the Amazon + // VPC connected to the infrastructure where your provider type is installed. + // + // SecurityGroupIds is a required field + SecurityGroupIds []*string `min:"1" type:"list" required:"true"` + + // The ID of the subnet or subnets associated with the Amazon VPC connected + // to the infrastructure where your provider type is installed. + // + // SubnetIds is a required field + SubnetIds []*string `min:"1" type:"list" required:"true"` + + // The value of the Transport Layer Security (TLS) certificate associated with + // the infrastructure where your provider type is installed. + TlsCertificate *string `min:"1" type:"string"` + + // The ID of the Amazon VPC connected to the infrastructure where your provider + // type is installed. + // + // VpcId is a required field + VpcId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s VpcConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s VpcConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VpcConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"} + if s.SecurityGroupIds == nil { + invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds")) + } + if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1)) + } + if s.SubnetIds == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetIds")) + } + if s.SubnetIds != nil && len(s.SubnetIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1)) + } + if s.TlsCertificate != nil && len(*s.TlsCertificate) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TlsCertificate", 1)) + } + if s.VpcId == nil { + invalidParams.Add(request.NewErrParamRequired("VpcId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *VpcConfiguration) SetSecurityGroupIds(v []*string) *VpcConfiguration { + s.SecurityGroupIds = v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *VpcConfiguration) SetSubnetIds(v []*string) *VpcConfiguration { + s.SubnetIds = v + return s +} + +// SetTlsCertificate sets the TlsCertificate field's value. +func (s *VpcConfiguration) SetTlsCertificate(v string) *VpcConfiguration { + s.TlsCertificate = &v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration { + s.VpcId = &v + return s +} + const ( // ConnectionStatusPending is a ConnectionStatus enum value ConnectionStatusPending = "PENDING" @@ -1420,4 +2414,7 @@ const ( const ( // ProviderTypeBitbucket is a ProviderType enum value ProviderTypeBitbucket = "Bitbucket" + + // ProviderTypeGitHubEnterpriseServer is a ProviderType enum value + ProviderTypeGitHubEnterpriseServer = "GitHubEnterpriseServer" ) diff --git a/service/codestarconnections/codestarconnectionsiface/interface.go b/service/codestarconnections/codestarconnectionsiface/interface.go index 910f7fa834..1b2e8d6e1d 100644 --- a/service/codestarconnections/codestarconnectionsiface/interface.go +++ b/service/codestarconnections/codestarconnectionsiface/interface.go @@ -64,14 +64,26 @@ type CodeStarConnectionsAPI interface { CreateConnectionWithContext(aws.Context, *codestarconnections.CreateConnectionInput, ...request.Option) (*codestarconnections.CreateConnectionOutput, error) CreateConnectionRequest(*codestarconnections.CreateConnectionInput) (*request.Request, *codestarconnections.CreateConnectionOutput) + CreateHost(*codestarconnections.CreateHostInput) (*codestarconnections.CreateHostOutput, error) + CreateHostWithContext(aws.Context, *codestarconnections.CreateHostInput, ...request.Option) (*codestarconnections.CreateHostOutput, error) + CreateHostRequest(*codestarconnections.CreateHostInput) (*request.Request, *codestarconnections.CreateHostOutput) + DeleteConnection(*codestarconnections.DeleteConnectionInput) (*codestarconnections.DeleteConnectionOutput, error) DeleteConnectionWithContext(aws.Context, *codestarconnections.DeleteConnectionInput, ...request.Option) (*codestarconnections.DeleteConnectionOutput, error) DeleteConnectionRequest(*codestarconnections.DeleteConnectionInput) (*request.Request, *codestarconnections.DeleteConnectionOutput) + DeleteHost(*codestarconnections.DeleteHostInput) (*codestarconnections.DeleteHostOutput, error) + DeleteHostWithContext(aws.Context, *codestarconnections.DeleteHostInput, ...request.Option) (*codestarconnections.DeleteHostOutput, error) + DeleteHostRequest(*codestarconnections.DeleteHostInput) (*request.Request, *codestarconnections.DeleteHostOutput) + GetConnection(*codestarconnections.GetConnectionInput) (*codestarconnections.GetConnectionOutput, error) GetConnectionWithContext(aws.Context, *codestarconnections.GetConnectionInput, ...request.Option) (*codestarconnections.GetConnectionOutput, error) GetConnectionRequest(*codestarconnections.GetConnectionInput) (*request.Request, *codestarconnections.GetConnectionOutput) + GetHost(*codestarconnections.GetHostInput) (*codestarconnections.GetHostOutput, error) + GetHostWithContext(aws.Context, *codestarconnections.GetHostInput, ...request.Option) (*codestarconnections.GetHostOutput, error) + GetHostRequest(*codestarconnections.GetHostInput) (*request.Request, *codestarconnections.GetHostOutput) + ListConnections(*codestarconnections.ListConnectionsInput) (*codestarconnections.ListConnectionsOutput, error) ListConnectionsWithContext(aws.Context, *codestarconnections.ListConnectionsInput, ...request.Option) (*codestarconnections.ListConnectionsOutput, error) ListConnectionsRequest(*codestarconnections.ListConnectionsInput) (*request.Request, *codestarconnections.ListConnectionsOutput) @@ -79,6 +91,13 @@ type CodeStarConnectionsAPI interface { ListConnectionsPages(*codestarconnections.ListConnectionsInput, func(*codestarconnections.ListConnectionsOutput, bool) bool) error ListConnectionsPagesWithContext(aws.Context, *codestarconnections.ListConnectionsInput, func(*codestarconnections.ListConnectionsOutput, bool) bool, ...request.Option) error + ListHosts(*codestarconnections.ListHostsInput) (*codestarconnections.ListHostsOutput, error) + ListHostsWithContext(aws.Context, *codestarconnections.ListHostsInput, ...request.Option) (*codestarconnections.ListHostsOutput, error) + ListHostsRequest(*codestarconnections.ListHostsInput) (*request.Request, *codestarconnections.ListHostsOutput) + + ListHostsPages(*codestarconnections.ListHostsInput, func(*codestarconnections.ListHostsOutput, bool) bool) error + ListHostsPagesWithContext(aws.Context, *codestarconnections.ListHostsInput, func(*codestarconnections.ListHostsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*codestarconnections.ListTagsForResourceInput) (*codestarconnections.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *codestarconnections.ListTagsForResourceInput, ...request.Option) (*codestarconnections.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*codestarconnections.ListTagsForResourceInput) (*request.Request, *codestarconnections.ListTagsForResourceOutput) diff --git a/service/codestarconnections/doc.go b/service/codestarconnections/doc.go index 1320108cdc..6ac1d05181 100644 --- a/service/codestarconnections/doc.go +++ b/service/codestarconnections/doc.go @@ -3,9 +3,13 @@ // Package codestarconnections provides the client and types for making API // requests to AWS CodeStar connections. // +// +// The CodeStar Connections feature is in preview release and is subject to +// change. +// // This AWS CodeStar Connections API Reference provides descriptions and usage // examples of the operations and data types for the AWS CodeStar Connections -// API. You can use the Connections API to work with connections and installations. +// API. You can use the connections API to work with connections and installations. // // Connections are configurations that you use to connect AWS resources to external // code repositories. Each connection is a resource that can be given to services @@ -21,6 +25,9 @@ // Cloud app. When you create a connection, you can choose an existing installation // or create one. // +// When you want to create a connection to an installed provider type such as +// GitHub Enterprise Server, you create a host for your connections. +// // You can work with connections by calling: // // * CreateConnection, which creates a uniquely named connection that can @@ -33,8 +40,30 @@ // // * ListConnections, which lists the connections associated with your account. // -// For information about how to use AWS CodeStar Connections, see the AWS CodePipeline -// User Guide (https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html). +// You can work with hosts by calling: +// +// * CreateHost, which creates a host that represents the infrastructure +// where your provider is installed. +// +// * DeleteHost, which deletes the specified host. +// +// * GetHost, which returns information about the host, including the setup +// status. +// +// * ListHosts, which lists the hosts associated with your account. +// +// You can work with tags in AWS CodeStar Connections by calling the following: +// +// * ListTagsForResource, which gets information about AWS tags for a specified +// Amazon Resource Name (ARN) in AWS CodeStar Connections. +// +// * TagResource, which adds or updates tags for a resource in AWS CodeStar +// Connections. +// +// * UntagResource, which removes tags for a resource in AWS CodeStar Connections. +// +// For information about how to use AWS CodeStar Connections, see the Developer +// Tools User Guide (https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html). // // See https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01 for more information on this service. // diff --git a/service/codestarconnections/errors.go b/service/codestarconnections/errors.go index 89dd56af15..b38f41b7a6 100644 --- a/service/codestarconnections/errors.go +++ b/service/codestarconnections/errors.go @@ -19,9 +19,16 @@ const ( // // Resource not found. Verify the connection resource ARN and try again. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeResourceUnavailableException for service response error code + // "ResourceUnavailableException". + // + // Resource not found. Verify the ARN for the host resource and try again. + ErrCodeResourceUnavailableException = "ResourceUnavailableException" ) var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ - "LimitExceededException": newErrorLimitExceededException, - "ResourceNotFoundException": newErrorResourceNotFoundException, + "LimitExceededException": newErrorLimitExceededException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ResourceUnavailableException": newErrorResourceUnavailableException, } diff --git a/service/ec2/api.go b/service/ec2/api.go index d74d33da3e..2e438ca2ba 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -4938,6 +4938,84 @@ func (c *EC2) CreateLocalGatewayRouteTableVpcAssociationWithContext(ctx aws.Cont return out, req.Send() } +const opCreateManagedPrefixList = "CreateManagedPrefixList" + +// CreateManagedPrefixListRequest generates a "aws/request.Request" representing the +// client's request for the CreateManagedPrefixList 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 CreateManagedPrefixList for more information on using the CreateManagedPrefixList +// 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 CreateManagedPrefixListRequest method. +// req, resp := client.CreateManagedPrefixListRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateManagedPrefixList +func (c *EC2) CreateManagedPrefixListRequest(input *CreateManagedPrefixListInput) (req *request.Request, output *CreateManagedPrefixListOutput) { + op := &request.Operation{ + Name: opCreateManagedPrefixList, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateManagedPrefixListInput{} + } + + output = &CreateManagedPrefixListOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateManagedPrefixList API operation for Amazon Elastic Compute Cloud. +// +// Creates a managed prefix list. You can specify one or more entries for the +// prefix list. Each entry consists of a CIDR block and an optional description. +// +// You must specify the maximum number of entries for the prefix list. The maximum +// number of entries cannot be changed later. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation CreateManagedPrefixList for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateManagedPrefixList +func (c *EC2) CreateManagedPrefixList(input *CreateManagedPrefixListInput) (*CreateManagedPrefixListOutput, error) { + req, out := c.CreateManagedPrefixListRequest(input) + return out, req.Send() +} + +// CreateManagedPrefixListWithContext is the same as CreateManagedPrefixList with the addition of +// the ability to pass a context and additional request options. +// +// See CreateManagedPrefixList 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 *EC2) CreateManagedPrefixListWithContext(ctx aws.Context, input *CreateManagedPrefixListInput, opts ...request.Option) (*CreateManagedPrefixListOutput, error) { + req, out := c.CreateManagedPrefixListRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateNatGateway = "CreateNatGateway" // CreateNatGatewayRequest generates a "aws/request.Request" representing the @@ -6097,15 +6175,12 @@ func (c *EC2) CreateSubnetRequest(input *CreateSubnetInput) (req *request.Reques // CreateSubnet API operation for Amazon Elastic Compute Cloud. // -// Creates a subnet in an existing VPC. +// Creates a subnet in a specified VPC. // -// When you create each subnet, you provide the VPC ID and IPv4 CIDR block for -// the subnet. After you create a subnet, you can't change its CIDR block. The -// size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR -// block, or a subset of a VPC's IPv4 CIDR block. If you create more than one -// subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest -// IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), -// and the largest uses a /16 netmask (65,536 IPv4 addresses). +// You must specify an IPv4 CIDR block for the subnet. After you create a subnet, +// you can't change its CIDR block. The allowed block size is between a /16 +// netmask (65,536 IP addresses) and /28 netmask (16 IP addresses). The CIDR +// block must not overlap with the CIDR block of an existing subnet in the VPC. // // If you've associated an IPv6 CIDR block with your VPC, you can create a subnet // with an IPv6 CIDR block that uses a /64 prefix length. @@ -6116,9 +6191,7 @@ func (c *EC2) CreateSubnetRequest(input *CreateSubnetInput) (req *request.Reques // If you add more than one subnet to a VPC, they're set up in a star topology // with a logical router in the middle. // -// If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP -// address doesn't change if you stop and restart the instance (unlike a similar -// instance launched outside a VPC, which gets a new IP address when restarted). +// When you stop an instance in a subnet, it retains its private IPv4 address. // It's therefore possible to have a subnet with no running instances (they're // all stopped), but no remaining IP addresses available. // @@ -8890,6 +8963,81 @@ func (c *EC2) DeleteLocalGatewayRouteTableVpcAssociationWithContext(ctx aws.Cont return out, req.Send() } +const opDeleteManagedPrefixList = "DeleteManagedPrefixList" + +// DeleteManagedPrefixListRequest generates a "aws/request.Request" representing the +// client's request for the DeleteManagedPrefixList 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 DeleteManagedPrefixList for more information on using the DeleteManagedPrefixList +// 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 DeleteManagedPrefixListRequest method. +// req, resp := client.DeleteManagedPrefixListRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteManagedPrefixList +func (c *EC2) DeleteManagedPrefixListRequest(input *DeleteManagedPrefixListInput) (req *request.Request, output *DeleteManagedPrefixListOutput) { + op := &request.Operation{ + Name: opDeleteManagedPrefixList, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteManagedPrefixListInput{} + } + + output = &DeleteManagedPrefixListOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteManagedPrefixList API operation for Amazon Elastic Compute Cloud. +// +// Deletes the specified managed prefix list. You must first remove all references +// to the prefix list in your resources. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DeleteManagedPrefixList for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteManagedPrefixList +func (c *EC2) DeleteManagedPrefixList(input *DeleteManagedPrefixListInput) (*DeleteManagedPrefixListOutput, error) { + req, out := c.DeleteManagedPrefixListRequest(input) + return out, req.Send() +} + +// DeleteManagedPrefixListWithContext is the same as DeleteManagedPrefixList with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteManagedPrefixList 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 *EC2) DeleteManagedPrefixListWithContext(ctx aws.Context, input *DeleteManagedPrefixListInput, opts ...request.Option) (*DeleteManagedPrefixListOutput, error) { + req, out := c.DeleteManagedPrefixListRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteNatGateway = "DeleteNatGateway" // DeleteNatGatewayRequest generates a "aws/request.Request" representing the @@ -18326,6 +18474,140 @@ func (c *EC2) DescribeLocalGatewaysPagesWithContext(ctx aws.Context, input *Desc return p.Err() } +const opDescribeManagedPrefixLists = "DescribeManagedPrefixLists" + +// DescribeManagedPrefixListsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeManagedPrefixLists 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 DescribeManagedPrefixLists for more information on using the DescribeManagedPrefixLists +// 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 DescribeManagedPrefixListsRequest method. +// req, resp := client.DescribeManagedPrefixListsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeManagedPrefixLists +func (c *EC2) DescribeManagedPrefixListsRequest(input *DescribeManagedPrefixListsInput) (req *request.Request, output *DescribeManagedPrefixListsOutput) { + op := &request.Operation{ + Name: opDescribeManagedPrefixLists, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeManagedPrefixListsInput{} + } + + output = &DescribeManagedPrefixListsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeManagedPrefixLists API operation for Amazon Elastic Compute Cloud. +// +// Describes your managed prefix lists and any AWS-managed prefix lists. +// +// To view the entries for your prefix list, use GetManagedPrefixListEntries. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DescribeManagedPrefixLists for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeManagedPrefixLists +func (c *EC2) DescribeManagedPrefixLists(input *DescribeManagedPrefixListsInput) (*DescribeManagedPrefixListsOutput, error) { + req, out := c.DescribeManagedPrefixListsRequest(input) + return out, req.Send() +} + +// DescribeManagedPrefixListsWithContext is the same as DescribeManagedPrefixLists with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeManagedPrefixLists 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 *EC2) DescribeManagedPrefixListsWithContext(ctx aws.Context, input *DescribeManagedPrefixListsInput, opts ...request.Option) (*DescribeManagedPrefixListsOutput, error) { + req, out := c.DescribeManagedPrefixListsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeManagedPrefixListsPages iterates over the pages of a DescribeManagedPrefixLists operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeManagedPrefixLists 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 DescribeManagedPrefixLists operation. +// pageNum := 0 +// err := client.DescribeManagedPrefixListsPages(params, +// func(page *ec2.DescribeManagedPrefixListsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *EC2) DescribeManagedPrefixListsPages(input *DescribeManagedPrefixListsInput, fn func(*DescribeManagedPrefixListsOutput, bool) bool) error { + return c.DescribeManagedPrefixListsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeManagedPrefixListsPagesWithContext same as DescribeManagedPrefixListsPages 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 *EC2) DescribeManagedPrefixListsPagesWithContext(ctx aws.Context, input *DescribeManagedPrefixListsInput, fn func(*DescribeManagedPrefixListsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeManagedPrefixListsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeManagedPrefixListsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeManagedPrefixListsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opDescribeMovingAddresses = "DescribeMovingAddresses" // DescribeMovingAddressesRequest generates a "aws/request.Request" representing the @@ -19194,10 +19476,9 @@ func (c *EC2) DescribePrefixListsRequest(input *DescribePrefixListsInput) (req * // // Describes available AWS services in a prefix list format, which includes // the prefix list name and prefix list ID of the service and the IP address -// range for the service. A prefix list ID is required for creating an outbound -// security group rule that allows traffic from a VPC to access an AWS service -// through a gateway VPC endpoint. Currently, the services that support this -// action are Amazon S3 and Amazon DynamoDB. +// range for the service. +// +// We recommend that you use DescribeManagedPrefixLists instead. // // 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 @@ -28396,6 +28677,271 @@ func (c *EC2) GetLaunchTemplateDataWithContext(ctx aws.Context, input *GetLaunch return out, req.Send() } +const opGetManagedPrefixListAssociations = "GetManagedPrefixListAssociations" + +// GetManagedPrefixListAssociationsRequest generates a "aws/request.Request" representing the +// client's request for the GetManagedPrefixListAssociations 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 GetManagedPrefixListAssociations for more information on using the GetManagedPrefixListAssociations +// 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 GetManagedPrefixListAssociationsRequest method. +// req, resp := client.GetManagedPrefixListAssociationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListAssociations +func (c *EC2) GetManagedPrefixListAssociationsRequest(input *GetManagedPrefixListAssociationsInput) (req *request.Request, output *GetManagedPrefixListAssociationsOutput) { + op := &request.Operation{ + Name: opGetManagedPrefixListAssociations, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetManagedPrefixListAssociationsInput{} + } + + output = &GetManagedPrefixListAssociationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetManagedPrefixListAssociations API operation for Amazon Elastic Compute Cloud. +// +// Gets information about the resources that are associated with the specified +// managed prefix list. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation GetManagedPrefixListAssociations for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListAssociations +func (c *EC2) GetManagedPrefixListAssociations(input *GetManagedPrefixListAssociationsInput) (*GetManagedPrefixListAssociationsOutput, error) { + req, out := c.GetManagedPrefixListAssociationsRequest(input) + return out, req.Send() +} + +// GetManagedPrefixListAssociationsWithContext is the same as GetManagedPrefixListAssociations with the addition of +// the ability to pass a context and additional request options. +// +// See GetManagedPrefixListAssociations 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 *EC2) GetManagedPrefixListAssociationsWithContext(ctx aws.Context, input *GetManagedPrefixListAssociationsInput, opts ...request.Option) (*GetManagedPrefixListAssociationsOutput, error) { + req, out := c.GetManagedPrefixListAssociationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetManagedPrefixListAssociationsPages iterates over the pages of a GetManagedPrefixListAssociations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetManagedPrefixListAssociations 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 GetManagedPrefixListAssociations operation. +// pageNum := 0 +// err := client.GetManagedPrefixListAssociationsPages(params, +// func(page *ec2.GetManagedPrefixListAssociationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *EC2) GetManagedPrefixListAssociationsPages(input *GetManagedPrefixListAssociationsInput, fn func(*GetManagedPrefixListAssociationsOutput, bool) bool) error { + return c.GetManagedPrefixListAssociationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetManagedPrefixListAssociationsPagesWithContext same as GetManagedPrefixListAssociationsPages 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 *EC2) GetManagedPrefixListAssociationsPagesWithContext(ctx aws.Context, input *GetManagedPrefixListAssociationsInput, fn func(*GetManagedPrefixListAssociationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetManagedPrefixListAssociationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetManagedPrefixListAssociationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetManagedPrefixListAssociationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opGetManagedPrefixListEntries = "GetManagedPrefixListEntries" + +// GetManagedPrefixListEntriesRequest generates a "aws/request.Request" representing the +// client's request for the GetManagedPrefixListEntries 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 GetManagedPrefixListEntries for more information on using the GetManagedPrefixListEntries +// 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 GetManagedPrefixListEntriesRequest method. +// req, resp := client.GetManagedPrefixListEntriesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListEntries +func (c *EC2) GetManagedPrefixListEntriesRequest(input *GetManagedPrefixListEntriesInput) (req *request.Request, output *GetManagedPrefixListEntriesOutput) { + op := &request.Operation{ + Name: opGetManagedPrefixListEntries, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetManagedPrefixListEntriesInput{} + } + + output = &GetManagedPrefixListEntriesOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetManagedPrefixListEntries API operation for Amazon Elastic Compute Cloud. +// +// Gets information about the entries for a specified managed prefix list. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation GetManagedPrefixListEntries for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListEntries +func (c *EC2) GetManagedPrefixListEntries(input *GetManagedPrefixListEntriesInput) (*GetManagedPrefixListEntriesOutput, error) { + req, out := c.GetManagedPrefixListEntriesRequest(input) + return out, req.Send() +} + +// GetManagedPrefixListEntriesWithContext is the same as GetManagedPrefixListEntries with the addition of +// the ability to pass a context and additional request options. +// +// See GetManagedPrefixListEntries 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 *EC2) GetManagedPrefixListEntriesWithContext(ctx aws.Context, input *GetManagedPrefixListEntriesInput, opts ...request.Option) (*GetManagedPrefixListEntriesOutput, error) { + req, out := c.GetManagedPrefixListEntriesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetManagedPrefixListEntriesPages iterates over the pages of a GetManagedPrefixListEntries operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetManagedPrefixListEntries 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 GetManagedPrefixListEntries operation. +// pageNum := 0 +// err := client.GetManagedPrefixListEntriesPages(params, +// func(page *ec2.GetManagedPrefixListEntriesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *EC2) GetManagedPrefixListEntriesPages(input *GetManagedPrefixListEntriesInput, fn func(*GetManagedPrefixListEntriesOutput, bool) bool) error { + return c.GetManagedPrefixListEntriesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetManagedPrefixListEntriesPagesWithContext same as GetManagedPrefixListEntriesPages 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 *EC2) GetManagedPrefixListEntriesPagesWithContext(ctx aws.Context, input *GetManagedPrefixListEntriesInput, fn func(*GetManagedPrefixListEntriesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetManagedPrefixListEntriesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetManagedPrefixListEntriesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetManagedPrefixListEntriesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opGetPasswordData = "GetPasswordData" // GetPasswordDataRequest generates a "aws/request.Request" representing the @@ -31075,6 +31621,86 @@ func (c *EC2) ModifyLaunchTemplateWithContext(ctx aws.Context, input *ModifyLaun return out, req.Send() } +const opModifyManagedPrefixList = "ModifyManagedPrefixList" + +// ModifyManagedPrefixListRequest generates a "aws/request.Request" representing the +// client's request for the ModifyManagedPrefixList 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 ModifyManagedPrefixList for more information on using the ModifyManagedPrefixList +// 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 ModifyManagedPrefixListRequest method. +// req, resp := client.ModifyManagedPrefixListRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyManagedPrefixList +func (c *EC2) ModifyManagedPrefixListRequest(input *ModifyManagedPrefixListInput) (req *request.Request, output *ModifyManagedPrefixListOutput) { + op := &request.Operation{ + Name: opModifyManagedPrefixList, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyManagedPrefixListInput{} + } + + output = &ModifyManagedPrefixListOutput{} + req = c.newRequest(op, input, output) + return +} + +// ModifyManagedPrefixList API operation for Amazon Elastic Compute Cloud. +// +// Modifies the specified managed prefix list. +// +// Adding or removing entries in a prefix list creates a new version of the +// prefix list. Changing the name of the prefix list does not affect the version. +// +// If you specify a current version number that does not match the true current +// version number, the request fails. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation ModifyManagedPrefixList for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyManagedPrefixList +func (c *EC2) ModifyManagedPrefixList(input *ModifyManagedPrefixListInput) (*ModifyManagedPrefixListOutput, error) { + req, out := c.ModifyManagedPrefixListRequest(input) + return out, req.Send() +} + +// ModifyManagedPrefixListWithContext is the same as ModifyManagedPrefixList with the addition of +// the ability to pass a context and additional request options. +// +// See ModifyManagedPrefixList 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 *EC2) ModifyManagedPrefixListWithContext(ctx aws.Context, input *ModifyManagedPrefixListInput, opts ...request.Option) (*ModifyManagedPrefixListOutput, error) { + req, out := c.ModifyManagedPrefixListRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opModifyNetworkInterfaceAttribute = "ModifyNetworkInterfaceAttribute" // ModifyNetworkInterfaceAttributeRequest generates a "aws/request.Request" representing the @@ -35526,6 +36152,81 @@ func (c *EC2) RestoreAddressToClassicWithContext(ctx aws.Context, input *Restore return out, req.Send() } +const opRestoreManagedPrefixListVersion = "RestoreManagedPrefixListVersion" + +// RestoreManagedPrefixListVersionRequest generates a "aws/request.Request" representing the +// client's request for the RestoreManagedPrefixListVersion 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 RestoreManagedPrefixListVersion for more information on using the RestoreManagedPrefixListVersion +// 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 RestoreManagedPrefixListVersionRequest method. +// req, resp := client.RestoreManagedPrefixListVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreManagedPrefixListVersion +func (c *EC2) RestoreManagedPrefixListVersionRequest(input *RestoreManagedPrefixListVersionInput) (req *request.Request, output *RestoreManagedPrefixListVersionOutput) { + op := &request.Operation{ + Name: opRestoreManagedPrefixListVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RestoreManagedPrefixListVersionInput{} + } + + output = &RestoreManagedPrefixListVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// RestoreManagedPrefixListVersion API operation for Amazon Elastic Compute Cloud. +// +// Restores the entries from a previous version of a managed prefix list to +// a new version of the prefix list. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation RestoreManagedPrefixListVersion for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreManagedPrefixListVersion +func (c *EC2) RestoreManagedPrefixListVersion(input *RestoreManagedPrefixListVersionInput) (*RestoreManagedPrefixListVersionOutput, error) { + req, out := c.RestoreManagedPrefixListVersionRequest(input) + return out, req.Send() +} + +// RestoreManagedPrefixListVersionWithContext is the same as RestoreManagedPrefixListVersion with the addition of +// the ability to pass a context and additional request options. +// +// See RestoreManagedPrefixListVersion 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 *EC2) RestoreManagedPrefixListVersionWithContext(ctx aws.Context, input *RestoreManagedPrefixListVersionInput, opts ...request.Option) (*RestoreManagedPrefixListVersionOutput, error) { + req, out := c.RestoreManagedPrefixListVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opRevokeClientVpnIngress = "RevokeClientVpnIngress" // RevokeClientVpnIngressRequest generates a "aws/request.Request" representing the @@ -37853,6 +38554,56 @@ func (s *ActiveInstance) SetSpotInstanceRequestId(v string) *ActiveInstance { return s } +// An entry for a prefix list. +type AddPrefixListEntry struct { + _ struct{} `type:"structure"` + + // The CIDR block. + // + // Cidr is a required field + Cidr *string `type:"string" required:"true"` + + // A description for the entry. + // + // Constraints: Up to 255 characters in length. + Description *string `type:"string"` +} + +// String returns the string representation +func (s AddPrefixListEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddPrefixListEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddPrefixListEntry) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddPrefixListEntry"} + if s.Cidr == nil { + invalidParams.Add(request.NewErrParamRequired("Cidr")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCidr sets the Cidr field's value. +func (s *AddPrefixListEntry) SetCidr(v string) *AddPrefixListEntry { + s.Cidr = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AddPrefixListEntry) SetDescription(v string) *AddPrefixListEntry { + s.Description = &v + return s +} + // Describes an Elastic IP address. type Address struct { _ struct{} `type:"structure"` @@ -47003,6 +47754,151 @@ func (s *CreateLocalGatewayRouteTableVpcAssociationOutput) SetLocalGatewayRouteT return s } +type CreateManagedPrefixListInput struct { + _ struct{} `type:"structure"` + + // The IP address type. + // + // Valid Values: IPv4 | IPv6 + // + // AddressFamily is a required field + AddressFamily *string `type:"string" required:"true"` + + // Unique, case-sensitive identifier you provide to ensure the idempotency of + // the request. For more information, see Ensuring Idempotency (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + // + // Constraints: Up to 255 UTF-8 characters in length. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // One or more entries for the prefix list. + Entries []*AddPrefixListEntry `locationName:"Entry" type:"list"` + + // The maximum number of entries for the prefix list. + // + // MaxEntries is a required field + MaxEntries *int64 `type:"integer" required:"true"` + + // A name for the prefix list. + // + // Constraints: Up to 255 characters in length. The name cannot start with com.amazonaws. + // + // PrefixListName is a required field + PrefixListName *string `type:"string" required:"true"` + + // The tags to apply to the prefix list during creation. + TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s CreateManagedPrefixListInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateManagedPrefixListInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateManagedPrefixListInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateManagedPrefixListInput"} + if s.AddressFamily == nil { + invalidParams.Add(request.NewErrParamRequired("AddressFamily")) + } + if s.MaxEntries == nil { + invalidParams.Add(request.NewErrParamRequired("MaxEntries")) + } + if s.PrefixListName == nil { + invalidParams.Add(request.NewErrParamRequired("PrefixListName")) + } + if s.Entries != nil { + for i, v := range s.Entries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAddressFamily sets the AddressFamily field's value. +func (s *CreateManagedPrefixListInput) SetAddressFamily(v string) *CreateManagedPrefixListInput { + s.AddressFamily = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateManagedPrefixListInput) SetClientToken(v string) *CreateManagedPrefixListInput { + s.ClientToken = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *CreateManagedPrefixListInput) SetDryRun(v bool) *CreateManagedPrefixListInput { + s.DryRun = &v + return s +} + +// SetEntries sets the Entries field's value. +func (s *CreateManagedPrefixListInput) SetEntries(v []*AddPrefixListEntry) *CreateManagedPrefixListInput { + s.Entries = v + return s +} + +// SetMaxEntries sets the MaxEntries field's value. +func (s *CreateManagedPrefixListInput) SetMaxEntries(v int64) *CreateManagedPrefixListInput { + s.MaxEntries = &v + return s +} + +// SetPrefixListName sets the PrefixListName field's value. +func (s *CreateManagedPrefixListInput) SetPrefixListName(v string) *CreateManagedPrefixListInput { + s.PrefixListName = &v + return s +} + +// SetTagSpecifications sets the TagSpecifications field's value. +func (s *CreateManagedPrefixListInput) SetTagSpecifications(v []*TagSpecification) *CreateManagedPrefixListInput { + s.TagSpecifications = v + return s +} + +type CreateManagedPrefixListOutput struct { + _ struct{} `type:"structure"` + + // Information about the prefix list. + PrefixList *ManagedPrefixList `locationName:"prefixList" type:"structure"` +} + +// String returns the string representation +func (s CreateManagedPrefixListOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateManagedPrefixListOutput) GoString() string { + return s.String() +} + +// SetPrefixList sets the PrefixList field's value. +func (s *CreateManagedPrefixListOutput) SetPrefixList(v *ManagedPrefixList) *CreateManagedPrefixListOutput { + s.PrefixList = v + return s +} + type CreateNatGatewayInput struct { _ struct{} `type:"structure"` @@ -47127,6 +48023,8 @@ type CreateNetworkAclEntryInput struct { _ struct{} `type:"structure"` // The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24). + // We modify the specified CIDR block to its canonical form; for example, if + // you specify 100.68.0.18/18, we modify it to 100.68.0.0/18. CidrBlock *string `locationName:"cidrBlock" type:"string"` // Checks whether you have the required permissions for the action, without @@ -47841,13 +48739,18 @@ type CreateRouteInput struct { _ struct{} `type:"structure"` // The IPv4 CIDR address block used for the destination match. Routing decisions - // are based on the most specific match. + // are based on the most specific match. We modify the specified CIDR block + // to its canonical form; for example, if you specify 100.68.0.18/18, we modify + // it to 100.68.0.0/18. DestinationCidrBlock *string `locationName:"destinationCidrBlock" type:"string"` // The IPv6 CIDR block used for the destination match. Routing decisions are // based on the most specific match. DestinationIpv6CidrBlock *string `locationName:"destinationIpv6CidrBlock" type:"string"` + // The ID of a prefix list used for the destination match. + DestinationPrefixListId *string `type:"string"` + // Checks whether you have the required permissions for the action, without // actually making the request, and provides an error response. If you have // the required permissions, the error response is DryRunOperation. Otherwise, @@ -47921,6 +48824,12 @@ func (s *CreateRouteInput) SetDestinationIpv6CidrBlock(v string) *CreateRouteInp return s } +// SetDestinationPrefixListId sets the DestinationPrefixListId field's value. +func (s *CreateRouteInput) SetDestinationPrefixListId(v string) *CreateRouteInput { + s.DestinationPrefixListId = &v + return s +} + // SetDryRun sets the DryRun field's value. func (s *CreateRouteInput) SetDryRun(v bool) *CreateRouteInput { s.DryRun = &v @@ -48458,6 +49367,8 @@ type CreateSubnetInput struct { AvailabilityZoneId *string `type:"string"` // The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24. + // We modify the specified CIDR block to its canonical form; for example, if + // you specify 100.68.0.18/18, we modify it to 100.68.0.0/18. // // CidrBlock is a required field CidrBlock *string `type:"string" required:"true"` @@ -50558,6 +51469,8 @@ type CreateVpcInput struct { AmazonProvidedIpv6CidrBlock *bool `locationName:"amazonProvidedIpv6CidrBlock" type:"boolean"` // The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16. + // We modify the specified CIDR block to its canonical form; for example, if + // you specify 100.68.0.18/18, we modify it to 100.68.0.0/18. // // CidrBlock is a required field CidrBlock *string `type:"string" required:"true"` @@ -52497,6 +53410,79 @@ func (s *DeleteLocalGatewayRouteTableVpcAssociationOutput) SetLocalGatewayRouteT return s } +type DeleteManagedPrefixListInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the prefix list. + // + // PrefixListId is a required field + PrefixListId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteManagedPrefixListInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteManagedPrefixListInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteManagedPrefixListInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteManagedPrefixListInput"} + if s.PrefixListId == nil { + invalidParams.Add(request.NewErrParamRequired("PrefixListId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDryRun sets the DryRun field's value. +func (s *DeleteManagedPrefixListInput) SetDryRun(v bool) *DeleteManagedPrefixListInput { + s.DryRun = &v + return s +} + +// SetPrefixListId sets the PrefixListId field's value. +func (s *DeleteManagedPrefixListInput) SetPrefixListId(v string) *DeleteManagedPrefixListInput { + s.PrefixListId = &v + return s +} + +type DeleteManagedPrefixListOutput struct { + _ struct{} `type:"structure"` + + // Information about the prefix list. + PrefixList *ManagedPrefixList `locationName:"prefixList" type:"structure"` +} + +// String returns the string representation +func (s DeleteManagedPrefixListOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteManagedPrefixListOutput) GoString() string { + return s.String() +} + +// SetPrefixList sets the PrefixList field's value. +func (s *DeleteManagedPrefixListOutput) SetPrefixList(v *ManagedPrefixList) *DeleteManagedPrefixListOutput { + s.PrefixList = v + return s +} + type DeleteNatGatewayInput struct { _ struct{} `type:"structure"` @@ -53070,6 +54056,9 @@ type DeleteRouteInput struct { // for the route exactly. DestinationIpv6CidrBlock *string `locationName:"destinationIpv6CidrBlock" type:"string"` + // The ID of the prefix list for the route. + DestinationPrefixListId *string `type:"string"` + // Checks whether you have the required permissions for the action, without // actually making the request, and provides an error response. If you have // the required permissions, the error response is DryRunOperation. Otherwise, @@ -53117,6 +54106,12 @@ func (s *DeleteRouteInput) SetDestinationIpv6CidrBlock(v string) *DeleteRouteInp return s } +// SetDestinationPrefixListId sets the DestinationPrefixListId field's value. +func (s *DeleteRouteInput) SetDestinationPrefixListId(v string) *DeleteRouteInput { + s.DestinationPrefixListId = &v + return s +} + // SetDryRun sets the DryRun field's value. func (s *DeleteRouteInput) SetDryRun(v bool) *DeleteRouteInput { s.DryRun = &v @@ -62235,6 +63230,121 @@ func (s *DescribeLocalGatewaysOutput) SetNextToken(v string) *DescribeLocalGatew return s } +type DescribeManagedPrefixListsInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // One or more filters. + // + // * owner-id - The ID of the prefix list owner. + // + // * prefix-list-id - The ID of the prefix list. + // + // * prefix-list-name - The name of the prefix list. + Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // One or more prefix list IDs. + PrefixListIds []*string `locationName:"PrefixListId" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribeManagedPrefixListsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeManagedPrefixListsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeManagedPrefixListsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeManagedPrefixListsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDryRun sets the DryRun field's value. +func (s *DescribeManagedPrefixListsInput) SetDryRun(v bool) *DescribeManagedPrefixListsInput { + s.DryRun = &v + return s +} + +// SetFilters sets the Filters field's value. +func (s *DescribeManagedPrefixListsInput) SetFilters(v []*Filter) *DescribeManagedPrefixListsInput { + s.Filters = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeManagedPrefixListsInput) SetMaxResults(v int64) *DescribeManagedPrefixListsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeManagedPrefixListsInput) SetNextToken(v string) *DescribeManagedPrefixListsInput { + s.NextToken = &v + return s +} + +// SetPrefixListIds sets the PrefixListIds field's value. +func (s *DescribeManagedPrefixListsInput) SetPrefixListIds(v []*string) *DescribeManagedPrefixListsInput { + s.PrefixListIds = v + return s +} + +type DescribeManagedPrefixListsOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // Information about the prefix lists. + PrefixLists []*ManagedPrefixList `locationName:"prefixListSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribeManagedPrefixListsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeManagedPrefixListsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeManagedPrefixListsOutput) SetNextToken(v string) *DescribeManagedPrefixListsOutput { + s.NextToken = &v + return s +} + +// SetPrefixLists sets the PrefixLists field's value. +func (s *DescribeManagedPrefixListsOutput) SetPrefixLists(v []*ManagedPrefixList) *DescribeManagedPrefixListsOutput { + s.PrefixLists = v + return s +} + type DescribeMovingAddressesInput struct { _ struct{} `type:"structure"` @@ -62925,9 +64035,6 @@ type DescribeNetworkInterfacesInput struct { // * attachment.instance-owner-id - The owner ID of the instance to which // the network interface is attached. // - // * attachment.nat-gateway-id - The ID of the NAT gateway to which the network - // interface is attached. - // // * attachment.status - The status of the attachment (attaching | attached // | detaching | detached). // @@ -64707,8 +65814,8 @@ type DescribeSecurityGroupsInput struct { // * egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound // security group rule. // - // * egress.ip-permission.prefix-list-id - The ID (prefix) of the AWS service - // to which a security group rule allows outbound access. + // * egress.ip-permission.prefix-list-id - The ID of a prefix list to which + // a security group rule allows outbound access. // // * egress.ip-permission.protocol - The IP protocol for an outbound security // group rule (tcp | udp | icmp or a protocol number). @@ -64738,8 +65845,8 @@ type DescribeSecurityGroupsInput struct { // * ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound security // group rule. // - // * ip-permission.prefix-list-id - The ID (prefix) of the AWS service from - // which a security group rule allows inbound access. + // * ip-permission.prefix-list-id - The ID of a prefix list from which a + // security group rule allows inbound access. // // * ip-permission.protocol - The IP protocol for an inbound security group // rule (tcp | udp | icmp or a protocol number). @@ -76162,6 +77269,226 @@ func (s *GetLaunchTemplateDataOutput) SetLaunchTemplateData(v *ResponseLaunchTem return s } +type GetManagedPrefixListAssociationsInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"5" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The ID of the prefix list. + // + // PrefixListId is a required field + PrefixListId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetManagedPrefixListAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetManagedPrefixListAssociationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetManagedPrefixListAssociationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetManagedPrefixListAssociationsInput"} + if s.MaxResults != nil && *s.MaxResults < 5 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5)) + } + if s.PrefixListId == nil { + invalidParams.Add(request.NewErrParamRequired("PrefixListId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDryRun sets the DryRun field's value. +func (s *GetManagedPrefixListAssociationsInput) SetDryRun(v bool) *GetManagedPrefixListAssociationsInput { + s.DryRun = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *GetManagedPrefixListAssociationsInput) SetMaxResults(v int64) *GetManagedPrefixListAssociationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetManagedPrefixListAssociationsInput) SetNextToken(v string) *GetManagedPrefixListAssociationsInput { + s.NextToken = &v + return s +} + +// SetPrefixListId sets the PrefixListId field's value. +func (s *GetManagedPrefixListAssociationsInput) SetPrefixListId(v string) *GetManagedPrefixListAssociationsInput { + s.PrefixListId = &v + return s +} + +type GetManagedPrefixListAssociationsOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // Information about the associations. + PrefixListAssociations []*PrefixListAssociation `locationName:"prefixListAssociationSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s GetManagedPrefixListAssociationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetManagedPrefixListAssociationsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *GetManagedPrefixListAssociationsOutput) SetNextToken(v string) *GetManagedPrefixListAssociationsOutput { + s.NextToken = &v + return s +} + +// SetPrefixListAssociations sets the PrefixListAssociations field's value. +func (s *GetManagedPrefixListAssociationsOutput) SetPrefixListAssociations(v []*PrefixListAssociation) *GetManagedPrefixListAssociationsOutput { + s.PrefixListAssociations = v + return s +} + +type GetManagedPrefixListEntriesInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `type:"string"` + + // The ID of the prefix list. + // + // PrefixListId is a required field + PrefixListId *string `type:"string" required:"true"` + + // The version of the prefix list for which to return the entries. The default + // is the current version. + TargetVersion *int64 `type:"long"` +} + +// String returns the string representation +func (s GetManagedPrefixListEntriesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetManagedPrefixListEntriesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetManagedPrefixListEntriesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetManagedPrefixListEntriesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.PrefixListId == nil { + invalidParams.Add(request.NewErrParamRequired("PrefixListId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDryRun sets the DryRun field's value. +func (s *GetManagedPrefixListEntriesInput) SetDryRun(v bool) *GetManagedPrefixListEntriesInput { + s.DryRun = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *GetManagedPrefixListEntriesInput) SetMaxResults(v int64) *GetManagedPrefixListEntriesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetManagedPrefixListEntriesInput) SetNextToken(v string) *GetManagedPrefixListEntriesInput { + s.NextToken = &v + return s +} + +// SetPrefixListId sets the PrefixListId field's value. +func (s *GetManagedPrefixListEntriesInput) SetPrefixListId(v string) *GetManagedPrefixListEntriesInput { + s.PrefixListId = &v + return s +} + +// SetTargetVersion sets the TargetVersion field's value. +func (s *GetManagedPrefixListEntriesInput) SetTargetVersion(v int64) *GetManagedPrefixListEntriesInput { + s.TargetVersion = &v + return s +} + +type GetManagedPrefixListEntriesOutput struct { + _ struct{} `type:"structure"` + + // Information about the prefix list entries. + Entries []*PrefixListEntry `locationName:"entrySet" locationNameList:"item" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetManagedPrefixListEntriesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetManagedPrefixListEntriesOutput) GoString() string { + return s.String() +} + +// SetEntries sets the Entries field's value. +func (s *GetManagedPrefixListEntriesOutput) SetEntries(v []*PrefixListEntry) *GetManagedPrefixListEntriesOutput { + s.Entries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetManagedPrefixListEntriesOutput) SetNextToken(v string) *GetManagedPrefixListEntriesOutput { + s.NextToken = &v + return s +} + type GetPasswordDataInput struct { _ struct{} `type:"structure"` @@ -82222,9 +83549,7 @@ type IpPermission struct { // [VPC only] The IPv6 ranges. Ipv6Ranges []*Ipv6Range `locationName:"ipv6Ranges" locationNameList:"item" type:"list"` - // [VPC only] The prefix list IDs for an AWS service. With outbound rules, this - // is the AWS service to access through a VPC endpoint from instances associated - // with the security group. + // [VPC only] The prefix list IDs. PrefixListIds []*PrefixListId `locationName:"prefixListIds" locationNameList:"item" type:"list"` // The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. @@ -85413,6 +86738,111 @@ func (s *LocalGatewayVirtualInterfaceGroup) SetTags(v []*Tag) *LocalGatewayVirtu return s } +// Describes a managed prefix list. +type ManagedPrefixList struct { + _ struct{} `type:"structure"` + + // The IP address version. + AddressFamily *string `locationName:"addressFamily" type:"string"` + + // The maximum number of entries for the prefix list. + MaxEntries *int64 `locationName:"maxEntries" type:"integer"` + + // The ID of the owner of the prefix list. + OwnerId *string `locationName:"ownerId" type:"string"` + + // The Amazon Resource Name (ARN) for the prefix list. + PrefixListArn *string `locationName:"prefixListArn" min:"1" type:"string"` + + // The ID of the prefix list. + PrefixListId *string `locationName:"prefixListId" type:"string"` + + // The name of the prefix list. + PrefixListName *string `locationName:"prefixListName" type:"string"` + + // The state of the prefix list. + State *string `locationName:"state" type:"string" enum:"PrefixListState"` + + // The state message. + StateMessage *string `locationName:"stateMessage" type:"string"` + + // The tags for the prefix list. + Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"` + + // The version of the prefix list. + Version *int64 `locationName:"version" type:"long"` +} + +// String returns the string representation +func (s ManagedPrefixList) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ManagedPrefixList) GoString() string { + return s.String() +} + +// SetAddressFamily sets the AddressFamily field's value. +func (s *ManagedPrefixList) SetAddressFamily(v string) *ManagedPrefixList { + s.AddressFamily = &v + return s +} + +// SetMaxEntries sets the MaxEntries field's value. +func (s *ManagedPrefixList) SetMaxEntries(v int64) *ManagedPrefixList { + s.MaxEntries = &v + return s +} + +// SetOwnerId sets the OwnerId field's value. +func (s *ManagedPrefixList) SetOwnerId(v string) *ManagedPrefixList { + s.OwnerId = &v + return s +} + +// SetPrefixListArn sets the PrefixListArn field's value. +func (s *ManagedPrefixList) SetPrefixListArn(v string) *ManagedPrefixList { + s.PrefixListArn = &v + return s +} + +// SetPrefixListId sets the PrefixListId field's value. +func (s *ManagedPrefixList) SetPrefixListId(v string) *ManagedPrefixList { + s.PrefixListId = &v + return s +} + +// SetPrefixListName sets the PrefixListName field's value. +func (s *ManagedPrefixList) SetPrefixListName(v string) *ManagedPrefixList { + s.PrefixListName = &v + return s +} + +// SetState sets the State field's value. +func (s *ManagedPrefixList) SetState(v string) *ManagedPrefixList { + s.State = &v + return s +} + +// SetStateMessage sets the StateMessage field's value. +func (s *ManagedPrefixList) SetStateMessage(v string) *ManagedPrefixList { + s.StateMessage = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ManagedPrefixList) SetTags(v []*Tag) *ManagedPrefixList { + s.Tags = v + return s +} + +// SetVersion sets the Version field's value. +func (s *ManagedPrefixList) SetVersion(v int64) *ManagedPrefixList { + s.Version = &v + return s +} + // Describes the memory for the instance type. type MemoryInfo struct { _ struct{} `type:"structure"` @@ -87535,6 +88965,135 @@ func (s *ModifyLaunchTemplateOutput) SetLaunchTemplate(v *LaunchTemplate) *Modif return s } +type ModifyManagedPrefixListInput struct { + _ struct{} `type:"structure"` + + // One or more entries to add to the prefix list. + AddEntries []*AddPrefixListEntry `locationName:"AddEntry" type:"list"` + + // The current version of the prefix list. + CurrentVersion *int64 `type:"long"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the prefix list. + // + // PrefixListId is a required field + PrefixListId *string `type:"string" required:"true"` + + // A name for the prefix list. + PrefixListName *string `type:"string"` + + // One or more entries to remove from the prefix list. + RemoveEntries []*RemovePrefixListEntry `locationName:"RemoveEntry" type:"list"` +} + +// String returns the string representation +func (s ModifyManagedPrefixListInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyManagedPrefixListInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyManagedPrefixListInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyManagedPrefixListInput"} + if s.PrefixListId == nil { + invalidParams.Add(request.NewErrParamRequired("PrefixListId")) + } + if s.AddEntries != nil { + for i, v := range s.AddEntries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AddEntries", i), err.(request.ErrInvalidParams)) + } + } + } + if s.RemoveEntries != nil { + for i, v := range s.RemoveEntries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RemoveEntries", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAddEntries sets the AddEntries field's value. +func (s *ModifyManagedPrefixListInput) SetAddEntries(v []*AddPrefixListEntry) *ModifyManagedPrefixListInput { + s.AddEntries = v + return s +} + +// SetCurrentVersion sets the CurrentVersion field's value. +func (s *ModifyManagedPrefixListInput) SetCurrentVersion(v int64) *ModifyManagedPrefixListInput { + s.CurrentVersion = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *ModifyManagedPrefixListInput) SetDryRun(v bool) *ModifyManagedPrefixListInput { + s.DryRun = &v + return s +} + +// SetPrefixListId sets the PrefixListId field's value. +func (s *ModifyManagedPrefixListInput) SetPrefixListId(v string) *ModifyManagedPrefixListInput { + s.PrefixListId = &v + return s +} + +// SetPrefixListName sets the PrefixListName field's value. +func (s *ModifyManagedPrefixListInput) SetPrefixListName(v string) *ModifyManagedPrefixListInput { + s.PrefixListName = &v + return s +} + +// SetRemoveEntries sets the RemoveEntries field's value. +func (s *ModifyManagedPrefixListInput) SetRemoveEntries(v []*RemovePrefixListEntry) *ModifyManagedPrefixListInput { + s.RemoveEntries = v + return s +} + +type ModifyManagedPrefixListOutput struct { + _ struct{} `type:"structure"` + + // Information about the prefix list. + PrefixList *ManagedPrefixList `locationName:"prefixList" type:"structure"` +} + +// String returns the string representation +func (s ModifyManagedPrefixListOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyManagedPrefixListOutput) GoString() string { + return s.String() +} + +// SetPrefixList sets the PrefixList field's value. +func (s *ModifyManagedPrefixListOutput) SetPrefixList(v *ManagedPrefixList) *ModifyManagedPrefixListOutput { + s.PrefixList = v + return s +} + // Contains the parameters for ModifyNetworkInterfaceAttribute. type ModifyNetworkInterfaceAttributeInput struct { _ struct{} `type:"structure"` @@ -92296,6 +93855,72 @@ func (s *PrefixList) SetPrefixListName(v string) *PrefixList { return s } +// Describes the resource with which a prefix list is associated. +type PrefixListAssociation struct { + _ struct{} `type:"structure"` + + // The ID of the resource. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The owner of the resource. + ResourceOwner *string `locationName:"resourceOwner" type:"string"` +} + +// String returns the string representation +func (s PrefixListAssociation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PrefixListAssociation) GoString() string { + return s.String() +} + +// SetResourceId sets the ResourceId field's value. +func (s *PrefixListAssociation) SetResourceId(v string) *PrefixListAssociation { + s.ResourceId = &v + return s +} + +// SetResourceOwner sets the ResourceOwner field's value. +func (s *PrefixListAssociation) SetResourceOwner(v string) *PrefixListAssociation { + s.ResourceOwner = &v + return s +} + +// Describes a prefix list entry. +type PrefixListEntry struct { + _ struct{} `type:"structure"` + + // The CIDR block. + Cidr *string `locationName:"cidr" type:"string"` + + // The description. + Description *string `locationName:"description" type:"string"` +} + +// String returns the string representation +func (s PrefixListEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PrefixListEntry) GoString() string { + return s.String() +} + +// SetCidr sets the Cidr field's value. +func (s *PrefixListEntry) SetCidr(v string) *PrefixListEntry { + s.Cidr = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *PrefixListEntry) SetDescription(v string) *PrefixListEntry { + s.Description = &v + return s +} + // Describes a prefix list ID. type PrefixListId struct { _ struct{} `type:"structure"` @@ -94557,6 +96182,45 @@ func (s *ReleaseHostsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *ReleaseHost return s } +// An entry for a prefix list. +type RemovePrefixListEntry struct { + _ struct{} `type:"structure"` + + // The CIDR block. + // + // Cidr is a required field + Cidr *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RemovePrefixListEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemovePrefixListEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RemovePrefixListEntry) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RemovePrefixListEntry"} + if s.Cidr == nil { + invalidParams.Add(request.NewErrParamRequired("Cidr")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCidr sets the Cidr field's value. +func (s *RemovePrefixListEntry) SetCidr(v string) *RemovePrefixListEntry { + s.Cidr = &v + return s +} + type ReplaceIamInstanceProfileAssociationInput struct { _ struct{} `type:"structure"` @@ -94897,6 +96561,9 @@ type ReplaceRouteInput struct { // you provide must match the CIDR of an existing route in the table. DestinationIpv6CidrBlock *string `locationName:"destinationIpv6CidrBlock" type:"string"` + // The ID of the prefix list for the route. + DestinationPrefixListId *string `type:"string"` + // Checks whether you have the required permissions for the action, without // actually making the request, and provides an error response. If you have // the required permissions, the error response is DryRunOperation. Otherwise, @@ -94971,6 +96638,12 @@ func (s *ReplaceRouteInput) SetDestinationIpv6CidrBlock(v string) *ReplaceRouteI return s } +// SetDestinationPrefixListId sets the DestinationPrefixListId field's value. +func (s *ReplaceRouteInput) SetDestinationPrefixListId(v string) *ReplaceRouteInput { + s.DestinationPrefixListId = &v + return s +} + // SetDryRun sets the DryRun field's value. func (s *ReplaceRouteInput) SetDryRun(v bool) *ReplaceRouteInput { s.DryRun = &v @@ -97864,6 +99537,107 @@ func (s *RestoreAddressToClassicOutput) SetStatus(v string) *RestoreAddressToCla return s } +type RestoreManagedPrefixListVersionInput struct { + _ struct{} `type:"structure"` + + // The current version number for the prefix list. + // + // CurrentVersion is a required field + CurrentVersion *int64 `type:"long" required:"true"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ID of the prefix list. + // + // PrefixListId is a required field + PrefixListId *string `type:"string" required:"true"` + + // The version to restore. + // + // PreviousVersion is a required field + PreviousVersion *int64 `type:"long" required:"true"` +} + +// String returns the string representation +func (s RestoreManagedPrefixListVersionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RestoreManagedPrefixListVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RestoreManagedPrefixListVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RestoreManagedPrefixListVersionInput"} + if s.CurrentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("CurrentVersion")) + } + if s.PrefixListId == nil { + invalidParams.Add(request.NewErrParamRequired("PrefixListId")) + } + if s.PreviousVersion == nil { + invalidParams.Add(request.NewErrParamRequired("PreviousVersion")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCurrentVersion sets the CurrentVersion field's value. +func (s *RestoreManagedPrefixListVersionInput) SetCurrentVersion(v int64) *RestoreManagedPrefixListVersionInput { + s.CurrentVersion = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *RestoreManagedPrefixListVersionInput) SetDryRun(v bool) *RestoreManagedPrefixListVersionInput { + s.DryRun = &v + return s +} + +// SetPrefixListId sets the PrefixListId field's value. +func (s *RestoreManagedPrefixListVersionInput) SetPrefixListId(v string) *RestoreManagedPrefixListVersionInput { + s.PrefixListId = &v + return s +} + +// SetPreviousVersion sets the PreviousVersion field's value. +func (s *RestoreManagedPrefixListVersionInput) SetPreviousVersion(v int64) *RestoreManagedPrefixListVersionInput { + s.PreviousVersion = &v + return s +} + +type RestoreManagedPrefixListVersionOutput struct { + _ struct{} `type:"structure"` + + // Information about the prefix list. + PrefixList *ManagedPrefixList `locationName:"prefixList" type:"structure"` +} + +// String returns the string representation +func (s RestoreManagedPrefixListVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RestoreManagedPrefixListVersionOutput) GoString() string { + return s.String() +} + +// SetPrefixList sets the PrefixList field's value. +func (s *RestoreManagedPrefixListVersionOutput) SetPrefixList(v *ManagedPrefixList) *RestoreManagedPrefixListVersionOutput { + s.PrefixList = v + return s +} + type RevokeClientVpnIngressInput struct { _ struct{} `type:"structure"` @@ -103231,8 +105005,7 @@ type StaleIpPermission struct { // The IP ranges. Not applicable for stale security group rules. IpRanges []*string `locationName:"ipRanges" locationNameList:"item" type:"list"` - // The prefix list IDs for an AWS service. Not applicable for stale security - // group rules. + // The prefix list IDs. Not applicable for stale security group rules. PrefixListIds []*string `locationName:"prefixListIds" locationNameList:"item" type:"list"` // The end of the port range for the TCP and UDP protocols, or an ICMP type @@ -104171,10 +105944,10 @@ type TagSpecification struct { // on creation are: capacity-reservation | client-vpn-endpoint | dedicated-host // | fleet | fpga-image | host-reservation | instance | ipv4pool-ec2 | ipv6pool-ec2 // | key-pair | launch-template | natgateway | spot-fleet-request | placement-group - // | snapshot | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target - // | transit-gateway | transit-gateway-attachment | transit-gateway-route-table - // | vpc-endpoint (for interface and gateway endpoints) | vpc-endpoint-service - // (for AWS PrivateLink) | volume | vpc-flow-log. + // | prefix-list | snapshot | traffic-mirror-filter | traffic-mirror-session + // | traffic-mirror-target | transit-gateway | transit-gateway-attachment | + // transit-gateway-route-table | vpc-endpoint (for interface and gateway endpoints) + // | vpc-endpoint-service (for AWS PrivateLink) | volume | vpc-flow-log. // // To tag a resource after it has been created, see CreateTags (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"` @@ -112339,6 +114112,44 @@ const ( PlatformValuesWindows = "Windows" ) +const ( + // PrefixListStateCreateInProgress is a PrefixListState enum value + PrefixListStateCreateInProgress = "create-in-progress" + + // PrefixListStateCreateComplete is a PrefixListState enum value + PrefixListStateCreateComplete = "create-complete" + + // PrefixListStateCreateFailed is a PrefixListState enum value + PrefixListStateCreateFailed = "create-failed" + + // PrefixListStateModifyInProgress is a PrefixListState enum value + PrefixListStateModifyInProgress = "modify-in-progress" + + // PrefixListStateModifyComplete is a PrefixListState enum value + PrefixListStateModifyComplete = "modify-complete" + + // PrefixListStateModifyFailed is a PrefixListState enum value + PrefixListStateModifyFailed = "modify-failed" + + // PrefixListStateRestoreInProgress is a PrefixListState enum value + PrefixListStateRestoreInProgress = "restore-in-progress" + + // PrefixListStateRestoreComplete is a PrefixListState enum value + PrefixListStateRestoreComplete = "restore-complete" + + // PrefixListStateRestoreFailed is a PrefixListState enum value + PrefixListStateRestoreFailed = "restore-failed" + + // PrefixListStateDeleteInProgress is a PrefixListState enum value + PrefixListStateDeleteInProgress = "delete-in-progress" + + // PrefixListStateDeleteComplete is a PrefixListState enum value + PrefixListStateDeleteComplete = "delete-complete" + + // PrefixListStateDeleteFailed is a PrefixListState enum value + PrefixListStateDeleteFailed = "delete-failed" +) + const ( // PrincipalTypeAll is a PrincipalType enum value PrincipalTypeAll = "All" diff --git a/service/ec2/ec2iface/interface.go b/service/ec2/ec2iface/interface.go index 8cfda3d6cd..37693b87fb 100644 --- a/service/ec2/ec2iface/interface.go +++ b/service/ec2/ec2iface/interface.go @@ -300,6 +300,10 @@ type EC2API interface { CreateLocalGatewayRouteTableVpcAssociationWithContext(aws.Context, *ec2.CreateLocalGatewayRouteTableVpcAssociationInput, ...request.Option) (*ec2.CreateLocalGatewayRouteTableVpcAssociationOutput, error) CreateLocalGatewayRouteTableVpcAssociationRequest(*ec2.CreateLocalGatewayRouteTableVpcAssociationInput) (*request.Request, *ec2.CreateLocalGatewayRouteTableVpcAssociationOutput) + CreateManagedPrefixList(*ec2.CreateManagedPrefixListInput) (*ec2.CreateManagedPrefixListOutput, error) + CreateManagedPrefixListWithContext(aws.Context, *ec2.CreateManagedPrefixListInput, ...request.Option) (*ec2.CreateManagedPrefixListOutput, error) + CreateManagedPrefixListRequest(*ec2.CreateManagedPrefixListInput) (*request.Request, *ec2.CreateManagedPrefixListOutput) + CreateNatGateway(*ec2.CreateNatGatewayInput) (*ec2.CreateNatGatewayOutput, error) CreateNatGatewayWithContext(aws.Context, *ec2.CreateNatGatewayInput, ...request.Option) (*ec2.CreateNatGatewayOutput, error) CreateNatGatewayRequest(*ec2.CreateNatGatewayInput) (*request.Request, *ec2.CreateNatGatewayOutput) @@ -492,6 +496,10 @@ type EC2API interface { DeleteLocalGatewayRouteTableVpcAssociationWithContext(aws.Context, *ec2.DeleteLocalGatewayRouteTableVpcAssociationInput, ...request.Option) (*ec2.DeleteLocalGatewayRouteTableVpcAssociationOutput, error) DeleteLocalGatewayRouteTableVpcAssociationRequest(*ec2.DeleteLocalGatewayRouteTableVpcAssociationInput) (*request.Request, *ec2.DeleteLocalGatewayRouteTableVpcAssociationOutput) + DeleteManagedPrefixList(*ec2.DeleteManagedPrefixListInput) (*ec2.DeleteManagedPrefixListOutput, error) + DeleteManagedPrefixListWithContext(aws.Context, *ec2.DeleteManagedPrefixListInput, ...request.Option) (*ec2.DeleteManagedPrefixListOutput, error) + DeleteManagedPrefixListRequest(*ec2.DeleteManagedPrefixListInput) (*request.Request, *ec2.DeleteManagedPrefixListOutput) + DeleteNatGateway(*ec2.DeleteNatGatewayInput) (*ec2.DeleteNatGatewayOutput, error) DeleteNatGatewayWithContext(aws.Context, *ec2.DeleteNatGatewayInput, ...request.Option) (*ec2.DeleteNatGatewayOutput, error) DeleteNatGatewayRequest(*ec2.DeleteNatGatewayInput) (*request.Request, *ec2.DeleteNatGatewayOutput) @@ -979,6 +987,13 @@ type EC2API interface { DescribeLocalGatewaysPages(*ec2.DescribeLocalGatewaysInput, func(*ec2.DescribeLocalGatewaysOutput, bool) bool) error DescribeLocalGatewaysPagesWithContext(aws.Context, *ec2.DescribeLocalGatewaysInput, func(*ec2.DescribeLocalGatewaysOutput, bool) bool, ...request.Option) error + DescribeManagedPrefixLists(*ec2.DescribeManagedPrefixListsInput) (*ec2.DescribeManagedPrefixListsOutput, error) + DescribeManagedPrefixListsWithContext(aws.Context, *ec2.DescribeManagedPrefixListsInput, ...request.Option) (*ec2.DescribeManagedPrefixListsOutput, error) + DescribeManagedPrefixListsRequest(*ec2.DescribeManagedPrefixListsInput) (*request.Request, *ec2.DescribeManagedPrefixListsOutput) + + DescribeManagedPrefixListsPages(*ec2.DescribeManagedPrefixListsInput, func(*ec2.DescribeManagedPrefixListsOutput, bool) bool) error + DescribeManagedPrefixListsPagesWithContext(aws.Context, *ec2.DescribeManagedPrefixListsInput, func(*ec2.DescribeManagedPrefixListsOutput, bool) bool, ...request.Option) error + DescribeMovingAddresses(*ec2.DescribeMovingAddressesInput) (*ec2.DescribeMovingAddressesOutput, error) DescribeMovingAddressesWithContext(aws.Context, *ec2.DescribeMovingAddressesInput, ...request.Option) (*ec2.DescribeMovingAddressesOutput, error) DescribeMovingAddressesRequest(*ec2.DescribeMovingAddressesInput) (*request.Request, *ec2.DescribeMovingAddressesOutput) @@ -1493,6 +1508,20 @@ type EC2API interface { GetLaunchTemplateDataWithContext(aws.Context, *ec2.GetLaunchTemplateDataInput, ...request.Option) (*ec2.GetLaunchTemplateDataOutput, error) GetLaunchTemplateDataRequest(*ec2.GetLaunchTemplateDataInput) (*request.Request, *ec2.GetLaunchTemplateDataOutput) + GetManagedPrefixListAssociations(*ec2.GetManagedPrefixListAssociationsInput) (*ec2.GetManagedPrefixListAssociationsOutput, error) + GetManagedPrefixListAssociationsWithContext(aws.Context, *ec2.GetManagedPrefixListAssociationsInput, ...request.Option) (*ec2.GetManagedPrefixListAssociationsOutput, error) + GetManagedPrefixListAssociationsRequest(*ec2.GetManagedPrefixListAssociationsInput) (*request.Request, *ec2.GetManagedPrefixListAssociationsOutput) + + GetManagedPrefixListAssociationsPages(*ec2.GetManagedPrefixListAssociationsInput, func(*ec2.GetManagedPrefixListAssociationsOutput, bool) bool) error + GetManagedPrefixListAssociationsPagesWithContext(aws.Context, *ec2.GetManagedPrefixListAssociationsInput, func(*ec2.GetManagedPrefixListAssociationsOutput, bool) bool, ...request.Option) error + + GetManagedPrefixListEntries(*ec2.GetManagedPrefixListEntriesInput) (*ec2.GetManagedPrefixListEntriesOutput, error) + GetManagedPrefixListEntriesWithContext(aws.Context, *ec2.GetManagedPrefixListEntriesInput, ...request.Option) (*ec2.GetManagedPrefixListEntriesOutput, error) + GetManagedPrefixListEntriesRequest(*ec2.GetManagedPrefixListEntriesInput) (*request.Request, *ec2.GetManagedPrefixListEntriesOutput) + + GetManagedPrefixListEntriesPages(*ec2.GetManagedPrefixListEntriesInput, func(*ec2.GetManagedPrefixListEntriesOutput, bool) bool) error + GetManagedPrefixListEntriesPagesWithContext(aws.Context, *ec2.GetManagedPrefixListEntriesInput, func(*ec2.GetManagedPrefixListEntriesOutput, bool) bool, ...request.Option) error + GetPasswordData(*ec2.GetPasswordDataInput) (*ec2.GetPasswordDataOutput, error) GetPasswordDataWithContext(aws.Context, *ec2.GetPasswordDataInput, ...request.Option) (*ec2.GetPasswordDataOutput, error) GetPasswordDataRequest(*ec2.GetPasswordDataInput) (*request.Request, *ec2.GetPasswordDataOutput) @@ -1625,6 +1654,10 @@ type EC2API interface { ModifyLaunchTemplateWithContext(aws.Context, *ec2.ModifyLaunchTemplateInput, ...request.Option) (*ec2.ModifyLaunchTemplateOutput, error) ModifyLaunchTemplateRequest(*ec2.ModifyLaunchTemplateInput) (*request.Request, *ec2.ModifyLaunchTemplateOutput) + ModifyManagedPrefixList(*ec2.ModifyManagedPrefixListInput) (*ec2.ModifyManagedPrefixListOutput, error) + ModifyManagedPrefixListWithContext(aws.Context, *ec2.ModifyManagedPrefixListInput, ...request.Option) (*ec2.ModifyManagedPrefixListOutput, error) + ModifyManagedPrefixListRequest(*ec2.ModifyManagedPrefixListInput) (*request.Request, *ec2.ModifyManagedPrefixListOutput) + ModifyNetworkInterfaceAttribute(*ec2.ModifyNetworkInterfaceAttributeInput) (*ec2.ModifyNetworkInterfaceAttributeOutput, error) ModifyNetworkInterfaceAttributeWithContext(aws.Context, *ec2.ModifyNetworkInterfaceAttributeInput, ...request.Option) (*ec2.ModifyNetworkInterfaceAttributeOutput, error) ModifyNetworkInterfaceAttributeRequest(*ec2.ModifyNetworkInterfaceAttributeInput) (*request.Request, *ec2.ModifyNetworkInterfaceAttributeOutput) @@ -1841,6 +1874,10 @@ type EC2API interface { RestoreAddressToClassicWithContext(aws.Context, *ec2.RestoreAddressToClassicInput, ...request.Option) (*ec2.RestoreAddressToClassicOutput, error) RestoreAddressToClassicRequest(*ec2.RestoreAddressToClassicInput) (*request.Request, *ec2.RestoreAddressToClassicOutput) + RestoreManagedPrefixListVersion(*ec2.RestoreManagedPrefixListVersionInput) (*ec2.RestoreManagedPrefixListVersionOutput, error) + RestoreManagedPrefixListVersionWithContext(aws.Context, *ec2.RestoreManagedPrefixListVersionInput, ...request.Option) (*ec2.RestoreManagedPrefixListVersionOutput, error) + RestoreManagedPrefixListVersionRequest(*ec2.RestoreManagedPrefixListVersionInput) (*request.Request, *ec2.RestoreManagedPrefixListVersionOutput) + RevokeClientVpnIngress(*ec2.RevokeClientVpnIngressInput) (*ec2.RevokeClientVpnIngressOutput, error) RevokeClientVpnIngressWithContext(aws.Context, *ec2.RevokeClientVpnIngressInput, ...request.Option) (*ec2.RevokeClientVpnIngressOutput, error) RevokeClientVpnIngressRequest(*ec2.RevokeClientVpnIngressInput) (*request.Request, *ec2.RevokeClientVpnIngressOutput)