diff --git a/CHANGELOG.md b/CHANGELOG.md index 350d8644d4f..1fcee8f4a10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +Release v1.34.30 (2020-09-23) +=== + +### Service Client Updates +* `service/backup`: Updates service API and documentation +* `service/ce`: Updates service API and documentation +* `service/quicksight`: Updates service API and documentation + * Added Sheet information to DescribeDashboard, DescribeTemplate and DescribeAnalysis API response. +* `service/translate`: Updates service API and documentation + +### SDK Enhancements +* `service/s3/s3manager`: Prefer using allocated slices from pool over allocating new ones. ([#3534](https://github.com/aws/aws-sdk-go/pull/3534)) + Release v1.34.29 (2020-09-22) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index b9f8f0f7f1e..8a1927a39ca 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,6 +1,5 @@ ### SDK Features ### SDK Enhancements -* `service/s3/s3manager`: Prefer using allocated slices from pool over allocating new ones. ([#3534](https://github.com/aws/aws-sdk-go/pull/3534)) ### SDK Bugs diff --git a/aws/version.go b/aws/version.go index 6d658313471..d516fe574bd 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.34.29" +const SDKVersion = "1.34.30" diff --git a/models/apis/backup/2018-11-15/api-2.json b/models/apis/backup/2018-11-15/api-2.json index b11f313b62d..375a082a8a1 100644 --- a/models/apis/backup/2018-11-15/api-2.json +++ b/models/apis/backup/2018-11-15/api-2.json @@ -762,6 +762,17 @@ "type":"string", "pattern":"^[0-9]{12}$" }, + "AdvancedBackupSetting":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"ResourceType"}, + "BackupOptions":{"shape":"BackupOptions"} + } + }, + "AdvancedBackupSettings":{ + "type":"list", + "member":{"shape":"AdvancedBackupSetting"} + }, "AlreadyExistsException":{ "type":"structure", "members":{ @@ -794,7 +805,9 @@ "ExpectedCompletionDate":{"shape":"timestamp"}, "StartBy":{"shape":"timestamp"}, "ResourceType":{"shape":"ResourceType"}, - "BytesTransferred":{"shape":"Long"} + "BytesTransferred":{"shape":"Long"}, + "BackupOptions":{"shape":"BackupOptions"}, + "BackupType":{"shape":"string"} } }, "BackupJobState":{ @@ -814,6 +827,19 @@ "type":"list", "member":{"shape":"BackupJob"} }, + "BackupOptionKey":{ + "type":"string", + "pattern":"^[a-zA-Z0-9\\-\\_\\.]{1,50}$" + }, + "BackupOptionValue":{ + "type":"string", + "pattern":"^[a-zA-Z0-9\\-\\_\\.]{1,50}$" + }, + "BackupOptions":{ + "type":"map", + "key":{"shape":"BackupOptionKey"}, + "value":{"shape":"BackupOptionValue"} + }, "BackupPlan":{ "type":"structure", "required":[ @@ -822,7 +848,8 @@ ], "members":{ "BackupPlanName":{"shape":"BackupPlanName"}, - "Rules":{"shape":"BackupRules"} + "Rules":{"shape":"BackupRules"}, + "AdvancedBackupSettings":{"shape":"AdvancedBackupSettings"} } }, "BackupPlanInput":{ @@ -833,7 +860,8 @@ ], "members":{ "BackupPlanName":{"shape":"BackupPlanName"}, - "Rules":{"shape":"BackupRulesInput"} + "Rules":{"shape":"BackupRulesInput"}, + "AdvancedBackupSettings":{"shape":"AdvancedBackupSettings"} } }, "BackupPlanName":{"type":"string"}, @@ -866,7 +894,8 @@ "VersionId":{"shape":"string"}, "BackupPlanName":{"shape":"BackupPlanName"}, "CreatorRequestId":{"shape":"string"}, - "LastExecutionDate":{"shape":"timestamp"} + "LastExecutionDate":{"shape":"timestamp"}, + "AdvancedBackupSettings":{"shape":"AdvancedBackupSettings"} } }, "BackupRule":{ @@ -989,7 +1018,7 @@ }, "BackupVaultName":{ "type":"string", - "pattern":"^[a-zA-Z0-9\\-\\_\\.]{1,50}$" + "pattern":"^[a-zA-Z0-9\\-\\_]{2,50}$" }, "Boolean":{"type":"boolean"}, "CalculatedLifecycle":{ @@ -1078,7 +1107,8 @@ "BackupPlanId":{"shape":"string"}, "BackupPlanArn":{"shape":"ARN"}, "CreationDate":{"shape":"timestamp"}, - "VersionId":{"shape":"string"} + "VersionId":{"shape":"string"}, + "AdvancedBackupSettings":{"shape":"AdvancedBackupSettings"} } }, "CreateBackupSelectionInput":{ @@ -1261,7 +1291,9 @@ "ResourceType":{"shape":"ResourceType"}, "BytesTransferred":{"shape":"Long"}, "ExpectedCompletionDate":{"shape":"timestamp"}, - "StartBy":{"shape":"timestamp"} + "StartBy":{"shape":"timestamp"}, + "BackupOptions":{"shape":"BackupOptions"}, + "BackupType":{"shape":"string"} } }, "DescribeBackupVaultInput":{ @@ -1476,7 +1508,8 @@ "CreatorRequestId":{"shape":"string"}, "CreationDate":{"shape":"timestamp"}, "DeletionDate":{"shape":"timestamp"}, - "LastExecutionDate":{"shape":"timestamp"} + "LastExecutionDate":{"shape":"timestamp"}, + "AdvancedBackupSettings":{"shape":"AdvancedBackupSettings"} } }, "GetBackupSelectionInput":{ @@ -2247,7 +2280,8 @@ "StartWindowMinutes":{"shape":"WindowMinutes"}, "CompleteWindowMinutes":{"shape":"WindowMinutes"}, "Lifecycle":{"shape":"Lifecycle"}, - "RecoveryPointTags":{"shape":"Tags"} + "RecoveryPointTags":{"shape":"Tags"}, + "BackupOptions":{"shape":"BackupOptions"} } }, "StartBackupJobOutput":{ @@ -2386,7 +2420,8 @@ "BackupPlanId":{"shape":"string"}, "BackupPlanArn":{"shape":"ARN"}, "CreationDate":{"shape":"timestamp"}, - "VersionId":{"shape":"string"} + "VersionId":{"shape":"string"}, + "AdvancedBackupSettings":{"shape":"AdvancedBackupSettings"} } }, "UpdateRecoveryPointLifecycleInput":{ diff --git a/models/apis/backup/2018-11-15/docs-2.json b/models/apis/backup/2018-11-15/docs-2.json index 53a414d328e..d5adde3ce58 100644 --- a/models/apis/backup/2018-11-15/docs-2.json +++ b/models/apis/backup/2018-11-15/docs-2.json @@ -2,8 +2,8 @@ "version": "2.0", "service": "AWS Backup

AWS Backup is a unified backup service designed to protect AWS services and their associated data. AWS Backup simplifies the creation, migration, restoration, and deletion of backups, while also providing reporting and auditing.

", "operations": { - "CreateBackupPlan": "

Backup plans are documents that contain information that AWS Backup uses to schedule tasks that create recovery points of resources.

If you call CreateBackupPlan with a plan that already exists, an AlreadyExistsException is returned.

", - "CreateBackupSelection": "

Creates a JSON document that specifies a set of resources to assign to a backup plan. Resources can be included by specifying patterns for a ListOfTags and selected Resources.

For example, consider the following patterns:

Using these patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that are tagged as \"department=finance\", \"importance=critical\", in addition to an EBS volume with the specified volume Id.

Resources and conditions are additive in that all resources that match the pattern are selected. This shouldn't be confused with a logical AND, where all conditions must match. The matching patterns are logically 'put together using the OR operator. In other words, all patterns that match are selected for backup.

", + "CreateBackupPlan": "

Creates a backup plan using a backup plan name and backup rules. A backup plan is a document that contains information that AWS Backup uses to schedule tasks that create recovery points for resources.

If you call CreateBackupPlan with a plan that already exists, an AlreadyExistsException is returned.

", + "CreateBackupSelection": "

Creates a JSON document that specifies a set of resources to assign to a backup plan. Resources can be included by specifying patterns for a ListOfTags and selected Resources.

For example, consider the following patterns:

Using these patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that are tagged as \"department=finance\", \"importance=critical\", in addition to an EBS volume with the specified volume ID.

Resources and conditions are additive in that all resources that match the pattern are selected. This shouldn't be confused with a logical AND, where all conditions must match. The matching patterns are logically put together using the OR operator. In other words, all patterns that match are selected for backup.

", "CreateBackupVault": "

Creates a logical container where backups are stored. A CreateBackupVault request includes a name, optionally one or more resource tags, an encryption key, and a request ID.

Sensitive data, such as passport numbers, should not be included the name of a backup vault.

", "DeleteBackupPlan": "

Deletes a backup plan. A backup plan can only be deleted after all associated selections of resources have been deleted. Deleting a backup plan deletes the current version of a backup plan. Previous versions, if any, will still exist.

", "DeleteBackupSelection": "

Deletes the resource selection associated with a backup plan that is specified by the SelectionId.

", @@ -11,15 +11,15 @@ "DeleteBackupVaultAccessPolicy": "

Deletes the policy document that manages permissions on a backup vault.

", "DeleteBackupVaultNotifications": "

Deletes event notifications for the specified backup vault.

", "DeleteRecoveryPoint": "

Deletes the recovery point specified by a recovery point ID.

", - "DescribeBackupJob": "

Returns metadata associated with creating a backup of a resource.

", + "DescribeBackupJob": "

Returns backup job details for the specified BackupJobId.

", "DescribeBackupVault": "

Returns metadata about a backup vault specified by its name.

", "DescribeCopyJob": "

Returns metadata associated with creating a copy of a resource.

", "DescribeProtectedResource": "

Returns information about a saved resource, including the last time it was backed up, its Amazon Resource Name (ARN), and the AWS service type of the saved resource.

", "DescribeRecoveryPoint": "

Returns metadata associated with a recovery point, including ID, status, encryption, and lifecycle.

", - "DescribeRegionSettings": "

Returns the current service opt-in settings for the Region. If the service has a value set to true, AWS Backup attempts to protect that service's resources in this Region, when included in an on-demand backup or scheduled backup plan. If the value is set to false for a service, AWS Backup does not attempt to protect that service's resources in this Region.

", + "DescribeRegionSettings": "

Returns the current service opt-in settings for the Region. If the service has a value set to true, AWS Backup tries to protect that service's resources in this Region, when included in an on-demand backup or scheduled backup plan. If the value is set to false for a service, AWS Backup does not try to protect that service's resources in this Region.

", "DescribeRestoreJob": "

Returns metadata associated with a restore job that is specified by a job ID.

", "ExportBackupPlanTemplate": "

Returns the backup plan that is specified by the plan ID as a backup template.

", - "GetBackupPlan": "

Returns the body of a backup plan in JSON format, in addition to plan metadata.

", + "GetBackupPlan": "

Returns BackupPlan details for the specified BackupPlanId. Returns the body of a backup plan in JSON format, in addition to plan metadata.

", "GetBackupPlanFromJSON": "

Returns a valid JSON document specifying a backup plan or an error.

", "GetBackupPlanFromTemplate": "

Returns the template specified by its templateId as a backup plan.

", "GetBackupSelection": "

Returns selection metadata and a document in JSON format that specifies a list of resources that are associated with a backup plan.

", @@ -27,10 +27,10 @@ "GetBackupVaultNotifications": "

Returns event notifications for the specified backup vault.

", "GetRecoveryPointRestoreMetadata": "

Returns a set of metadata key-value pairs that were used to create the backup.

", "GetSupportedResourceTypes": "

Returns the AWS resource types supported by AWS Backup.

", - "ListBackupJobs": "

Returns metadata about your backup jobs.

", + "ListBackupJobs": "

Returns a list of existing backup jobs for an authenticated account.

", "ListBackupPlanTemplates": "

Returns metadata of your saved backup plan templates, including the template ID, name, and the creation and deletion dates.

", "ListBackupPlanVersions": "

Returns version metadata of your backup plans, including Amazon Resource Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and version IDs.

", - "ListBackupPlans": "

Returns metadata of your saved backup plans, including Amazon Resource Names (ARNs), plan IDs, creation and deletion dates, version IDs, plan names, and creator request IDs.

", + "ListBackupPlans": "

Returns a list of existing backup plans for an authenticated account. The list is populated only if the advanced option is set for the backup plan. The list contains information such as Amazon Resource Names (ARNs), plan IDs, creation and deletion dates, version IDs, plan names, and creator request IDs.

", "ListBackupSelections": "

Returns an array containing metadata of the resources associated with the target backup plan.

", "ListBackupVaults": "

Returns a list of recovery point storage containers along with information about them.

", "ListCopyJobs": "

Returns metadata about your copy jobs.

", @@ -41,15 +41,15 @@ "ListTags": "

Returns a list of key-value pairs assigned to a target recovery point, backup plan, or backup vault.

ListTags are currently only supported with Amazon EFS backups.

", "PutBackupVaultAccessPolicy": "

Sets a resource-based policy that is used to manage access permissions on the target backup vault. Requires a backup vault name and an access policy document in JSON format.

", "PutBackupVaultNotifications": "

Turns on notifications on a backup vault for the specified topic and events.

", - "StartBackupJob": "

Starts a job to create a one-time backup of the specified resource.

", + "StartBackupJob": "

Starts an on-demand backup job for the specified resource.

", "StartCopyJob": "

Starts a job to create a one-time copy of the specified resource.

", "StartRestoreJob": "

Recovers the saved resource identified by an Amazon Resource Name (ARN).

If the resource ARN is included in the request, then the last complete backup of that resource is recovered. If the ARN of a recovery point is supplied, then that recovery point is restored.

", "StopBackupJob": "

Attempts to cancel a job to create a one-time backup of a resource.

", "TagResource": "

Assigns a set of key-value pairs to a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN).

", "UntagResource": "

Removes a set of key-value pairs from a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN)

", - "UpdateBackupPlan": "

Replaces the body of a saved backup plan identified by its backupPlanId with the input document in JSON format. The new version is uniquely identified by a VersionId.

", + "UpdateBackupPlan": "

Updates an existing backup plan identified by its backupPlanId with the input document in JSON format. The new version is uniquely identified by a VersionId.

", "UpdateRecoveryPointLifecycle": "

Sets the transition lifecycle of a recovery point.

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

", - "UpdateRegionSettings": "

Updates the current service opt-in settings for the Region. If the service has a value set to true, AWS Backup attempts to protect that service's resources in this Region, when included in an on-demand backup or scheduled backup plan. If the value is set to false for a service, AWS Backup does not attempt to protect that service's resources in this Region.

" + "UpdateRegionSettings": "

Updates the current service opt-in settings for the Region. If the service has a value set to true, AWS Backup tries to protect that service's resources in this Region, when included in an on-demand backup or scheduled backup plan. If the value is set to false for a service, AWS Backup does not try to protect that service's resources in this Region.

" }, "shapes": { "ARN": { @@ -136,6 +136,23 @@ "RestoreJobsListMember$AccountId": "

The account ID that owns the restore job.

" } }, + "AdvancedBackupSetting": { + "base": "

A list of backup options for each resource type.

", + "refs": { + "AdvancedBackupSettings$member": null + } + }, + "AdvancedBackupSettings": { + "base": null, + "refs": { + "BackupPlan$AdvancedBackupSettings": "

Contains a list of BackupOptions for each resource type.

", + "BackupPlanInput$AdvancedBackupSettings": "

Specifies a list of BackupOptions for each resource type. These settings are only available for Windows VSS backup jobs.

", + "BackupPlansListMember$AdvancedBackupSettings": "

Contains a list of BackupOptions for a resource type.

", + "CreateBackupPlanOutput$AdvancedBackupSettings": "

A list of BackupOptions settings for a resource type. This option is only available for Windows VSS backup jobs.

", + "GetBackupPlanOutput$AdvancedBackupSettings": "

Contains a list of BackupOptions for each resource type. The list is populated only if the advanced option is set for the backup plan.

", + "UpdateBackupPlanOutput$AdvancedBackupSettings": "

Contains a list of BackupOptions for each resource type.

" + } + }, "AlreadyExistsException": { "base": "

The required resource already exists.

", "refs": { @@ -161,6 +178,27 @@ "ListBackupJobsOutput$BackupJobs": "

An array of structures containing metadata about your backup jobs returned in JSON format.

" } }, + "BackupOptionKey": { + "base": null, + "refs": { + "BackupOptions$key": null + } + }, + "BackupOptionValue": { + "base": null, + "refs": { + "BackupOptions$value": null + } + }, + "BackupOptions": { + "base": null, + "refs": { + "AdvancedBackupSetting$BackupOptions": "

Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs.

Valid value: \"WindowsVSS”:“enabled\". If enabled, creates a VSS Windows backup; otherwise, creates a regular backup.

If you specify an invalid option, you get an InvalidParameterValueException exception.

For more information about Windows VSS backups, see Creating a VSS-Enabled Windows Backup.

", + "BackupJob$BackupOptions": "

Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs.

Valid value: \"WindowsVSS”:“enabled\". If enabled, creates a VSS Windows backup; otherwise, creates a regular backup. If you specify an invalid option, you get an InvalidParameterValueException exception.

", + "DescribeBackupJobOutput$BackupOptions": "

Represents the options specified as part of backup plan or on-demand backup job.

", + "StartBackupJobInput$BackupOptions": "

Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs.

Valid value: \"WindowsVSS”:“enabled\". If enabled, creates a VSS Windows backup; otherwise, creates a regular backup.

" + } + }, "BackupPlan": { "base": "

Contains an optional backup plan display name and an array of BackupRule objects, each of which specifies a backup rule. Each rule in a backup plan is a separate scheduled task and can back up a different selection of AWS resources.

", "refs": { @@ -855,8 +893,8 @@ "Metadata": { "base": null, "refs": { - "GetRecoveryPointRestoreMetadataOutput$RestoreMetadata": "

The set of metadata key-value pairs that describes the original configuration of the backed-up resource. These values vary depending on the service that is being restored.

", - "StartRestoreJobInput$Metadata": "

A set of metadata key-value pairs. Contains information, such as a resource name, required to restore a recovery point.

You can get configuration metadata about a resource at the time it was backed up by calling GetRecoveryPointRestoreMetadata. However, values in addition to those provided by GetRecoveryPointRestoreMetadata might be required to restore a resource. For example, you might need to provide a new resource name if the original already exists.

You need to specify specific metadata to restore an Amazon Elastic File System (Amazon EFS) instance:

" + "GetRecoveryPointRestoreMetadataOutput$RestoreMetadata": "

The set of metadata key-value pairs that describe the original configuration of the backed-up resource. These values vary depending on the service that is being restored.

", + "StartRestoreJobInput$Metadata": "

A set of metadata key-value pairs. Contains information, such as a resource name, required to restore a recovery point.

You can get configuration metadata about a resource at the time it was backed up by calling GetRecoveryPointRestoreMetadata. However, values in addition to those provided by GetRecoveryPointRestoreMetadata might be required to restore a resource. For example, you might need to provide a new resource name if the original already exists.

You need to specify specific metadata to restore an Amazon Elastic File System (Amazon EFS) instance:

" } }, "MetadataKey": { @@ -954,8 +992,9 @@ "ResourceType": { "base": null, "refs": { - "BackupJob$ResourceType": "

The type of AWS resource to be backed up; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", - "CopyJob$ResourceType": "

The type of AWS resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", + "AdvancedBackupSetting$ResourceType": "

The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2.

Valid values: EC2.

", + "BackupJob$ResourceType": "

The type of AWS resource to be backed up; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2.

", + "CopyJob$ResourceType": "

The type of AWS resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", "DescribeBackupJobOutput$ResourceType": "

The type of AWS resource to be backed up; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", "DescribeProtectedResourceOutput$ResourceType": "

The type of AWS resource saved as a recovery point; for example, an EBS volume or an Amazon RDS database.

", "DescribeRecoveryPointOutput$ResourceType": "

The type of AWS resource to save as a recovery point; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", @@ -963,19 +1002,19 @@ "ListBackupJobsInput$ByResourceType": "

Returns only backup jobs for the specified resources:

", "ListCopyJobsInput$ByResourceType": "

Returns only backup jobs for the specified resources:

", "ListRecoveryPointsByBackupVaultInput$ByResourceType": "

Returns only recovery points that match the specified resource type.

", - "ProtectedResource$ResourceType": "

The type of AWS resource; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", - "RecoveryPointByBackupVault$ResourceType": "

The type of AWS resource saved as a recovery point; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", + "ProtectedResource$ResourceType": "

The type of AWS resource; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2.

", + "RecoveryPointByBackupVault$ResourceType": "

The type of AWS resource saved as a recovery point; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2.

", "ResourceTypeOptInPreference$key": null, "ResourceTypes$member": null, - "RestoreJobsListMember$ResourceType": "

The resource type of the listed restore jobs; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

", + "RestoreJobsListMember$ResourceType": "

The resource type of the listed restore jobs; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2.

", "StartRestoreJobInput$ResourceType": "

Starts a job to restore a recovery point for one of the following resources:

" } }, "ResourceTypeOptInPreference": { "base": null, "refs": { - "DescribeRegionSettingsOutput$ResourceTypeOptInPreference": "

Returns a list of all services along with the opt-in preferences in the region.

", - "UpdateRegionSettingsInput$ResourceTypeOptInPreference": "

Updates the list of services along with the opt-in preferences for the region.

" + "DescribeRegionSettingsOutput$ResourceTypeOptInPreference": "

Returns a list of all services along with the opt-in preferences in the Region.

", + "UpdateRegionSettingsInput$ResourceTypeOptInPreference": "

Updates the list of services along with the opt-in preferences for the Region.

" } }, "ResourceTypes": { @@ -1159,29 +1198,30 @@ "BackupJob$BackupJobId": "

Uniquely identifies a request to AWS Backup to back up a resource.

", "BackupJob$StatusMessage": "

A detailed message explaining the status of the job to back up a resource.

", "BackupJob$PercentDone": "

Contains an estimated percentage complete of a job at the time the job status was queried.

", + "BackupJob$BackupType": "

Represents the type of backup for a backup job.

", "BackupPlanTemplatesListMember$BackupPlanTemplateId": "

Uniquely identifies a stored backup plan template.

", "BackupPlanTemplatesListMember$BackupPlanTemplateName": "

The optional display name of a backup plan template.

", "BackupPlansListMember$BackupPlanId": "

Uniquely identifies a backup plan.

", "BackupPlansListMember$VersionId": "

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.

", - "BackupPlansListMember$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "BackupPlansListMember$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "BackupRule$RuleId": "

Uniquely identifies a rule that is used to schedule the backup of a selection of resources.

", "BackupSelectionsListMember$SelectionId": "

Uniquely identifies a request to assign a set of resources to a backup plan.

", "BackupSelectionsListMember$BackupPlanId": "

Uniquely identifies a backup plan.

", - "BackupSelectionsListMember$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", - "BackupVaultListMember$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "BackupSelectionsListMember$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", + "BackupVaultListMember$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "CopyJob$CopyJobId": "

Uniquely identifies a copy job.

", "CopyJob$StatusMessage": "

A detailed message explaining the status of the job to copy a resource.

", - "CreateBackupPlanInput$CreatorRequestId": "

Identifies the request and allows failed requests to be retried without the risk of executing the operation twice. If the request includes a CreatorRequestId that matches an existing backup plan, that plan is returned. This parameter is optional.

", + "CreateBackupPlanInput$CreatorRequestId": "

Identifies the request and allows failed requests to be retried without the risk of running the operation twice. If the request includes a CreatorRequestId that matches an existing backup plan, that plan is returned. This parameter is optional.

", "CreateBackupPlanOutput$BackupPlanId": "

Uniquely identifies a backup plan.

", "CreateBackupPlanOutput$VersionId": "

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited.

", "CreateBackupSelectionInput$BackupPlanId": "

Uniquely identifies the backup plan to be associated with the selection of resources.

", - "CreateBackupSelectionInput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "CreateBackupSelectionInput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "CreateBackupSelectionOutput$SelectionId": "

Uniquely identifies the body of a request to assign a set of resources to a backup plan.

", "CreateBackupSelectionOutput$BackupPlanId": "

Uniquely identifies a backup plan.

", - "CreateBackupVaultInput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "CreateBackupVaultInput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "DeleteBackupPlanInput$BackupPlanId": "

Uniquely identifies a backup plan.

", "DeleteBackupPlanOutput$BackupPlanId": "

Uniquely identifies a backup plan.

", - "DeleteBackupPlanOutput$VersionId": "

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version Ids cannot be edited.

", + "DeleteBackupPlanOutput$VersionId": "

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.

", "DeleteBackupSelectionInput$BackupPlanId": "

Uniquely identifies a backup plan.

", "DeleteBackupSelectionInput$SelectionId": "

Uniquely identifies the body of a request to assign a set of resources to a backup plan.

", "DeleteBackupVaultInput$BackupVaultName": "

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.

", @@ -1193,9 +1233,10 @@ "DescribeBackupJobOutput$BackupJobId": "

Uniquely identifies a request to AWS Backup to back up a resource.

", "DescribeBackupJobOutput$StatusMessage": "

A detailed message explaining the status of the job to back up a resource.

", "DescribeBackupJobOutput$PercentDone": "

Contains an estimated percentage that is complete of a job at the time the job status was queried.

", + "DescribeBackupJobOutput$BackupType": "

Represents the actual backup type selected for a backup job. For example, if a successful WindowsVSS backup was taken, BackupType returns “WindowsVSS”. If BackupType is empty, then it is a regular backup.

", "DescribeBackupVaultInput$BackupVaultName": "

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.

", "DescribeBackupVaultOutput$BackupVaultName": "

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.

", - "DescribeBackupVaultOutput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "DescribeBackupVaultOutput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "DescribeCopyJobInput$CopyJobId": "

Uniquely identifies a copy job.

", "DescribeRestoreJobOutput$RestoreJobId": "

Uniquely identifies the job that restores a recovery point.

", "DescribeRestoreJobOutput$StatusMessage": "

A message showing the status of a job to restore a recovery point.

", @@ -1208,12 +1249,12 @@ "GetBackupPlanInput$VersionId": "

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.

", "GetBackupPlanOutput$BackupPlanId": "

Uniquely identifies a backup plan.

", "GetBackupPlanOutput$VersionId": "

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.

", - "GetBackupPlanOutput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "GetBackupPlanOutput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "GetBackupSelectionInput$BackupPlanId": "

Uniquely identifies a backup plan.

", "GetBackupSelectionInput$SelectionId": "

Uniquely identifies the body of a request to assign a set of resources to a backup plan.

", "GetBackupSelectionOutput$SelectionId": "

Uniquely identifies the body of a request to assign a set of resources to a backup plan.

", "GetBackupSelectionOutput$BackupPlanId": "

Uniquely identifies a backup plan.

", - "GetBackupSelectionOutput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of executing the operation twice.

", + "GetBackupSelectionOutput$CreatorRequestId": "

A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.

", "InvalidParameterValueException$Code": null, "InvalidParameterValueException$Message": null, "InvalidParameterValueException$Type": "

", @@ -1293,7 +1334,7 @@ "BackupJob$StartBy": "

Specifies the time in Unix format and Coordinated Universal Time (UTC) when a backup job must be started before it is canceled. The value is calculated by adding the start window to the scheduled time. So if the scheduled time were 6:00 PM and the start window is 2 hours, the StartBy time would be 8:00 PM on the date specified. The value of StartBy is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "BackupPlansListMember$CreationDate": "

The date and time a resource backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "BackupPlansListMember$DeletionDate": "

The date and time a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of DeletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", - "BackupPlansListMember$LastExecutionDate": "

The last time a job to back up resources was executed with this rule. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", + "BackupPlansListMember$LastExecutionDate": "

The last time a job to back up resources was run with this rule. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "BackupSelectionsListMember$CreationDate": "

The date and time a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "BackupVaultListMember$CreationDate": "

The date and time a resource backup is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "CalculatedLifecycle$MoveToColdStorageAt": "

A timestamp that specifies when to transition a recovery point to cold storage.

", @@ -1317,7 +1358,7 @@ "DescribeRestoreJobOutput$CompletionDate": "

The date and time that a job to restore a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "GetBackupPlanOutput$CreationDate": "

The date and time that a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "GetBackupPlanOutput$DeletionDate": "

The date and time that a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of DeletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", - "GetBackupPlanOutput$LastExecutionDate": "

The last time a job to back up resources was executed with this backup plan. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", + "GetBackupPlanOutput$LastExecutionDate": "

The last time a job to back up resources was run with this backup plan. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "GetBackupSelectionOutput$CreationDate": "

The date and time a backup selection is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

", "ListBackupJobsInput$ByCreatedBefore": "

Returns only backup jobs that were created before the specified date.

", "ListBackupJobsInput$ByCreatedAfter": "

Returns only backup jobs that were created after the specified date.

", diff --git a/models/apis/ce/2017-10-25/api-2.json b/models/apis/ce/2017-10-25/api-2.json index cfd5efdd2bf..6a0a902188f 100644 --- a/models/apis/ce/2017-10-25/api-2.json +++ b/models/apis/ce/2017-10-25/api-2.json @@ -14,6 +14,31 @@ "uid":"ce-2017-10-25" }, "operations":{ + "CreateAnomalyMonitor":{ + "name":"CreateAnomalyMonitor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAnomalyMonitorRequest"}, + "output":{"shape":"CreateAnomalyMonitorResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "CreateAnomalySubscription":{ + "name":"CreateAnomalySubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAnomalySubscriptionRequest"}, + "output":{"shape":"CreateAnomalySubscriptionResponse"}, + "errors":[ + {"shape":"UnknownMonitorException"}, + {"shape":"LimitExceededException"} + ] + }, "CreateCostCategoryDefinition":{ "name":"CreateCostCategoryDefinition", "http":{ @@ -27,6 +52,32 @@ {"shape":"LimitExceededException"} ] }, + "DeleteAnomalyMonitor":{ + "name":"DeleteAnomalyMonitor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAnomalyMonitorRequest"}, + "output":{"shape":"DeleteAnomalyMonitorResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"UnknownMonitorException"} + ] + }, + "DeleteAnomalySubscription":{ + "name":"DeleteAnomalySubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAnomalySubscriptionRequest"}, + "output":{"shape":"DeleteAnomalySubscriptionResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"UnknownSubscriptionException"} + ] + }, "DeleteCostCategoryDefinition":{ "name":"DeleteCostCategoryDefinition", "http":{ @@ -53,6 +104,47 @@ {"shape":"LimitExceededException"} ] }, + "GetAnomalies":{ + "name":"GetAnomalies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAnomaliesRequest"}, + "output":{"shape":"GetAnomaliesResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"InvalidNextTokenException"} + ] + }, + "GetAnomalyMonitors":{ + "name":"GetAnomalyMonitors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAnomalyMonitorsRequest"}, + "output":{"shape":"GetAnomalyMonitorsResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"UnknownMonitorException"}, + {"shape":"InvalidNextTokenException"} + ] + }, + "GetAnomalySubscriptions":{ + "name":"GetAnomalySubscriptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAnomalySubscriptionsRequest"}, + "output":{"shape":"GetAnomalySubscriptionsResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"UnknownSubscriptionException"}, + {"shape":"InvalidNextTokenException"} + ] + }, "GetCostAndUsage":{ "name":"GetCostAndUsage", "http":{ @@ -265,6 +357,45 @@ {"shape":"LimitExceededException"} ] }, + "ProvideAnomalyFeedback":{ + "name":"ProvideAnomalyFeedback", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ProvideAnomalyFeedbackRequest"}, + "output":{"shape":"ProvideAnomalyFeedbackResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "UpdateAnomalyMonitor":{ + "name":"UpdateAnomalyMonitor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAnomalyMonitorRequest"}, + "output":{"shape":"UpdateAnomalyMonitorResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"UnknownMonitorException"} + ] + }, + "UpdateAnomalySubscription":{ + "name":"UpdateAnomalySubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAnomalySubscriptionRequest"}, + "output":{"shape":"UpdateAnomalySubscriptionResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"UnknownMonitorException"}, + {"shape":"UnknownSubscriptionException"} + ] + }, "UpdateCostCategoryDefinition":{ "name":"UpdateCostCategoryDefinition", "http":{ @@ -290,6 +421,110 @@ }, "AmortizedRecurringFee":{"type":"string"}, "AmortizedUpfrontFee":{"type":"string"}, + "Anomalies":{ + "type":"list", + "member":{"shape":"Anomaly"} + }, + "Anomaly":{ + "type":"structure", + "required":[ + "AnomalyId", + "AnomalyScore", + "Impact", + "MonitorArn" + ], + "members":{ + "AnomalyId":{"shape":"GenericString"}, + "AnomalyStartDate":{"shape":"YearMonthDay"}, + "AnomalyEndDate":{"shape":"YearMonthDay"}, + "DimensionValue":{"shape":"GenericString"}, + "RootCauses":{"shape":"RootCauses"}, + "AnomalyScore":{"shape":"AnomalyScore"}, + "Impact":{"shape":"Impact"}, + "MonitorArn":{"shape":"GenericString"}, + "Feedback":{"shape":"AnomalyFeedbackType"} + } + }, + "AnomalyDateInterval":{ + "type":"structure", + "required":["StartDate"], + "members":{ + "StartDate":{"shape":"YearMonthDay"}, + "EndDate":{"shape":"YearMonthDay"} + } + }, + "AnomalyFeedbackType":{ + "type":"string", + "enum":[ + "YES", + "NO", + "PLANNED_ACTIVITY" + ] + }, + "AnomalyMonitor":{ + "type":"structure", + "required":[ + "MonitorName", + "MonitorType" + ], + "members":{ + "MonitorArn":{"shape":"GenericString"}, + "MonitorName":{"shape":"GenericString"}, + "CreationDate":{"shape":"YearMonthDay"}, + "LastUpdatedDate":{"shape":"YearMonthDay"}, + "LastEvaluatedDate":{"shape":"YearMonthDay"}, + "MonitorType":{"shape":"MonitorType"}, + "MonitorDimension":{"shape":"MonitorDimension"}, + "MonitorSpecification":{"shape":"Expression"}, + "DimensionalValueCount":{"shape":"NonNegativeInteger"} + } + }, + "AnomalyMonitors":{ + "type":"list", + "member":{"shape":"AnomalyMonitor"} + }, + "AnomalyScore":{ + "type":"structure", + "required":[ + "MaxScore", + "CurrentScore" + ], + "members":{ + "MaxScore":{"shape":"GenericDouble"}, + "CurrentScore":{"shape":"GenericDouble"} + } + }, + "AnomalySubscription":{ + "type":"structure", + "required":[ + "MonitorArnList", + "Subscribers", + "Threshold", + "Frequency", + "SubscriptionName" + ], + "members":{ + "SubscriptionArn":{"shape":"GenericString"}, + "AccountId":{"shape":"GenericString"}, + "MonitorArnList":{"shape":"Values"}, + "Subscribers":{"shape":"Subscribers"}, + "Threshold":{"shape":"NullableNonNegativeDouble"}, + "Frequency":{"shape":"AnomalySubscriptionFrequency"}, + "SubscriptionName":{"shape":"GenericString"} + } + }, + "AnomalySubscriptionFrequency":{ + "type":"string", + "enum":[ + "DAILY", + "IMMEDIATE", + "WEEKLY" + ] + }, + "AnomalySubscriptions":{ + "type":"list", + "member":{"shape":"AnomalySubscription"} + }, "Arn":{ "type":"string", "max":2048, @@ -441,6 +676,34 @@ "type":"list", "member":{"shape":"CoverageByTime"} }, + "CreateAnomalyMonitorRequest":{ + "type":"structure", + "required":["AnomalyMonitor"], + "members":{ + "AnomalyMonitor":{"shape":"AnomalyMonitor"} + } + }, + "CreateAnomalyMonitorResponse":{ + "type":"structure", + "required":["MonitorArn"], + "members":{ + "MonitorArn":{"shape":"GenericString"} + } + }, + "CreateAnomalySubscriptionRequest":{ + "type":"structure", + "required":["AnomalySubscription"], + "members":{ + "AnomalySubscription":{"shape":"AnomalySubscription"} + } + }, + "CreateAnomalySubscriptionResponse":{ + "type":"structure", + "required":["SubscriptionArn"], + "members":{ + "SubscriptionArn":{"shape":"GenericString"} + } + }, "CreateCostCategoryDefinitionRequest":{ "type":"structure", "required":[ @@ -495,6 +758,30 @@ "End":{"shape":"YearMonthDay"} } }, + "DeleteAnomalyMonitorRequest":{ + "type":"structure", + "required":["MonitorArn"], + "members":{ + "MonitorArn":{"shape":"GenericString"} + } + }, + "DeleteAnomalyMonitorResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteAnomalySubscriptionRequest":{ + "type":"structure", + "required":["SubscriptionArn"], + "members":{ + "SubscriptionArn":{"shape":"GenericString"} + } + }, + "DeleteAnomalySubscriptionResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteCostCategoryDefinitionRequest":{ "type":"structure", "required":["CostCategoryArn"], @@ -670,15 +957,72 @@ "member":{"shape":"ForecastResult"} }, "GenericBoolean":{"type":"boolean"}, + "GenericDouble":{"type":"double"}, "GenericString":{ "type":"string", "max":1024, "min":0, "pattern":"[\\S\\s]*" }, + "GetAnomaliesRequest":{ + "type":"structure", + "required":["DateInterval"], + "members":{ + "MonitorArn":{"shape":"GenericString"}, + "DateInterval":{"shape":"AnomalyDateInterval"}, + "Feedback":{"shape":"AnomalyFeedbackType"}, + "TotalImpact":{"shape":"TotalImpactFilter"}, + "NextPageToken":{"shape":"NextPageToken"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetAnomaliesResponse":{ + "type":"structure", + "required":["Anomalies"], + "members":{ + "Anomalies":{"shape":"Anomalies"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetAnomalyMonitorsRequest":{ + "type":"structure", + "members":{ + "MonitorArnList":{"shape":"Values"}, + "NextPageToken":{"shape":"NextPageToken"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetAnomalyMonitorsResponse":{ + "type":"structure", + "required":["AnomalyMonitors"], + "members":{ + "AnomalyMonitors":{"shape":"AnomalyMonitors"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetAnomalySubscriptionsRequest":{ + "type":"structure", + "members":{ + "SubscriptionArnList":{"shape":"Values"}, + "MonitorArn":{"shape":"GenericString"}, + "NextPageToken":{"shape":"NextPageToken"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetAnomalySubscriptionsResponse":{ + "type":"structure", + "required":["AnomalySubscriptions"], + "members":{ + "AnomalySubscriptions":{"shape":"AnomalySubscriptions"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, "GetCostAndUsageRequest":{ "type":"structure", - "required":["TimePeriod"], + "required":[ + "TimePeriod", + "Metrics" + ], "members":{ "TimePeriod":{"shape":"DateInterval"}, "Granularity":{"shape":"Granularity"}, @@ -698,7 +1042,10 @@ }, "GetCostAndUsageWithResourcesRequest":{ "type":"structure", - "required":["TimePeriod"], + "required":[ + "TimePeriod", + "Filter" + ], "members":{ "TimePeriod":{"shape":"DateInterval"}, "Granularity":{"shape":"Granularity"}, @@ -1035,6 +1382,14 @@ "type":"list", "member":{"shape":"Group"} }, + "Impact":{ + "type":"structure", + "required":["MaxImpact"], + "members":{ + "MaxImpact":{"shape":"GenericDouble"}, + "TotalImpact":{"shape":"GenericDouble"} + } + }, "InstanceDetails":{ "type":"structure", "members":{ @@ -1151,6 +1506,17 @@ "TargetInstances":{"shape":"TargetInstancesList"} } }, + "MonitorDimension":{ + "type":"string", + "enum":["SERVICE"] + }, + "MonitorType":{ + "type":"string", + "enum":[ + "DIMENSIONAL", + "CUSTOM" + ] + }, "NetRISavings":{"type":"string"}, "NextPageToken":{ "type":"string", @@ -1162,6 +1528,21 @@ "type":"integer", "min":0 }, + "NullableNonNegativeDouble":{ + "type":"double", + "min":0.0 + }, + "NumericOperator":{ + "type":"string", + "enum":[ + "EQUAL", + "GREATER_THAN_OR_EQUAL", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "LESS_THAN", + "BETWEEN" + ] + }, "OfferingClass":{ "type":"string", "enum":[ @@ -1190,6 +1571,24 @@ "max":99, "min":51 }, + "ProvideAnomalyFeedbackRequest":{ + "type":"structure", + "required":[ + "AnomalyId", + "Feedback" + ], + "members":{ + "AnomalyId":{"shape":"GenericString"}, + "Feedback":{"shape":"AnomalyFeedbackType"} + } + }, + "ProvideAnomalyFeedbackResponse":{ + "type":"structure", + "required":["AnomalyId"], + "members":{ + "AnomalyId":{"shape":"GenericString"} + } + }, "PurchasedHours":{"type":"string"}, "PurchasedUnits":{"type":"string"}, "RDSInstanceDetails":{ @@ -1417,6 +1816,19 @@ "MODIFY" ] }, + "RootCause":{ + "type":"structure", + "members":{ + "Service":{"shape":"GenericString"}, + "Region":{"shape":"GenericString"}, + "LinkedAccount":{"shape":"GenericString"}, + "UsageType":{"shape":"GenericString"} + } + }, + "RootCauses":{ + "type":"list", + "member":{"shape":"RootCause"} + }, "SavingsPlanArn":{"type":"string"}, "SavingsPlansAmortizedCommitment":{ "type":"structure", @@ -1590,6 +2002,38 @@ "EC2Specification":{"shape":"EC2Specification"} } }, + "Subscriber":{ + "type":"structure", + "members":{ + "Address":{"shape":"SubscriberAddress"}, + "Type":{"shape":"SubscriberType"}, + "Status":{"shape":"SubscriberStatus"} + } + }, + "SubscriberAddress":{ + "type":"string", + "max":302, + "min":6, + "pattern":"(^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$)|(^arn:(aws[a-zA-Z-]*):sns:[a-zA-Z0-9-]+:[0-9]{12}:[a-zA-Z0-9_-]+$)" + }, + "SubscriberStatus":{ + "type":"string", + "enum":[ + "CONFIRMED", + "DECLINED" + ] + }, + "SubscriberType":{ + "type":"string", + "enum":[ + "EMAIL", + "SNS" + ] + }, + "Subscribers":{ + "type":"list", + "member":{"shape":"Subscriber"} + }, "SupportedSavingsPlansType":{ "type":"string", "enum":[ @@ -1651,9 +2095,35 @@ "TotalActualHours":{"type":"string"}, "TotalActualUnits":{"type":"string"}, "TotalAmortizedFee":{"type":"string"}, + "TotalImpactFilter":{ + "type":"structure", + "required":[ + "NumericOperator", + "StartValue" + ], + "members":{ + "NumericOperator":{"shape":"NumericOperator"}, + "StartValue":{"shape":"GenericDouble"}, + "EndValue":{"shape":"GenericDouble"} + } + }, "TotalPotentialRISavings":{"type":"string"}, "TotalRunningHours":{"type":"string"}, "TotalRunningNormalizedUnits":{"type":"string"}, + "UnknownMonitorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "UnknownSubscriptionException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "UnresolvableUsageUnitException":{ "type":"structure", "members":{ @@ -1663,6 +2133,40 @@ }, "UnusedHours":{"type":"string"}, "UnusedUnits":{"type":"string"}, + "UpdateAnomalyMonitorRequest":{ + "type":"structure", + "required":["MonitorArn"], + "members":{ + "MonitorArn":{"shape":"GenericString"}, + "MonitorName":{"shape":"GenericString"} + } + }, + "UpdateAnomalyMonitorResponse":{ + "type":"structure", + "required":["MonitorArn"], + "members":{ + "MonitorArn":{"shape":"GenericString"} + } + }, + "UpdateAnomalySubscriptionRequest":{ + "type":"structure", + "required":["SubscriptionArn"], + "members":{ + "SubscriptionArn":{"shape":"GenericString"}, + "Threshold":{"shape":"NullableNonNegativeDouble"}, + "Frequency":{"shape":"AnomalySubscriptionFrequency"}, + "MonitorArnList":{"shape":"Values"}, + "Subscribers":{"shape":"Subscribers"}, + "SubscriptionName":{"shape":"GenericString"} + } + }, + "UpdateAnomalySubscriptionResponse":{ + "type":"structure", + "required":["SubscriptionArn"], + "members":{ + "SubscriptionArn":{"shape":"GenericString"} + } + }, "UpdateCostCategoryDefinitionRequest":{ "type":"structure", "required":[ diff --git a/models/apis/ce/2017-10-25/docs-2.json b/models/apis/ce/2017-10-25/docs-2.json index 5a8cdf64ae6..d788be153ac 100644 --- a/models/apis/ce/2017-10-25/docs-2.json +++ b/models/apis/ce/2017-10-25/docs-2.json @@ -2,9 +2,16 @@ "version": "2.0", "service": "

The Cost Explorer API enables you to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data, such as the number of daily write operations for Amazon DynamoDB database tables in your production environment.

Service Endpoint

The Cost Explorer API provides the following endpoint:

For information about costs associated with the Cost Explorer API, see AWS Cost Management Pricing.

", "operations": { + "CreateAnomalyMonitor": "

Creates a new cost anomaly detection monitor with the requested type and monitor specification.

", + "CreateAnomalySubscription": "

Adds a subscription to a cost anomaly detection monitor. You can use each subscription to define subscribers with email or SNS notifications. Email subscribers can set a dollar threshold and a time frequency for receiving notifications.

", "CreateCostCategoryDefinition": "

Creates a new Cost Category with the requested name and rules.

", + "DeleteAnomalyMonitor": "

Deletes a cost anomaly monitor.

", + "DeleteAnomalySubscription": "

Deletes a cost anomaly subscription.

", "DeleteCostCategoryDefinition": "

Deletes a Cost Category. Expenses from this month going forward will no longer be categorized with this Cost Category.

", "DescribeCostCategoryDefinition": "

Returns the name, ARN, rules, definition, and effective dates of a Cost Category that's defined in the account.

You have the option to use EffectiveOn to return a Cost Category that is active on a specific date. If there is no EffectiveOn specified, you’ll see a Cost Category that is effective on the current date. If Cost Category is still effective, EffectiveEnd is omitted in the response.

", + "GetAnomalies": "

Retrieves all of the cost anomalies detected on your account, during the time period specified by the DateInterval object.

", + "GetAnomalyMonitors": "

Retrieves the cost anomaly monitor definitions for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).

", + "GetAnomalySubscriptions": "

Retrieves the cost anomaly subscription objects for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).

", "GetCostAndUsage": "

Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Master accounts in an organization in AWS Organizations have access to all member accounts.

", "GetCostAndUsageWithResources": "

Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Master accounts in an organization in AWS Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.

This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information on how to access the Settings page, see Controlling Access for Cost Explorer in the AWS Billing and Cost Management User Guide.

", "GetCostForecast": "

Retrieves a forecast for how much Amazon Web Services predicts that you will spend over the forecast time period that you select, based on your past costs.

", @@ -20,6 +27,9 @@ "GetTags": "

Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.

", "GetUsageForecast": "

Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time period that you select, based on your past usage.

", "ListCostCategoryDefinitions": "

Returns the name, ARN, NumberOfRules and effective dates of all Cost Categories defined in the account. You have the option to use EffectiveOn to return a list of Cost Categories that were active on a specific date. If there is no EffectiveOn specified, you’ll see Cost Categories that are effective on the current date. If Cost Category is still effective, EffectiveEnd is omitted in the response. ListCostCategoryDefinitions supports pagination. The request can have a MaxResults range up to 100.

", + "ProvideAnomalyFeedback": "

Modifies the feedback property of a given cost anomaly.

", + "UpdateAnomalyMonitor": "

Updates an existing cost anomaly monitor. The changes made are applied going forward, and does not change anomalies detected in the past.

", + "UpdateAnomalySubscription": "

Updates an existing cost anomaly monitor subscription.

", "UpdateCostCategoryDefinition": "

Updates an existing Cost Category. Changes made to the Cost Category rules will be used to categorize the current month’s expenses and future expenses. This won’t change categorization for the previous months.

" }, "shapes": { @@ -29,7 +39,7 @@ "GetReservationPurchaseRecommendationRequest$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

", "GetSavingsPlansPurchaseRecommendationRequest$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

", "ReservationPurchaseRecommendation$AccountScope": "

The account scope that AWS recommends that you purchase this instance for. For example, you can purchase this reservation for an entire organization in AWS Organizations.

", - "SavingsPlansPurchaseRecommendation$AccountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

" + "SavingsPlansPurchaseRecommendation$AccountScope": "

The account scope that you want your recommendations for. AWS calculates recommendations including the payer account and linked accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual linked accounts only.

" } }, "AmortizedRecurringFee": { @@ -44,6 +54,71 @@ "ReservationAggregates$AmortizedUpfrontFee": "

The upfront cost of your reservation, amortized over the reservation period.

" } }, + "Anomalies": { + "base": null, + "refs": { + "GetAnomaliesResponse$Anomalies": "

A list of cost anomalies.

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

An unusual cost pattern. This consists of the detailed metadata and the current status of the anomaly object.

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

The time period for an anomaly.

", + "refs": { + "GetAnomaliesRequest$DateInterval": "

Assigns the start and end dates for retrieving cost anomalies. The returned anomaly object will have an AnomalyEndDate in the specified time range.

" + } + }, + "AnomalyFeedbackType": { + "base": null, + "refs": { + "Anomaly$Feedback": "

The feedback value.

", + "GetAnomaliesRequest$Feedback": "

Filters anomaly results by the feedback field on the anomaly object.

", + "ProvideAnomalyFeedbackRequest$Feedback": "

Describes whether the cost anomaly was a planned activity or you considered it an anomaly.

" + } + }, + "AnomalyMonitor": { + "base": "

This object continuously inspects your account's cost data for anomalies, based on MonitorType and MonitorSpecification. The content consists of detailed metadata and the current status of the monitor object.

", + "refs": { + "AnomalyMonitors$member": null, + "CreateAnomalyMonitorRequest$AnomalyMonitor": "

The cost anomaly detection monitor object that you want to create.

" + } + }, + "AnomalyMonitors": { + "base": null, + "refs": { + "GetAnomalyMonitorsResponse$AnomalyMonitors": "

A list of cost anomaly monitors that includes the detailed metadata for each monitor.

" + } + }, + "AnomalyScore": { + "base": "

Quantifies the anomaly. The higher score means that it is more anomalous.

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

The latest and maximum score for the anomaly.

" + } + }, + "AnomalySubscription": { + "base": "

The association between a monitor, threshold, and list of subscribers used to deliver notifications about anomalies detected by a monitor that exceeds a threshold. The content consists of the detailed metadata and the current status of the AnomalySubscription object.

", + "refs": { + "AnomalySubscriptions$member": null, + "CreateAnomalySubscriptionRequest$AnomalySubscription": "

The cost anomaly subscription object that you want to create.

" + } + }, + "AnomalySubscriptionFrequency": { + "base": null, + "refs": { + "AnomalySubscription$Frequency": "

The frequency at which anomaly reports are sent over email.

", + "UpdateAnomalySubscriptionRequest$Frequency": "

The update to the frequency value at which subscribers will receive notifications.

" + } + }, + "AnomalySubscriptions": { + "base": null, + "refs": { + "GetAnomalySubscriptionsResponse$AnomalySubscriptions": "

A list of cost anomaly subscriptions that includes the detailed metadata for each one.

" + } + }, "Arn": { "base": null, "refs": { @@ -87,7 +162,7 @@ "Context": { "base": null, "refs": { - "GetDimensionValuesRequest$Context": "

The context for the call to GetDimensionValues. This can be RESERVATIONS or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization operation. If the context is set to COST_AND_USAGE, the resulting dimension values can be used in the GetCostAndUsage operation.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

" + "GetDimensionValuesRequest$Context": "

The context for the call to GetDimensionValues. This can be RESERVATIONS or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization operation. If the context is set to COST_AND_USAGE, the resulting dimension values can be used in the GetCostAndUsage operation.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

" } }, "CostCategory": { @@ -207,6 +282,26 @@ "GetReservationCoverageResponse$CoveragesByTime": "

The amount of time that your reservations covered.

" } }, + "CreateAnomalyMonitorRequest": { + "base": null, + "refs": { + } + }, + "CreateAnomalyMonitorResponse": { + "base": null, + "refs": { + } + }, + "CreateAnomalySubscriptionRequest": { + "base": null, + "refs": { + } + }, + "CreateAnomalySubscriptionResponse": { + "base": null, + "refs": { + } + }, "CreateCostCategoryDefinitionRequest": { "base": null, "refs": { @@ -235,7 +330,7 @@ "ForecastResult$TimePeriod": "

The period of time that the forecast covers.

", "GetCostAndUsageRequest$TimePeriod": "

Sets the start and end dates for retrieving AWS costs. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetCostAndUsageWithResourcesRequest$TimePeriod": "

Sets the start and end dates for retrieving Amazon Web Services costs. The range must be within the last 14 days (the start date cannot be earlier than 14 days ago). The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", - "GetCostForecastRequest$TimePeriod": "

The period of time that you want the forecast to cover.

", + "GetCostForecastRequest$TimePeriod": "

The period of time that you want the forecast to cover. The start date must be equal to or no later than the current date to avoid a validation error.

", "GetDimensionValuesRequest$TimePeriod": "

The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetReservationCoverageRequest$TimePeriod": "

The start and end dates of the period that you want to retrieve data about reservation coverage for. You can retrieve data for a maximum of 13 months: the last 12 months and the current month. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetReservationUtilizationRequest$TimePeriod": "

Sets the start and end dates for retrieving RI utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", @@ -244,13 +339,33 @@ "GetSavingsPlansUtilizationDetailsResponse$TimePeriod": null, "GetSavingsPlansUtilizationRequest$TimePeriod": "

The time period that you want the usage and costs for. The Start date must be within 13 months. The End date must be after the Start date, and before the current date. Future dates can't be used as an End date.

", "GetTagsRequest$TimePeriod": "

The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", - "GetUsageForecastRequest$TimePeriod": "

The start and end dates of the period that you want to retrieve usage forecast for. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", + "GetUsageForecastRequest$TimePeriod": "

The start and end dates of the period that you want to retrieve usage forecast for. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. The start date must be equal to or later than the current date to avoid a validation error.

", "ResultByTime$TimePeriod": "

The time period that the result covers.

", "SavingsPlansCoverage$TimePeriod": null, "SavingsPlansUtilizationByTime$TimePeriod": null, "UtilizationByTime$TimePeriod": "

The period of time that this utilization was used for.

" } }, + "DeleteAnomalyMonitorRequest": { + "base": null, + "refs": { + } + }, + "DeleteAnomalyMonitorResponse": { + "base": null, + "refs": { + } + }, + "DeleteAnomalySubscriptionRequest": { + "base": null, + "refs": { + } + }, + "DeleteAnomalySubscriptionResponse": { + "base": null, + "refs": { + } + }, "DeleteCostCategoryDefinitionRequest": { "base": null, "refs": { @@ -311,7 +426,7 @@ "EC2ResourceUtilization": { "base": "

Utilization metrics of the instance.

", "refs": { - "ResourceUtilization$EC2ResourceUtilization": "

Utilization of current Amazon EC2 Instance

" + "ResourceUtilization$EC2ResourceUtilization": "

Utilization of current Amazon EC2 instance.

" } }, "EC2Specification": { @@ -348,6 +463,8 @@ "RequestChangedException$Message": null, "ResourceNotFoundException$Message": null, "ServiceQuotaExceededException$Message": null, + "UnknownMonitorException$Message": null, + "UnknownSubscriptionException$Message": null, "UnresolvableUsageUnitException$Message": null } }, @@ -360,11 +477,12 @@ "Expression": { "base": "

Use Expression to filter by cost or by usage. There are two patterns:

For GetRightsizingRecommendation action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE.

", "refs": { - "CostCategoryRule$Rule": "

An Expression object used to categorize costs. This supports dimensions, Tags, and nested expressions. Currently the only dimensions supported are LINKED_ACCOUNT, SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME.

Root level OR is not supported. We recommend that you create a separate rule instead.

RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported for Cost Category expressions. This dimension uses different terms, depending on whether you're using the console or API/JSON editor. For a detailed comparison, see Term Comparisons in the AWS Billing and Cost Management User Guide.

", + "AnomalyMonitor$MonitorSpecification": null, + "CostCategoryRule$Rule": "

An Expression object used to categorize costs. This supports dimensions, tags, and nested expressions. Currently the only dimensions supported are LINKED_ACCOUNT, SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME.

Root level OR is not supported. We recommend that you create a separate rule instead.

RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported for Cost Category expressions. This dimension uses different terms, depending on whether you're using the console or API/JSON editor. For a detailed comparison, see Term Comparisons in the AWS Billing and Cost Management User Guide.

", "Expression$Not": "

Return results that don't match a Dimension object.

", "Expressions$member": null, "GetCostAndUsageRequest$Filter": "

Filters AWS costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see Expression.

", - "GetCostAndUsageWithResourcesRequest$Filter": "

Filters Amazon Web Services costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see Expression.

The GetCostAndUsageWithResources operation requires that you either group by or filter by a ResourceId.

", + "GetCostAndUsageWithResourcesRequest$Filter": "

Filters Amazon Web Services costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see Expression.

The GetCostAndUsageWithResources operation requires that you either group by or filter by a ResourceId. It requires the Expression \"SERVICE = Amazon Elastic Compute Cloud - Compute\" in the filter.

", "GetCostForecastRequest$Filter": "

The filters that you want to use to filter your forecast. Cost Explorer API supports all of the Cost Explorer filters.

", "GetReservationCoverageRequest$Filter": "

Filters utilization data by dimensions. You can filter by the following dimensions:

GetReservationCoverage uses the same Expression object as the other operations, but only AND is supported among each dimension. You can nest only one level deep. If there are multiple values for a dimension, they are OR'd together.

If you don't provide a SERVICE filter, Cost Explorer defaults to EC2.

Cost category is also supported.

", "GetReservationUtilizationRequest$Filter": "

Filters utilization data by dimensions. You can filter by the following dimensions:

GetReservationUtilization uses the same Expression object as the other operations, but only AND is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.

", @@ -410,35 +528,58 @@ "RedshiftInstanceDetails$CurrentGeneration": "

Whether the recommendation is for a current-generation instance.

", "RedshiftInstanceDetails$SizeFlexEligible": "

Whether the recommended reservation is size flexible.

", "RightsizingRecommendationConfiguration$BenefitsConsidered": "

The option to consider RI or Savings Plans discount benefits in your savings calculation. The default value is TRUE.

", - "TargetInstance$DefaultTargetInstance": "

Indicates whether or not this recommendation is the defaulted Amazon Web Services recommendation.

" + "TargetInstance$DefaultTargetInstance": "

Indicates whether this recommendation is the defaulted AWS recommendation.

" + } + }, + "GenericDouble": { + "base": null, + "refs": { + "AnomalyScore$MaxScore": "

The maximum score observed during the AnomalyDateInterval.

", + "AnomalyScore$CurrentScore": "

The last observed score.

", + "Impact$MaxImpact": "

The maximum dollar value observed for an anomaly.

", + "Impact$TotalImpact": "

The cumulative dollar value observed for an anomaly.

", + "TotalImpactFilter$StartValue": "

The lower bound dollar value used in the filter.

", + "TotalImpactFilter$EndValue": "

The upper bound dollar value used in the filter.

" } }, "GenericString": { "base": null, "refs": { + "Anomaly$AnomalyId": "

The unique identifier for the anomaly.

", + "Anomaly$DimensionValue": "

The dimension for the anomaly. For example, an AWS service in a service monitor.

", + "Anomaly$MonitorArn": "

The Amazon Resource Name (ARN) for the cost monitor that generated this anomaly.

", + "AnomalyMonitor$MonitorArn": "

The Amazon Resource Name (ARN) value.

", + "AnomalyMonitor$MonitorName": "

The name of the monitor.

", + "AnomalySubscription$SubscriptionArn": "

The AnomalySubscription Amazon Resource Name (ARN).

", + "AnomalySubscription$AccountId": "

Your unique account identifier.

", + "AnomalySubscription$SubscriptionName": "

The name for the subscription.

", + "CreateAnomalyMonitorResponse$MonitorArn": "

The unique identifier of your newly created cost anomaly detection monitor.

", + "CreateAnomalySubscriptionResponse$SubscriptionArn": "

The unique identifier of your newly created cost anomaly subscription.

", "CurrentInstance$ResourceId": "

Resource ID of the current instance.

", "CurrentInstance$InstanceName": "

The name you've given an instance. This field will show as blank if you haven't given the instance a name.

", "CurrentInstance$ReservationCoveredHoursInLookbackPeriod": "

Number of hours during the lookback period covered by reservations.

", "CurrentInstance$SavingsPlansCoveredHoursInLookbackPeriod": "

Number of hours during the lookback period covered by Savings Plans.

", - "CurrentInstance$OnDemandHoursInLookbackPeriod": "

Number of hours during the lookback period billed at On Demand rates.

", + "CurrentInstance$OnDemandHoursInLookbackPeriod": "

Number of hours during the lookback period billed at On-Demand rates.

", "CurrentInstance$TotalRunningHoursInLookbackPeriod": "

The total number of hours the instance ran during the lookback period.

", - "CurrentInstance$MonthlyCost": "

Current On Demand cost of operating this instance on a monthly basis.

", - "CurrentInstance$CurrencyCode": "

The currency code that Amazon Web Services used to calculate the costs for this instance.

", + "CurrentInstance$MonthlyCost": "

Current On-Demand cost of operating this instance on a monthly basis.

", + "CurrentInstance$CurrencyCode": "

The currency code that AWS used to calculate the costs for this instance.

", + "DeleteAnomalyMonitorRequest$MonitorArn": "

The unique identifier of the cost anomaly monitor that you want to delete.

", + "DeleteAnomalySubscriptionRequest$SubscriptionArn": "

The unique identifier of the cost anomaly subscription that you want to delete.

", "EC2InstanceDetails$Family": "

The instance family of the recommended reservation.

", "EC2InstanceDetails$InstanceType": "

The type of instance that AWS recommends.

", "EC2InstanceDetails$Region": "

The AWS Region of the recommended reservation.

", "EC2InstanceDetails$AvailabilityZone": "

The Availability Zone of the recommended reservation.

", "EC2InstanceDetails$Platform": "

The platform of the recommended reservation. The platform is the specific combination of operating system, license model, and software on an instance.

", "EC2InstanceDetails$Tenancy": "

Whether the recommended reservation is dedicated or shared.

", - "EC2ResourceDetails$HourlyOnDemandRate": "

Hourly public On Demand rate for the instance type.

", - "EC2ResourceDetails$InstanceType": "

The type of Amazon Web Services instance.

", - "EC2ResourceDetails$Platform": "

The platform of the Amazon Web Services instance. The platform is the specific combination of operating system, license model, and software on an instance.

", - "EC2ResourceDetails$Region": "

The Amazon Web Services Region of the instance.

", + "EC2ResourceDetails$HourlyOnDemandRate": "

Hourly public On-Demand rate for the instance type.

", + "EC2ResourceDetails$InstanceType": "

The type of AWS instance.

", + "EC2ResourceDetails$Platform": "

The platform of the AWS instance. The platform is the specific combination of operating system, license model, and software on an instance.

", + "EC2ResourceDetails$Region": "

The AWS Region of the instance.

", "EC2ResourceDetails$Sku": "

The SKU of the product.

", - "EC2ResourceDetails$Memory": "

Memory capacity of Amazon Web Services instance.

", - "EC2ResourceDetails$NetworkPerformance": "

Network performance capacity of the Amazon Web Services instance.

", - "EC2ResourceDetails$Storage": "

The disk storage of the Amazon Web Services instance (Not EBS storage).

", - "EC2ResourceDetails$Vcpu": "

Number of VCPU cores in the Amazon Web Services instance type.

", + "EC2ResourceDetails$Memory": "

Memory capacity of the AWS instance.

", + "EC2ResourceDetails$NetworkPerformance": "

Network performance capacity of the AWS instance.

", + "EC2ResourceDetails$Storage": "

The disk storage of the AWS instance (not EBS storage).

", + "EC2ResourceDetails$Vcpu": "

Number of VCPU cores in the AWS instance type.

", "EC2ResourceUtilization$MaxCpuUtilizationPercentage": "

Maximum observed or expected CPU utilization of the instance.

", "EC2ResourceUtilization$MaxMemoryUtilizationPercentage": "

Maximum observed or expected memory utilization of the instance.

", "EC2ResourceUtilization$MaxStorageUtilizationPercentage": "

Maximum observed or expected storage utilization of the instance (does not measure EBS storage).

", @@ -452,9 +593,13 @@ "ForecastResult$MeanValue": "

The mean value of the forecast.

", "ForecastResult$PredictionIntervalLowerBound": "

The lower limit for the prediction interval.

", "ForecastResult$PredictionIntervalUpperBound": "

The upper limit for the prediction interval.

", + "GetAnomaliesRequest$MonitorArn": "

Retrieves all of the cost anomalies detected for a specific cost anomaly monitor Amazon Resource Name (ARN).

", + "GetAnomalySubscriptionsRequest$MonitorArn": "

Cost anomaly monitor ARNs.

", "GetReservationPurchaseRecommendationRequest$AccountId": "

The account ID that is associated with the recommendation.

", "GetReservationPurchaseRecommendationRequest$Service": "

The specific service that you want recommendations for.

", "GetRightsizingRecommendationRequest$Service": "

The specific service that you want recommendations for. The only valid value for GetRightsizingRecommendation is \"AmazonEC2\".

", + "ProvideAnomalyFeedbackRequest$AnomalyId": "

A cost anomaly ID.

", + "ProvideAnomalyFeedbackResponse$AnomalyId": "

The ID of the modified cost anomaly.

", "RDSInstanceDetails$Family": "

The instance family of the recommended reservation.

", "RDSInstanceDetails$InstanceType": "

The type of instance that AWS recommends.

", "RDSInstanceDetails$Region": "

The AWS Region of the recommended reservation.

", @@ -490,17 +635,21 @@ "ReservationPurchaseRecommendationSummary$CurrencyCode": "

The currency code used for this recommendation.

", "RightsizingRecommendation$AccountId": "

The account that this recommendation is for.

", "RightsizingRecommendationMetadata$RecommendationId": "

The ID for this specific recommendation.

", - "RightsizingRecommendationMetadata$GenerationTimestamp": "

The timestamp for when Amazon Web Services made this recommendation.

", + "RightsizingRecommendationMetadata$GenerationTimestamp": "

The timestamp for when AWS made this recommendation.

", "RightsizingRecommendationSummary$TotalRecommendationCount": "

Total number of instance recommendations.

", "RightsizingRecommendationSummary$EstimatedTotalMonthlySavingsAmount": "

Estimated total savings resulting from modifications, on a monthly basis.

", - "RightsizingRecommendationSummary$SavingsCurrencyCode": "

The currency code that Amazon Web Services used to calculate the savings.

", + "RightsizingRecommendationSummary$SavingsCurrencyCode": "

The currency code that AWS used to calculate the savings.

", "RightsizingRecommendationSummary$SavingsPercentage": "

Savings percentage based on the recommended modifications, relative to the total On-Demand costs associated with these instances.

", + "RootCause$Service": "

The AWS service name associated with the cost anomaly.

", + "RootCause$Region": "

The AWS Region associated with the cost anomaly.

", + "RootCause$LinkedAccount": "

The linked account value associated with the cost anomaly.

", + "RootCause$UsageType": "

The UsageType value associated with the cost anomaly.

", "SavingsPlansAmortizedCommitment$AmortizedRecurringCommitment": "

The amortized amount of your Savings Plans commitment that was purchased with either a Partial or a NoUpfront.

", "SavingsPlansAmortizedCommitment$AmortizedUpfrontCommitment": "

The amortized amount of your Savings Plans commitment that was purchased with an Upfront or PartialUpfront Savings Plans.

", "SavingsPlansAmortizedCommitment$TotalAmortizedCommitment": "

The total amortized amount of your Savings Plans commitment, regardless of your Savings Plans purchase method.

", - "SavingsPlansCoverageData$SpendCoveredBySavingsPlans": "

The amount of your Amazon Web Services usage that is covered by a Savings Plans.

", - "SavingsPlansCoverageData$OnDemandCost": "

The cost of your Amazon Web Services usage at the public On-Demand rate.

", - "SavingsPlansCoverageData$TotalCost": "

The total cost of your Amazon Web Services usage, regardless of your purchase option.

", + "SavingsPlansCoverageData$SpendCoveredBySavingsPlans": "

The amount of your AWS usage that is covered by a Savings Plans.

", + "SavingsPlansCoverageData$OnDemandCost": "

The cost of your AWS usage at the public On-Demand rate.

", + "SavingsPlansCoverageData$TotalCost": "

The total cost of your AWS usage, regardless of your purchase option.

", "SavingsPlansCoverageData$CoveragePercentage": "

The percentage of your existing Savings Plans covered usage, divided by all of your eligible Savings Plans usage in an account(or set of accounts).

", "SavingsPlansDetails$Region": "

A collection of AWS resources in a geographic area. Each AWS Region is isolated and independent of the other Regions.

", "SavingsPlansDetails$InstanceFamily": "

A group of instance types that Savings Plans applies to.

", @@ -508,7 +657,7 @@ "SavingsPlansPurchaseRecommendationDetail$AccountId": "

The AccountID the recommendation is generated for.

", "SavingsPlansPurchaseRecommendationDetail$UpfrontCost": "

The upfront cost of the recommended Savings Plans, based on the selected payment option.

", "SavingsPlansPurchaseRecommendationDetail$EstimatedROI": "

The estimated return on investment based on the recommended Savings Plans purchased. This is calculated as estimatedSavingsAmount/ estimatedSPCost*100.

", - "SavingsPlansPurchaseRecommendationDetail$CurrencyCode": "

The currency code Amazon Web Services used to generate the recommendations and present potential savings.

", + "SavingsPlansPurchaseRecommendationDetail$CurrencyCode": "

The currency code AWS used to generate the recommendations and present potential savings.

", "SavingsPlansPurchaseRecommendationDetail$EstimatedSPCost": "

The cost of the recommended Savings Plans over the length of the lookback period.

", "SavingsPlansPurchaseRecommendationDetail$EstimatedOnDemandCost": "

The remaining On-Demand cost estimated to not be covered by the recommended Savings Plans, over the length of the lookback period.

", "SavingsPlansPurchaseRecommendationDetail$EstimatedOnDemandCostWithCurrentCommitment": "

The estimated On-Demand costs you would expect with no additional commitment, based on your usage of the selected time period and the Savings Plans you own.

", @@ -523,7 +672,7 @@ "SavingsPlansPurchaseRecommendationMetadata$RecommendationId": "

The unique identifier for the recommendation set.

", "SavingsPlansPurchaseRecommendationMetadata$GenerationTimestamp": "

The timestamp showing when the recommendations were generated.

", "SavingsPlansPurchaseRecommendationSummary$EstimatedROI": "

The estimated return on investment based on the recommended Savings Plans and estimated savings.

", - "SavingsPlansPurchaseRecommendationSummary$CurrencyCode": "

The currency code Amazon Web Services used to generate the recommendations and present potential savings.

", + "SavingsPlansPurchaseRecommendationSummary$CurrencyCode": "

The currency code AWS used to generate the recommendations and present potential savings.

", "SavingsPlansPurchaseRecommendationSummary$EstimatedTotalCost": "

The estimated total cost of the usage after purchasing the recommended Savings Plans. This is a sum of the cost of Savings Plans during this term, and the remaining On-Demand usage.

", "SavingsPlansPurchaseRecommendationSummary$CurrentOnDemandSpend": "

The current total on demand spend of the applicable usage types over the lookback period.

", "SavingsPlansPurchaseRecommendationSummary$EstimatedSavingsAmount": "

The estimated total savings over the lookback period, based on the purchase of the recommended Savings Plans.

", @@ -541,9 +690,45 @@ "SavingsPlansUtilization$UtilizationPercentage": "

The amount of UsedCommitment divided by the TotalCommitment for your Savings Plans.

", "TargetInstance$EstimatedMonthlyCost": "

Expected cost to operate this instance type on a monthly basis.

", "TargetInstance$EstimatedMonthlySavings": "

Estimated savings resulting from modification, on a monthly basis.

", - "TargetInstance$CurrencyCode": "

The currency code that Amazon Web Services used to calculate the costs for this instance.

", + "TargetInstance$CurrencyCode": "

The currency code that AWS used to calculate the costs for this instance.

", "TerminateRecommendationDetail$EstimatedMonthlySavings": "

Estimated savings resulting from modification, on a monthly basis.

", - "TerminateRecommendationDetail$CurrencyCode": "

The currency code that Amazon Web Services used to calculate the costs for this instance.

" + "TerminateRecommendationDetail$CurrencyCode": "

The currency code that AWS used to calculate the costs for this instance.

", + "UpdateAnomalyMonitorRequest$MonitorArn": "

Cost anomaly monitor Amazon Resource Names (ARNs).

", + "UpdateAnomalyMonitorRequest$MonitorName": "

The new name for the cost anomaly monitor.

", + "UpdateAnomalyMonitorResponse$MonitorArn": "

A cost anomaly monitor ARN.

", + "UpdateAnomalySubscriptionRequest$SubscriptionArn": "

A cost anomaly subscription Amazon Resource Name (ARN).

", + "UpdateAnomalySubscriptionRequest$SubscriptionName": "

The subscription's new name.

", + "UpdateAnomalySubscriptionResponse$SubscriptionArn": "

A cost anomaly subscription ARN.

" + } + }, + "GetAnomaliesRequest": { + "base": null, + "refs": { + } + }, + "GetAnomaliesResponse": { + "base": null, + "refs": { + } + }, + "GetAnomalyMonitorsRequest": { + "base": null, + "refs": { + } + }, + "GetAnomalyMonitorsResponse": { + "base": null, + "refs": { + } + }, + "GetAnomalySubscriptionsRequest": { + "base": null, + "refs": { + } + }, + "GetAnomalySubscriptionsResponse": { + "base": null, + "refs": { } }, "GetCostAndUsageRequest": { @@ -726,7 +911,7 @@ "GroupDefinitions": { "base": null, "refs": { - "GetCostAndUsageRequest$GroupBy": "

You can group AWS costs using up to two different groups, either dimensions, tag keys, or both.

When you group by tag key, you get all tag values, including empty strings.

Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, RECORD_TYPE, and USAGE_TYPE.

", + "GetCostAndUsageRequest$GroupBy": "

You can group AWS costs using up to two different groups, either dimensions, tag keys, cost categories, or any two group by types.

When you group by tag key, you get all tag values, including empty strings.

Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, RECORD_TYPE, and USAGE_TYPE.

", "GetCostAndUsageResponse$GroupDefinitions": "

The groups that are specified by the Filter or GroupBy parameters in the request.

", "GetCostAndUsageWithResourcesRequest$GroupBy": "

You can group Amazon Web Services costs using up to two different groups: either dimensions, tag keys, or both.

", "GetCostAndUsageWithResourcesResponse$GroupDefinitions": "

The groups that are specified by the Filter or GroupBy parameters in the request.

", @@ -741,6 +926,12 @@ "ResultByTime$Groups": "

The groups that this time period includes.

" } }, + "Impact": { + "base": "

The anomaly's dollar value.

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

The dollar impact for the anomaly.

" + } + }, "InstanceDetails": { "base": "

Details about the instances that AWS recommends that you purchase.

", "refs": { @@ -785,7 +976,7 @@ "GetReservationPurchaseRecommendationRequest$LookbackPeriodInDays": "

The number of previous days that you want AWS to consider when it calculates your recommendations.

", "GetSavingsPlansPurchaseRecommendationRequest$LookbackPeriodInDays": "

The lookback period used to generate the recommendation.

", "ReservationPurchaseRecommendation$LookbackPeriodInDays": "

How many days of previous usage that AWS considers when making this recommendation.

", - "RightsizingRecommendationMetadata$LookbackPeriodInDays": "

How many days of previous usage that Amazon Web Services considers when making this recommendation.

", + "RightsizingRecommendationMetadata$LookbackPeriodInDays": "

How many days of previous usage that AWS considers when making this recommendation.

", "SavingsPlansPurchaseRecommendation$LookbackPeriodInDays": "

The lookback period in days, used to generate the recommendation.

" } }, @@ -798,8 +989,8 @@ "MatchOptions": { "base": null, "refs": { - "DimensionValues$MatchOptions": "

The match options that you can use to filter your results. MatchOptions is only applicable for actions related to Cost Category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE.

", - "TagValues$MatchOptions": "

The match options that you can use to filter your results. MatchOptions is only applicable for only applicable for actions related to Cost Category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE.

" + "DimensionValues$MatchOptions": "

The match options that you can use to filter your results. MatchOptions is only applicable for actions related to Cost Category. The default values for MatchOptions are EQUALS and CASE_SENSITIVE.

", + "TagValues$MatchOptions": "

The match options that you can use to filter your results. MatchOptions is only applicable for actions related to Cost Category. The default values for MatchOptions are EQUALS and CASE_SENSITIVE.

" } }, "MaxResults": { @@ -865,6 +1056,18 @@ "RightsizingRecommendation$ModifyRecommendationDetail": "

Details for modification recommendations.

" } }, + "MonitorDimension": { + "base": null, + "refs": { + "AnomalyMonitor$MonitorDimension": "

The dimensions to evaluate.

" + } + }, + "MonitorType": { + "base": null, + "refs": { + "AnomalyMonitor$MonitorType": "

The possible type values.

" + } + }, "NetRISavings": { "base": null, "refs": { @@ -874,6 +1077,12 @@ "NextPageToken": { "base": null, "refs": { + "GetAnomaliesRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetAnomaliesResponse$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetAnomalyMonitorsRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetAnomalyMonitorsResponse$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetAnomalySubscriptionsRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetAnomalySubscriptionsResponse$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", "GetCostAndUsageRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", "GetCostAndUsageResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", "GetCostAndUsageWithResourcesRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", @@ -903,12 +1112,26 @@ "NonNegativeInteger": { "base": null, "refs": { + "AnomalyMonitor$DimensionalValueCount": "

The value for evaluated dimensions.

", "CostCategoryReference$NumberOfRules": "

The number of rules associated with a specific Cost Category.

", "GetReservationPurchaseRecommendationRequest$PageSize": "

The number of recommendations that you want returned in a single response object.

", "GetRightsizingRecommendationRequest$PageSize": "

The number of recommendations that you want returned in a single response object.

", "GetSavingsPlansPurchaseRecommendationRequest$PageSize": "

The number of recommendations that you want returned in a single response object.

" } }, + "NullableNonNegativeDouble": { + "base": null, + "refs": { + "AnomalySubscription$Threshold": "

The dollar value that triggers a notification if the threshold is exceeded.

", + "UpdateAnomalySubscriptionRequest$Threshold": "

The update to the threshold value for receiving notifications.

" + } + }, + "NumericOperator": { + "base": null, + "refs": { + "TotalImpactFilter$NumericOperator": "

The comparing value used in the filter.

" + } + }, "OfferingClass": { "base": null, "refs": { @@ -942,6 +1165,9 @@ "PageSize": { "base": null, "refs": { + "GetAnomaliesRequest$MaxResults": "

The number of entries a paginated response contains.

", + "GetAnomalyMonitorsRequest$MaxResults": "

The number of entries a paginated response contains.

", + "GetAnomalySubscriptionsRequest$MaxResults": "

The number of entries a paginated response contains.

", "GetDimensionValuesResponse$ReturnSize": "

The number of results that AWS returned at one time.

", "GetDimensionValuesResponse$TotalSize": "

The total number of search results.

", "GetTagsResponse$ReturnSize": "

The number of query results that AWS returns at a time.

", @@ -964,6 +1190,16 @@ "GetUsageForecastRequest$PredictionIntervalLevel": "

Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

" } }, + "ProvideAnomalyFeedbackRequest": { + "base": null, + "refs": { + } + }, + "ProvideAnomalyFeedbackResponse": { + "base": null, + "refs": { + } + }, "PurchasedHours": { "base": null, "refs": { @@ -1160,6 +1396,18 @@ "RightsizingRecommendation$RightsizingType": "

Recommendation to either terminate or modify the resource.

" } }, + "RootCause": { + "base": "

The combination of AWS service, linked account, Region, and usage type where a cost anomaly is observed.

", + "refs": { + "RootCauses$member": null + } + }, + "RootCauses": { + "base": null, + "refs": { + "Anomaly$RootCauses": "

The list of identified root causes for the anomaly.

" + } + }, "SavingsPlanArn": { "base": null, "refs": { @@ -1283,7 +1531,7 @@ } }, "ServiceQuotaExceededException": { - "base": "

You've reached the limit on the number of resources you can create, or exceeded the size of an individual resources.

", + "base": "

You've reached the limit on the number of resources you can create, or exceeded the size of an individual resource.

", "refs": { } }, @@ -1294,6 +1542,37 @@ "ReservationPurchaseRecommendation$ServiceSpecification": "

Hardware specifications for the service that you want recommendations for.

" } }, + "Subscriber": { + "base": "

The recipient of AnomalySubscription notifications.

", + "refs": { + "Subscribers$member": null + } + }, + "SubscriberAddress": { + "base": null, + "refs": { + "Subscriber$Address": "

The email address or SNS Amazon Resource Name (ARN), depending on the Type.

" + } + }, + "SubscriberStatus": { + "base": null, + "refs": { + "Subscriber$Status": "

Indicates if the subscriber accepts the notifications.

" + } + }, + "SubscriberType": { + "base": null, + "refs": { + "Subscriber$Type": "

The notification delivery channel.

" + } + }, + "Subscribers": { + "base": null, + "refs": { + "AnomalySubscription$Subscribers": "

A list of subscribers to notify.

", + "UpdateAnomalySubscriptionRequest$Subscribers": "

The update to the subscriber list.

" + } + }, "SupportedSavingsPlansType": { "base": null, "refs": { @@ -1336,7 +1615,7 @@ "TargetInstancesList": { "base": null, "refs": { - "ModifyRecommendationDetail$TargetInstances": "

Identifies whether this instance type is the Amazon Web Services default recommendation.

" + "ModifyRecommendationDetail$TargetInstances": "

Identifies whether this instance type is the AWS default recommendation.

" } }, "TermInYears": { @@ -1372,6 +1651,12 @@ "ReservationAggregates$TotalAmortizedFee": "

The total cost of your reservation, amortized over the reservation period.

" } }, + "TotalImpactFilter": { + "base": "

Filters cost anomalies based on the total impact.

", + "refs": { + "GetAnomaliesRequest$TotalImpact": "

Filters anomaly results by the total impact field on the anomaly object. For example, you can filter anomalies GREATER_THAN 200.00 to retrieve anomalies, with an estimated dollar impact greater than 200.

" + } + }, "TotalPotentialRISavings": { "base": null, "refs": { @@ -1390,6 +1675,16 @@ "CoverageNormalizedUnits$TotalRunningNormalizedUnits": "

The total number of normalized units that you used.

" } }, + "UnknownMonitorException": { + "base": "

The cost anomaly monitor does not exist for the account.

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

The cost anomaly subscription does not exist for the account.

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

Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup filter selections that contain matching units, for example: hours.

", "refs": { @@ -1407,6 +1702,26 @@ "ReservationAggregates$UnusedUnits": "

The number of Amazon EC2 reservation hours that you didn't use, converted to normalized units. Normalized units are available only for Amazon EC2 usage after November 11, 2017.

" } }, + "UpdateAnomalyMonitorRequest": { + "base": null, + "refs": { + } + }, + "UpdateAnomalyMonitorResponse": { + "base": null, + "refs": { + } + }, + "UpdateAnomalySubscriptionRequest": { + "base": null, + "refs": { + } + }, + "UpdateAnomalySubscriptionResponse": { + "base": null, + "refs": { + } + }, "UpdateCostCategoryDefinitionRequest": { "base": null, "refs": { @@ -1451,14 +1766,25 @@ "Values": { "base": null, "refs": { + "AnomalySubscription$MonitorArnList": "

A list of cost anomaly monitors.

", "CostCategoryValues$Values": "

The specific value of the Cost Category.

", "DimensionValues$Values": "

The metadata values that you can use to filter and group your results. You can use GetDimensionValues to find specific values.

", - "TagValues$Values": "

The specific value of the tag.

" + "GetAnomalyMonitorsRequest$MonitorArnList": "

A list of cost anomaly monitor ARNs.

", + "GetAnomalySubscriptionsRequest$SubscriptionArnList": "

A list of cost anomaly subscription ARNs.

", + "TagValues$Values": "

The specific value of the tag.

", + "UpdateAnomalySubscriptionRequest$MonitorArnList": "

A list of cost anomaly subscription ARNs.

" } }, "YearMonthDay": { "base": null, "refs": { + "Anomaly$AnomalyStartDate": "

The first day the anomaly is detected.

", + "Anomaly$AnomalyEndDate": "

The last day the anomaly is detected.

", + "AnomalyDateInterval$StartDate": "

The first date an anomaly was observed.

", + "AnomalyDateInterval$EndDate": "

The last date an anomaly was observed.

", + "AnomalyMonitor$CreationDate": "

The date when the monitor was created.

", + "AnomalyMonitor$LastUpdatedDate": "

The date when the monitor was last updated.

", + "AnomalyMonitor$LastEvaluatedDate": "

The date when the monitor last evaluated for anomalies.

", "DateInterval$Start": "

The beginning of the time period that you want the usage and costs for. The start date is inclusive. For example, if start is 2017-01-01, AWS retrieves cost and usage data starting at 2017-01-01 up to the end date.

", "DateInterval$End": "

The end of the time period that you want the usage and costs for. The end date is exclusive. For example, if end is 2017-05-01, AWS retrieves cost and usage data from the start date up to, but not including, 2017-05-01.

" } diff --git a/models/apis/quicksight/2018-04-01/api-2.json b/models/apis/quicksight/2018-04-01/api-2.json index 2de3c237ce9..78af1c4484c 100644 --- a/models/apis/quicksight/2018-04-01/api-2.json +++ b/models/apis/quicksight/2018-04-01/api-2.json @@ -1824,7 +1824,8 @@ "DataSetArns":{"shape":"DataSetArnsList"}, "ThemeArn":{"shape":"Arn"}, "CreatedTime":{"shape":"Timestamp"}, - "LastUpdatedTime":{"shape":"Timestamp"} + "LastUpdatedTime":{"shape":"Timestamp"}, + "Sheets":{"shape":"SheetList"} } }, "AnalysisError":{ @@ -2879,7 +2880,8 @@ "SourceEntityArn":{"shape":"Arn"}, "DataSetArns":{"shape":"DataSetArnsList"}, "Description":{"shape":"VersionDescription"}, - "ThemeArn":{"shape":"Arn"} + "ThemeArn":{"shape":"Arn"}, + "Sheets":{"shape":"SheetList"} } }, "DashboardVersionSummary":{ @@ -6364,12 +6366,24 @@ "error":{"httpStatusCode":400}, "exception":true }, + "Sheet":{ + "type":"structure", + "members":{ + "SheetId":{"shape":"RestrictiveResourceId"}, + "Name":{"shape":"NonEmptyString"} + } + }, "SheetControlsOption":{ "type":"structure", "members":{ "VisibilityState":{"shape":"DashboardUIState"} } }, + "SheetList":{ + "type":"list", + "member":{"shape":"Sheet"}, + "max":20 + }, "SheetStyle":{ "type":"structure", "members":{ @@ -6623,7 +6637,8 @@ "DataSetConfigurations":{"shape":"DataSetConfigurationList"}, "Description":{"shape":"VersionDescription"}, "SourceEntityArn":{"shape":"Arn"}, - "ThemeArn":{"shape":"Arn"} + "ThemeArn":{"shape":"Arn"}, + "Sheets":{"shape":"SheetList"} } }, "TemplateVersionSummary":{ diff --git a/models/apis/quicksight/2018-04-01/docs-2.json b/models/apis/quicksight/2018-04-01/docs-2.json index 49353ceb985..b2b4aa3d538 100644 --- a/models/apis/quicksight/2018-04-01/docs-2.json +++ b/models/apis/quicksight/2018-04-01/docs-2.json @@ -3,7 +3,7 @@ "service": "Amazon QuickSight API Reference

Amazon QuickSight is a fully managed, serverless business intelligence service for the AWS Cloud that makes it easy to extend data and insights to every user in your organization. This API reference contains documentation for a programming interface that you can use to manage Amazon QuickSight.

", "operations": { "CancelIngestion": "

Cancels an ongoing ingestion of data into SPICE.

", - "CreateAccountCustomization": "

Creates Amazon QuickSight customizations the current AWS Region. Currently, you can add a custom default theme by using the CreateAccountCustomization or UpdateAccountCustomization API operation. To further customize QuickSight by removing QuickSight sample assets and videos for all new users, see Customizing QuickSight in the Amazon QuickSight User Guide.

You can create customizations for your AWS account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace always override customizations that apply to an AWS account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

Before you add a theme as the namespace default, make sure that you first share the theme with the namespace. If you don't share it with the namespace, the theme won't be visible to your users even if you use this API operation to make it the default theme.

", + "CreateAccountCustomization": "

Creates Amazon QuickSight customizations the current AWS Region. Currently, you can add a custom default theme by using the CreateAccountCustomization or UpdateAccountCustomization API operation. To further customize QuickSight by removing QuickSight sample assets and videos for all new users, see Customizing QuickSight in the Amazon QuickSight User Guide.

You can create customizations for your AWS account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace always override customizations that apply to an AWS account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

Before you use the CreateAccountCustomization API operation to add a theme as the namespace default, make sure that you first share the theme with the namespace. If you don't share it with the namespace, the theme isn't visible to your users even if you make it the default theme. To check if the theme is shared, view the current permissions by using the DescribeThemePermissions API operation. To share the theme, grant permissions by using the UpdateThemePermissions API operation.

", "CreateAnalysis": "

Creates an analysis in Amazon QuickSight.

", "CreateDashboard": "

Creates a dashboard from a template. To first create a template, see the CreateTemplate API operation.

A dashboard is an entity in QuickSight that identifies QuickSight reports, created from analyses. You can share QuickSight dashboards. With the right permissions, you can create scheduled email reports from them. If you have the correct permissions, you can create a dashboard from a template that exists in a different AWS account.

", "CreateDataSet": "

Creates a dataset.

", @@ -17,7 +17,7 @@ "CreateTemplateAlias": "

Creates a template alias for a template.

", "CreateTheme": "

Creates a theme.

A theme is set of configuration options for color and layout. Themes apply to analyses and dashboards. For more information, see Using Themes in Amazon QuickSight in the Amazon QuickSight User Guide.

", "CreateThemeAlias": "

Creates a theme alias for a theme.

", - "DeleteAccountCustomization": "

Deletes all Amazon QuickSight customizations in this AWS Region for the specified AWS Account and QuickSight namespace.

", + "DeleteAccountCustomization": "

Deletes all Amazon QuickSight customizations in this AWS Region for the specified AWS account and QuickSight namespace.

", "DeleteAnalysis": "

Deletes an analysis from Amazon QuickSight. You can optionally include a recovery window during which you can restore the analysis. If you don't specify a recovery window value, the operation defaults to 30 days. QuickSight attaches a DeletionTime stamp to the response that specifies the end of the recovery window. At the end of the recovery window, QuickSight deletes the analysis permanently.

At any time before recovery window ends, you can use the RestoreAnalysis API operation to remove the DeletionTime stamp and cancel the deletion of the analysis. The analysis remains visible in the API until it's deleted, so you can describe it but you can't make a template from it.

An analysis that's scheduled for deletion isn't accessible in the QuickSight console. To access it in the console, restore it. Deleting an analysis doesn't delete the dashboards that you publish from it.

", "DeleteDashboard": "

Deletes a dashboard.

", "DeleteDataSet": "

Deletes a dataset.

", @@ -32,8 +32,8 @@ "DeleteThemeAlias": "

Deletes the version of the theme that the specified theme alias points to. If you provide a specific alias, you delete the version of the theme that the alias points to.

", "DeleteUser": "

Deletes the Amazon QuickSight user that is associated with the identity of the AWS Identity and Access Management (IAM) user or role that's making the call. The IAM user isn't deleted as a result of this call.

", "DeleteUserByPrincipalId": "

Deletes a user identified by its principal ID.

", - "DescribeAccountCustomization": "

Describes the customizations associated with the provided AWS account and Amazon QuickSight namespace in an AWS Region. The QuickSight console evaluates which customizations to apply by running this API operation with the Resolved flag included.

To determine what customizations display when you run this command, it can help to visualize the relationship of the entities involved.

", - "DescribeAccountSettings": "

Describes the settings that were used when your QuickSight subscription was first created in this AWS Account.

", + "DescribeAccountCustomization": "

Describes the customizations associated with the provided AWS account and Amazon QuickSight namespace in an AWS Region. The QuickSight console evaluates which customizations to apply by running this API operation with the Resolved flag included.

To determine what customizations display when you run this command, it can help to visualize the relationship of the entities involved.

", + "DescribeAccountSettings": "

Describes the settings that were used when your QuickSight subscription was first created in this AWS account.

", "DescribeAnalysis": "

Provides a summary of the metadata for an analysis.

", "DescribeAnalysisPermissions": "

Provides the read and write permissions for an analysis.

", "DescribeDashboard": "

Provides a summary for a dashboard.

", @@ -82,7 +82,7 @@ "TagResource": "

Assigns one or more tags (key-value pairs) to the specified QuickSight resource.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values. You can use the TagResource operation with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a resource. QuickSight supports tagging on data set, data source, dashboard, and template.

Tagging for QuickSight works in a similar way to tagging for other AWS services, except for the following:

", "UntagResource": "

Removes a tag or tags from a resource.

", "UpdateAccountCustomization": "

Updates Amazon QuickSight customizations the current AWS Region. Currently, the only customization you can use is a theme.

You can use customizations for your AWS account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace override customizations that apply to an AWS account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

", - "UpdateAccountSettings": "

Updates the Amazon QuickSight settings in your AWS Account.

", + "UpdateAccountSettings": "

Updates the Amazon QuickSight settings in your AWS account.

", "UpdateAnalysis": "

Updates an analysis in Amazon QuickSight

", "UpdateAnalysisPermissions": "

Updates the read and write permissions for an analysis.

", "UpdateDashboard": "

Updates a dashboard in an AWS account.

", @@ -111,7 +111,7 @@ "AccountCustomization": { "base": "

The Amazon QuickSight customizations associated with your AWS account or a QuickSight namespace in a specific AWS Region.

", "refs": { - "CreateAccountCustomizationRequest$AccountCustomization": "

The QuickSight customizations you're adding in the current AWS Region. You can add these to an AWS account and a QuickSight namespace.

For example, you could add a default theme by setting AccountCustomization to the midnight theme: \"AccountCustomization\": { \"DefaultTheme\": \"arn:aws:quicksight::aws:theme/MIDNIGHT\" }. . Or, you could add a custom theme by specifying \"AccountCustomization\": { \"DefaultTheme\": \"arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639\" }.

", + "CreateAccountCustomizationRequest$AccountCustomization": "

The QuickSight customizations you're adding in the current AWS Region. You can add these to an AWS account and a QuickSight namespace.

For example, you can add a default theme by setting AccountCustomization to the midnight theme: \"AccountCustomization\": { \"DefaultTheme\": \"arn:aws:quicksight::aws:theme/MIDNIGHT\" }. Or, you can add a custom theme by specifying \"AccountCustomization\": { \"DefaultTheme\": \"arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639\" }.

", "CreateAccountCustomizationResponse$AccountCustomization": "

The QuickSight customizations you're adding in the current AWS Region.

", "DescribeAccountCustomizationResponse$AccountCustomization": "

The QuickSight customizations that exist in the current AWS Region.

", "UpdateAccountCustomizationRequest$AccountCustomization": "

The QuickSight customizations you're updating in the current AWS Region.

", @@ -121,7 +121,7 @@ "AccountSettings": { "base": "

The QuickSight settings associated with your AWS account.

", "refs": { - "DescribeAccountSettingsResponse$AccountSettings": "

The QuickSight settings for this AWS account. This information includes the edition of Amazon QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the QuickSight subscription. The QuickSight console, the QuickSight subscription is sometimes referred to as a QuickSight \"account\" even though it's technically not an account by itself. Instead, it's a subscription to the QuickSight service for your AWS account. The edition that you subscribe to applies to QuickSight in every AWS Region where you use it.

" + "DescribeAccountSettingsResponse$AccountSettings": "

The QuickSight settings for this AWS account. This information includes the edition of Amazon QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the QuickSight subscription. In the QuickSight console, the QuickSight subscription is sometimes referred to as a QuickSight \"account\" even though it's technically not an account by itself. Instead, it's a subscription to the QuickSight service for your AWS account. The edition that you subscribe to applies to QuickSight in every AWS Region where you use it.

" } }, "ActionList": { @@ -2269,7 +2269,7 @@ "RowLevelPermissionDataSet$Namespace": "

The namespace associated with the row-level permissions dataset.

", "UpdateAccountCustomizationRequest$Namespace": "

The namespace that you want to update QuickSight customizations for.

", "UpdateAccountCustomizationResponse$Namespace": "

The namespace associated with the customization that you're updating.

", - "UpdateAccountSettingsRequest$DefaultNamespace": "

The default namespace for this AWS Account. Currently, the default is default. IAM users who register for the first time with QuickSight provide an email that becomes associated with the default namespace.

", + "UpdateAccountSettingsRequest$DefaultNamespace": "

The default namespace for this AWS account. Currently, the default is default. AWS Identity and Access Management (IAM) users that register for the first time with QuickSight provide an email that becomes associated with the default namespace.

", "UpdateGroupRequest$Namespace": "

The namespace. Currently, you should set this to default.

", "UpdateIAMPolicyAssignmentRequest$Namespace": "

The namespace of the assignment.

", "UpdateUserRequest$Namespace": "

The namespace. Currently, you should set this to default.

" @@ -2316,6 +2316,7 @@ "DateTimeParameter$Name": "

A display name for the date-time parameter.

", "DecimalParameter$Name": "

A display name for the decimal parameter.

", "IntegerParameter$Name": "

The name of the integer parameter.

", + "Sheet$Name": "

The name of a sheet. This is displayed on the sheet's tab in the QuickSight console.

", "StringParameter$Name": "

A display name for a string parameter.

", "TemplateError$Message": "

Description of the error type.

", "ThemeError$Message": "

The error message.

" @@ -2683,6 +2684,7 @@ "ListThemeVersionsRequest$ThemeId": "

The ID for the theme.

", "RestoreAnalysisRequest$AnalysisId": "

The ID of the analysis that you're restoring.

", "RestoreAnalysisResponse$AnalysisId": "

The ID of the analysis that you're restoring.

", + "Sheet$SheetId": "

The unique identifier associated with a sheet.

", "Template$TemplateId": "

The ID for the template. This is unique per AWS Region for each AWS account.

", "TemplateSummary$TemplateId": "

The ID of the template. This ID is unique per AWS Region for each AWS account.

", "Theme$ThemeId": "

The identifier that the user gives to the theme.

", @@ -2808,12 +2810,26 @@ "refs": { } }, + "Sheet": { + "base": "

A sheet is an object that contains a set of visuals that are viewed together on one page in the Amazon QuickSight console. Every analysis and dashboard contains at least one sheet. Each sheet contains at least one visualization widget, for example a chart, pivot table, or narrative insight. Sheets can be associated with other components, such as controls, filters, and so on.

", + "refs": { + "SheetList$member": null + } + }, "SheetControlsOption": { "base": "

Sheet controls option.

", "refs": { "DashboardPublishOptions$SheetControlsOption": "

Sheet controls option.

" } }, + "SheetList": { + "base": null, + "refs": { + "Analysis$Sheets": "

A list of the associated sheets with the unique identifier and name of each sheet.

", + "DashboardVersion$Sheets": "

A list of the associated sheets with the unique identifier and name of each sheet.

", + "TemplateVersion$Sheets": "

A list of the associated sheets with the unique identifier and name of each sheet.

" + } + }, "SheetStyle": { "base": "

The theme display options for sheets.

", "refs": { diff --git a/models/apis/translate/2017-07-01/api-2.json b/models/apis/translate/2017-07-01/api-2.json index ba57a1863dd..e3c55926e89 100644 --- a/models/apis/translate/2017-07-01/api-2.json +++ b/models/apis/translate/2017-07-01/api-2.json @@ -23,6 +23,7 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyRequestsException"}, + {"shape":"InvalidParameterValueException"}, {"shape":"InternalServerException"} ] }, @@ -515,7 +516,8 @@ }, "TerminologyArn":{ "type":"string", - "pattern":"^arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:translate:[a-zA-Z0-9-]+:[0-9]{12}:terminology/.+?/.+?$" + "max":512, + "min":1 }, "TerminologyData":{ "type":"structure", diff --git a/models/apis/translate/2017-07-01/docs-2.json b/models/apis/translate/2017-07-01/docs-2.json index 2359c36b068..efbb6d69542 100644 --- a/models/apis/translate/2017-07-01/docs-2.json +++ b/models/apis/translate/2017-07-01/docs-2.json @@ -34,13 +34,13 @@ "ClientTokenString": { "base": null, "refs": { - "StartTextTranslationJobRequest$ClientToken": "

The client token of the EC2 instance calling the request. This token is auto-generated when using the Amazon Translate SDK. Otherwise, use the DescribeInstances EC2 operation to retreive an instance's client token. For more information, see Client Tokens in the EC2 User Guide.

" + "StartTextTranslationJobRequest$ClientToken": "

A unique identifier for the request. This token is auto-generated when using the Amazon Translate SDK.

" } }, "ContentType": { "base": null, "refs": { - "InputDataConfig$ContentType": "

The multipurpose internet mail extension (MIME) type of the input files. Valid values are text/plain for plaintext files and text/html for HTML files.

" + "InputDataConfig$ContentType": "

Describes the format of the data that you submit to Amazon Translate as input. You can specify one of the following multipurpose internet mail extension (MIME) types:

If you structure your input data as HTML, ensure that you set this parameter to text/html. By doing so, you cut costs by limiting the translation to the contents of the html element in each file. Otherwise, if you set this parameter to text/plain, your costs will cover the translation of every character.

" } }, "DeleteTerminologyRequest": { @@ -180,7 +180,7 @@ "JobStatus": { "base": null, "refs": { - "StartTextTranslationJobResponse$JobStatus": "

The status of the job. Possible values include:

", + "StartTextTranslationJobResponse$JobStatus": "

The status of the job. Possible values include:

", "StopTextTranslationJobResponse$JobStatus": "

The status of the designated job. Upon successful completion, the job's status will be STOPPED.

", "TextTranslationJobFilter$JobStatus": "

Filters the list of jobs based by job status.

", "TextTranslationJobProperties$JobStatus": "

The status of the translation job.

" diff --git a/service/backup/api.go b/service/backup/api.go index 24adf77fd5d..299d291507b 100644 --- a/service/backup/api.go +++ b/service/backup/api.go @@ -57,8 +57,9 @@ func (c *Backup) CreateBackupPlanRequest(input *CreateBackupPlanInput) (req *req // CreateBackupPlan API operation for AWS Backup. // -// Backup plans are documents that contain information that AWS Backup uses -// to schedule tasks that create recovery points of resources. +// Creates a backup plan using a backup plan name and backup rules. A backup +// plan is a document that contains information that AWS Backup uses to schedule +// tasks that create recovery points for resources. // // If you call CreateBackupPlan with a plan that already exists, an AlreadyExistsException // is returned. @@ -168,11 +169,11 @@ func (c *Backup) CreateBackupSelectionRequest(input *CreateBackupSelectionInput) // // Using these patterns would back up all Amazon Elastic Block Store (Amazon // EBS) volumes that are tagged as "department=finance", "importance=critical", -// in addition to an EBS volume with the specified volume Id. +// in addition to an EBS volume with the specified volume ID. // // Resources and conditions are additive in that all resources that match the // pattern are selected. This shouldn't be confused with a logical AND, where -// all conditions must match. The matching patterns are logically 'put together +// all conditions must match. The matching patterns are logically put together // using the OR operator. In other words, all patterns that match are selected // for backup. // @@ -921,7 +922,7 @@ func (c *Backup) DescribeBackupJobRequest(input *DescribeBackupJobInput) (req *r // DescribeBackupJob API operation for AWS Backup. // -// Returns metadata associated with creating a backup of a resource. +// Returns backup job details for the specified BackupJobId. // // 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 @@ -1374,9 +1375,9 @@ func (c *Backup) DescribeRegionSettingsRequest(input *DescribeRegionSettingsInpu // DescribeRegionSettings API operation for AWS Backup. // // Returns the current service opt-in settings for the Region. If the service -// has a value set to true, AWS Backup attempts to protect that service's resources +// has a value set to true, AWS Backup tries to protect that service's resources // in this Region, when included in an on-demand backup or scheduled backup -// plan. If the value is set to false for a service, AWS Backup does not attempt +// plan. If the value is set to false for a service, AWS Backup does not try // to protect that service's resources in this Region. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1639,7 +1640,8 @@ func (c *Backup) GetBackupPlanRequest(input *GetBackupPlanInput) (req *request.R // GetBackupPlan API operation for AWS Backup. // -// Returns the body of a backup plan in JSON format, in addition to plan metadata. +// Returns BackupPlan details for the specified BackupPlanId. Returns the body +// of a backup plan in JSON format, in addition to plan metadata. // // 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 @@ -2354,7 +2356,7 @@ func (c *Backup) ListBackupJobsRequest(input *ListBackupJobsInput) (req *request // ListBackupJobs API operation for AWS Backup. // -// Returns metadata about your backup jobs. +// Returns a list of existing backup jobs for an authenticated 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 @@ -2792,9 +2794,11 @@ func (c *Backup) ListBackupPlansRequest(input *ListBackupPlansInput) (req *reque // ListBackupPlans API operation for AWS Backup. // -// Returns metadata of your saved backup plans, including Amazon Resource Names -// (ARNs), plan IDs, creation and deletion dates, version IDs, plan names, and -// creator request IDs. +// Returns a list of existing backup plans for an authenticated account. The +// list is populated only if the advanced option is set for the backup plan. +// The list contains information such as Amazon Resource Names (ARNs), plan +// IDs, creation and deletion dates, version IDs, plan names, and creator request +// IDs. // // 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 @@ -4291,7 +4295,7 @@ func (c *Backup) StartBackupJobRequest(input *StartBackupJobInput) (req *request // StartBackupJob API operation for AWS Backup. // -// Starts a job to create a one-time backup of the specified resource. +// Starts an on-demand backup job for the specified resource. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4850,9 +4854,8 @@ func (c *Backup) UpdateBackupPlanRequest(input *UpdateBackupPlanInput) (req *req // UpdateBackupPlan API operation for AWS Backup. // -// Replaces the body of a saved backup plan identified by its backupPlanId with -// the input document in JSON format. The new version is uniquely identified -// by a VersionId. +// Updates an existing backup plan identified by its backupPlanId with the input +// document in JSON format. The new version is uniquely identified by a VersionId. // // 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 @@ -5042,9 +5045,9 @@ func (c *Backup) UpdateRegionSettingsRequest(input *UpdateRegionSettingsInput) ( // UpdateRegionSettings API operation for AWS Backup. // // Updates the current service opt-in settings for the Region. If the service -// has a value set to true, AWS Backup attempts to protect that service's resources +// has a value set to true, AWS Backup tries to protect that service's resources // in this Region, when included in an on-demand backup or scheduled backup -// plan. If the value is set to false for a service, AWS Backup does not attempt +// plan. If the value is set to false for a service, AWS Backup does not try // to protect that service's resources in this Region. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -5087,6 +5090,52 @@ func (c *Backup) UpdateRegionSettingsWithContext(ctx aws.Context, input *UpdateR return out, req.Send() } +// A list of backup options for each resource type. +type AdvancedBackupSetting struct { + _ struct{} `type:"structure"` + + // Specifies the backup option for a selected resource. This option is only + // available for Windows VSS backup jobs. + // + // Valid value: "WindowsVSS”:“enabled". If enabled, creates a VSS Windows + // backup; otherwise, creates a regular backup. + // + // If you specify an invalid option, you get an InvalidParameterValueException + // exception. + // + // For more information about Windows VSS backups, see Creating a VSS-Enabled + // Windows Backup (https://docs.aws.amazon.com/aws-backup/latest/devguide/windows-backups.html). + BackupOptions map[string]*string `type:"map"` + + // The type of AWS resource to be backed up. For VSS Windows backups, the only + // supported resource type is Amazon EC2. + // + // Valid values: EC2. + ResourceType *string `type:"string"` +} + +// String returns the string representation +func (s AdvancedBackupSetting) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AdvancedBackupSetting) GoString() string { + return s.String() +} + +// SetBackupOptions sets the BackupOptions field's value. +func (s *AdvancedBackupSetting) SetBackupOptions(v map[string]*string) *AdvancedBackupSetting { + s.BackupOptions = v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *AdvancedBackupSetting) SetResourceType(v string) *AdvancedBackupSetting { + s.ResourceType = &v + return s +} + // The required resource already exists. type AlreadyExistsException struct { _ struct{} `type:"structure"` @@ -5505,7 +5554,7 @@ type CreateBackupPlanInput struct { BackupPlanTags map[string]*string `type:"map" sensitive:"true"` // Identifies the request and allows failed requests to be retried without the - // risk of executing the operation twice. If the request includes a CreatorRequestId + // risk of running the operation twice. If the request includes a CreatorRequestId // that matches an existing backup plan, that plan is returned. This parameter // is optional. CreatorRequestId *string `type:"string"` @@ -5560,6 +5609,10 @@ func (s *CreateBackupPlanInput) SetCreatorRequestId(v string) *CreateBackupPlanI type CreateBackupPlanOutput struct { _ struct{} `type:"structure"` + // A list of BackupOptions settings for a resource type. This option is only + // available for Windows VSS backup jobs. + AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"` + // An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for // example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. BackupPlanArn *string `type:"string"` @@ -5588,6 +5641,12 @@ func (s CreateBackupPlanOutput) GoString() string { return s.String() } +// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value. +func (s *CreateBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *CreateBackupPlanOutput { + s.AdvancedBackupSettings = v + return s +} + // SetBackupPlanArn sets the BackupPlanArn field's value. func (s *CreateBackupPlanOutput) SetBackupPlanArn(v string) *CreateBackupPlanOutput { s.BackupPlanArn = &v @@ -5628,7 +5687,7 @@ type CreateBackupSelectionInput struct { BackupSelection *Selection `type:"structure" required:"true"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` } @@ -5745,7 +5804,7 @@ type CreateBackupVaultInput struct { BackupVaultTags map[string]*string `type:"map" sensitive:"true"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // The server-side encryption key that is used to protect your backups; for @@ -5909,7 +5968,7 @@ type DeleteBackupPlanOutput struct { DeletionDate *time.Time `type:"timestamp"` // Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most - // 1,024 bytes long. Version Ids cannot be edited. + // 1,024 bytes long. Version IDs cannot be edited. VersionId *string `type:"string"` } @@ -6383,9 +6442,18 @@ type DescribeBackupJobOutput struct { // Uniquely identifies a request to AWS Backup to back up a resource. BackupJobId *string `type:"string"` + // Represents the options specified as part of backup plan or on-demand backup + // job. + BackupOptions map[string]*string `type:"map"` + // The size, in bytes, of a backup. BackupSizeInBytes *int64 `type:"long"` + // Represents the actual backup type selected for a backup job. For example, + // if a successful WindowsVSS backup was taken, BackupType returns “WindowsVSS”. + // If BackupType is empty, then it is a regular backup. + BackupType *string `type:"string"` + // An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for // example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. BackupVaultArn *string `type:"string"` @@ -6481,12 +6549,24 @@ func (s *DescribeBackupJobOutput) SetBackupJobId(v string) *DescribeBackupJobOut return s } +// SetBackupOptions sets the BackupOptions field's value. +func (s *DescribeBackupJobOutput) SetBackupOptions(v map[string]*string) *DescribeBackupJobOutput { + s.BackupOptions = v + return s +} + // SetBackupSizeInBytes sets the BackupSizeInBytes field's value. func (s *DescribeBackupJobOutput) SetBackupSizeInBytes(v int64) *DescribeBackupJobOutput { s.BackupSizeInBytes = &v return s } +// SetBackupType sets the BackupType field's value. +func (s *DescribeBackupJobOutput) SetBackupType(v string) *DescribeBackupJobOutput { + s.BackupType = &v + return s +} + // SetBackupVaultArn sets the BackupVaultArn field's value. func (s *DescribeBackupJobOutput) SetBackupVaultArn(v string) *DescribeBackupJobOutput { s.BackupVaultArn = &v @@ -6641,7 +6721,7 @@ type DescribeBackupVaultOutput struct { CreationDate *time.Time `type:"timestamp"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // The server-side encryption key that is used to protect your backups; for @@ -7129,7 +7209,7 @@ func (s DescribeRegionSettingsInput) GoString() string { type DescribeRegionSettingsOutput struct { _ struct{} `type:"structure"` - // Returns a list of all services along with the opt-in preferences in the region. + // Returns a list of all services along with the opt-in preferences in the Region. ResourceTypeOptInPreference map[string]*bool `type:"map"` } @@ -7581,6 +7661,10 @@ func (s *GetBackupPlanInput) SetVersionId(v string) *GetBackupPlanInput { type GetBackupPlanOutput struct { _ struct{} `type:"structure"` + // Contains a list of BackupOptions for each resource type. The list is populated + // only if the advanced option is set for the backup plan. + AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"` + // Specifies the body of a backup plan. Includes a BackupPlanName and one or // more sets of Rules. BackupPlan *Plan `type:"structure"` @@ -7599,7 +7683,7 @@ type GetBackupPlanOutput struct { CreationDate *time.Time `type:"timestamp"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // The date and time that a backup plan is deleted, in Unix format and Coordinated @@ -7608,10 +7692,10 @@ type GetBackupPlanOutput struct { // 12:11:30.087 AM. DeletionDate *time.Time `type:"timestamp"` - // The last time a job to back up resources was executed with this backup plan. - // A date and time, in Unix format and Coordinated Universal Time (UTC). The - // value of LastExecutionDate is accurate to milliseconds. For example, the - // value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + // The last time a job to back up resources was run with this backup plan. A + // date and time, in Unix format and Coordinated Universal Time (UTC). The value + // of LastExecutionDate is accurate to milliseconds. For example, the value + // 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. LastExecutionDate *time.Time `type:"timestamp"` // Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most @@ -7629,6 +7713,12 @@ func (s GetBackupPlanOutput) GoString() string { return s.String() } +// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value. +func (s *GetBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *GetBackupPlanOutput { + s.AdvancedBackupSettings = v + return s +} + // SetBackupPlan sets the BackupPlan field's value. func (s *GetBackupPlanOutput) SetBackupPlan(v *Plan) *GetBackupPlanOutput { s.BackupPlan = v @@ -7753,7 +7843,7 @@ type GetBackupSelectionOutput struct { CreationDate *time.Time `type:"timestamp"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // Uniquely identifies the body of a request to assign a set of resources to @@ -8061,7 +8151,7 @@ type GetRecoveryPointRestoreMetadataOutput struct { // An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. RecoveryPointArn *string `type:"string"` - // The set of metadata key-value pairs that describes the original configuration + // The set of metadata key-value pairs that describe the original configuration // of the backed-up resource. These values vary depending on the service that // is being restored. RestoreMetadata map[string]*string `type:"map" sensitive:"true"` @@ -8280,9 +8370,20 @@ type Job struct { // Uniquely identifies a request to AWS Backup to back up a resource. BackupJobId *string `type:"string"` + // Specifies the backup option for a selected resource. This option is only + // available for Windows VSS backup jobs. + // + // Valid value: "WindowsVSS”:“enabled". If enabled, creates a VSS Windows + // backup; otherwise, creates a regular backup. If you specify an invalid option, + // you get an InvalidParameterValueException exception. + BackupOptions map[string]*string `type:"map"` + // The size, in bytes, of a backup. BackupSizeInBytes *int64 `type:"long"` + // Represents the type of backup for a backup job. + BackupType *string `type:"string"` + // An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for // example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. BackupVaultArn *string `type:"string"` @@ -8337,7 +8438,8 @@ type Job struct { // The type of AWS resource to be backed up; for example, an Amazon Elastic // Block Store (Amazon EBS) volume or an Amazon Relational Database Service - // (Amazon RDS) database. + // (Amazon RDS) database. For VSS Windows backups, the only supported resource + // type is Amazon EC2. ResourceType *string `type:"string"` // Specifies the time in Unix format and Coordinated Universal Time (UTC) when @@ -8378,12 +8480,24 @@ func (s *Job) SetBackupJobId(v string) *Job { return s } +// SetBackupOptions sets the BackupOptions field's value. +func (s *Job) SetBackupOptions(v map[string]*string) *Job { + s.BackupOptions = v + return s +} + // SetBackupSizeInBytes sets the BackupSizeInBytes field's value. func (s *Job) SetBackupSizeInBytes(v int64) *Job { s.BackupSizeInBytes = &v return s } +// SetBackupType sets the BackupType field's value. +func (s *Job) SetBackupType(v string) *Job { + s.BackupType = &v + return s +} + // SetBackupVaultArn sets the BackupVaultArn field's value. func (s *Job) SetBackupVaultArn(v string) *Job { s.BackupVaultArn = &v @@ -9999,6 +10113,9 @@ func (s *MissingParameterValueException) RequestID() string { type Plan struct { _ struct{} `type:"structure"` + // Contains a list of BackupOptions for each resource type. + AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"` + // The display name of a backup plan. // // BackupPlanName is a required field @@ -10021,6 +10138,12 @@ func (s Plan) GoString() string { return s.String() } +// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value. +func (s *Plan) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *Plan { + s.AdvancedBackupSettings = v + return s +} + // SetBackupPlanName sets the BackupPlanName field's value. func (s *Plan) SetBackupPlanName(v string) *Plan { s.BackupPlanName = &v @@ -10040,6 +10163,10 @@ func (s *Plan) SetRules(v []*Rule) *Plan { type PlanInput struct { _ struct{} `type:"structure"` + // Specifies a list of BackupOptions for each resource type. These settings + // are only available for Windows VSS backup jobs. + AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"` + // The optional display name of a backup plan. // // BackupPlanName is a required field @@ -10088,6 +10215,12 @@ func (s *PlanInput) Validate() error { return nil } +// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value. +func (s *PlanInput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *PlanInput { + s.AdvancedBackupSettings = v + return s +} + // SetBackupPlanName sets the BackupPlanName field's value. func (s *PlanInput) SetBackupPlanName(v string) *PlanInput { s.BackupPlanName = &v @@ -10137,6 +10270,9 @@ func (s *PlanTemplatesListMember) SetBackupPlanTemplateName(v string) *PlanTempl type PlansListMember struct { _ struct{} `type:"structure"` + // Contains a list of BackupOptions for a resource type. + AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"` + // An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for // example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. BackupPlanArn *string `type:"string"` @@ -10154,7 +10290,7 @@ type PlansListMember struct { CreationDate *time.Time `type:"timestamp"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // The date and time a backup plan is deleted, in Unix format and Coordinated @@ -10163,10 +10299,10 @@ type PlansListMember struct { // 12:11:30.087 AM. DeletionDate *time.Time `type:"timestamp"` - // The last time a job to back up resources was executed with this rule. A date - // and time, in Unix format and Coordinated Universal Time (UTC). The value - // of LastExecutionDate is accurate to milliseconds. For example, the value - // 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + // The last time a job to back up resources was run with this rule. A date and + // time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate + // is accurate to milliseconds. For example, the value 1516925490.087 represents + // Friday, January 26, 2018 12:11:30.087 AM. LastExecutionDate *time.Time `type:"timestamp"` // Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most @@ -10184,6 +10320,12 @@ func (s PlansListMember) GoString() string { return s.String() } +// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value. +func (s *PlansListMember) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *PlansListMember { + s.AdvancedBackupSettings = v + return s +} + // SetBackupPlanArn sets the BackupPlanArn field's value. func (s *PlansListMember) SetBackupPlanArn(v string) *PlansListMember { s.BackupPlanArn = &v @@ -10248,6 +10390,7 @@ type ProtectedResource struct { // The type of AWS resource; for example, an Amazon Elastic Block Store (Amazon // EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. + // For VSS Windows backups, the only supported resource type is Amazon EC2. ResourceType *string `type:"string"` } @@ -10511,7 +10654,8 @@ type RecoveryPointByBackupVault struct { // The type of AWS resource saved as a recovery point; for example, an Amazon // Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database - // Service (Amazon RDS) database. + // Service (Amazon RDS) database. For VSS Windows backups, the only supported + // resource type is Amazon EC2. ResourceType *string `type:"string"` // A status code specifying the state of the recovery point. @@ -10861,7 +11005,8 @@ type RestoreJobsListMember struct { // The resource type of the listed restore jobs; for example, an Amazon Elastic // Block Store (Amazon EBS) volume or an Amazon Relational Database Service - // (Amazon RDS) database. + // (Amazon RDS) database. For VSS Windows backups, the only supported resource + // type is Amazon EC2. ResourceType *string `type:"string"` // Uniquely identifies the job that restores a recovery point. @@ -11309,7 +11454,7 @@ type SelectionsListMember struct { CreationDate *time.Time `type:"timestamp"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // Specifies the IAM role Amazon Resource Name (ARN) to create the target recovery @@ -11434,6 +11579,13 @@ func (s *ServiceUnavailableException) RequestID() string { type StartBackupJobInput struct { _ struct{} `type:"structure"` + // Specifies the backup option for a selected resource. This option is only + // available for Windows VSS backup jobs. + // + // Valid value: "WindowsVSS”:“enabled". If enabled, creates a VSS Windows + // backup; otherwise, creates a regular backup. + BackupOptions map[string]*string `type:"map"` + // The name of a logical container where backups are stored. Backup vaults are // identified by names that are unique to the account used to create them and // the AWS Region where they are created. They consist of lowercase letters, @@ -11511,6 +11663,12 @@ func (s *StartBackupJobInput) Validate() error { return nil } +// SetBackupOptions sets the BackupOptions field's value. +func (s *StartBackupJobInput) SetBackupOptions(v map[string]*string) *StartBackupJobInput { + s.BackupOptions = v + return s +} + // SetBackupVaultName sets the BackupVaultName field's value. func (s *StartBackupJobInput) SetBackupVaultName(v string) *StartBackupJobInput { s.BackupVaultName = &v @@ -11775,8 +11933,8 @@ type StartRestoreJobInput struct { // You need to specify specific metadata to restore an Amazon Elastic File System // (Amazon EFS) instance: // - // * file-system-id: ID of the Amazon EFS file system that is backed up by - // AWS Backup. Returned in GetRecoveryPointRestoreMetadata. + // * file-system-id: The ID of the Amazon EFS file system that is backed + // up by AWS Backup. Returned in GetRecoveryPointRestoreMetadata. // // * Encrypted: A Boolean value that, if true, specifies that the file system // is encrypted. If KmsKeyId is specified, Encrypted must be set to true. @@ -12158,6 +12316,9 @@ func (s *UpdateBackupPlanInput) SetBackupPlanId(v string) *UpdateBackupPlanInput type UpdateBackupPlanOutput struct { _ struct{} `type:"structure"` + // Contains a list of BackupOptions for each resource type. + AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"` + // An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for // example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. BackupPlanArn *string `type:"string"` @@ -12186,6 +12347,12 @@ func (s UpdateBackupPlanOutput) GoString() string { return s.String() } +// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value. +func (s *UpdateBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *UpdateBackupPlanOutput { + s.AdvancedBackupSettings = v + return s +} + // SetBackupPlanArn sets the BackupPlanArn field's value. func (s *UpdateBackupPlanOutput) SetBackupPlanArn(v string) *UpdateBackupPlanOutput { s.BackupPlanArn = &v @@ -12352,7 +12519,7 @@ func (s *UpdateRecoveryPointLifecycleOutput) SetRecoveryPointArn(v string) *Upda type UpdateRegionSettingsInput struct { _ struct{} `type:"structure"` - // Updates the list of services along with the opt-in preferences for the region. + // Updates the list of services along with the opt-in preferences for the Region. ResourceTypeOptInPreference map[string]*bool `type:"map"` } @@ -12407,7 +12574,7 @@ type VaultListMember struct { CreationDate *time.Time `type:"timestamp"` // A unique string that identifies the request and allows failed requests to - // be retried without the risk of executing the operation twice. + // be retried without the risk of running the operation twice. CreatorRequestId *string `type:"string"` // The server-side encryption key that is used to protect your backups; for diff --git a/service/costexplorer/api.go b/service/costexplorer/api.go index 444f3b0010e..7ba4f1f59d7 100644 --- a/service/costexplorer/api.go +++ b/service/costexplorer/api.go @@ -9,1428 +9,1311 @@ import ( "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" ) -const opCreateCostCategoryDefinition = "CreateCostCategoryDefinition" +const opCreateAnomalyMonitor = "CreateAnomalyMonitor" -// CreateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the -// client's request for the CreateCostCategoryDefinition operation. The "output" return +// CreateAnomalyMonitorRequest generates a "aws/request.Request" representing the +// client's request for the CreateAnomalyMonitor 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 CreateCostCategoryDefinition for more information on using the CreateCostCategoryDefinition +// See CreateAnomalyMonitor for more information on using the CreateAnomalyMonitor // 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 CreateCostCategoryDefinitionRequest method. -// req, resp := client.CreateCostCategoryDefinitionRequest(params) +// // Example sending a request using the CreateAnomalyMonitorRequest method. +// req, resp := client.CreateAnomalyMonitorRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition -func (c *CostExplorer) CreateCostCategoryDefinitionRequest(input *CreateCostCategoryDefinitionInput) (req *request.Request, output *CreateCostCategoryDefinitionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor +func (c *CostExplorer) CreateAnomalyMonitorRequest(input *CreateAnomalyMonitorInput) (req *request.Request, output *CreateAnomalyMonitorOutput) { op := &request.Operation{ - Name: opCreateCostCategoryDefinition, + Name: opCreateAnomalyMonitor, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &CreateCostCategoryDefinitionInput{} + input = &CreateAnomalyMonitorInput{} } - output = &CreateCostCategoryDefinitionOutput{} + output = &CreateAnomalyMonitorOutput{} req = c.newRequest(op, input, output) return } -// CreateCostCategoryDefinition API operation for AWS Cost Explorer Service. +// CreateAnomalyMonitor API operation for AWS Cost Explorer Service. // -// Creates a new Cost Category with the requested name and rules. +// Creates a new cost anomaly detection monitor with the requested type and +// monitor specification. // // 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 Cost Explorer Service's -// API operation CreateCostCategoryDefinition for usage and error information. +// API operation CreateAnomalyMonitor for usage and error information. // // Returned Error Types: -// * ServiceQuotaExceededException -// You've reached the limit on the number of resources you can create, or exceeded -// the size of an individual resources. -// // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition -func (c *CostExplorer) CreateCostCategoryDefinition(input *CreateCostCategoryDefinitionInput) (*CreateCostCategoryDefinitionOutput, error) { - req, out := c.CreateCostCategoryDefinitionRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor +func (c *CostExplorer) CreateAnomalyMonitor(input *CreateAnomalyMonitorInput) (*CreateAnomalyMonitorOutput, error) { + req, out := c.CreateAnomalyMonitorRequest(input) return out, req.Send() } -// CreateCostCategoryDefinitionWithContext is the same as CreateCostCategoryDefinition with the addition of +// CreateAnomalyMonitorWithContext is the same as CreateAnomalyMonitor with the addition of // the ability to pass a context and additional request options. // -// See CreateCostCategoryDefinition for details on how to use this API operation. +// See CreateAnomalyMonitor 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 *CostExplorer) CreateCostCategoryDefinitionWithContext(ctx aws.Context, input *CreateCostCategoryDefinitionInput, opts ...request.Option) (*CreateCostCategoryDefinitionOutput, error) { - req, out := c.CreateCostCategoryDefinitionRequest(input) +func (c *CostExplorer) CreateAnomalyMonitorWithContext(ctx aws.Context, input *CreateAnomalyMonitorInput, opts ...request.Option) (*CreateAnomalyMonitorOutput, error) { + req, out := c.CreateAnomalyMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opDeleteCostCategoryDefinition = "DeleteCostCategoryDefinition" +const opCreateAnomalySubscription = "CreateAnomalySubscription" -// DeleteCostCategoryDefinitionRequest generates a "aws/request.Request" representing the -// client's request for the DeleteCostCategoryDefinition operation. The "output" return +// CreateAnomalySubscriptionRequest generates a "aws/request.Request" representing the +// client's request for the CreateAnomalySubscription 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 DeleteCostCategoryDefinition for more information on using the DeleteCostCategoryDefinition +// See CreateAnomalySubscription for more information on using the CreateAnomalySubscription // 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 DeleteCostCategoryDefinitionRequest method. -// req, resp := client.DeleteCostCategoryDefinitionRequest(params) +// // Example sending a request using the CreateAnomalySubscriptionRequest method. +// req, resp := client.CreateAnomalySubscriptionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition -func (c *CostExplorer) DeleteCostCategoryDefinitionRequest(input *DeleteCostCategoryDefinitionInput) (req *request.Request, output *DeleteCostCategoryDefinitionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription +func (c *CostExplorer) CreateAnomalySubscriptionRequest(input *CreateAnomalySubscriptionInput) (req *request.Request, output *CreateAnomalySubscriptionOutput) { op := &request.Operation{ - Name: opDeleteCostCategoryDefinition, + Name: opCreateAnomalySubscription, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &DeleteCostCategoryDefinitionInput{} + input = &CreateAnomalySubscriptionInput{} } - output = &DeleteCostCategoryDefinitionOutput{} + output = &CreateAnomalySubscriptionOutput{} req = c.newRequest(op, input, output) return } -// DeleteCostCategoryDefinition API operation for AWS Cost Explorer Service. +// CreateAnomalySubscription API operation for AWS Cost Explorer Service. // -// Deletes a Cost Category. Expenses from this month going forward will no longer -// be categorized with this Cost Category. +// Adds a subscription to a cost anomaly detection monitor. You can use each +// subscription to define subscribers with email or SNS notifications. Email +// subscribers can set a dollar threshold and a time frequency for receiving +// notifications. // // 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 Cost Explorer Service's -// API operation DeleteCostCategoryDefinition for usage and error information. +// API operation CreateAnomalySubscription for usage and error information. // // Returned Error Types: -// * ResourceNotFoundException -// The specified ARN in the request doesn't exist. +// * UnknownMonitorException +// The cost anomaly monitor does not exist for the account. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition -func (c *CostExplorer) DeleteCostCategoryDefinition(input *DeleteCostCategoryDefinitionInput) (*DeleteCostCategoryDefinitionOutput, error) { - req, out := c.DeleteCostCategoryDefinitionRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription +func (c *CostExplorer) CreateAnomalySubscription(input *CreateAnomalySubscriptionInput) (*CreateAnomalySubscriptionOutput, error) { + req, out := c.CreateAnomalySubscriptionRequest(input) return out, req.Send() } -// DeleteCostCategoryDefinitionWithContext is the same as DeleteCostCategoryDefinition with the addition of +// CreateAnomalySubscriptionWithContext is the same as CreateAnomalySubscription with the addition of // the ability to pass a context and additional request options. // -// See DeleteCostCategoryDefinition for details on how to use this API operation. +// See CreateAnomalySubscription 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 *CostExplorer) DeleteCostCategoryDefinitionWithContext(ctx aws.Context, input *DeleteCostCategoryDefinitionInput, opts ...request.Option) (*DeleteCostCategoryDefinitionOutput, error) { - req, out := c.DeleteCostCategoryDefinitionRequest(input) +func (c *CostExplorer) CreateAnomalySubscriptionWithContext(ctx aws.Context, input *CreateAnomalySubscriptionInput, opts ...request.Option) (*CreateAnomalySubscriptionOutput, error) { + req, out := c.CreateAnomalySubscriptionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opDescribeCostCategoryDefinition = "DescribeCostCategoryDefinition" +const opCreateCostCategoryDefinition = "CreateCostCategoryDefinition" -// DescribeCostCategoryDefinitionRequest generates a "aws/request.Request" representing the -// client's request for the DescribeCostCategoryDefinition operation. The "output" return +// CreateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the +// client's request for the CreateCostCategoryDefinition 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 DescribeCostCategoryDefinition for more information on using the DescribeCostCategoryDefinition +// See CreateCostCategoryDefinition for more information on using the CreateCostCategoryDefinition // 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 DescribeCostCategoryDefinitionRequest method. -// req, resp := client.DescribeCostCategoryDefinitionRequest(params) +// // Example sending a request using the CreateCostCategoryDefinitionRequest method. +// req, resp := client.CreateCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition -func (c *CostExplorer) DescribeCostCategoryDefinitionRequest(input *DescribeCostCategoryDefinitionInput) (req *request.Request, output *DescribeCostCategoryDefinitionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition +func (c *CostExplorer) CreateCostCategoryDefinitionRequest(input *CreateCostCategoryDefinitionInput) (req *request.Request, output *CreateCostCategoryDefinitionOutput) { op := &request.Operation{ - Name: opDescribeCostCategoryDefinition, + Name: opCreateCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &DescribeCostCategoryDefinitionInput{} + input = &CreateCostCategoryDefinitionInput{} } - output = &DescribeCostCategoryDefinitionOutput{} + output = &CreateCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } -// DescribeCostCategoryDefinition API operation for AWS Cost Explorer Service. -// -// Returns the name, ARN, rules, definition, and effective dates of a Cost Category -// that's defined in the account. +// CreateCostCategoryDefinition API operation for AWS Cost Explorer Service. // -// You have the option to use EffectiveOn to return a Cost Category that is -// active on a specific date. If there is no EffectiveOn specified, you’ll -// see a Cost Category that is effective on the current date. If Cost Category -// is still effective, EffectiveEnd is omitted in the response. +// Creates a new Cost Category with the requested name and rules. // // 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 Cost Explorer Service's -// API operation DescribeCostCategoryDefinition for usage and error information. +// API operation CreateCostCategoryDefinition for usage and error information. // // Returned Error Types: -// * ResourceNotFoundException -// The specified ARN in the request doesn't exist. +// * ServiceQuotaExceededException +// You've reached the limit on the number of resources you can create, or exceeded +// the size of an individual resource. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition -func (c *CostExplorer) DescribeCostCategoryDefinition(input *DescribeCostCategoryDefinitionInput) (*DescribeCostCategoryDefinitionOutput, error) { - req, out := c.DescribeCostCategoryDefinitionRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition +func (c *CostExplorer) CreateCostCategoryDefinition(input *CreateCostCategoryDefinitionInput) (*CreateCostCategoryDefinitionOutput, error) { + req, out := c.CreateCostCategoryDefinitionRequest(input) return out, req.Send() } -// DescribeCostCategoryDefinitionWithContext is the same as DescribeCostCategoryDefinition with the addition of +// CreateCostCategoryDefinitionWithContext is the same as CreateCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // -// See DescribeCostCategoryDefinition for details on how to use this API operation. +// See CreateCostCategoryDefinition 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 *CostExplorer) DescribeCostCategoryDefinitionWithContext(ctx aws.Context, input *DescribeCostCategoryDefinitionInput, opts ...request.Option) (*DescribeCostCategoryDefinitionOutput, error) { - req, out := c.DescribeCostCategoryDefinitionRequest(input) +func (c *CostExplorer) CreateCostCategoryDefinitionWithContext(ctx aws.Context, input *CreateCostCategoryDefinitionInput, opts ...request.Option) (*CreateCostCategoryDefinitionOutput, error) { + req, out := c.CreateCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetCostAndUsage = "GetCostAndUsage" +const opDeleteAnomalyMonitor = "DeleteAnomalyMonitor" -// GetCostAndUsageRequest generates a "aws/request.Request" representing the -// client's request for the GetCostAndUsage operation. The "output" return +// DeleteAnomalyMonitorRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAnomalyMonitor 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 GetCostAndUsage for more information on using the GetCostAndUsage +// See DeleteAnomalyMonitor for more information on using the DeleteAnomalyMonitor // 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 GetCostAndUsageRequest method. -// req, resp := client.GetCostAndUsageRequest(params) +// // Example sending a request using the DeleteAnomalyMonitorRequest method. +// req, resp := client.DeleteAnomalyMonitorRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage -func (c *CostExplorer) GetCostAndUsageRequest(input *GetCostAndUsageInput) (req *request.Request, output *GetCostAndUsageOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor +func (c *CostExplorer) DeleteAnomalyMonitorRequest(input *DeleteAnomalyMonitorInput) (req *request.Request, output *DeleteAnomalyMonitorOutput) { op := &request.Operation{ - Name: opGetCostAndUsage, + Name: opDeleteAnomalyMonitor, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetCostAndUsageInput{} + input = &DeleteAnomalyMonitorInput{} } - output = &GetCostAndUsageOutput{} + output = &DeleteAnomalyMonitorOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// GetCostAndUsage API operation for AWS Cost Explorer Service. +// DeleteAnomalyMonitor API operation for AWS Cost Explorer Service. // -// Retrieves cost and usage metrics for your account. You can specify which -// cost and usage-related metric, such as BlendedCosts or UsageQuantity, that -// you want the request to return. You can also filter and group your data by -// various dimensions, such as SERVICE or AZ, in a specific time range. For -// a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) -// operation. Master accounts in an organization in AWS Organizations have access -// to all member accounts. +// Deletes a cost anomaly monitor. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's -// API operation GetCostAndUsage for usage and error information. +// API operation DeleteAnomalyMonitor for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * BillExpirationException -// The requested report expired. Update the date interval and try again. -// -// * DataUnavailableException -// The requested data is unavailable. -// -// * InvalidNextTokenException -// The pagination token is invalid. Try again without a pagination token. -// -// * RequestChangedException -// Your request parameters changed between pages. Try again with the old parameters -// or without a pagination token. +// * UnknownMonitorException +// The cost anomaly monitor does not exist for the account. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage -func (c *CostExplorer) GetCostAndUsage(input *GetCostAndUsageInput) (*GetCostAndUsageOutput, error) { - req, out := c.GetCostAndUsageRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor +func (c *CostExplorer) DeleteAnomalyMonitor(input *DeleteAnomalyMonitorInput) (*DeleteAnomalyMonitorOutput, error) { + req, out := c.DeleteAnomalyMonitorRequest(input) return out, req.Send() } -// GetCostAndUsageWithContext is the same as GetCostAndUsage with the addition of +// DeleteAnomalyMonitorWithContext is the same as DeleteAnomalyMonitor with the addition of // the ability to pass a context and additional request options. // -// See GetCostAndUsage for details on how to use this API operation. +// See DeleteAnomalyMonitor 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 *CostExplorer) GetCostAndUsageWithContext(ctx aws.Context, input *GetCostAndUsageInput, opts ...request.Option) (*GetCostAndUsageOutput, error) { - req, out := c.GetCostAndUsageRequest(input) +func (c *CostExplorer) DeleteAnomalyMonitorWithContext(ctx aws.Context, input *DeleteAnomalyMonitorInput, opts ...request.Option) (*DeleteAnomalyMonitorOutput, error) { + req, out := c.DeleteAnomalyMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetCostAndUsageWithResources = "GetCostAndUsageWithResources" +const opDeleteAnomalySubscription = "DeleteAnomalySubscription" -// GetCostAndUsageWithResourcesRequest generates a "aws/request.Request" representing the -// client's request for the GetCostAndUsageWithResources operation. The "output" return +// DeleteAnomalySubscriptionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAnomalySubscription 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 GetCostAndUsageWithResources for more information on using the GetCostAndUsageWithResources +// See DeleteAnomalySubscription for more information on using the DeleteAnomalySubscription // 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 GetCostAndUsageWithResourcesRequest method. -// req, resp := client.GetCostAndUsageWithResourcesRequest(params) +// // Example sending a request using the DeleteAnomalySubscriptionRequest method. +// req, resp := client.DeleteAnomalySubscriptionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources -func (c *CostExplorer) GetCostAndUsageWithResourcesRequest(input *GetCostAndUsageWithResourcesInput) (req *request.Request, output *GetCostAndUsageWithResourcesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription +func (c *CostExplorer) DeleteAnomalySubscriptionRequest(input *DeleteAnomalySubscriptionInput) (req *request.Request, output *DeleteAnomalySubscriptionOutput) { op := &request.Operation{ - Name: opGetCostAndUsageWithResources, + Name: opDeleteAnomalySubscription, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetCostAndUsageWithResourcesInput{} + input = &DeleteAnomalySubscriptionInput{} } - output = &GetCostAndUsageWithResourcesOutput{} + output = &DeleteAnomalySubscriptionOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// GetCostAndUsageWithResources API operation for AWS Cost Explorer Service. -// -// Retrieves cost and usage metrics with resources for your account. You can -// specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, -// that you want the request to return. You can also filter and group your data -// by various dimensions, such as SERVICE or AZ, in a specific time range. For -// a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) -// operation. Master accounts in an organization in AWS Organizations have access -// to all member accounts. This API is currently available for the Amazon Elastic -// Compute Cloud – Compute service only. +// DeleteAnomalySubscription API operation for AWS Cost Explorer Service. // -// This is an opt-in only feature. You can enable this feature from the Cost -// Explorer Settings page. For information on how to access the Settings page, -// see Controlling Access for Cost Explorer (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html) -// in the AWS Billing and Cost Management User Guide. +// Deletes a cost anomaly subscription. // // 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 Cost Explorer Service's -// API operation GetCostAndUsageWithResources for usage and error information. +// API operation DeleteAnomalySubscription for usage and error information. // // Returned Error Types: -// * DataUnavailableException -// The requested data is unavailable. -// // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * BillExpirationException -// The requested report expired. Update the date interval and try again. -// -// * InvalidNextTokenException -// The pagination token is invalid. Try again without a pagination token. -// -// * RequestChangedException -// Your request parameters changed between pages. Try again with the old parameters -// or without a pagination token. +// * UnknownSubscriptionException +// The cost anomaly subscription does not exist for the account. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources -func (c *CostExplorer) GetCostAndUsageWithResources(input *GetCostAndUsageWithResourcesInput) (*GetCostAndUsageWithResourcesOutput, error) { - req, out := c.GetCostAndUsageWithResourcesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription +func (c *CostExplorer) DeleteAnomalySubscription(input *DeleteAnomalySubscriptionInput) (*DeleteAnomalySubscriptionOutput, error) { + req, out := c.DeleteAnomalySubscriptionRequest(input) return out, req.Send() } -// GetCostAndUsageWithResourcesWithContext is the same as GetCostAndUsageWithResources with the addition of +// DeleteAnomalySubscriptionWithContext is the same as DeleteAnomalySubscription with the addition of // the ability to pass a context and additional request options. // -// See GetCostAndUsageWithResources for details on how to use this API operation. +// See DeleteAnomalySubscription 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 *CostExplorer) GetCostAndUsageWithResourcesWithContext(ctx aws.Context, input *GetCostAndUsageWithResourcesInput, opts ...request.Option) (*GetCostAndUsageWithResourcesOutput, error) { - req, out := c.GetCostAndUsageWithResourcesRequest(input) +func (c *CostExplorer) DeleteAnomalySubscriptionWithContext(ctx aws.Context, input *DeleteAnomalySubscriptionInput, opts ...request.Option) (*DeleteAnomalySubscriptionOutput, error) { + req, out := c.DeleteAnomalySubscriptionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetCostForecast = "GetCostForecast" +const opDeleteCostCategoryDefinition = "DeleteCostCategoryDefinition" -// GetCostForecastRequest generates a "aws/request.Request" representing the -// client's request for the GetCostForecast operation. The "output" return +// DeleteCostCategoryDefinitionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteCostCategoryDefinition 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 GetCostForecast for more information on using the GetCostForecast +// See DeleteCostCategoryDefinition for more information on using the DeleteCostCategoryDefinition // 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 GetCostForecastRequest method. -// req, resp := client.GetCostForecastRequest(params) +// // Example sending a request using the DeleteCostCategoryDefinitionRequest method. +// req, resp := client.DeleteCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast -func (c *CostExplorer) GetCostForecastRequest(input *GetCostForecastInput) (req *request.Request, output *GetCostForecastOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition +func (c *CostExplorer) DeleteCostCategoryDefinitionRequest(input *DeleteCostCategoryDefinitionInput) (req *request.Request, output *DeleteCostCategoryDefinitionOutput) { op := &request.Operation{ - Name: opGetCostForecast, + Name: opDeleteCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetCostForecastInput{} + input = &DeleteCostCategoryDefinitionInput{} } - output = &GetCostForecastOutput{} + output = &DeleteCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } -// GetCostForecast API operation for AWS Cost Explorer Service. +// DeleteCostCategoryDefinition API operation for AWS Cost Explorer Service. // -// Retrieves a forecast for how much Amazon Web Services predicts that you will -// spend over the forecast time period that you select, based on your past costs. +// Deletes a Cost Category. Expenses from this month going forward will no longer +// be categorized with this Cost Category. // // 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 Cost Explorer Service's -// API operation GetCostForecast for usage and error information. +// API operation DeleteCostCategoryDefinition for usage and error information. // // Returned Error Types: +// * ResourceNotFoundException +// The specified ARN in the request doesn't exist. +// // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * DataUnavailableException -// The requested data is unavailable. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast -func (c *CostExplorer) GetCostForecast(input *GetCostForecastInput) (*GetCostForecastOutput, error) { - req, out := c.GetCostForecastRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition +func (c *CostExplorer) DeleteCostCategoryDefinition(input *DeleteCostCategoryDefinitionInput) (*DeleteCostCategoryDefinitionOutput, error) { + req, out := c.DeleteCostCategoryDefinitionRequest(input) return out, req.Send() } -// GetCostForecastWithContext is the same as GetCostForecast with the addition of +// DeleteCostCategoryDefinitionWithContext is the same as DeleteCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // -// See GetCostForecast for details on how to use this API operation. +// See DeleteCostCategoryDefinition 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 *CostExplorer) GetCostForecastWithContext(ctx aws.Context, input *GetCostForecastInput, opts ...request.Option) (*GetCostForecastOutput, error) { - req, out := c.GetCostForecastRequest(input) +func (c *CostExplorer) DeleteCostCategoryDefinitionWithContext(ctx aws.Context, input *DeleteCostCategoryDefinitionInput, opts ...request.Option) (*DeleteCostCategoryDefinitionOutput, error) { + req, out := c.DeleteCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetDimensionValues = "GetDimensionValues" +const opDescribeCostCategoryDefinition = "DescribeCostCategoryDefinition" -// GetDimensionValuesRequest generates a "aws/request.Request" representing the -// client's request for the GetDimensionValues operation. The "output" return +// DescribeCostCategoryDefinitionRequest generates a "aws/request.Request" representing the +// client's request for the DescribeCostCategoryDefinition 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 GetDimensionValues for more information on using the GetDimensionValues +// See DescribeCostCategoryDefinition for more information on using the DescribeCostCategoryDefinition // 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 GetDimensionValuesRequest method. -// req, resp := client.GetDimensionValuesRequest(params) +// // Example sending a request using the DescribeCostCategoryDefinitionRequest method. +// req, resp := client.DescribeCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues -func (c *CostExplorer) GetDimensionValuesRequest(input *GetDimensionValuesInput) (req *request.Request, output *GetDimensionValuesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition +func (c *CostExplorer) DescribeCostCategoryDefinitionRequest(input *DescribeCostCategoryDefinitionInput) (req *request.Request, output *DescribeCostCategoryDefinitionOutput) { op := &request.Operation{ - Name: opGetDimensionValues, + Name: opDescribeCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetDimensionValuesInput{} + input = &DescribeCostCategoryDefinitionInput{} } - output = &GetDimensionValuesOutput{} + output = &DescribeCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } -// GetDimensionValues API operation for AWS Cost Explorer Service. +// DescribeCostCategoryDefinition API operation for AWS Cost Explorer Service. // -// Retrieves all available filter values for a specified filter over a period -// of time. You can search the dimension values for an arbitrary string. +// Returns the name, ARN, rules, definition, and effective dates of a Cost Category +// that's defined in the account. +// +// You have the option to use EffectiveOn to return a Cost Category that is +// active on a specific date. If there is no EffectiveOn specified, you’ll +// see a Cost Category that is effective on the current date. If Cost Category +// is still effective, EffectiveEnd is omitted in the response. // // 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 Cost Explorer Service's -// API operation GetDimensionValues for usage and error information. +// API operation DescribeCostCategoryDefinition for usage and error information. // // Returned Error Types: +// * ResourceNotFoundException +// The specified ARN in the request doesn't exist. +// // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * BillExpirationException -// The requested report expired. Update the date interval and try again. -// -// * DataUnavailableException -// The requested data is unavailable. -// -// * InvalidNextTokenException -// The pagination token is invalid. Try again without a pagination token. -// -// * RequestChangedException -// Your request parameters changed between pages. Try again with the old parameters -// or without a pagination token. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues -func (c *CostExplorer) GetDimensionValues(input *GetDimensionValuesInput) (*GetDimensionValuesOutput, error) { - req, out := c.GetDimensionValuesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition +func (c *CostExplorer) DescribeCostCategoryDefinition(input *DescribeCostCategoryDefinitionInput) (*DescribeCostCategoryDefinitionOutput, error) { + req, out := c.DescribeCostCategoryDefinitionRequest(input) return out, req.Send() } -// GetDimensionValuesWithContext is the same as GetDimensionValues with the addition of +// DescribeCostCategoryDefinitionWithContext is the same as DescribeCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // -// See GetDimensionValues for details on how to use this API operation. +// See DescribeCostCategoryDefinition 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 *CostExplorer) GetDimensionValuesWithContext(ctx aws.Context, input *GetDimensionValuesInput, opts ...request.Option) (*GetDimensionValuesOutput, error) { - req, out := c.GetDimensionValuesRequest(input) +func (c *CostExplorer) DescribeCostCategoryDefinitionWithContext(ctx aws.Context, input *DescribeCostCategoryDefinitionInput, opts ...request.Option) (*DescribeCostCategoryDefinitionOutput, error) { + req, out := c.DescribeCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetReservationCoverage = "GetReservationCoverage" +const opGetAnomalies = "GetAnomalies" -// GetReservationCoverageRequest generates a "aws/request.Request" representing the -// client's request for the GetReservationCoverage operation. The "output" return +// GetAnomaliesRequest generates a "aws/request.Request" representing the +// client's request for the GetAnomalies 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 GetReservationCoverage for more information on using the GetReservationCoverage +// See GetAnomalies for more information on using the GetAnomalies // 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 GetReservationCoverageRequest method. -// req, resp := client.GetReservationCoverageRequest(params) +// // Example sending a request using the GetAnomaliesRequest method. +// req, resp := client.GetAnomaliesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage -func (c *CostExplorer) GetReservationCoverageRequest(input *GetReservationCoverageInput) (req *request.Request, output *GetReservationCoverageOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies +func (c *CostExplorer) GetAnomaliesRequest(input *GetAnomaliesInput) (req *request.Request, output *GetAnomaliesOutput) { op := &request.Operation{ - Name: opGetReservationCoverage, + Name: opGetAnomalies, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetReservationCoverageInput{} + input = &GetAnomaliesInput{} } - output = &GetReservationCoverageOutput{} + output = &GetAnomaliesOutput{} req = c.newRequest(op, input, output) return } -// GetReservationCoverage API operation for AWS Cost Explorer Service. -// -// Retrieves the reservation coverage for your account. This enables you to -// see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon -// Relational Database Service, or Amazon Redshift usage is covered by a reservation. -// An organization's master account can see the coverage of the associated member -// accounts. This supports dimensions, Cost Categories, and nested expressions. -// For any time period, you can filter data about reservation usage by the following -// dimensions: -// -// * AZ -// -// * CACHE_ENGINE -// -// * DATABASE_ENGINE -// -// * DEPLOYMENT_OPTION -// -// * INSTANCE_TYPE -// -// * LINKED_ACCOUNT -// -// * OPERATING_SYSTEM -// -// * PLATFORM -// -// * REGION -// -// * SERVICE -// -// * TAG -// -// * TENANCY +// GetAnomalies API operation for AWS Cost Explorer Service. // -// To determine valid values for a dimension, use the GetDimensionValues operation. +// Retrieves all of the cost anomalies detected on your account, during the +// time period specified by the DateInterval object. // // 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 Cost Explorer Service's -// API operation GetReservationCoverage for usage and error information. +// API operation GetAnomalies for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * DataUnavailableException -// The requested data is unavailable. -// // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage -func (c *CostExplorer) GetReservationCoverage(input *GetReservationCoverageInput) (*GetReservationCoverageOutput, error) { - req, out := c.GetReservationCoverageRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies +func (c *CostExplorer) GetAnomalies(input *GetAnomaliesInput) (*GetAnomaliesOutput, error) { + req, out := c.GetAnomaliesRequest(input) return out, req.Send() } -// GetReservationCoverageWithContext is the same as GetReservationCoverage with the addition of +// GetAnomaliesWithContext is the same as GetAnomalies with the addition of // the ability to pass a context and additional request options. // -// See GetReservationCoverage for details on how to use this API operation. +// See GetAnomalies 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 *CostExplorer) GetReservationCoverageWithContext(ctx aws.Context, input *GetReservationCoverageInput, opts ...request.Option) (*GetReservationCoverageOutput, error) { - req, out := c.GetReservationCoverageRequest(input) +func (c *CostExplorer) GetAnomaliesWithContext(ctx aws.Context, input *GetAnomaliesInput, opts ...request.Option) (*GetAnomaliesOutput, error) { + req, out := c.GetAnomaliesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetReservationPurchaseRecommendation = "GetReservationPurchaseRecommendation" +const opGetAnomalyMonitors = "GetAnomalyMonitors" -// GetReservationPurchaseRecommendationRequest generates a "aws/request.Request" representing the -// client's request for the GetReservationPurchaseRecommendation operation. The "output" return +// GetAnomalyMonitorsRequest generates a "aws/request.Request" representing the +// client's request for the GetAnomalyMonitors 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 GetReservationPurchaseRecommendation for more information on using the GetReservationPurchaseRecommendation +// See GetAnomalyMonitors for more information on using the GetAnomalyMonitors // 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 GetReservationPurchaseRecommendationRequest method. -// req, resp := client.GetReservationPurchaseRecommendationRequest(params) +// // Example sending a request using the GetAnomalyMonitorsRequest method. +// req, resp := client.GetAnomalyMonitorsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation -func (c *CostExplorer) GetReservationPurchaseRecommendationRequest(input *GetReservationPurchaseRecommendationInput) (req *request.Request, output *GetReservationPurchaseRecommendationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors +func (c *CostExplorer) GetAnomalyMonitorsRequest(input *GetAnomalyMonitorsInput) (req *request.Request, output *GetAnomalyMonitorsOutput) { op := &request.Operation{ - Name: opGetReservationPurchaseRecommendation, + Name: opGetAnomalyMonitors, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetReservationPurchaseRecommendationInput{} + input = &GetAnomalyMonitorsInput{} } - output = &GetReservationPurchaseRecommendationOutput{} + output = &GetAnomalyMonitorsOutput{} req = c.newRequest(op, input, output) return } -// GetReservationPurchaseRecommendation API operation for AWS Cost Explorer Service. -// -// Gets recommendations for which reservations to purchase. These recommendations -// could help you reduce your costs. Reservations provide a discounted hourly -// rate (up to 75%) compared to On-Demand pricing. -// -// AWS generates your recommendations by identifying your On-Demand usage during -// a specific time period and collecting your usage into categories that are -// eligible for a reservation. After AWS has these categories, it simulates -// every combination of reservations in each category of usage to identify the -// best number of each type of RI to purchase to maximize your estimated savings. +// GetAnomalyMonitors API operation for AWS Cost Explorer Service. // -// For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, -// and c4 family usage in the US West (Oregon) Region and recommends that you -// buy size-flexible regional reservations to apply to the c4 family usage. -// AWS recommends the smallest size instance in an instance family. This makes -// it easier to purchase a size-flexible RI. AWS also shows the equal number -// of normalized units so that you can purchase any instance size that you want. -// For this example, your RI recommendation would be for c4.large because that -// is the smallest size instance in the c4 instance family. +// Retrieves the cost anomaly monitor definitions for your account. You can +// filter using a list of cost anomaly monitor Amazon Resource Names (ARNs). // // 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 Cost Explorer Service's -// API operation GetReservationPurchaseRecommendation for usage and error information. +// API operation GetAnomalyMonitors for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * DataUnavailableException -// The requested data is unavailable. +// * UnknownMonitorException +// The cost anomaly monitor does not exist for the account. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation -func (c *CostExplorer) GetReservationPurchaseRecommendation(input *GetReservationPurchaseRecommendationInput) (*GetReservationPurchaseRecommendationOutput, error) { - req, out := c.GetReservationPurchaseRecommendationRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors +func (c *CostExplorer) GetAnomalyMonitors(input *GetAnomalyMonitorsInput) (*GetAnomalyMonitorsOutput, error) { + req, out := c.GetAnomalyMonitorsRequest(input) return out, req.Send() } -// GetReservationPurchaseRecommendationWithContext is the same as GetReservationPurchaseRecommendation with the addition of +// GetAnomalyMonitorsWithContext is the same as GetAnomalyMonitors with the addition of // the ability to pass a context and additional request options. // -// See GetReservationPurchaseRecommendation for details on how to use this API operation. +// See GetAnomalyMonitors 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 *CostExplorer) GetReservationPurchaseRecommendationWithContext(ctx aws.Context, input *GetReservationPurchaseRecommendationInput, opts ...request.Option) (*GetReservationPurchaseRecommendationOutput, error) { - req, out := c.GetReservationPurchaseRecommendationRequest(input) +func (c *CostExplorer) GetAnomalyMonitorsWithContext(ctx aws.Context, input *GetAnomalyMonitorsInput, opts ...request.Option) (*GetAnomalyMonitorsOutput, error) { + req, out := c.GetAnomalyMonitorsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetReservationUtilization = "GetReservationUtilization" +const opGetAnomalySubscriptions = "GetAnomalySubscriptions" -// GetReservationUtilizationRequest generates a "aws/request.Request" representing the -// client's request for the GetReservationUtilization operation. The "output" return +// GetAnomalySubscriptionsRequest generates a "aws/request.Request" representing the +// client's request for the GetAnomalySubscriptions 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 GetReservationUtilization for more information on using the GetReservationUtilization +// See GetAnomalySubscriptions for more information on using the GetAnomalySubscriptions // 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 GetReservationUtilizationRequest method. -// req, resp := client.GetReservationUtilizationRequest(params) +// // Example sending a request using the GetAnomalySubscriptionsRequest method. +// req, resp := client.GetAnomalySubscriptionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization -func (c *CostExplorer) GetReservationUtilizationRequest(input *GetReservationUtilizationInput) (req *request.Request, output *GetReservationUtilizationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions +func (c *CostExplorer) GetAnomalySubscriptionsRequest(input *GetAnomalySubscriptionsInput) (req *request.Request, output *GetAnomalySubscriptionsOutput) { op := &request.Operation{ - Name: opGetReservationUtilization, + Name: opGetAnomalySubscriptions, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetReservationUtilizationInput{} + input = &GetAnomalySubscriptionsInput{} } - output = &GetReservationUtilizationOutput{} + output = &GetAnomalySubscriptionsOutput{} req = c.newRequest(op, input, output) return } -// GetReservationUtilization API operation for AWS Cost Explorer Service. +// GetAnomalySubscriptions API operation for AWS Cost Explorer Service. // -// Retrieves the reservation utilization for your account. Master accounts in -// an organization have access to member accounts. You can filter data by dimensions -// in a time period. You can use GetDimensionValues to determine the possible -// dimension values. Currently, you can group only by SUBSCRIPTION_ID. +// Retrieves the cost anomaly subscription objects for your account. You can +// filter using a list of cost anomaly monitor Amazon Resource Names (ARNs). // // 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 Cost Explorer Service's -// API operation GetReservationUtilization for usage and error information. +// API operation GetAnomalySubscriptions for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * DataUnavailableException -// The requested data is unavailable. +// * UnknownSubscriptionException +// The cost anomaly subscription does not exist for the account. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization -func (c *CostExplorer) GetReservationUtilization(input *GetReservationUtilizationInput) (*GetReservationUtilizationOutput, error) { - req, out := c.GetReservationUtilizationRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions +func (c *CostExplorer) GetAnomalySubscriptions(input *GetAnomalySubscriptionsInput) (*GetAnomalySubscriptionsOutput, error) { + req, out := c.GetAnomalySubscriptionsRequest(input) return out, req.Send() } -// GetReservationUtilizationWithContext is the same as GetReservationUtilization with the addition of +// GetAnomalySubscriptionsWithContext is the same as GetAnomalySubscriptions with the addition of // the ability to pass a context and additional request options. // -// See GetReservationUtilization for details on how to use this API operation. +// See GetAnomalySubscriptions 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 *CostExplorer) GetReservationUtilizationWithContext(ctx aws.Context, input *GetReservationUtilizationInput, opts ...request.Option) (*GetReservationUtilizationOutput, error) { - req, out := c.GetReservationUtilizationRequest(input) +func (c *CostExplorer) GetAnomalySubscriptionsWithContext(ctx aws.Context, input *GetAnomalySubscriptionsInput, opts ...request.Option) (*GetAnomalySubscriptionsOutput, error) { + req, out := c.GetAnomalySubscriptionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetRightsizingRecommendation = "GetRightsizingRecommendation" +const opGetCostAndUsage = "GetCostAndUsage" -// GetRightsizingRecommendationRequest generates a "aws/request.Request" representing the -// client's request for the GetRightsizingRecommendation operation. The "output" return +// GetCostAndUsageRequest generates a "aws/request.Request" representing the +// client's request for the GetCostAndUsage 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 GetRightsizingRecommendation for more information on using the GetRightsizingRecommendation +// See GetCostAndUsage for more information on using the GetCostAndUsage // 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 GetRightsizingRecommendationRequest method. -// req, resp := client.GetRightsizingRecommendationRequest(params) +// // Example sending a request using the GetCostAndUsageRequest method. +// req, resp := client.GetCostAndUsageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation -func (c *CostExplorer) GetRightsizingRecommendationRequest(input *GetRightsizingRecommendationInput) (req *request.Request, output *GetRightsizingRecommendationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage +func (c *CostExplorer) GetCostAndUsageRequest(input *GetCostAndUsageInput) (req *request.Request, output *GetCostAndUsageOutput) { op := &request.Operation{ - Name: opGetRightsizingRecommendation, + Name: opGetCostAndUsage, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetRightsizingRecommendationInput{} + input = &GetCostAndUsageInput{} } - output = &GetRightsizingRecommendationOutput{} + output = &GetCostAndUsageOutput{} req = c.newRequest(op, input, output) return } -// GetRightsizingRecommendation API operation for AWS Cost Explorer Service. -// -// Creates recommendations that help you save cost by identifying idle and underutilized -// Amazon EC2 instances. +// GetCostAndUsage API operation for AWS Cost Explorer Service. // -// Recommendations are generated to either downsize or terminate instances, -// along with providing savings detail and metrics. For details on calculation -// and function, see Optimizing Your Cost with Rightsizing Recommendations (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html) -// in the AWS Billing and Cost Management User Guide. +// Retrieves cost and usage metrics for your account. You can specify which +// cost and usage-related metric, such as BlendedCosts or UsageQuantity, that +// you want the request to return. You can also filter and group your data by +// various dimensions, such as SERVICE or AZ, in a specific time range. For +// a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) +// operation. Master accounts in an organization in AWS Organizations have access +// to all member accounts. // // 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 Cost Explorer Service's -// API operation GetRightsizingRecommendation for usage and error information. +// API operation GetCostAndUsage for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // +// * BillExpirationException +// The requested report expired. Update the date interval and try again. +// +// * DataUnavailableException +// The requested data is unavailable. +// // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation -func (c *CostExplorer) GetRightsizingRecommendation(input *GetRightsizingRecommendationInput) (*GetRightsizingRecommendationOutput, error) { - req, out := c.GetRightsizingRecommendationRequest(input) +// * RequestChangedException +// Your request parameters changed between pages. Try again with the old parameters +// or without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage +func (c *CostExplorer) GetCostAndUsage(input *GetCostAndUsageInput) (*GetCostAndUsageOutput, error) { + req, out := c.GetCostAndUsageRequest(input) return out, req.Send() } -// GetRightsizingRecommendationWithContext is the same as GetRightsizingRecommendation with the addition of +// GetCostAndUsageWithContext is the same as GetCostAndUsage with the addition of // the ability to pass a context and additional request options. // -// See GetRightsizingRecommendation for details on how to use this API operation. +// See GetCostAndUsage 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 *CostExplorer) GetRightsizingRecommendationWithContext(ctx aws.Context, input *GetRightsizingRecommendationInput, opts ...request.Option) (*GetRightsizingRecommendationOutput, error) { - req, out := c.GetRightsizingRecommendationRequest(input) +func (c *CostExplorer) GetCostAndUsageWithContext(ctx aws.Context, input *GetCostAndUsageInput, opts ...request.Option) (*GetCostAndUsageOutput, error) { + req, out := c.GetCostAndUsageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetSavingsPlansCoverage = "GetSavingsPlansCoverage" +const opGetCostAndUsageWithResources = "GetCostAndUsageWithResources" -// GetSavingsPlansCoverageRequest generates a "aws/request.Request" representing the -// client's request for the GetSavingsPlansCoverage operation. The "output" return +// GetCostAndUsageWithResourcesRequest generates a "aws/request.Request" representing the +// client's request for the GetCostAndUsageWithResources 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 GetSavingsPlansCoverage for more information on using the GetSavingsPlansCoverage +// See GetCostAndUsageWithResources for more information on using the GetCostAndUsageWithResources // 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 GetSavingsPlansCoverageRequest method. -// req, resp := client.GetSavingsPlansCoverageRequest(params) +// // Example sending a request using the GetCostAndUsageWithResourcesRequest method. +// req, resp := client.GetCostAndUsageWithResourcesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage -func (c *CostExplorer) GetSavingsPlansCoverageRequest(input *GetSavingsPlansCoverageInput) (req *request.Request, output *GetSavingsPlansCoverageOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources +func (c *CostExplorer) GetCostAndUsageWithResourcesRequest(input *GetCostAndUsageWithResourcesInput) (req *request.Request, output *GetCostAndUsageWithResourcesOutput) { op := &request.Operation{ - Name: opGetSavingsPlansCoverage, + Name: opGetCostAndUsageWithResources, HTTPMethod: "POST", HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, } if input == nil { - input = &GetSavingsPlansCoverageInput{} + input = &GetCostAndUsageWithResourcesInput{} } - output = &GetSavingsPlansCoverageOutput{} + output = &GetCostAndUsageWithResourcesOutput{} req = c.newRequest(op, input, output) return } -// GetSavingsPlansCoverage API operation for AWS Cost Explorer Service. -// -// Retrieves the Savings Plans covered for your account. This enables you to -// see how much of your cost is covered by a Savings Plan. An organization’s -// master account can see the coverage of the associated member accounts. This -// supports dimensions, Cost Categories, and nested expressions. For any time -// period, you can filter data for Savings Plans usage with the following dimensions: -// -// * LINKED_ACCOUNT -// -// * REGION -// -// * SERVICE +// GetCostAndUsageWithResources API operation for AWS Cost Explorer Service. // -// * INSTANCE_FAMILY +// Retrieves cost and usage metrics with resources for your account. You can +// specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, +// that you want the request to return. You can also filter and group your data +// by various dimensions, such as SERVICE or AZ, in a specific time range. For +// a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) +// operation. Master accounts in an organization in AWS Organizations have access +// to all member accounts. This API is currently available for the Amazon Elastic +// Compute Cloud – Compute service only. // -// To determine valid values for a dimension, use the GetDimensionValues operation. +// This is an opt-in only feature. You can enable this feature from the Cost +// Explorer Settings page. For information on how to access the Settings page, +// see Controlling Access for Cost Explorer (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html) +// in the AWS Billing and Cost Management User Guide. // // 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 Cost Explorer Service's -// API operation GetSavingsPlansCoverage for usage and error information. +// API operation GetCostAndUsageWithResources for usage and error information. // // Returned Error Types: +// * DataUnavailableException +// The requested data is unavailable. +// // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * DataUnavailableException -// The requested data is unavailable. +// * BillExpirationException +// The requested report expired. Update the date interval and try again. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage -func (c *CostExplorer) GetSavingsPlansCoverage(input *GetSavingsPlansCoverageInput) (*GetSavingsPlansCoverageOutput, error) { - req, out := c.GetSavingsPlansCoverageRequest(input) +// * RequestChangedException +// Your request parameters changed between pages. Try again with the old parameters +// or without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources +func (c *CostExplorer) GetCostAndUsageWithResources(input *GetCostAndUsageWithResourcesInput) (*GetCostAndUsageWithResourcesOutput, error) { + req, out := c.GetCostAndUsageWithResourcesRequest(input) return out, req.Send() } -// GetSavingsPlansCoverageWithContext is the same as GetSavingsPlansCoverage with the addition of +// GetCostAndUsageWithResourcesWithContext is the same as GetCostAndUsageWithResources with the addition of // the ability to pass a context and additional request options. // -// See GetSavingsPlansCoverage for details on how to use this API operation. +// See GetCostAndUsageWithResources 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 *CostExplorer) GetSavingsPlansCoverageWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, opts ...request.Option) (*GetSavingsPlansCoverageOutput, error) { - req, out := c.GetSavingsPlansCoverageRequest(input) +func (c *CostExplorer) GetCostAndUsageWithResourcesWithContext(ctx aws.Context, input *GetCostAndUsageWithResourcesInput, opts ...request.Option) (*GetCostAndUsageWithResourcesOutput, error) { + req, out := c.GetCostAndUsageWithResourcesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// GetSavingsPlansCoveragePages iterates over the pages of a GetSavingsPlansCoverage operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetSavingsPlansCoverage 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 GetSavingsPlansCoverage operation. -// pageNum := 0 -// err := client.GetSavingsPlansCoveragePages(params, -// func(page *costexplorer.GetSavingsPlansCoverageOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *CostExplorer) GetSavingsPlansCoveragePages(input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool) error { - return c.GetSavingsPlansCoveragePagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetSavingsPlansCoveragePagesWithContext same as GetSavingsPlansCoveragePages 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 *CostExplorer) GetSavingsPlansCoveragePagesWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetSavingsPlansCoverageInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetSavingsPlansCoverageRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetSavingsPlansCoverageOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetSavingsPlansPurchaseRecommendation = "GetSavingsPlansPurchaseRecommendation" +const opGetCostForecast = "GetCostForecast" -// GetSavingsPlansPurchaseRecommendationRequest generates a "aws/request.Request" representing the -// client's request for the GetSavingsPlansPurchaseRecommendation operation. The "output" return +// GetCostForecastRequest generates a "aws/request.Request" representing the +// client's request for the GetCostForecast 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 GetSavingsPlansPurchaseRecommendation for more information on using the GetSavingsPlansPurchaseRecommendation +// See GetCostForecast for more information on using the GetCostForecast // 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 GetSavingsPlansPurchaseRecommendationRequest method. -// req, resp := client.GetSavingsPlansPurchaseRecommendationRequest(params) +// // Example sending a request using the GetCostForecastRequest method. +// req, resp := client.GetCostForecastRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation -func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationRequest(input *GetSavingsPlansPurchaseRecommendationInput) (req *request.Request, output *GetSavingsPlansPurchaseRecommendationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast +func (c *CostExplorer) GetCostForecastRequest(input *GetCostForecastInput) (req *request.Request, output *GetCostForecastOutput) { op := &request.Operation{ - Name: opGetSavingsPlansPurchaseRecommendation, + Name: opGetCostForecast, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetSavingsPlansPurchaseRecommendationInput{} + input = &GetCostForecastInput{} } - output = &GetSavingsPlansPurchaseRecommendationOutput{} + output = &GetCostForecastOutput{} req = c.newRequest(op, input, output) return } -// GetSavingsPlansPurchaseRecommendation API operation for AWS Cost Explorer Service. +// GetCostForecast API operation for AWS Cost Explorer Service. // -// Retrieves your request parameters, Savings Plan Recommendations Summary and -// Details. +// Retrieves a forecast for how much Amazon Web Services predicts that you will +// spend over the forecast time period that you select, based on your past costs. // // 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 Cost Explorer Service's -// API operation GetSavingsPlansPurchaseRecommendation for usage and error information. +// API operation GetCostForecast for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * InvalidNextTokenException -// The pagination token is invalid. Try again without a pagination token. +// * DataUnavailableException +// The requested data is unavailable. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation -func (c *CostExplorer) GetSavingsPlansPurchaseRecommendation(input *GetSavingsPlansPurchaseRecommendationInput) (*GetSavingsPlansPurchaseRecommendationOutput, error) { - req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast +func (c *CostExplorer) GetCostForecast(input *GetCostForecastInput) (*GetCostForecastOutput, error) { + req, out := c.GetCostForecastRequest(input) return out, req.Send() } -// GetSavingsPlansPurchaseRecommendationWithContext is the same as GetSavingsPlansPurchaseRecommendation with the addition of +// GetCostForecastWithContext is the same as GetCostForecast with the addition of // the ability to pass a context and additional request options. // -// See GetSavingsPlansPurchaseRecommendation for details on how to use this API operation. +// See GetCostForecast 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 *CostExplorer) GetSavingsPlansPurchaseRecommendationWithContext(ctx aws.Context, input *GetSavingsPlansPurchaseRecommendationInput, opts ...request.Option) (*GetSavingsPlansPurchaseRecommendationOutput, error) { - req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) +func (c *CostExplorer) GetCostForecastWithContext(ctx aws.Context, input *GetCostForecastInput, opts ...request.Option) (*GetCostForecastOutput, error) { + req, out := c.GetCostForecastRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetSavingsPlansUtilization = "GetSavingsPlansUtilization" +const opGetDimensionValues = "GetDimensionValues" -// GetSavingsPlansUtilizationRequest generates a "aws/request.Request" representing the -// client's request for the GetSavingsPlansUtilization operation. The "output" return +// GetDimensionValuesRequest generates a "aws/request.Request" representing the +// client's request for the GetDimensionValues 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 GetSavingsPlansUtilization for more information on using the GetSavingsPlansUtilization +// See GetDimensionValues for more information on using the GetDimensionValues // 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 GetSavingsPlansUtilizationRequest method. -// req, resp := client.GetSavingsPlansUtilizationRequest(params) +// // Example sending a request using the GetDimensionValuesRequest method. +// req, resp := client.GetDimensionValuesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization -func (c *CostExplorer) GetSavingsPlansUtilizationRequest(input *GetSavingsPlansUtilizationInput) (req *request.Request, output *GetSavingsPlansUtilizationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues +func (c *CostExplorer) GetDimensionValuesRequest(input *GetDimensionValuesInput) (req *request.Request, output *GetDimensionValuesOutput) { op := &request.Operation{ - Name: opGetSavingsPlansUtilization, + Name: opGetDimensionValues, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetSavingsPlansUtilizationInput{} + input = &GetDimensionValuesInput{} } - output = &GetSavingsPlansUtilizationOutput{} + output = &GetDimensionValuesOutput{} req = c.newRequest(op, input, output) return } -// GetSavingsPlansUtilization API operation for AWS Cost Explorer Service. -// -// Retrieves the Savings Plans utilization for your account across date ranges -// with daily or monthly granularity. Master accounts in an organization have -// access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS -// to determine the possible dimension values. +// GetDimensionValues API operation for AWS Cost Explorer Service. // -// You cannot group by any dimension values for GetSavingsPlansUtilization. +// Retrieves all available filter values for a specified filter over a period +// of time. You can search the dimension values for an arbitrary string. // // 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 Cost Explorer Service's -// API operation GetSavingsPlansUtilization for usage and error information. +// API operation GetDimensionValues for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // +// * BillExpirationException +// The requested report expired. Update the date interval and try again. +// // * DataUnavailableException // The requested data is unavailable. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization -func (c *CostExplorer) GetSavingsPlansUtilization(input *GetSavingsPlansUtilizationInput) (*GetSavingsPlansUtilizationOutput, error) { - req, out := c.GetSavingsPlansUtilizationRequest(input) +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// * RequestChangedException +// Your request parameters changed between pages. Try again with the old parameters +// or without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues +func (c *CostExplorer) GetDimensionValues(input *GetDimensionValuesInput) (*GetDimensionValuesOutput, error) { + req, out := c.GetDimensionValuesRequest(input) return out, req.Send() } -// GetSavingsPlansUtilizationWithContext is the same as GetSavingsPlansUtilization with the addition of +// GetDimensionValuesWithContext is the same as GetDimensionValues with the addition of // the ability to pass a context and additional request options. // -// See GetSavingsPlansUtilization for details on how to use this API operation. +// See GetDimensionValues 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 *CostExplorer) GetSavingsPlansUtilizationWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationInput, opts ...request.Option) (*GetSavingsPlansUtilizationOutput, error) { - req, out := c.GetSavingsPlansUtilizationRequest(input) +func (c *CostExplorer) GetDimensionValuesWithContext(ctx aws.Context, input *GetDimensionValuesInput, opts ...request.Option) (*GetDimensionValuesOutput, error) { + req, out := c.GetDimensionValuesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetSavingsPlansUtilizationDetails = "GetSavingsPlansUtilizationDetails" +const opGetReservationCoverage = "GetReservationCoverage" -// GetSavingsPlansUtilizationDetailsRequest generates a "aws/request.Request" representing the -// client's request for the GetSavingsPlansUtilizationDetails operation. The "output" return +// GetReservationCoverageRequest generates a "aws/request.Request" representing the +// client's request for the GetReservationCoverage 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 GetSavingsPlansUtilizationDetails for more information on using the GetSavingsPlansUtilizationDetails +// See GetReservationCoverage for more information on using the GetReservationCoverage // 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 GetSavingsPlansUtilizationDetailsRequest method. -// req, resp := client.GetSavingsPlansUtilizationDetailsRequest(params) +// // Example sending a request using the GetReservationCoverageRequest method. +// req, resp := client.GetReservationCoverageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails -func (c *CostExplorer) GetSavingsPlansUtilizationDetailsRequest(input *GetSavingsPlansUtilizationDetailsInput) (req *request.Request, output *GetSavingsPlansUtilizationDetailsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage +func (c *CostExplorer) GetReservationCoverageRequest(input *GetReservationCoverageInput) (req *request.Request, output *GetReservationCoverageOutput) { op := &request.Operation{ - Name: opGetSavingsPlansUtilizationDetails, + Name: opGetReservationCoverage, HTTPMethod: "POST", HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, } if input == nil { - input = &GetSavingsPlansUtilizationDetailsInput{} + input = &GetReservationCoverageInput{} } - output = &GetSavingsPlansUtilizationDetailsOutput{} + output = &GetReservationCoverageOutput{} req = c.newRequest(op, input, output) return } -// GetSavingsPlansUtilizationDetails API operation for AWS Cost Explorer Service. -// -// Retrieves attribute data along with aggregate utilization and savings data -// for a given time period. This doesn't support granular or grouped data (daily/monthly) -// in response. You can't retrieve data by dates in a single response similar -// to GetSavingsPlanUtilization, but you have the option to make multiple calls -// to GetSavingsPlanUtilizationDetails by providing individual dates. You can -// use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension -// values. -// -// GetSavingsPlanUtilizationDetails internally groups data by SavingsPlansArn. +// GetReservationCoverage API operation for AWS Cost Explorer Service. // -// 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 +// Retrieves the reservation coverage for your account. This enables you to +// see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon +// Relational Database Service, or Amazon Redshift usage is covered by a reservation. +// An organization's master account can see the coverage of the associated member +// accounts. This supports dimensions, Cost Categories, and nested expressions. +// For any time period, you can filter data about reservation usage by the following +// dimensions: +// +// * AZ +// +// * CACHE_ENGINE +// +// * DATABASE_ENGINE +// +// * DEPLOYMENT_OPTION +// +// * INSTANCE_TYPE +// +// * LINKED_ACCOUNT +// +// * OPERATING_SYSTEM +// +// * PLATFORM +// +// * REGION +// +// * SERVICE +// +// * TAG +// +// * TENANCY +// +// To determine valid values for a dimension, use the GetDimensionValues operation. +// +// 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 Cost Explorer Service's -// API operation GetSavingsPlansUtilizationDetails for usage and error information. +// API operation GetReservationCoverage for usage and error information. // // Returned Error Types: // * LimitExceededException @@ -1442,226 +1325,185 @@ func (c *CostExplorer) GetSavingsPlansUtilizationDetailsRequest(input *GetSaving // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails -func (c *CostExplorer) GetSavingsPlansUtilizationDetails(input *GetSavingsPlansUtilizationDetailsInput) (*GetSavingsPlansUtilizationDetailsOutput, error) { - req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage +func (c *CostExplorer) GetReservationCoverage(input *GetReservationCoverageInput) (*GetReservationCoverageOutput, error) { + req, out := c.GetReservationCoverageRequest(input) return out, req.Send() } -// GetSavingsPlansUtilizationDetailsWithContext is the same as GetSavingsPlansUtilizationDetails with the addition of +// GetReservationCoverageWithContext is the same as GetReservationCoverage with the addition of // the ability to pass a context and additional request options. // -// See GetSavingsPlansUtilizationDetails for details on how to use this API operation. +// See GetReservationCoverage 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 *CostExplorer) GetSavingsPlansUtilizationDetailsWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, opts ...request.Option) (*GetSavingsPlansUtilizationDetailsOutput, error) { - req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) +func (c *CostExplorer) GetReservationCoverageWithContext(ctx aws.Context, input *GetReservationCoverageInput, opts ...request.Option) (*GetReservationCoverageOutput, error) { + req, out := c.GetReservationCoverageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// GetSavingsPlansUtilizationDetailsPages iterates over the pages of a GetSavingsPlansUtilizationDetails operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetSavingsPlansUtilizationDetails 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 GetSavingsPlansUtilizationDetails operation. -// pageNum := 0 -// err := client.GetSavingsPlansUtilizationDetailsPages(params, -// func(page *costexplorer.GetSavingsPlansUtilizationDetailsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *CostExplorer) GetSavingsPlansUtilizationDetailsPages(input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool) error { - return c.GetSavingsPlansUtilizationDetailsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetSavingsPlansUtilizationDetailsPagesWithContext same as GetSavingsPlansUtilizationDetailsPages 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 *CostExplorer) GetSavingsPlansUtilizationDetailsPagesWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetSavingsPlansUtilizationDetailsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetSavingsPlansUtilizationDetailsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetSavingsPlansUtilizationDetailsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetTags = "GetTags" +const opGetReservationPurchaseRecommendation = "GetReservationPurchaseRecommendation" -// GetTagsRequest generates a "aws/request.Request" representing the -// client's request for the GetTags operation. The "output" return +// GetReservationPurchaseRecommendationRequest generates a "aws/request.Request" representing the +// client's request for the GetReservationPurchaseRecommendation 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 GetTags for more information on using the GetTags +// See GetReservationPurchaseRecommendation for more information on using the GetReservationPurchaseRecommendation // 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 GetTagsRequest method. -// req, resp := client.GetTagsRequest(params) +// // Example sending a request using the GetReservationPurchaseRecommendationRequest method. +// req, resp := client.GetReservationPurchaseRecommendationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags -func (c *CostExplorer) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation +func (c *CostExplorer) GetReservationPurchaseRecommendationRequest(input *GetReservationPurchaseRecommendationInput) (req *request.Request, output *GetReservationPurchaseRecommendationOutput) { op := &request.Operation{ - Name: opGetTags, + Name: opGetReservationPurchaseRecommendation, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetTagsInput{} + input = &GetReservationPurchaseRecommendationInput{} } - output = &GetTagsOutput{} + output = &GetReservationPurchaseRecommendationOutput{} req = c.newRequest(op, input, output) return } -// GetTags API operation for AWS Cost Explorer Service. +// GetReservationPurchaseRecommendation API operation for AWS Cost Explorer Service. // -// Queries for available tag keys and tag values for a specified period. You -// can search the tag values for an arbitrary string. +// Gets recommendations for which reservations to purchase. These recommendations +// could help you reduce your costs. Reservations provide a discounted hourly +// rate (up to 75%) compared to On-Demand pricing. +// +// AWS generates your recommendations by identifying your On-Demand usage during +// a specific time period and collecting your usage into categories that are +// eligible for a reservation. After AWS has these categories, it simulates +// every combination of reservations in each category of usage to identify the +// best number of each type of RI to purchase to maximize your estimated savings. +// +// For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, +// and c4 family usage in the US West (Oregon) Region and recommends that you +// buy size-flexible regional reservations to apply to the c4 family usage. +// AWS recommends the smallest size instance in an instance family. This makes +// it easier to purchase a size-flexible RI. AWS also shows the equal number +// of normalized units so that you can purchase any instance size that you want. +// For this example, your RI recommendation would be for c4.large because that +// is the smallest size instance in the c4 instance family. // // 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 Cost Explorer Service's -// API operation GetTags for usage and error information. +// API operation GetReservationPurchaseRecommendation for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// * BillExpirationException -// The requested report expired. Update the date interval and try again. -// // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // -// * RequestChangedException -// Your request parameters changed between pages. Try again with the old parameters -// or without a pagination token. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags -func (c *CostExplorer) GetTags(input *GetTagsInput) (*GetTagsOutput, error) { - req, out := c.GetTagsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation +func (c *CostExplorer) GetReservationPurchaseRecommendation(input *GetReservationPurchaseRecommendationInput) (*GetReservationPurchaseRecommendationOutput, error) { + req, out := c.GetReservationPurchaseRecommendationRequest(input) return out, req.Send() } -// GetTagsWithContext is the same as GetTags with the addition of +// GetReservationPurchaseRecommendationWithContext is the same as GetReservationPurchaseRecommendation with the addition of // the ability to pass a context and additional request options. // -// See GetTags for details on how to use this API operation. +// See GetReservationPurchaseRecommendation 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 *CostExplorer) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) { - req, out := c.GetTagsRequest(input) +func (c *CostExplorer) GetReservationPurchaseRecommendationWithContext(ctx aws.Context, input *GetReservationPurchaseRecommendationInput, opts ...request.Option) (*GetReservationPurchaseRecommendationOutput, error) { + req, out := c.GetReservationPurchaseRecommendationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetUsageForecast = "GetUsageForecast" +const opGetReservationUtilization = "GetReservationUtilization" -// GetUsageForecastRequest generates a "aws/request.Request" representing the -// client's request for the GetUsageForecast operation. The "output" return +// GetReservationUtilizationRequest generates a "aws/request.Request" representing the +// client's request for the GetReservationUtilization 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 GetUsageForecast for more information on using the GetUsageForecast +// See GetReservationUtilization for more information on using the GetReservationUtilization // 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 GetUsageForecastRequest method. -// req, resp := client.GetUsageForecastRequest(params) +// // Example sending a request using the GetReservationUtilizationRequest method. +// req, resp := client.GetReservationUtilizationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast -func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (req *request.Request, output *GetUsageForecastOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization +func (c *CostExplorer) GetReservationUtilizationRequest(input *GetReservationUtilizationInput) (req *request.Request, output *GetReservationUtilizationOutput) { op := &request.Operation{ - Name: opGetUsageForecast, + Name: opGetReservationUtilization, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetUsageForecastInput{} + input = &GetReservationUtilizationInput{} } - output = &GetUsageForecastOutput{} + output = &GetReservationUtilizationOutput{} req = c.newRequest(op, input, output) return } -// GetUsageForecast API operation for AWS Cost Explorer Service. +// GetReservationUtilization API operation for AWS Cost Explorer Service. // -// Retrieves a forecast for how much Amazon Web Services predicts that you will -// use over the forecast time period that you select, based on your past usage. +// Retrieves the reservation utilization for your account. Master accounts in +// an organization have access to member accounts. You can filter data by dimensions +// in a time period. You can use GetDimensionValues to determine the possible +// dimension values. Currently, you can group only by SUBSCRIPTION_ID. // // 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 Cost Explorer Service's -// API operation GetUsageForecast for usage and error information. +// API operation GetReservationUtilization for usage and error information. // // Returned Error Types: // * LimitExceededException @@ -1670,160 +1512,261 @@ func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (re // * DataUnavailableException // The requested data is unavailable. // -// * UnresolvableUsageUnitException -// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup -// filter selections that contain matching units, for example: hours. +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast -func (c *CostExplorer) GetUsageForecast(input *GetUsageForecastInput) (*GetUsageForecastOutput, error) { - req, out := c.GetUsageForecastRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization +func (c *CostExplorer) GetReservationUtilization(input *GetReservationUtilizationInput) (*GetReservationUtilizationOutput, error) { + req, out := c.GetReservationUtilizationRequest(input) return out, req.Send() } -// GetUsageForecastWithContext is the same as GetUsageForecast with the addition of +// GetReservationUtilizationWithContext is the same as GetReservationUtilization with the addition of // the ability to pass a context and additional request options. // -// See GetUsageForecast for details on how to use this API operation. +// See GetReservationUtilization 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 *CostExplorer) GetUsageForecastWithContext(ctx aws.Context, input *GetUsageForecastInput, opts ...request.Option) (*GetUsageForecastOutput, error) { - req, out := c.GetUsageForecastRequest(input) +func (c *CostExplorer) GetReservationUtilizationWithContext(ctx aws.Context, input *GetReservationUtilizationInput, opts ...request.Option) (*GetReservationUtilizationOutput, error) { + req, out := c.GetReservationUtilizationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListCostCategoryDefinitions = "ListCostCategoryDefinitions" +const opGetRightsizingRecommendation = "GetRightsizingRecommendation" -// ListCostCategoryDefinitionsRequest generates a "aws/request.Request" representing the -// client's request for the ListCostCategoryDefinitions operation. The "output" return +// GetRightsizingRecommendationRequest generates a "aws/request.Request" representing the +// client's request for the GetRightsizingRecommendation 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 ListCostCategoryDefinitions for more information on using the ListCostCategoryDefinitions +// See GetRightsizingRecommendation for more information on using the GetRightsizingRecommendation // 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 ListCostCategoryDefinitionsRequest method. -// req, resp := client.ListCostCategoryDefinitionsRequest(params) +// // Example sending a request using the GetRightsizingRecommendationRequest method. +// req, resp := client.GetRightsizingRecommendationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions -func (c *CostExplorer) ListCostCategoryDefinitionsRequest(input *ListCostCategoryDefinitionsInput) (req *request.Request, output *ListCostCategoryDefinitionsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation +func (c *CostExplorer) GetRightsizingRecommendationRequest(input *GetRightsizingRecommendationInput) (req *request.Request, output *GetRightsizingRecommendationOutput) { op := &request.Operation{ - Name: opListCostCategoryDefinitions, + Name: opGetRightsizingRecommendation, HTTPMethod: "POST", HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, } if input == nil { - input = &ListCostCategoryDefinitionsInput{} + input = &GetRightsizingRecommendationInput{} } - output = &ListCostCategoryDefinitionsOutput{} + output = &GetRightsizingRecommendationOutput{} req = c.newRequest(op, input, output) return } -// ListCostCategoryDefinitions API operation for AWS Cost Explorer Service. +// GetRightsizingRecommendation API operation for AWS Cost Explorer Service. // -// Returns the name, ARN, NumberOfRules and effective dates of all Cost Categories -// defined in the account. You have the option to use EffectiveOn to return -// a list of Cost Categories that were active on a specific date. If there is -// no EffectiveOn specified, you’ll see Cost Categories that are effective -// on the current date. If Cost Category is still effective, EffectiveEnd is -// omitted in the response. ListCostCategoryDefinitions supports pagination. -// The request can have a MaxResults range up to 100. +// Creates recommendations that help you save cost by identifying idle and underutilized +// Amazon EC2 instances. +// +// Recommendations are generated to either downsize or terminate instances, +// along with providing savings detail and metrics. For details on calculation +// and function, see Optimizing Your Cost with Rightsizing Recommendations (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html) +// in the AWS Billing and Cost Management User Guide. // // 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 Cost Explorer Service's -// API operation ListCostCategoryDefinitions for usage and error information. +// API operation GetRightsizingRecommendation for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions -func (c *CostExplorer) ListCostCategoryDefinitions(input *ListCostCategoryDefinitionsInput) (*ListCostCategoryDefinitionsOutput, error) { - req, out := c.ListCostCategoryDefinitionsRequest(input) +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation +func (c *CostExplorer) GetRightsizingRecommendation(input *GetRightsizingRecommendationInput) (*GetRightsizingRecommendationOutput, error) { + req, out := c.GetRightsizingRecommendationRequest(input) return out, req.Send() } -// ListCostCategoryDefinitionsWithContext is the same as ListCostCategoryDefinitions with the addition of +// GetRightsizingRecommendationWithContext is the same as GetRightsizingRecommendation with the addition of // the ability to pass a context and additional request options. // -// See ListCostCategoryDefinitions for details on how to use this API operation. +// See GetRightsizingRecommendation 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 *CostExplorer) ListCostCategoryDefinitionsWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, opts ...request.Option) (*ListCostCategoryDefinitionsOutput, error) { - req, out := c.ListCostCategoryDefinitionsRequest(input) +func (c *CostExplorer) GetRightsizingRecommendationWithContext(ctx aws.Context, input *GetRightsizingRecommendationInput, opts ...request.Option) (*GetRightsizingRecommendationOutput, error) { + req, out := c.GetRightsizingRecommendationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListCostCategoryDefinitionsPages iterates over the pages of a ListCostCategoryDefinitions operation, +const opGetSavingsPlansCoverage = "GetSavingsPlansCoverage" + +// GetSavingsPlansCoverageRequest generates a "aws/request.Request" representing the +// client's request for the GetSavingsPlansCoverage 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 GetSavingsPlansCoverage for more information on using the GetSavingsPlansCoverage +// 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 GetSavingsPlansCoverageRequest method. +// req, resp := client.GetSavingsPlansCoverageRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage +func (c *CostExplorer) GetSavingsPlansCoverageRequest(input *GetSavingsPlansCoverageInput) (req *request.Request, output *GetSavingsPlansCoverageOutput) { + op := &request.Operation{ + Name: opGetSavingsPlansCoverage, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetSavingsPlansCoverageInput{} + } + + output = &GetSavingsPlansCoverageOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSavingsPlansCoverage API operation for AWS Cost Explorer Service. +// +// Retrieves the Savings Plans covered for your account. This enables you to +// see how much of your cost is covered by a Savings Plan. An organization’s +// master account can see the coverage of the associated member accounts. This +// supports dimensions, Cost Categories, and nested expressions. For any time +// period, you can filter data for Savings Plans usage with the following dimensions: +// +// * LINKED_ACCOUNT +// +// * REGION +// +// * SERVICE +// +// * INSTANCE_FAMILY +// +// To determine valid values for a dimension, use the GetDimensionValues operation. +// +// 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 Cost Explorer Service's +// API operation GetSavingsPlansCoverage for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * DataUnavailableException +// The requested data is unavailable. +// +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage +func (c *CostExplorer) GetSavingsPlansCoverage(input *GetSavingsPlansCoverageInput) (*GetSavingsPlansCoverageOutput, error) { + req, out := c.GetSavingsPlansCoverageRequest(input) + return out, req.Send() +} + +// GetSavingsPlansCoverageWithContext is the same as GetSavingsPlansCoverage with the addition of +// the ability to pass a context and additional request options. +// +// See GetSavingsPlansCoverage 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 *CostExplorer) GetSavingsPlansCoverageWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, opts ...request.Option) (*GetSavingsPlansCoverageOutput, error) { + req, out := c.GetSavingsPlansCoverageRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetSavingsPlansCoveragePages iterates over the pages of a GetSavingsPlansCoverage operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListCostCategoryDefinitions method for more information on how to use this operation. +// See GetSavingsPlansCoverage 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 ListCostCategoryDefinitions operation. +// // Example iterating over at most 3 pages of a GetSavingsPlansCoverage operation. // pageNum := 0 -// err := client.ListCostCategoryDefinitionsPages(params, -// func(page *costexplorer.ListCostCategoryDefinitionsOutput, lastPage bool) bool { +// err := client.GetSavingsPlansCoveragePages(params, +// func(page *costexplorer.GetSavingsPlansCoverageOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) // -func (c *CostExplorer) ListCostCategoryDefinitionsPages(input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool) error { - return c.ListCostCategoryDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *CostExplorer) GetSavingsPlansCoveragePages(input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool) error { + return c.GetSavingsPlansCoveragePagesWithContext(aws.BackgroundContext(), input, fn) } -// ListCostCategoryDefinitionsPagesWithContext same as ListCostCategoryDefinitionsPages except +// GetSavingsPlansCoveragePagesWithContext same as GetSavingsPlansCoveragePages 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 *CostExplorer) ListCostCategoryDefinitionsPagesWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool, opts ...request.Option) error { +func (c *CostExplorer) GetSavingsPlansCoveragePagesWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListCostCategoryDefinitionsInput + var inCpy *GetSavingsPlansCoverageInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListCostCategoryDefinitionsRequest(inCpy) + req, _ := c.GetSavingsPlansCoverageRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -1831,7 +1774,7 @@ func (c *CostExplorer) ListCostCategoryDefinitionsPagesWithContext(ctx aws.Conte } for p.Next() { - if !fn(p.Page().(*ListCostCategoryDefinitionsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*GetSavingsPlansCoverageOutput), !p.HasNextPage()) { break } } @@ -1839,125 +1782,2394 @@ func (c *CostExplorer) ListCostCategoryDefinitionsPagesWithContext(ctx aws.Conte return p.Err() } -const opUpdateCostCategoryDefinition = "UpdateCostCategoryDefinition" +const opGetSavingsPlansPurchaseRecommendation = "GetSavingsPlansPurchaseRecommendation" -// UpdateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the -// client's request for the UpdateCostCategoryDefinition operation. The "output" return +// GetSavingsPlansPurchaseRecommendationRequest generates a "aws/request.Request" representing the +// client's request for the GetSavingsPlansPurchaseRecommendation 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 UpdateCostCategoryDefinition for more information on using the UpdateCostCategoryDefinition +// See GetSavingsPlansPurchaseRecommendation for more information on using the GetSavingsPlansPurchaseRecommendation // 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 UpdateCostCategoryDefinitionRequest method. -// req, resp := client.UpdateCostCategoryDefinitionRequest(params) +// // Example sending a request using the GetSavingsPlansPurchaseRecommendationRequest method. +// req, resp := client.GetSavingsPlansPurchaseRecommendationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition -func (c *CostExplorer) UpdateCostCategoryDefinitionRequest(input *UpdateCostCategoryDefinitionInput) (req *request.Request, output *UpdateCostCategoryDefinitionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation +func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationRequest(input *GetSavingsPlansPurchaseRecommendationInput) (req *request.Request, output *GetSavingsPlansPurchaseRecommendationOutput) { op := &request.Operation{ - Name: opUpdateCostCategoryDefinition, + Name: opGetSavingsPlansPurchaseRecommendation, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &UpdateCostCategoryDefinitionInput{} + input = &GetSavingsPlansPurchaseRecommendationInput{} } - output = &UpdateCostCategoryDefinitionOutput{} + output = &GetSavingsPlansPurchaseRecommendationOutput{} req = c.newRequest(op, input, output) return } -// UpdateCostCategoryDefinition API operation for AWS Cost Explorer Service. +// GetSavingsPlansPurchaseRecommendation API operation for AWS Cost Explorer Service. // -// Updates an existing Cost Category. Changes made to the Cost Category rules -// will be used to categorize the current month’s expenses and future expenses. -// This won’t change categorization for the previous months. +// Retrieves your request parameters, Savings Plan Recommendations Summary and +// Details. // // 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 Cost Explorer Service's -// API operation UpdateCostCategoryDefinition for usage and error information. +// API operation GetSavingsPlansPurchaseRecommendation for usage and error information. // // Returned Error Types: -// * ResourceNotFoundException -// The specified ARN in the request doesn't exist. -// -// * ServiceQuotaExceededException -// You've reached the limit on the number of resources you can create, or exceeded -// the size of an individual resources. -// // * LimitExceededException // You made too many calls in a short period of time. Try again later. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition -func (c *CostExplorer) UpdateCostCategoryDefinition(input *UpdateCostCategoryDefinitionInput) (*UpdateCostCategoryDefinitionOutput, error) { - req, out := c.UpdateCostCategoryDefinitionRequest(input) +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation +func (c *CostExplorer) GetSavingsPlansPurchaseRecommendation(input *GetSavingsPlansPurchaseRecommendationInput) (*GetSavingsPlansPurchaseRecommendationOutput, error) { + req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) return out, req.Send() } -// UpdateCostCategoryDefinitionWithContext is the same as UpdateCostCategoryDefinition with the addition of +// GetSavingsPlansPurchaseRecommendationWithContext is the same as GetSavingsPlansPurchaseRecommendation with the addition of // the ability to pass a context and additional request options. // -// See UpdateCostCategoryDefinition for details on how to use this API operation. +// See GetSavingsPlansPurchaseRecommendation 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 *CostExplorer) UpdateCostCategoryDefinitionWithContext(ctx aws.Context, input *UpdateCostCategoryDefinitionInput, opts ...request.Option) (*UpdateCostCategoryDefinitionOutput, error) { - req, out := c.UpdateCostCategoryDefinitionRequest(input) +func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationWithContext(ctx aws.Context, input *GetSavingsPlansPurchaseRecommendationInput, opts ...request.Option) (*GetSavingsPlansPurchaseRecommendationOutput, error) { + req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// The requested report expired. Update the date interval and try again. -type BillExpirationException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +const opGetSavingsPlansUtilization = "GetSavingsPlansUtilization" - Message_ *string `locationName:"Message" type:"string"` -} +// GetSavingsPlansUtilizationRequest generates a "aws/request.Request" representing the +// client's request for the GetSavingsPlansUtilization 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 GetSavingsPlansUtilization for more information on using the GetSavingsPlansUtilization +// 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 GetSavingsPlansUtilizationRequest method. +// req, resp := client.GetSavingsPlansUtilizationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization +func (c *CostExplorer) GetSavingsPlansUtilizationRequest(input *GetSavingsPlansUtilizationInput) (req *request.Request, output *GetSavingsPlansUtilizationOutput) { + op := &request.Operation{ + Name: opGetSavingsPlansUtilization, + HTTPMethod: "POST", + HTTPPath: "/", + } -// String returns the string representation -func (s BillExpirationException) String() string { - return awsutil.Prettify(s) -} + if input == nil { + input = &GetSavingsPlansUtilizationInput{} + } + + output = &GetSavingsPlansUtilizationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSavingsPlansUtilization API operation for AWS Cost Explorer Service. +// +// Retrieves the Savings Plans utilization for your account across date ranges +// with daily or monthly granularity. Master accounts in an organization have +// access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS +// to determine the possible dimension values. +// +// You cannot group by any dimension values for GetSavingsPlansUtilization. +// +// 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 Cost Explorer Service's +// API operation GetSavingsPlansUtilization for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * DataUnavailableException +// The requested data is unavailable. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization +func (c *CostExplorer) GetSavingsPlansUtilization(input *GetSavingsPlansUtilizationInput) (*GetSavingsPlansUtilizationOutput, error) { + req, out := c.GetSavingsPlansUtilizationRequest(input) + return out, req.Send() +} + +// GetSavingsPlansUtilizationWithContext is the same as GetSavingsPlansUtilization with the addition of +// the ability to pass a context and additional request options. +// +// See GetSavingsPlansUtilization 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 *CostExplorer) GetSavingsPlansUtilizationWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationInput, opts ...request.Option) (*GetSavingsPlansUtilizationOutput, error) { + req, out := c.GetSavingsPlansUtilizationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetSavingsPlansUtilizationDetails = "GetSavingsPlansUtilizationDetails" + +// GetSavingsPlansUtilizationDetailsRequest generates a "aws/request.Request" representing the +// client's request for the GetSavingsPlansUtilizationDetails 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 GetSavingsPlansUtilizationDetails for more information on using the GetSavingsPlansUtilizationDetails +// 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 GetSavingsPlansUtilizationDetailsRequest method. +// req, resp := client.GetSavingsPlansUtilizationDetailsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails +func (c *CostExplorer) GetSavingsPlansUtilizationDetailsRequest(input *GetSavingsPlansUtilizationDetailsInput) (req *request.Request, output *GetSavingsPlansUtilizationDetailsOutput) { + op := &request.Operation{ + Name: opGetSavingsPlansUtilizationDetails, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetSavingsPlansUtilizationDetailsInput{} + } + + output = &GetSavingsPlansUtilizationDetailsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSavingsPlansUtilizationDetails API operation for AWS Cost Explorer Service. +// +// Retrieves attribute data along with aggregate utilization and savings data +// for a given time period. This doesn't support granular or grouped data (daily/monthly) +// in response. You can't retrieve data by dates in a single response similar +// to GetSavingsPlanUtilization, but you have the option to make multiple calls +// to GetSavingsPlanUtilizationDetails by providing individual dates. You can +// use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension +// values. +// +// GetSavingsPlanUtilizationDetails internally groups data by SavingsPlansArn. +// +// 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 Cost Explorer Service's +// API operation GetSavingsPlansUtilizationDetails for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * DataUnavailableException +// The requested data is unavailable. +// +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails +func (c *CostExplorer) GetSavingsPlansUtilizationDetails(input *GetSavingsPlansUtilizationDetailsInput) (*GetSavingsPlansUtilizationDetailsOutput, error) { + req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) + return out, req.Send() +} + +// GetSavingsPlansUtilizationDetailsWithContext is the same as GetSavingsPlansUtilizationDetails with the addition of +// the ability to pass a context and additional request options. +// +// See GetSavingsPlansUtilizationDetails 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 *CostExplorer) GetSavingsPlansUtilizationDetailsWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, opts ...request.Option) (*GetSavingsPlansUtilizationDetailsOutput, error) { + req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetSavingsPlansUtilizationDetailsPages iterates over the pages of a GetSavingsPlansUtilizationDetails operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetSavingsPlansUtilizationDetails 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 GetSavingsPlansUtilizationDetails operation. +// pageNum := 0 +// err := client.GetSavingsPlansUtilizationDetailsPages(params, +// func(page *costexplorer.GetSavingsPlansUtilizationDetailsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CostExplorer) GetSavingsPlansUtilizationDetailsPages(input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool) error { + return c.GetSavingsPlansUtilizationDetailsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetSavingsPlansUtilizationDetailsPagesWithContext same as GetSavingsPlansUtilizationDetailsPages 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 *CostExplorer) GetSavingsPlansUtilizationDetailsPagesWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetSavingsPlansUtilizationDetailsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetSavingsPlansUtilizationDetailsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetSavingsPlansUtilizationDetailsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opGetTags = "GetTags" + +// GetTagsRequest generates a "aws/request.Request" representing the +// client's request for the GetTags 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 GetTags for more information on using the GetTags +// 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 GetTagsRequest method. +// req, resp := client.GetTagsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags +func (c *CostExplorer) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) { + op := &request.Operation{ + Name: opGetTags, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetTagsInput{} + } + + output = &GetTagsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetTags API operation for AWS Cost Explorer Service. +// +// Queries for available tag keys and tag values for a specified period. You +// can search the tag values for an arbitrary string. +// +// 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 Cost Explorer Service's +// API operation GetTags for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * BillExpirationException +// The requested report expired. Update the date interval and try again. +// +// * DataUnavailableException +// The requested data is unavailable. +// +// * InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// * RequestChangedException +// Your request parameters changed between pages. Try again with the old parameters +// or without a pagination token. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags +func (c *CostExplorer) GetTags(input *GetTagsInput) (*GetTagsOutput, error) { + req, out := c.GetTagsRequest(input) + return out, req.Send() +} + +// GetTagsWithContext is the same as GetTags with the addition of +// the ability to pass a context and additional request options. +// +// See GetTags 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 *CostExplorer) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) { + req, out := c.GetTagsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetUsageForecast = "GetUsageForecast" + +// GetUsageForecastRequest generates a "aws/request.Request" representing the +// client's request for the GetUsageForecast 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 GetUsageForecast for more information on using the GetUsageForecast +// 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 GetUsageForecastRequest method. +// req, resp := client.GetUsageForecastRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast +func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (req *request.Request, output *GetUsageForecastOutput) { + op := &request.Operation{ + Name: opGetUsageForecast, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetUsageForecastInput{} + } + + output = &GetUsageForecastOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetUsageForecast API operation for AWS Cost Explorer Service. +// +// Retrieves a forecast for how much Amazon Web Services predicts that you will +// use over the forecast time period that you select, based on your past usage. +// +// 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 Cost Explorer Service's +// API operation GetUsageForecast for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * DataUnavailableException +// The requested data is unavailable. +// +// * UnresolvableUsageUnitException +// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup +// filter selections that contain matching units, for example: hours. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast +func (c *CostExplorer) GetUsageForecast(input *GetUsageForecastInput) (*GetUsageForecastOutput, error) { + req, out := c.GetUsageForecastRequest(input) + return out, req.Send() +} + +// GetUsageForecastWithContext is the same as GetUsageForecast with the addition of +// the ability to pass a context and additional request options. +// +// See GetUsageForecast 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 *CostExplorer) GetUsageForecastWithContext(ctx aws.Context, input *GetUsageForecastInput, opts ...request.Option) (*GetUsageForecastOutput, error) { + req, out := c.GetUsageForecastRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListCostCategoryDefinitions = "ListCostCategoryDefinitions" + +// ListCostCategoryDefinitionsRequest generates a "aws/request.Request" representing the +// client's request for the ListCostCategoryDefinitions 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 ListCostCategoryDefinitions for more information on using the ListCostCategoryDefinitions +// 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 ListCostCategoryDefinitionsRequest method. +// req, resp := client.ListCostCategoryDefinitionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions +func (c *CostExplorer) ListCostCategoryDefinitionsRequest(input *ListCostCategoryDefinitionsInput) (req *request.Request, output *ListCostCategoryDefinitionsOutput) { + op := &request.Operation{ + Name: opListCostCategoryDefinitions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListCostCategoryDefinitionsInput{} + } + + output = &ListCostCategoryDefinitionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListCostCategoryDefinitions API operation for AWS Cost Explorer Service. +// +// Returns the name, ARN, NumberOfRules and effective dates of all Cost Categories +// defined in the account. You have the option to use EffectiveOn to return +// a list of Cost Categories that were active on a specific date. If there is +// no EffectiveOn specified, you’ll see Cost Categories that are effective +// on the current date. If Cost Category is still effective, EffectiveEnd is +// omitted in the response. ListCostCategoryDefinitions supports pagination. +// The request can have a MaxResults range up to 100. +// +// 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 Cost Explorer Service's +// API operation ListCostCategoryDefinitions for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions +func (c *CostExplorer) ListCostCategoryDefinitions(input *ListCostCategoryDefinitionsInput) (*ListCostCategoryDefinitionsOutput, error) { + req, out := c.ListCostCategoryDefinitionsRequest(input) + return out, req.Send() +} + +// ListCostCategoryDefinitionsWithContext is the same as ListCostCategoryDefinitions with the addition of +// the ability to pass a context and additional request options. +// +// See ListCostCategoryDefinitions 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 *CostExplorer) ListCostCategoryDefinitionsWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, opts ...request.Option) (*ListCostCategoryDefinitionsOutput, error) { + req, out := c.ListCostCategoryDefinitionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListCostCategoryDefinitionsPages iterates over the pages of a ListCostCategoryDefinitions operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListCostCategoryDefinitions 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 ListCostCategoryDefinitions operation. +// pageNum := 0 +// err := client.ListCostCategoryDefinitionsPages(params, +// func(page *costexplorer.ListCostCategoryDefinitionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CostExplorer) ListCostCategoryDefinitionsPages(input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool) error { + return c.ListCostCategoryDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListCostCategoryDefinitionsPagesWithContext same as ListCostCategoryDefinitionsPages 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 *CostExplorer) ListCostCategoryDefinitionsPagesWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListCostCategoryDefinitionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListCostCategoryDefinitionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListCostCategoryDefinitionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opProvideAnomalyFeedback = "ProvideAnomalyFeedback" + +// ProvideAnomalyFeedbackRequest generates a "aws/request.Request" representing the +// client's request for the ProvideAnomalyFeedback 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 ProvideAnomalyFeedback for more information on using the ProvideAnomalyFeedback +// 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 ProvideAnomalyFeedbackRequest method. +// req, resp := client.ProvideAnomalyFeedbackRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback +func (c *CostExplorer) ProvideAnomalyFeedbackRequest(input *ProvideAnomalyFeedbackInput) (req *request.Request, output *ProvideAnomalyFeedbackOutput) { + op := &request.Operation{ + Name: opProvideAnomalyFeedback, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ProvideAnomalyFeedbackInput{} + } + + output = &ProvideAnomalyFeedbackOutput{} + req = c.newRequest(op, input, output) + return +} + +// ProvideAnomalyFeedback API operation for AWS Cost Explorer Service. +// +// Modifies the feedback property of a given cost anomaly. +// +// 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 Cost Explorer Service's +// API operation ProvideAnomalyFeedback for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback +func (c *CostExplorer) ProvideAnomalyFeedback(input *ProvideAnomalyFeedbackInput) (*ProvideAnomalyFeedbackOutput, error) { + req, out := c.ProvideAnomalyFeedbackRequest(input) + return out, req.Send() +} + +// ProvideAnomalyFeedbackWithContext is the same as ProvideAnomalyFeedback with the addition of +// the ability to pass a context and additional request options. +// +// See ProvideAnomalyFeedback 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 *CostExplorer) ProvideAnomalyFeedbackWithContext(ctx aws.Context, input *ProvideAnomalyFeedbackInput, opts ...request.Option) (*ProvideAnomalyFeedbackOutput, error) { + req, out := c.ProvideAnomalyFeedbackRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAnomalyMonitor = "UpdateAnomalyMonitor" + +// UpdateAnomalyMonitorRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAnomalyMonitor 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 UpdateAnomalyMonitor for more information on using the UpdateAnomalyMonitor +// 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 UpdateAnomalyMonitorRequest method. +// req, resp := client.UpdateAnomalyMonitorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor +func (c *CostExplorer) UpdateAnomalyMonitorRequest(input *UpdateAnomalyMonitorInput) (req *request.Request, output *UpdateAnomalyMonitorOutput) { + op := &request.Operation{ + Name: opUpdateAnomalyMonitor, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateAnomalyMonitorInput{} + } + + output = &UpdateAnomalyMonitorOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAnomalyMonitor API operation for AWS Cost Explorer Service. +// +// Updates an existing cost anomaly monitor. The changes made are applied going +// forward, and does not change anomalies detected in the past. +// +// 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 Cost Explorer Service's +// API operation UpdateAnomalyMonitor for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * UnknownMonitorException +// The cost anomaly monitor does not exist for the account. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor +func (c *CostExplorer) UpdateAnomalyMonitor(input *UpdateAnomalyMonitorInput) (*UpdateAnomalyMonitorOutput, error) { + req, out := c.UpdateAnomalyMonitorRequest(input) + return out, req.Send() +} + +// UpdateAnomalyMonitorWithContext is the same as UpdateAnomalyMonitor with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAnomalyMonitor 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 *CostExplorer) UpdateAnomalyMonitorWithContext(ctx aws.Context, input *UpdateAnomalyMonitorInput, opts ...request.Option) (*UpdateAnomalyMonitorOutput, error) { + req, out := c.UpdateAnomalyMonitorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAnomalySubscription = "UpdateAnomalySubscription" + +// UpdateAnomalySubscriptionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAnomalySubscription 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 UpdateAnomalySubscription for more information on using the UpdateAnomalySubscription +// 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 UpdateAnomalySubscriptionRequest method. +// req, resp := client.UpdateAnomalySubscriptionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription +func (c *CostExplorer) UpdateAnomalySubscriptionRequest(input *UpdateAnomalySubscriptionInput) (req *request.Request, output *UpdateAnomalySubscriptionOutput) { + op := &request.Operation{ + Name: opUpdateAnomalySubscription, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateAnomalySubscriptionInput{} + } + + output = &UpdateAnomalySubscriptionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAnomalySubscription API operation for AWS Cost Explorer Service. +// +// Updates an existing cost anomaly monitor subscription. +// +// 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 Cost Explorer Service's +// API operation UpdateAnomalySubscription for usage and error information. +// +// Returned Error Types: +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// * UnknownMonitorException +// The cost anomaly monitor does not exist for the account. +// +// * UnknownSubscriptionException +// The cost anomaly subscription does not exist for the account. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription +func (c *CostExplorer) UpdateAnomalySubscription(input *UpdateAnomalySubscriptionInput) (*UpdateAnomalySubscriptionOutput, error) { + req, out := c.UpdateAnomalySubscriptionRequest(input) + return out, req.Send() +} + +// UpdateAnomalySubscriptionWithContext is the same as UpdateAnomalySubscription with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAnomalySubscription 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 *CostExplorer) UpdateAnomalySubscriptionWithContext(ctx aws.Context, input *UpdateAnomalySubscriptionInput, opts ...request.Option) (*UpdateAnomalySubscriptionOutput, error) { + req, out := c.UpdateAnomalySubscriptionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateCostCategoryDefinition = "UpdateCostCategoryDefinition" + +// UpdateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateCostCategoryDefinition 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 UpdateCostCategoryDefinition for more information on using the UpdateCostCategoryDefinition +// 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 UpdateCostCategoryDefinitionRequest method. +// req, resp := client.UpdateCostCategoryDefinitionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition +func (c *CostExplorer) UpdateCostCategoryDefinitionRequest(input *UpdateCostCategoryDefinitionInput) (req *request.Request, output *UpdateCostCategoryDefinitionOutput) { + op := &request.Operation{ + Name: opUpdateCostCategoryDefinition, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateCostCategoryDefinitionInput{} + } + + output = &UpdateCostCategoryDefinitionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateCostCategoryDefinition API operation for AWS Cost Explorer Service. +// +// Updates an existing Cost Category. Changes made to the Cost Category rules +// will be used to categorize the current month’s expenses and future expenses. +// This won’t change categorization for the previous months. +// +// 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 Cost Explorer Service's +// API operation UpdateCostCategoryDefinition for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The specified ARN in the request doesn't exist. +// +// * ServiceQuotaExceededException +// You've reached the limit on the number of resources you can create, or exceeded +// the size of an individual resource. +// +// * LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition +func (c *CostExplorer) UpdateCostCategoryDefinition(input *UpdateCostCategoryDefinitionInput) (*UpdateCostCategoryDefinitionOutput, error) { + req, out := c.UpdateCostCategoryDefinitionRequest(input) + return out, req.Send() +} + +// UpdateCostCategoryDefinitionWithContext is the same as UpdateCostCategoryDefinition with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateCostCategoryDefinition 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 *CostExplorer) UpdateCostCategoryDefinitionWithContext(ctx aws.Context, input *UpdateCostCategoryDefinitionInput, opts ...request.Option) (*UpdateCostCategoryDefinitionOutput, error) { + req, out := c.UpdateCostCategoryDefinitionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// An unusual cost pattern. This consists of the detailed metadata and the current +// status of the anomaly object. +type Anomaly struct { + _ struct{} `type:"structure"` + + // The last day the anomaly is detected. + AnomalyEndDate *string `type:"string"` + + // The unique identifier for the anomaly. + // + // AnomalyId is a required field + AnomalyId *string `type:"string" required:"true"` + + // The latest and maximum score for the anomaly. + // + // AnomalyScore is a required field + AnomalyScore *AnomalyScore `type:"structure" required:"true"` + + // The first day the anomaly is detected. + AnomalyStartDate *string `type:"string"` + + // The dimension for the anomaly. For example, an AWS service in a service monitor. + DimensionValue *string `type:"string"` + + // The feedback value. + Feedback *string `type:"string" enum:"AnomalyFeedbackType"` + + // The dollar impact for the anomaly. + // + // Impact is a required field + Impact *Impact `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) for the cost monitor that generated this anomaly. + // + // MonitorArn is a required field + MonitorArn *string `type:"string" required:"true"` + + // The list of identified root causes for the anomaly. + RootCauses []*RootCause `type:"list"` +} + +// 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() +} + +// SetAnomalyEndDate sets the AnomalyEndDate field's value. +func (s *Anomaly) SetAnomalyEndDate(v string) *Anomaly { + s.AnomalyEndDate = &v + return s +} + +// SetAnomalyId sets the AnomalyId field's value. +func (s *Anomaly) SetAnomalyId(v string) *Anomaly { + s.AnomalyId = &v + return s +} + +// SetAnomalyScore sets the AnomalyScore field's value. +func (s *Anomaly) SetAnomalyScore(v *AnomalyScore) *Anomaly { + s.AnomalyScore = v + return s +} + +// SetAnomalyStartDate sets the AnomalyStartDate field's value. +func (s *Anomaly) SetAnomalyStartDate(v string) *Anomaly { + s.AnomalyStartDate = &v + return s +} + +// SetDimensionValue sets the DimensionValue field's value. +func (s *Anomaly) SetDimensionValue(v string) *Anomaly { + s.DimensionValue = &v + return s +} + +// SetFeedback sets the Feedback field's value. +func (s *Anomaly) SetFeedback(v string) *Anomaly { + s.Feedback = &v + return s +} + +// SetImpact sets the Impact field's value. +func (s *Anomaly) SetImpact(v *Impact) *Anomaly { + s.Impact = v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *Anomaly) SetMonitorArn(v string) *Anomaly { + s.MonitorArn = &v + return s +} + +// SetRootCauses sets the RootCauses field's value. +func (s *Anomaly) SetRootCauses(v []*RootCause) *Anomaly { + s.RootCauses = v + return s +} + +// The time period for an anomaly. +type AnomalyDateInterval struct { + _ struct{} `type:"structure"` + + // The last date an anomaly was observed. + EndDate *string `type:"string"` + + // The first date an anomaly was observed. + // + // StartDate is a required field + StartDate *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s AnomalyDateInterval) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnomalyDateInterval) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnomalyDateInterval) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnomalyDateInterval"} + if s.StartDate == nil { + invalidParams.Add(request.NewErrParamRequired("StartDate")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndDate sets the EndDate field's value. +func (s *AnomalyDateInterval) SetEndDate(v string) *AnomalyDateInterval { + s.EndDate = &v + return s +} + +// SetStartDate sets the StartDate field's value. +func (s *AnomalyDateInterval) SetStartDate(v string) *AnomalyDateInterval { + s.StartDate = &v + return s +} + +// This object continuously inspects your account's cost data for anomalies, +// based on MonitorType and MonitorSpecification. The content consists of detailed +// metadata and the current status of the monitor object. +type AnomalyMonitor struct { + _ struct{} `type:"structure"` + + // The date when the monitor was created. + CreationDate *string `type:"string"` + + // The value for evaluated dimensions. + DimensionalValueCount *int64 `type:"integer"` + + // The date when the monitor last evaluated for anomalies. + LastEvaluatedDate *string `type:"string"` + + // The date when the monitor was last updated. + LastUpdatedDate *string `type:"string"` + + // The Amazon Resource Name (ARN) value. + MonitorArn *string `type:"string"` + + // The dimensions to evaluate. + MonitorDimension *string `type:"string" enum:"MonitorDimension"` + + // The name of the monitor. + // + // MonitorName is a required field + MonitorName *string `type:"string" required:"true"` + + // Use Expression to filter by cost or by usage. There are two patterns: + // + // * Simple dimension values - You can set the dimension name and values + // for the filters that you plan to use. For example, you can filter for + // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks + // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", + // “us-west-1” ] } } The list of dimension values are OR'd together to + // retrieve cost or usage data. You can create Expression and DimensionValues + // objects using either with* methods or set* methods in multiple lines. + // + // * Compound dimension values with logical operations - You can use multiple + // Expression types and the logical operators AND/OR/NOT to create a list + // of one or more Expression objects. This allows you to filter on more advanced + // options. For example, you can filter on ((REGION == us-east-1 OR REGION + // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). + // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": + // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": + // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": + // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each + // Expression can have only one operator, the service returns an error if + // more than one is specified. The following example shows an Expression + // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": + // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } + // + // For GetRightsizingRecommendation action, a combination of OR and NOT is not + // supported. OR is not supported between different dimensions, or dimensions + // and tags. NOT operators aren't supported. Dimensions are also limited to + // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. + MonitorSpecification *Expression `type:"structure"` + + // The possible type values. + // + // MonitorType is a required field + MonitorType *string `type:"string" required:"true" enum:"MonitorType"` +} + +// String returns the string representation +func (s AnomalyMonitor) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnomalyMonitor) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnomalyMonitor) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnomalyMonitor"} + if s.MonitorName == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorName")) + } + if s.MonitorType == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorType")) + } + if s.MonitorSpecification != nil { + if err := s.MonitorSpecification.Validate(); err != nil { + invalidParams.AddNested("MonitorSpecification", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCreationDate sets the CreationDate field's value. +func (s *AnomalyMonitor) SetCreationDate(v string) *AnomalyMonitor { + s.CreationDate = &v + return s +} + +// SetDimensionalValueCount sets the DimensionalValueCount field's value. +func (s *AnomalyMonitor) SetDimensionalValueCount(v int64) *AnomalyMonitor { + s.DimensionalValueCount = &v + return s +} + +// SetLastEvaluatedDate sets the LastEvaluatedDate field's value. +func (s *AnomalyMonitor) SetLastEvaluatedDate(v string) *AnomalyMonitor { + s.LastEvaluatedDate = &v + return s +} + +// SetLastUpdatedDate sets the LastUpdatedDate field's value. +func (s *AnomalyMonitor) SetLastUpdatedDate(v string) *AnomalyMonitor { + s.LastUpdatedDate = &v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *AnomalyMonitor) SetMonitorArn(v string) *AnomalyMonitor { + s.MonitorArn = &v + return s +} + +// SetMonitorDimension sets the MonitorDimension field's value. +func (s *AnomalyMonitor) SetMonitorDimension(v string) *AnomalyMonitor { + s.MonitorDimension = &v + return s +} + +// SetMonitorName sets the MonitorName field's value. +func (s *AnomalyMonitor) SetMonitorName(v string) *AnomalyMonitor { + s.MonitorName = &v + return s +} + +// SetMonitorSpecification sets the MonitorSpecification field's value. +func (s *AnomalyMonitor) SetMonitorSpecification(v *Expression) *AnomalyMonitor { + s.MonitorSpecification = v + return s +} + +// SetMonitorType sets the MonitorType field's value. +func (s *AnomalyMonitor) SetMonitorType(v string) *AnomalyMonitor { + s.MonitorType = &v + return s +} + +// Quantifies the anomaly. The higher score means that it is more anomalous. +type AnomalyScore struct { + _ struct{} `type:"structure"` + + // The last observed score. + // + // CurrentScore is a required field + CurrentScore *float64 `type:"double" required:"true"` + + // The maximum score observed during the AnomalyDateInterval. + // + // MaxScore is a required field + MaxScore *float64 `type:"double" required:"true"` +} + +// String returns the string representation +func (s AnomalyScore) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnomalyScore) GoString() string { + return s.String() +} + +// SetCurrentScore sets the CurrentScore field's value. +func (s *AnomalyScore) SetCurrentScore(v float64) *AnomalyScore { + s.CurrentScore = &v + return s +} + +// SetMaxScore sets the MaxScore field's value. +func (s *AnomalyScore) SetMaxScore(v float64) *AnomalyScore { + s.MaxScore = &v + return s +} + +// The association between a monitor, threshold, and list of subscribers used +// to deliver notifications about anomalies detected by a monitor that exceeds +// a threshold. The content consists of the detailed metadata and the current +// status of the AnomalySubscription object. +type AnomalySubscription struct { + _ struct{} `type:"structure"` + + // Your unique account identifier. + AccountId *string `type:"string"` + + // The frequency at which anomaly reports are sent over email. + // + // Frequency is a required field + Frequency *string `type:"string" required:"true" enum:"AnomalySubscriptionFrequency"` + + // A list of cost anomaly monitors. + // + // MonitorArnList is a required field + MonitorArnList []*string `type:"list" required:"true"` + + // A list of subscribers to notify. + // + // Subscribers is a required field + Subscribers []*Subscriber `type:"list" required:"true"` + + // The AnomalySubscription Amazon Resource Name (ARN). + SubscriptionArn *string `type:"string"` + + // The name for the subscription. + // + // SubscriptionName is a required field + SubscriptionName *string `type:"string" required:"true"` + + // The dollar value that triggers a notification if the threshold is exceeded. + // + // Threshold is a required field + Threshold *float64 `type:"double" required:"true"` +} + +// String returns the string representation +func (s AnomalySubscription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnomalySubscription) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnomalySubscription) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnomalySubscription"} + if s.Frequency == nil { + invalidParams.Add(request.NewErrParamRequired("Frequency")) + } + if s.MonitorArnList == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorArnList")) + } + if s.Subscribers == nil { + invalidParams.Add(request.NewErrParamRequired("Subscribers")) + } + if s.SubscriptionName == nil { + invalidParams.Add(request.NewErrParamRequired("SubscriptionName")) + } + if s.Threshold == nil { + invalidParams.Add(request.NewErrParamRequired("Threshold")) + } + if s.Subscribers != nil { + for i, v := range s.Subscribers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *AnomalySubscription) SetAccountId(v string) *AnomalySubscription { + s.AccountId = &v + return s +} + +// SetFrequency sets the Frequency field's value. +func (s *AnomalySubscription) SetFrequency(v string) *AnomalySubscription { + s.Frequency = &v + return s +} + +// SetMonitorArnList sets the MonitorArnList field's value. +func (s *AnomalySubscription) SetMonitorArnList(v []*string) *AnomalySubscription { + s.MonitorArnList = v + return s +} + +// SetSubscribers sets the Subscribers field's value. +func (s *AnomalySubscription) SetSubscribers(v []*Subscriber) *AnomalySubscription { + s.Subscribers = v + return s +} + +// SetSubscriptionArn sets the SubscriptionArn field's value. +func (s *AnomalySubscription) SetSubscriptionArn(v string) *AnomalySubscription { + s.SubscriptionArn = &v + return s +} + +// SetSubscriptionName sets the SubscriptionName field's value. +func (s *AnomalySubscription) SetSubscriptionName(v string) *AnomalySubscription { + s.SubscriptionName = &v + return s +} + +// SetThreshold sets the Threshold field's value. +func (s *AnomalySubscription) SetThreshold(v float64) *AnomalySubscription { + s.Threshold = &v + return s +} + +// The requested report expired. Update the date interval and try again. +type BillExpirationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s BillExpirationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BillExpirationException) GoString() string { + return s.String() +} + +func newErrorBillExpirationException(v protocol.ResponseMetadata) error { + return &BillExpirationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *BillExpirationException) Code() string { + return "BillExpirationException" +} + +// Message returns the exception's message. +func (s *BillExpirationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *BillExpirationException) OrigErr() error { + return nil +} + +func (s *BillExpirationException) 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 *BillExpirationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *BillExpirationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The structure of Cost Categories. This includes detailed metadata and the +// set of rules for the CostCategory object. +type CostCategory struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + // + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` + + // The Cost Category's effective end date. + EffectiveEnd *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + // + // EffectiveStart is a required field + EffectiveStart *string `min:"20" type:"string" required:"true"` + + // The unique name of the Cost Category. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The rule schema version in this particular Cost Category. + // + // RuleVersion is a required field + RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` + + // Rules are processed in order. If there are multiple rules that match the + // line item, then the first rule to match is used to determine that Cost Category + // value. + // + // Rules is a required field + Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CostCategory) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CostCategory) GoString() string { + return s.String() +} + +// SetCostCategoryArn sets the CostCategoryArn field's value. +func (s *CostCategory) SetCostCategoryArn(v string) *CostCategory { + s.CostCategoryArn = &v + return s +} + +// SetEffectiveEnd sets the EffectiveEnd field's value. +func (s *CostCategory) SetEffectiveEnd(v string) *CostCategory { + s.EffectiveEnd = &v + return s +} + +// SetEffectiveStart sets the EffectiveStart field's value. +func (s *CostCategory) SetEffectiveStart(v string) *CostCategory { + s.EffectiveStart = &v + return s +} + +// SetName sets the Name field's value. +func (s *CostCategory) SetName(v string) *CostCategory { + s.Name = &v + return s +} + +// SetRuleVersion sets the RuleVersion field's value. +func (s *CostCategory) SetRuleVersion(v string) *CostCategory { + s.RuleVersion = &v + return s +} + +// SetRules sets the Rules field's value. +func (s *CostCategory) SetRules(v []*CostCategoryRule) *CostCategory { + s.Rules = v + return s +} + +// A reference to a Cost Category containing only enough information to identify +// the Cost Category. +// +// You can use this information to retrieve the full Cost Category information +// using DescribeCostCategory. +type CostCategoryReference struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. + CostCategoryArn *string `min:"20" type:"string"` + + // The Cost Category's effective end date. + EffectiveEnd *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + EffectiveStart *string `min:"20" type:"string"` + + // The unique name of the Cost Category. + Name *string `min:"1" type:"string"` + + // The number of rules associated with a specific Cost Category. + NumberOfRules *int64 `type:"integer"` +} + +// String returns the string representation +func (s CostCategoryReference) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CostCategoryReference) GoString() string { + return s.String() +} + +// SetCostCategoryArn sets the CostCategoryArn field's value. +func (s *CostCategoryReference) SetCostCategoryArn(v string) *CostCategoryReference { + s.CostCategoryArn = &v + return s +} + +// SetEffectiveEnd sets the EffectiveEnd field's value. +func (s *CostCategoryReference) SetEffectiveEnd(v string) *CostCategoryReference { + s.EffectiveEnd = &v + return s +} + +// SetEffectiveStart sets the EffectiveStart field's value. +func (s *CostCategoryReference) SetEffectiveStart(v string) *CostCategoryReference { + s.EffectiveStart = &v + return s +} + +// SetName sets the Name field's value. +func (s *CostCategoryReference) SetName(v string) *CostCategoryReference { + s.Name = &v + return s +} + +// SetNumberOfRules sets the NumberOfRules field's value. +func (s *CostCategoryReference) SetNumberOfRules(v int64) *CostCategoryReference { + s.NumberOfRules = &v + return s +} + +// Rules are processed in order. If there are multiple rules that match the +// line item, then the first rule to match is used to determine that Cost Category +// value. +type CostCategoryRule struct { + _ struct{} `type:"structure"` + + // An Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // object used to categorize costs. This supports dimensions, tags, and nested + // expressions. Currently the only dimensions supported are LINKED_ACCOUNT, + // SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME. + // + // Root level OR is not supported. We recommend that you create a separate rule + // instead. + // + // RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported + // for Cost Category expressions. This dimension uses different terms, depending + // on whether you're using the console or API/JSON editor. For a detailed comparison, + // see Term Comparisons (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) + // in the AWS Billing and Cost Management User Guide. + // + // Rule is a required field + Rule *Expression `type:"structure" required:"true"` + + // The value a line item will be categorized as, if it matches the rule. + // + // Value is a required field + Value *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CostCategoryRule) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CostCategoryRule) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CostCategoryRule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CostCategoryRule"} + if s.Rule == nil { + invalidParams.Add(request.NewErrParamRequired("Rule")) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + } + if s.Rule != nil { + if err := s.Rule.Validate(); err != nil { + invalidParams.AddNested("Rule", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRule sets the Rule field's value. +func (s *CostCategoryRule) SetRule(v *Expression) *CostCategoryRule { + s.Rule = v + return s +} + +// SetValue sets the Value field's value. +func (s *CostCategoryRule) SetValue(v string) *CostCategoryRule { + s.Value = &v + return s +} + +// The Cost Categories values used for filtering the costs. +type CostCategoryValues struct { + _ struct{} `type:"structure"` + + // The unique name of the Cost Category. + Key *string `min:"1" type:"string"` + + // The specific value of the Cost Category. + Values []*string `type:"list"` +} + +// String returns the string representation +func (s CostCategoryValues) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CostCategoryValues) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CostCategoryValues) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CostCategoryValues"} + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *CostCategoryValues) SetKey(v string) *CostCategoryValues { + s.Key = &v + return s +} + +// SetValues sets the Values field's value. +func (s *CostCategoryValues) SetValues(v []*string) *CostCategoryValues { + s.Values = v + return s +} + +// The amount of instance usage that a reservation covered. +type Coverage struct { + _ struct{} `type:"structure"` + + // The amount of cost that the reservation covered. + CoverageCost *CoverageCost `type:"structure"` + + // The amount of instance usage that the reservation covered, in hours. + CoverageHours *CoverageHours `type:"structure"` + + // The amount of instance usage that the reservation covered, in normalized + // units. + CoverageNormalizedUnits *CoverageNormalizedUnits `type:"structure"` +} + +// String returns the string representation +func (s Coverage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Coverage) GoString() string { + return s.String() +} + +// SetCoverageCost sets the CoverageCost field's value. +func (s *Coverage) SetCoverageCost(v *CoverageCost) *Coverage { + s.CoverageCost = v + return s +} + +// SetCoverageHours sets the CoverageHours field's value. +func (s *Coverage) SetCoverageHours(v *CoverageHours) *Coverage { + s.CoverageHours = v + return s +} + +// SetCoverageNormalizedUnits sets the CoverageNormalizedUnits field's value. +func (s *Coverage) SetCoverageNormalizedUnits(v *CoverageNormalizedUnits) *Coverage { + s.CoverageNormalizedUnits = v + return s +} + +// Reservation coverage for a specified period, in hours. +type CoverageByTime struct { + _ struct{} `type:"structure"` + + // The groups of instances that the reservation covered. + Groups []*ReservationCoverageGroup `type:"list"` + + // The period that this coverage was used over. + TimePeriod *DateInterval `type:"structure"` + + // The total reservation coverage, in hours. + Total *Coverage `type:"structure"` +} + +// String returns the string representation +func (s CoverageByTime) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CoverageByTime) GoString() string { + return s.String() +} + +// SetGroups sets the Groups field's value. +func (s *CoverageByTime) SetGroups(v []*ReservationCoverageGroup) *CoverageByTime { + s.Groups = v + return s +} + +// SetTimePeriod sets the TimePeriod field's value. +func (s *CoverageByTime) SetTimePeriod(v *DateInterval) *CoverageByTime { + s.TimePeriod = v + return s +} + +// SetTotal sets the Total field's value. +func (s *CoverageByTime) SetTotal(v *Coverage) *CoverageByTime { + s.Total = v + return s +} + +// How much it costs to run an instance. +type CoverageCost struct { + _ struct{} `type:"structure"` + + // How much an On-Demand Instance costs. + OnDemandCost *string `type:"string"` +} + +// String returns the string representation +func (s CoverageCost) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CoverageCost) GoString() string { + return s.String() +} + +// SetOnDemandCost sets the OnDemandCost field's value. +func (s *CoverageCost) SetOnDemandCost(v string) *CoverageCost { + s.OnDemandCost = &v + return s +} + +// How long a running instance either used a reservation or was On-Demand. +type CoverageHours struct { + _ struct{} `type:"structure"` + + // The percentage of instance hours that a reservation covered. + CoverageHoursPercentage *string `type:"string"` + + // The number of instance running hours that On-Demand Instances covered. + OnDemandHours *string `type:"string"` + + // The number of instance running hours that reservations covered. + ReservedHours *string `type:"string"` + + // The total instance usage, in hours. + TotalRunningHours *string `type:"string"` +} + +// String returns the string representation +func (s CoverageHours) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CoverageHours) GoString() string { + return s.String() +} + +// SetCoverageHoursPercentage sets the CoverageHoursPercentage field's value. +func (s *CoverageHours) SetCoverageHoursPercentage(v string) *CoverageHours { + s.CoverageHoursPercentage = &v + return s +} + +// SetOnDemandHours sets the OnDemandHours field's value. +func (s *CoverageHours) SetOnDemandHours(v string) *CoverageHours { + s.OnDemandHours = &v + return s +} + +// SetReservedHours sets the ReservedHours field's value. +func (s *CoverageHours) SetReservedHours(v string) *CoverageHours { + s.ReservedHours = &v + return s +} + +// SetTotalRunningHours sets the TotalRunningHours field's value. +func (s *CoverageHours) SetTotalRunningHours(v string) *CoverageHours { + s.TotalRunningHours = &v + return s +} + +// The amount of instance usage, in normalized units. Normalized units enable +// you to see your EC2 usage for multiple sizes of instances in a uniform way. +// For example, suppose you run an xlarge instance and a 2xlarge instance. If +// you run both instances for the same amount of time, the 2xlarge instance +// uses twice as much of your reservation as the xlarge instance, even though +// both instances show only one instance-hour. Using normalized units instead +// of instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge +// instance used 16 normalized units. +// +// For more information, see Modifying Reserved Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) +// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. +type CoverageNormalizedUnits struct { + _ struct{} `type:"structure"` + + // The percentage of your used instance normalized units that a reservation + // covers. + CoverageNormalizedUnitsPercentage *string `type:"string"` + + // The number of normalized units that are covered by On-Demand Instances instead + // of a reservation. + OnDemandNormalizedUnits *string `type:"string"` + + // The number of normalized units that a reservation covers. + ReservedNormalizedUnits *string `type:"string"` + + // The total number of normalized units that you used. + TotalRunningNormalizedUnits *string `type:"string"` +} + +// String returns the string representation +func (s CoverageNormalizedUnits) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CoverageNormalizedUnits) GoString() string { + return s.String() +} + +// SetCoverageNormalizedUnitsPercentage sets the CoverageNormalizedUnitsPercentage field's value. +func (s *CoverageNormalizedUnits) SetCoverageNormalizedUnitsPercentage(v string) *CoverageNormalizedUnits { + s.CoverageNormalizedUnitsPercentage = &v + return s +} + +// SetOnDemandNormalizedUnits sets the OnDemandNormalizedUnits field's value. +func (s *CoverageNormalizedUnits) SetOnDemandNormalizedUnits(v string) *CoverageNormalizedUnits { + s.OnDemandNormalizedUnits = &v + return s +} + +// SetReservedNormalizedUnits sets the ReservedNormalizedUnits field's value. +func (s *CoverageNormalizedUnits) SetReservedNormalizedUnits(v string) *CoverageNormalizedUnits { + s.ReservedNormalizedUnits = &v + return s +} + +// SetTotalRunningNormalizedUnits sets the TotalRunningNormalizedUnits field's value. +func (s *CoverageNormalizedUnits) SetTotalRunningNormalizedUnits(v string) *CoverageNormalizedUnits { + s.TotalRunningNormalizedUnits = &v + return s +} + +type CreateAnomalyMonitorInput struct { + _ struct{} `type:"structure"` + + // The cost anomaly detection monitor object that you want to create. + // + // AnomalyMonitor is a required field + AnomalyMonitor *AnomalyMonitor `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateAnomalyMonitorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAnomalyMonitorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAnomalyMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAnomalyMonitorInput"} + if s.AnomalyMonitor == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyMonitor")) + } + if s.AnomalyMonitor != nil { + if err := s.AnomalyMonitor.Validate(); err != nil { + invalidParams.AddNested("AnomalyMonitor", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyMonitor sets the AnomalyMonitor field's value. +func (s *CreateAnomalyMonitorInput) SetAnomalyMonitor(v *AnomalyMonitor) *CreateAnomalyMonitorInput { + s.AnomalyMonitor = v + return s +} + +type CreateAnomalyMonitorOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of your newly created cost anomaly detection monitor. + // + // MonitorArn is a required field + MonitorArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAnomalyMonitorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAnomalyMonitorOutput) GoString() string { + return s.String() +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *CreateAnomalyMonitorOutput) SetMonitorArn(v string) *CreateAnomalyMonitorOutput { + s.MonitorArn = &v + return s +} + +type CreateAnomalySubscriptionInput struct { + _ struct{} `type:"structure"` + + // The cost anomaly subscription object that you want to create. + // + // AnomalySubscription is a required field + AnomalySubscription *AnomalySubscription `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateAnomalySubscriptionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAnomalySubscriptionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAnomalySubscriptionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAnomalySubscriptionInput"} + if s.AnomalySubscription == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalySubscription")) + } + if s.AnomalySubscription != nil { + if err := s.AnomalySubscription.Validate(); err != nil { + invalidParams.AddNested("AnomalySubscription", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalySubscription sets the AnomalySubscription field's value. +func (s *CreateAnomalySubscriptionInput) SetAnomalySubscription(v *AnomalySubscription) *CreateAnomalySubscriptionInput { + s.AnomalySubscription = v + return s +} + +type CreateAnomalySubscriptionOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of your newly created cost anomaly subscription. + // + // SubscriptionArn is a required field + SubscriptionArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAnomalySubscriptionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAnomalySubscriptionOutput) GoString() string { + return s.String() +} + +// SetSubscriptionArn sets the SubscriptionArn field's value. +func (s *CreateAnomalySubscriptionOutput) SetSubscriptionArn(v string) *CreateAnomalySubscriptionOutput { + s.SubscriptionArn = &v + return s +} + +type CreateCostCategoryDefinitionInput struct { + _ struct{} `type:"structure"` + + // The unique name of the Cost Category. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The rule schema version in this particular Cost Category. + // + // RuleVersion is a required field + RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` + + // The Cost Category rules used to categorize costs. For more information, see + // CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html). + // + // Rules is a required field + Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateCostCategoryDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateCostCategoryDefinitionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateCostCategoryDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateCostCategoryDefinitionInput"} + 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.RuleVersion == nil { + invalidParams.Add(request.NewErrParamRequired("RuleVersion")) + } + if s.Rules == nil { + invalidParams.Add(request.NewErrParamRequired("Rules")) + } + if s.Rules != nil && len(s.Rules) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Rules", 1)) + } + if s.Rules != nil { + for i, v := range s.Rules { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateCostCategoryDefinitionInput) SetName(v string) *CreateCostCategoryDefinitionInput { + s.Name = &v + return s +} + +// SetRuleVersion sets the RuleVersion field's value. +func (s *CreateCostCategoryDefinitionInput) SetRuleVersion(v string) *CreateCostCategoryDefinitionInput { + s.RuleVersion = &v + return s +} + +// SetRules sets the Rules field's value. +func (s *CreateCostCategoryDefinitionInput) SetRules(v []*CostCategoryRule) *CreateCostCategoryDefinitionInput { + s.Rules = v + return s +} + +type CreateCostCategoryDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your newly created Cost Category. + CostCategoryArn *string `min:"20" type:"string"` + + // The Cost Category's effective start date. + EffectiveStart *string `min:"20" type:"string"` +} + +// String returns the string representation +func (s CreateCostCategoryDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateCostCategoryDefinitionOutput) GoString() string { + return s.String() +} + +// SetCostCategoryArn sets the CostCategoryArn field's value. +func (s *CreateCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *CreateCostCategoryDefinitionOutput { + s.CostCategoryArn = &v + return s +} + +// SetEffectiveStart sets the EffectiveStart field's value. +func (s *CreateCostCategoryDefinitionOutput) SetEffectiveStart(v string) *CreateCostCategoryDefinitionOutput { + s.EffectiveStart = &v + return s +} + +// Context about the current instance. +type CurrentInstance struct { + _ struct{} `type:"structure"` + + // The currency code that AWS used to calculate the costs for this instance. + CurrencyCode *string `type:"string"` + + // The name you've given an instance. This field will show as blank if you haven't + // given the instance a name. + InstanceName *string `type:"string"` + + // Current On-Demand cost of operating this instance on a monthly basis. + MonthlyCost *string `type:"string"` + + // Number of hours during the lookback period billed at On-Demand rates. + OnDemandHoursInLookbackPeriod *string `type:"string"` + + // Number of hours during the lookback period covered by reservations. + ReservationCoveredHoursInLookbackPeriod *string `type:"string"` + + // Details about the resource and utilization. + ResourceDetails *ResourceDetails `type:"structure"` + + // Resource ID of the current instance. + ResourceId *string `type:"string"` + + // Utilization information of the current instance during the lookback period. + ResourceUtilization *ResourceUtilization `type:"structure"` + + // Number of hours during the lookback period covered by Savings Plans. + SavingsPlansCoveredHoursInLookbackPeriod *string `type:"string"` + + // Cost allocation resource tags applied to the instance. + Tags []*TagValues `type:"list"` + + // The total number of hours the instance ran during the lookback period. + TotalRunningHoursInLookbackPeriod *string `type:"string"` +} + +// String returns the string representation +func (s CurrentInstance) String() string { + return awsutil.Prettify(s) +} // GoString returns the string representation -func (s BillExpirationException) GoString() string { +func (s CurrentInstance) GoString() string { return s.String() } -func newErrorBillExpirationException(v protocol.ResponseMetadata) error { - return &BillExpirationException{ +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *CurrentInstance) SetCurrencyCode(v string) *CurrentInstance { + s.CurrencyCode = &v + return s +} + +// SetInstanceName sets the InstanceName field's value. +func (s *CurrentInstance) SetInstanceName(v string) *CurrentInstance { + s.InstanceName = &v + return s +} + +// SetMonthlyCost sets the MonthlyCost field's value. +func (s *CurrentInstance) SetMonthlyCost(v string) *CurrentInstance { + s.MonthlyCost = &v + return s +} + +// SetOnDemandHoursInLookbackPeriod sets the OnDemandHoursInLookbackPeriod field's value. +func (s *CurrentInstance) SetOnDemandHoursInLookbackPeriod(v string) *CurrentInstance { + s.OnDemandHoursInLookbackPeriod = &v + return s +} + +// SetReservationCoveredHoursInLookbackPeriod sets the ReservationCoveredHoursInLookbackPeriod field's value. +func (s *CurrentInstance) SetReservationCoveredHoursInLookbackPeriod(v string) *CurrentInstance { + s.ReservationCoveredHoursInLookbackPeriod = &v + return s +} + +// SetResourceDetails sets the ResourceDetails field's value. +func (s *CurrentInstance) SetResourceDetails(v *ResourceDetails) *CurrentInstance { + s.ResourceDetails = v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *CurrentInstance) SetResourceId(v string) *CurrentInstance { + s.ResourceId = &v + return s +} + +// SetResourceUtilization sets the ResourceUtilization field's value. +func (s *CurrentInstance) SetResourceUtilization(v *ResourceUtilization) *CurrentInstance { + s.ResourceUtilization = v + return s +} + +// SetSavingsPlansCoveredHoursInLookbackPeriod sets the SavingsPlansCoveredHoursInLookbackPeriod field's value. +func (s *CurrentInstance) SetSavingsPlansCoveredHoursInLookbackPeriod(v string) *CurrentInstance { + s.SavingsPlansCoveredHoursInLookbackPeriod = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CurrentInstance) SetTags(v []*TagValues) *CurrentInstance { + s.Tags = v + return s +} + +// SetTotalRunningHoursInLookbackPeriod sets the TotalRunningHoursInLookbackPeriod field's value. +func (s *CurrentInstance) SetTotalRunningHoursInLookbackPeriod(v string) *CurrentInstance { + s.TotalRunningHoursInLookbackPeriod = &v + return s +} + +// The requested data is unavailable. +type DataUnavailableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s DataUnavailableException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DataUnavailableException) GoString() string { + return s.String() +} + +func newErrorDataUnavailableException(v protocol.ResponseMetadata) error { + return &DataUnavailableException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *BillExpirationException) Code() string { - return "BillExpirationException" +func (s *DataUnavailableException) Code() string { + return "DataUnavailableException" } // Message returns the exception's message. -func (s *BillExpirationException) Message() string { +func (s *DataUnavailableException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -1965,225 +4177,292 @@ func (s *BillExpirationException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *BillExpirationException) OrigErr() error { +func (s *DataUnavailableException) OrigErr() error { return nil } -func (s *BillExpirationException) Error() string { +func (s *DataUnavailableException) 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 *BillExpirationException) StatusCode() int { +func (s *DataUnavailableException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *BillExpirationException) RequestID() string { +func (s *DataUnavailableException) RequestID() string { return s.RespMetadata.RequestID } -// The structure of Cost Categories. This includes detailed metadata and the -// set of rules for the CostCategory object. -type CostCategory struct { +// The time period that you want the usage and costs for. +type DateInterval struct { _ struct{} `type:"structure"` - // The unique identifier for your Cost Category. + // The end of the time period that you want the usage and costs for. The end + // date is exclusive. For example, if end is 2017-05-01, AWS retrieves cost + // and usage data from the start date up to, but not including, 2017-05-01. // - // CostCategoryArn is a required field - CostCategoryArn *string `min:"20" type:"string" required:"true"` - - // The Cost Category's effective end date. - EffectiveEnd *string `min:"20" type:"string"` + // End is a required field + End *string `type:"string" required:"true"` - // The Cost Category's effective start date. + // The beginning of the time period that you want the usage and costs for. The + // start date is inclusive. For example, if start is 2017-01-01, AWS retrieves + // cost and usage data starting at 2017-01-01 up to the end date. // - // EffectiveStart is a required field - EffectiveStart *string `min:"20" type:"string" required:"true"` + // Start is a required field + Start *string `type:"string" required:"true"` +} - // The unique name of the Cost Category. +// String returns the string representation +func (s DateInterval) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DateInterval) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DateInterval) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DateInterval"} + if s.End == nil { + invalidParams.Add(request.NewErrParamRequired("End")) + } + if s.Start == nil { + invalidParams.Add(request.NewErrParamRequired("Start")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnd sets the End field's value. +func (s *DateInterval) SetEnd(v string) *DateInterval { + s.End = &v + return s +} + +// SetStart sets the Start field's value. +func (s *DateInterval) SetStart(v string) *DateInterval { + s.Start = &v + return s +} + +type DeleteAnomalyMonitorInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the cost anomaly monitor that you want to delete. // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` + // MonitorArn is a required field + MonitorArn *string `type:"string" required:"true"` +} - // The rule schema version in this particular Cost Category. +// String returns the string representation +func (s DeleteAnomalyMonitorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAnomalyMonitorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAnomalyMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAnomalyMonitorInput"} + if s.MonitorArn == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *DeleteAnomalyMonitorInput) SetMonitorArn(v string) *DeleteAnomalyMonitorInput { + s.MonitorArn = &v + return s +} + +type DeleteAnomalyMonitorOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAnomalyMonitorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAnomalyMonitorOutput) GoString() string { + return s.String() +} + +type DeleteAnomalySubscriptionInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the cost anomaly subscription that you want to delete. // - // RuleVersion is a required field - RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` + // SubscriptionArn is a required field + SubscriptionArn *string `type:"string" required:"true"` +} - // Rules are processed in order. If there are multiple rules that match the - // line item, then the first rule to match is used to determine that Cost Category - // value. +// String returns the string representation +func (s DeleteAnomalySubscriptionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAnomalySubscriptionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAnomalySubscriptionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAnomalySubscriptionInput"} + if s.SubscriptionArn == nil { + invalidParams.Add(request.NewErrParamRequired("SubscriptionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSubscriptionArn sets the SubscriptionArn field's value. +func (s *DeleteAnomalySubscriptionInput) SetSubscriptionArn(v string) *DeleteAnomalySubscriptionInput { + s.SubscriptionArn = &v + return s +} + +type DeleteAnomalySubscriptionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAnomalySubscriptionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAnomalySubscriptionOutput) GoString() string { + return s.String() +} + +type DeleteCostCategoryDefinitionInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for your Cost Category. // - // Rules is a required field - Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` } // String returns the string representation -func (s CostCategory) String() string { +func (s DeleteCostCategoryDefinitionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CostCategory) GoString() string { +func (s DeleteCostCategoryDefinitionInput) GoString() string { return s.String() } -// SetCostCategoryArn sets the CostCategoryArn field's value. -func (s *CostCategory) SetCostCategoryArn(v string) *CostCategory { - s.CostCategoryArn = &v - return s -} - -// SetEffectiveEnd sets the EffectiveEnd field's value. -func (s *CostCategory) SetEffectiveEnd(v string) *CostCategory { - s.EffectiveEnd = &v - return s -} - -// SetEffectiveStart sets the EffectiveStart field's value. -func (s *CostCategory) SetEffectiveStart(v string) *CostCategory { - s.EffectiveStart = &v - return s -} - -// SetName sets the Name field's value. -func (s *CostCategory) SetName(v string) *CostCategory { - s.Name = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteCostCategoryDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteCostCategoryDefinitionInput"} + if s.CostCategoryArn == nil { + invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) + } + if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) + } -// SetRuleVersion sets the RuleVersion field's value. -func (s *CostCategory) SetRuleVersion(v string) *CostCategory { - s.RuleVersion = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetRules sets the Rules field's value. -func (s *CostCategory) SetRules(v []*CostCategoryRule) *CostCategory { - s.Rules = v +// SetCostCategoryArn sets the CostCategoryArn field's value. +func (s *DeleteCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionInput { + s.CostCategoryArn = &v return s } -// A reference to a Cost Category containing only enough information to identify -// the Cost Category. -// -// You can use this information to retrieve the full Cost Category information -// using DescribeCostCategory. -type CostCategoryReference struct { +type DeleteCostCategoryDefinitionOutput struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. CostCategoryArn *string `min:"20" type:"string"` - // The Cost Category's effective end date. + // The effective end date of the Cost Category as a result of deleting it. No + // costs after this date will be categorized by the deleted Cost Category. EffectiveEnd *string `min:"20" type:"string"` - - // The Cost Category's effective start date. - EffectiveStart *string `min:"20" type:"string"` - - // The unique name of the Cost Category. - Name *string `min:"1" type:"string"` - - // The number of rules associated with a specific Cost Category. - NumberOfRules *int64 `type:"integer"` } // String returns the string representation -func (s CostCategoryReference) String() string { +func (s DeleteCostCategoryDefinitionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CostCategoryReference) GoString() string { +func (s DeleteCostCategoryDefinitionOutput) GoString() string { return s.String() } // SetCostCategoryArn sets the CostCategoryArn field's value. -func (s *CostCategoryReference) SetCostCategoryArn(v string) *CostCategoryReference { +func (s *DeleteCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionOutput { s.CostCategoryArn = &v return s } // SetEffectiveEnd sets the EffectiveEnd field's value. -func (s *CostCategoryReference) SetEffectiveEnd(v string) *CostCategoryReference { +func (s *DeleteCostCategoryDefinitionOutput) SetEffectiveEnd(v string) *DeleteCostCategoryDefinitionOutput { s.EffectiveEnd = &v return s } -// SetEffectiveStart sets the EffectiveStart field's value. -func (s *CostCategoryReference) SetEffectiveStart(v string) *CostCategoryReference { - s.EffectiveStart = &v - return s -} - -// SetName sets the Name field's value. -func (s *CostCategoryReference) SetName(v string) *CostCategoryReference { - s.Name = &v - return s -} - -// SetNumberOfRules sets the NumberOfRules field's value. -func (s *CostCategoryReference) SetNumberOfRules(v int64) *CostCategoryReference { - s.NumberOfRules = &v - return s -} - -// Rules are processed in order. If there are multiple rules that match the -// line item, then the first rule to match is used to determine that Cost Category -// value. -type CostCategoryRule struct { +type DescribeCostCategoryDefinitionInput struct { _ struct{} `type:"structure"` - // An Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) - // object used to categorize costs. This supports dimensions, Tags, and nested - // expressions. Currently the only dimensions supported are LINKED_ACCOUNT, - // SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME. - // - // Root level OR is not supported. We recommend that you create a separate rule - // instead. - // - // RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported - // for Cost Category expressions. This dimension uses different terms, depending - // on whether you're using the console or API/JSON editor. For a detailed comparison, - // see Term Comparisons (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) - // in the AWS Billing and Cost Management User Guide. + // The unique identifier for your Cost Category. // - // Rule is a required field - Rule *Expression `type:"structure" required:"true"` + // CostCategoryArn is a required field + CostCategoryArn *string `min:"20" type:"string" required:"true"` - // The value a line item will be categorized as, if it matches the rule. - // - // Value is a required field - Value *string `min:"1" type:"string" required:"true"` + // The date when the Cost Category was effective. + EffectiveOn *string `min:"20" type:"string"` } // String returns the string representation -func (s CostCategoryRule) String() string { +func (s DescribeCostCategoryDefinitionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CostCategoryRule) GoString() string { +func (s DescribeCostCategoryDefinitionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CostCategoryRule) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CostCategoryRule"} - if s.Rule == nil { - invalidParams.Add(request.NewErrParamRequired("Rule")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) +func (s *DescribeCostCategoryDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeCostCategoryDefinitionInput"} + if s.CostCategoryArn == nil { + invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) } - if s.Rule != nil { - if err := s.Rule.Validate(); err != nil { - invalidParams.AddNested("Rule", err.(request.ErrInvalidParams)) - } + if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) } if invalidParams.Len() > 0 { @@ -2192,611 +4471,588 @@ func (s *CostCategoryRule) Validate() error { return nil } -// SetRule sets the Rule field's value. -func (s *CostCategoryRule) SetRule(v *Expression) *CostCategoryRule { - s.Rule = v +// SetCostCategoryArn sets the CostCategoryArn field's value. +func (s *DescribeCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DescribeCostCategoryDefinitionInput { + s.CostCategoryArn = &v return s } -// SetValue sets the Value field's value. -func (s *CostCategoryRule) SetValue(v string) *CostCategoryRule { - s.Value = &v +// SetEffectiveOn sets the EffectiveOn field's value. +func (s *DescribeCostCategoryDefinitionInput) SetEffectiveOn(v string) *DescribeCostCategoryDefinitionInput { + s.EffectiveOn = &v return s } -// The Cost Categories values used for filtering the costs. -type CostCategoryValues struct { +type DescribeCostCategoryDefinitionOutput struct { _ struct{} `type:"structure"` - // The unique name of the Cost Category. - Key *string `min:"1" type:"string"` - - // The specific value of the Cost Category. - Values []*string `type:"list"` + // The structure of Cost Categories. This includes detailed metadata and the + // set of rules for the CostCategory object. + CostCategory *CostCategory `type:"structure"` } // String returns the string representation -func (s CostCategoryValues) String() string { +func (s DescribeCostCategoryDefinitionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CostCategoryValues) GoString() string { +func (s DescribeCostCategoryDefinitionOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CostCategoryValues) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CostCategoryValues"} - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *CostCategoryValues) SetKey(v string) *CostCategoryValues { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *CostCategoryValues) SetValues(v []*string) *CostCategoryValues { - s.Values = v +// SetCostCategory sets the CostCategory field's value. +func (s *DescribeCostCategoryDefinitionOutput) SetCostCategory(v *CostCategory) *DescribeCostCategoryDefinitionOutput { + s.CostCategory = v return s } -// The amount of instance usage that a reservation covered. -type Coverage struct { +// The metadata that you can use to filter and group your results. You can use +// GetDimensionValues to find specific values. +type DimensionValues struct { _ struct{} `type:"structure"` - // The amount of cost that the reservation covered. - CoverageCost *CoverageCost `type:"structure"` + // The names of the metadata types that you can use to filter and group your + // results. For example, AZ returns a list of Availability Zones. + Key *string `type:"string" enum:"Dimension"` - // The amount of instance usage that the reservation covered, in hours. - CoverageHours *CoverageHours `type:"structure"` + // The match options that you can use to filter your results. MatchOptions is + // only applicable for actions related to Cost Category. The default values + // for MatchOptions are EQUALS and CASE_SENSITIVE. + MatchOptions []*string `type:"list"` - // The amount of instance usage that the reservation covered, in normalized - // units. - CoverageNormalizedUnits *CoverageNormalizedUnits `type:"structure"` + // The metadata values that you can use to filter and group your results. You + // can use GetDimensionValues to find specific values. + Values []*string `type:"list"` } // String returns the string representation -func (s Coverage) String() string { +func (s DimensionValues) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s Coverage) GoString() string { +func (s DimensionValues) GoString() string { return s.String() } -// SetCoverageCost sets the CoverageCost field's value. -func (s *Coverage) SetCoverageCost(v *CoverageCost) *Coverage { - s.CoverageCost = v +// SetKey sets the Key field's value. +func (s *DimensionValues) SetKey(v string) *DimensionValues { + s.Key = &v return s } -// SetCoverageHours sets the CoverageHours field's value. -func (s *Coverage) SetCoverageHours(v *CoverageHours) *Coverage { - s.CoverageHours = v +// SetMatchOptions sets the MatchOptions field's value. +func (s *DimensionValues) SetMatchOptions(v []*string) *DimensionValues { + s.MatchOptions = v return s } -// SetCoverageNormalizedUnits sets the CoverageNormalizedUnits field's value. -func (s *Coverage) SetCoverageNormalizedUnits(v *CoverageNormalizedUnits) *Coverage { - s.CoverageNormalizedUnits = v +// SetValues sets the Values field's value. +func (s *DimensionValues) SetValues(v []*string) *DimensionValues { + s.Values = v return s } -// Reservation coverage for a specified period, in hours. -type CoverageByTime struct { +// The metadata of a specific type that you can use to filter and group your +// results. You can use GetDimensionValues to find specific values. +type DimensionValuesWithAttributes struct { _ struct{} `type:"structure"` - // The groups of instances that the reservation covered. - Groups []*ReservationCoverageGroup `type:"list"` - - // The period that this coverage was used over. - TimePeriod *DateInterval `type:"structure"` + // The attribute that applies to a specific Dimension. + Attributes map[string]*string `type:"map"` - // The total reservation coverage, in hours. - Total *Coverage `type:"structure"` + // The value of a dimension with a specific attribute. + Value *string `type:"string"` } // String returns the string representation -func (s CoverageByTime) String() string { +func (s DimensionValuesWithAttributes) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CoverageByTime) GoString() string { +func (s DimensionValuesWithAttributes) GoString() string { return s.String() } -// SetGroups sets the Groups field's value. -func (s *CoverageByTime) SetGroups(v []*ReservationCoverageGroup) *CoverageByTime { - s.Groups = v - return s -} - -// SetTimePeriod sets the TimePeriod field's value. -func (s *CoverageByTime) SetTimePeriod(v *DateInterval) *CoverageByTime { - s.TimePeriod = v +// SetAttributes sets the Attributes field's value. +func (s *DimensionValuesWithAttributes) SetAttributes(v map[string]*string) *DimensionValuesWithAttributes { + s.Attributes = v return s } -// SetTotal sets the Total field's value. -func (s *CoverageByTime) SetTotal(v *Coverage) *CoverageByTime { - s.Total = v +// SetValue sets the Value field's value. +func (s *DimensionValuesWithAttributes) SetValue(v string) *DimensionValuesWithAttributes { + s.Value = &v return s } -// How much it costs to run an instance. -type CoverageCost struct { +// Details about the Amazon EC2 instances that AWS recommends that you purchase. +type EC2InstanceDetails struct { _ struct{} `type:"structure"` - // How much an On-Demand Instance costs. - OnDemandCost *string `type:"string"` + // The Availability Zone of the recommended reservation. + AvailabilityZone *string `type:"string"` + + // Whether the recommendation is for a current-generation instance. + CurrentGeneration *bool `type:"boolean"` + + // The instance family of the recommended reservation. + Family *string `type:"string"` + + // The type of instance that AWS recommends. + InstanceType *string `type:"string"` + + // The platform of the recommended reservation. The platform is the specific + // combination of operating system, license model, and software on an instance. + Platform *string `type:"string"` + + // The AWS Region of the recommended reservation. + Region *string `type:"string"` + + // Whether the recommended reservation is size flexible. + SizeFlexEligible *bool `type:"boolean"` + + // Whether the recommended reservation is dedicated or shared. + Tenancy *string `type:"string"` } // String returns the string representation -func (s CoverageCost) String() string { +func (s EC2InstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CoverageCost) GoString() string { +func (s EC2InstanceDetails) GoString() string { return s.String() } -// SetOnDemandCost sets the OnDemandCost field's value. -func (s *CoverageCost) SetOnDemandCost(v string) *CoverageCost { - s.OnDemandCost = &v +// SetAvailabilityZone sets the AvailabilityZone field's value. +func (s *EC2InstanceDetails) SetAvailabilityZone(v string) *EC2InstanceDetails { + s.AvailabilityZone = &v return s } -// How long a running instance either used a reservation or was On-Demand. -type CoverageHours struct { - _ struct{} `type:"structure"` - - // The percentage of instance hours that a reservation covered. - CoverageHoursPercentage *string `type:"string"` - - // The number of instance running hours that On-Demand Instances covered. - OnDemandHours *string `type:"string"` - - // The number of instance running hours that reservations covered. - ReservedHours *string `type:"string"` - - // The total instance usage, in hours. - TotalRunningHours *string `type:"string"` +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *EC2InstanceDetails) SetCurrentGeneration(v bool) *EC2InstanceDetails { + s.CurrentGeneration = &v + return s } -// String returns the string representation -func (s CoverageHours) String() string { - return awsutil.Prettify(s) +// SetFamily sets the Family field's value. +func (s *EC2InstanceDetails) SetFamily(v string) *EC2InstanceDetails { + s.Family = &v + return s } -// GoString returns the string representation -func (s CoverageHours) GoString() string { - return s.String() +// SetInstanceType sets the InstanceType field's value. +func (s *EC2InstanceDetails) SetInstanceType(v string) *EC2InstanceDetails { + s.InstanceType = &v + return s } -// SetCoverageHoursPercentage sets the CoverageHoursPercentage field's value. -func (s *CoverageHours) SetCoverageHoursPercentage(v string) *CoverageHours { - s.CoverageHoursPercentage = &v +// SetPlatform sets the Platform field's value. +func (s *EC2InstanceDetails) SetPlatform(v string) *EC2InstanceDetails { + s.Platform = &v return s } -// SetOnDemandHours sets the OnDemandHours field's value. -func (s *CoverageHours) SetOnDemandHours(v string) *CoverageHours { - s.OnDemandHours = &v +// SetRegion sets the Region field's value. +func (s *EC2InstanceDetails) SetRegion(v string) *EC2InstanceDetails { + s.Region = &v return s } -// SetReservedHours sets the ReservedHours field's value. -func (s *CoverageHours) SetReservedHours(v string) *CoverageHours { - s.ReservedHours = &v +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *EC2InstanceDetails) SetSizeFlexEligible(v bool) *EC2InstanceDetails { + s.SizeFlexEligible = &v return s } -// SetTotalRunningHours sets the TotalRunningHours field's value. -func (s *CoverageHours) SetTotalRunningHours(v string) *CoverageHours { - s.TotalRunningHours = &v +// SetTenancy sets the Tenancy field's value. +func (s *EC2InstanceDetails) SetTenancy(v string) *EC2InstanceDetails { + s.Tenancy = &v return s } -// The amount of instance usage, in normalized units. Normalized units enable -// you to see your EC2 usage for multiple sizes of instances in a uniform way. -// For example, suppose you run an xlarge instance and a 2xlarge instance. If -// you run both instances for the same amount of time, the 2xlarge instance -// uses twice as much of your reservation as the xlarge instance, even though -// both instances show only one instance-hour. Using normalized units instead -// of instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge -// instance used 16 normalized units. -// -// For more information, see Modifying Reserved Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) -// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. -type CoverageNormalizedUnits struct { +// Details on the Amazon EC2 Resource. +type EC2ResourceDetails struct { _ struct{} `type:"structure"` - // The percentage of your used instance normalized units that a reservation - // covers. - CoverageNormalizedUnitsPercentage *string `type:"string"` + // Hourly public On-Demand rate for the instance type. + HourlyOnDemandRate *string `type:"string"` - // The number of normalized units that are covered by On-Demand Instances instead - // of a reservation. - OnDemandNormalizedUnits *string `type:"string"` + // The type of AWS instance. + InstanceType *string `type:"string"` - // The number of normalized units that a reservation covers. - ReservedNormalizedUnits *string `type:"string"` + // Memory capacity of the AWS instance. + Memory *string `type:"string"` - // The total number of normalized units that you used. - TotalRunningNormalizedUnits *string `type:"string"` + // Network performance capacity of the AWS instance. + NetworkPerformance *string `type:"string"` + + // The platform of the AWS instance. The platform is the specific combination + // of operating system, license model, and software on an instance. + Platform *string `type:"string"` + + // The AWS Region of the instance. + Region *string `type:"string"` + + // The SKU of the product. + Sku *string `type:"string"` + + // The disk storage of the AWS instance (not EBS storage). + Storage *string `type:"string"` + + // Number of VCPU cores in the AWS instance type. + Vcpu *string `type:"string"` } // String returns the string representation -func (s CoverageNormalizedUnits) String() string { +func (s EC2ResourceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CoverageNormalizedUnits) GoString() string { +func (s EC2ResourceDetails) GoString() string { return s.String() } -// SetCoverageNormalizedUnitsPercentage sets the CoverageNormalizedUnitsPercentage field's value. -func (s *CoverageNormalizedUnits) SetCoverageNormalizedUnitsPercentage(v string) *CoverageNormalizedUnits { - s.CoverageNormalizedUnitsPercentage = &v +// SetHourlyOnDemandRate sets the HourlyOnDemandRate field's value. +func (s *EC2ResourceDetails) SetHourlyOnDemandRate(v string) *EC2ResourceDetails { + s.HourlyOnDemandRate = &v return s } -// SetOnDemandNormalizedUnits sets the OnDemandNormalizedUnits field's value. -func (s *CoverageNormalizedUnits) SetOnDemandNormalizedUnits(v string) *CoverageNormalizedUnits { - s.OnDemandNormalizedUnits = &v +// SetInstanceType sets the InstanceType field's value. +func (s *EC2ResourceDetails) SetInstanceType(v string) *EC2ResourceDetails { + s.InstanceType = &v return s } -// SetReservedNormalizedUnits sets the ReservedNormalizedUnits field's value. -func (s *CoverageNormalizedUnits) SetReservedNormalizedUnits(v string) *CoverageNormalizedUnits { - s.ReservedNormalizedUnits = &v +// SetMemory sets the Memory field's value. +func (s *EC2ResourceDetails) SetMemory(v string) *EC2ResourceDetails { + s.Memory = &v return s } -// SetTotalRunningNormalizedUnits sets the TotalRunningNormalizedUnits field's value. -func (s *CoverageNormalizedUnits) SetTotalRunningNormalizedUnits(v string) *CoverageNormalizedUnits { - s.TotalRunningNormalizedUnits = &v +// SetNetworkPerformance sets the NetworkPerformance field's value. +func (s *EC2ResourceDetails) SetNetworkPerformance(v string) *EC2ResourceDetails { + s.NetworkPerformance = &v return s } -type CreateCostCategoryDefinitionInput struct { - _ struct{} `type:"structure"` - - // The unique name of the Cost Category. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // The rule schema version in this particular Cost Category. - // - // RuleVersion is a required field - RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` - - // The Cost Category rules used to categorize costs. For more information, see - // CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html). - // - // Rules is a required field - Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s CreateCostCategoryDefinitionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateCostCategoryDefinitionInput) GoString() string { - return s.String() +// SetPlatform sets the Platform field's value. +func (s *EC2ResourceDetails) SetPlatform(v string) *EC2ResourceDetails { + s.Platform = &v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateCostCategoryDefinitionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateCostCategoryDefinitionInput"} - 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.RuleVersion == nil { - invalidParams.Add(request.NewErrParamRequired("RuleVersion")) - } - if s.Rules == nil { - invalidParams.Add(request.NewErrParamRequired("Rules")) - } - if s.Rules != nil && len(s.Rules) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Rules", 1)) - } - if s.Rules != nil { - for i, v := range s.Rules { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetRegion sets the Region field's value. +func (s *EC2ResourceDetails) SetRegion(v string) *EC2ResourceDetails { + s.Region = &v + return s } -// SetName sets the Name field's value. -func (s *CreateCostCategoryDefinitionInput) SetName(v string) *CreateCostCategoryDefinitionInput { - s.Name = &v +// SetSku sets the Sku field's value. +func (s *EC2ResourceDetails) SetSku(v string) *EC2ResourceDetails { + s.Sku = &v return s } -// SetRuleVersion sets the RuleVersion field's value. -func (s *CreateCostCategoryDefinitionInput) SetRuleVersion(v string) *CreateCostCategoryDefinitionInput { - s.RuleVersion = &v +// SetStorage sets the Storage field's value. +func (s *EC2ResourceDetails) SetStorage(v string) *EC2ResourceDetails { + s.Storage = &v return s } -// SetRules sets the Rules field's value. -func (s *CreateCostCategoryDefinitionInput) SetRules(v []*CostCategoryRule) *CreateCostCategoryDefinitionInput { - s.Rules = v +// SetVcpu sets the Vcpu field's value. +func (s *EC2ResourceDetails) SetVcpu(v string) *EC2ResourceDetails { + s.Vcpu = &v return s } -type CreateCostCategoryDefinitionOutput struct { +// Utilization metrics of the instance. +type EC2ResourceUtilization struct { _ struct{} `type:"structure"` - // The unique identifier for your newly created Cost Category. - CostCategoryArn *string `min:"20" type:"string"` + // Maximum observed or expected CPU utilization of the instance. + MaxCpuUtilizationPercentage *string `type:"string"` - // The Cost Category's effective start date. - EffectiveStart *string `min:"20" type:"string"` + // Maximum observed or expected memory utilization of the instance. + MaxMemoryUtilizationPercentage *string `type:"string"` + + // Maximum observed or expected storage utilization of the instance (does not + // measure EBS storage). + MaxStorageUtilizationPercentage *string `type:"string"` } // String returns the string representation -func (s CreateCostCategoryDefinitionOutput) String() string { +func (s EC2ResourceUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CreateCostCategoryDefinitionOutput) GoString() string { +func (s EC2ResourceUtilization) GoString() string { return s.String() } -// SetCostCategoryArn sets the CostCategoryArn field's value. -func (s *CreateCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *CreateCostCategoryDefinitionOutput { - s.CostCategoryArn = &v +// SetMaxCpuUtilizationPercentage sets the MaxCpuUtilizationPercentage field's value. +func (s *EC2ResourceUtilization) SetMaxCpuUtilizationPercentage(v string) *EC2ResourceUtilization { + s.MaxCpuUtilizationPercentage = &v return s } -// SetEffectiveStart sets the EffectiveStart field's value. -func (s *CreateCostCategoryDefinitionOutput) SetEffectiveStart(v string) *CreateCostCategoryDefinitionOutput { - s.EffectiveStart = &v +// SetMaxMemoryUtilizationPercentage sets the MaxMemoryUtilizationPercentage field's value. +func (s *EC2ResourceUtilization) SetMaxMemoryUtilizationPercentage(v string) *EC2ResourceUtilization { + s.MaxMemoryUtilizationPercentage = &v return s } -// Context about the current instance. -type CurrentInstance struct { - _ struct{} `type:"structure"` +// SetMaxStorageUtilizationPercentage sets the MaxStorageUtilizationPercentage field's value. +func (s *EC2ResourceUtilization) SetMaxStorageUtilizationPercentage(v string) *EC2ResourceUtilization { + s.MaxStorageUtilizationPercentage = &v + return s +} - // The currency code that Amazon Web Services used to calculate the costs for - // this instance. - CurrencyCode *string `type:"string"` +// The Amazon EC2 hardware specifications that you want AWS to provide recommendations +// for. +type EC2Specification struct { + _ struct{} `type:"structure"` - // The name you've given an instance. This field will show as blank if you haven't - // given the instance a name. - InstanceName *string `type:"string"` + // Whether you want a recommendation for standard or convertible reservations. + OfferingClass *string `type:"string" enum:"OfferingClass"` +} - // Current On Demand cost of operating this instance on a monthly basis. - MonthlyCost *string `type:"string"` +// String returns the string representation +func (s EC2Specification) String() string { + return awsutil.Prettify(s) +} - // Number of hours during the lookback period billed at On Demand rates. - OnDemandHoursInLookbackPeriod *string `type:"string"` +// GoString returns the string representation +func (s EC2Specification) GoString() string { + return s.String() +} - // Number of hours during the lookback period covered by reservations. - ReservationCoveredHoursInLookbackPeriod *string `type:"string"` +// SetOfferingClass sets the OfferingClass field's value. +func (s *EC2Specification) SetOfferingClass(v string) *EC2Specification { + s.OfferingClass = &v + return s +} - // Details about the resource and utilization. - ResourceDetails *ResourceDetails `type:"structure"` +// Details about the Amazon ES instances that AWS recommends that you purchase. +type ESInstanceDetails struct { + _ struct{} `type:"structure"` - // Resource ID of the current instance. - ResourceId *string `type:"string"` + // Whether the recommendation is for a current-generation instance. + CurrentGeneration *bool `type:"boolean"` - // Utilization information of the current instance during the lookback period. - ResourceUtilization *ResourceUtilization `type:"structure"` + // The class of instance that AWS recommends. + InstanceClass *string `type:"string"` - // Number of hours during the lookback period covered by Savings Plans. - SavingsPlansCoveredHoursInLookbackPeriod *string `type:"string"` + // The size of instance that AWS recommends. + InstanceSize *string `type:"string"` - // Cost allocation resource tags applied to the instance. - Tags []*TagValues `type:"list"` + // The AWS Region of the recommended reservation. + Region *string `type:"string"` - // The total number of hours the instance ran during the lookback period. - TotalRunningHoursInLookbackPeriod *string `type:"string"` + // Whether the recommended reservation is size flexible. + SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation -func (s CurrentInstance) String() string { +func (s ESInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CurrentInstance) GoString() string { +func (s ESInstanceDetails) GoString() string { return s.String() } -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *CurrentInstance) SetCurrencyCode(v string) *CurrentInstance { - s.CurrencyCode = &v - return s -} - -// SetInstanceName sets the InstanceName field's value. -func (s *CurrentInstance) SetInstanceName(v string) *CurrentInstance { - s.InstanceName = &v +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *ESInstanceDetails) SetCurrentGeneration(v bool) *ESInstanceDetails { + s.CurrentGeneration = &v return s } -// SetMonthlyCost sets the MonthlyCost field's value. -func (s *CurrentInstance) SetMonthlyCost(v string) *CurrentInstance { - s.MonthlyCost = &v +// SetInstanceClass sets the InstanceClass field's value. +func (s *ESInstanceDetails) SetInstanceClass(v string) *ESInstanceDetails { + s.InstanceClass = &v return s } -// SetOnDemandHoursInLookbackPeriod sets the OnDemandHoursInLookbackPeriod field's value. -func (s *CurrentInstance) SetOnDemandHoursInLookbackPeriod(v string) *CurrentInstance { - s.OnDemandHoursInLookbackPeriod = &v +// SetInstanceSize sets the InstanceSize field's value. +func (s *ESInstanceDetails) SetInstanceSize(v string) *ESInstanceDetails { + s.InstanceSize = &v return s } -// SetReservationCoveredHoursInLookbackPeriod sets the ReservationCoveredHoursInLookbackPeriod field's value. -func (s *CurrentInstance) SetReservationCoveredHoursInLookbackPeriod(v string) *CurrentInstance { - s.ReservationCoveredHoursInLookbackPeriod = &v +// SetRegion sets the Region field's value. +func (s *ESInstanceDetails) SetRegion(v string) *ESInstanceDetails { + s.Region = &v return s } -// SetResourceDetails sets the ResourceDetails field's value. -func (s *CurrentInstance) SetResourceDetails(v *ResourceDetails) *CurrentInstance { - s.ResourceDetails = v +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *ESInstanceDetails) SetSizeFlexEligible(v bool) *ESInstanceDetails { + s.SizeFlexEligible = &v return s } -// SetResourceId sets the ResourceId field's value. -func (s *CurrentInstance) SetResourceId(v string) *CurrentInstance { - s.ResourceId = &v - return s -} +// Details about the Amazon ElastiCache instances that AWS recommends that you +// purchase. +type ElastiCacheInstanceDetails struct { + _ struct{} `type:"structure"` -// SetResourceUtilization sets the ResourceUtilization field's value. -func (s *CurrentInstance) SetResourceUtilization(v *ResourceUtilization) *CurrentInstance { - s.ResourceUtilization = v - return s -} + // Whether the recommendation is for a current generation instance. + CurrentGeneration *bool `type:"boolean"` -// SetSavingsPlansCoveredHoursInLookbackPeriod sets the SavingsPlansCoveredHoursInLookbackPeriod field's value. -func (s *CurrentInstance) SetSavingsPlansCoveredHoursInLookbackPeriod(v string) *CurrentInstance { - s.SavingsPlansCoveredHoursInLookbackPeriod = &v - return s -} + // The instance family of the recommended reservation. + Family *string `type:"string"` -// SetTags sets the Tags field's value. -func (s *CurrentInstance) SetTags(v []*TagValues) *CurrentInstance { - s.Tags = v - return s -} + // The type of node that AWS recommends. + NodeType *string `type:"string"` -// SetTotalRunningHoursInLookbackPeriod sets the TotalRunningHoursInLookbackPeriod field's value. -func (s *CurrentInstance) SetTotalRunningHoursInLookbackPeriod(v string) *CurrentInstance { - s.TotalRunningHoursInLookbackPeriod = &v - return s -} + // The description of the recommended reservation. + ProductDescription *string `type:"string"` -// The requested data is unavailable. -type DataUnavailableException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The AWS Region of the recommended reservation. + Region *string `type:"string"` - Message_ *string `locationName:"Message" type:"string"` + // Whether the recommended reservation is size flexible. + SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation -func (s DataUnavailableException) String() string { +func (s ElastiCacheInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DataUnavailableException) GoString() string { +func (s ElastiCacheInstanceDetails) GoString() string { return s.String() } -func newErrorDataUnavailableException(v protocol.ResponseMetadata) error { - return &DataUnavailableException{ - RespMetadata: v, - } +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *ElastiCacheInstanceDetails) SetCurrentGeneration(v bool) *ElastiCacheInstanceDetails { + s.CurrentGeneration = &v + return s } -// Code returns the exception type name. -func (s *DataUnavailableException) Code() string { - return "DataUnavailableException" +// SetFamily sets the Family field's value. +func (s *ElastiCacheInstanceDetails) SetFamily(v string) *ElastiCacheInstanceDetails { + s.Family = &v + return s } -// Message returns the exception's message. -func (s *DataUnavailableException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetNodeType sets the NodeType field's value. +func (s *ElastiCacheInstanceDetails) SetNodeType(v string) *ElastiCacheInstanceDetails { + s.NodeType = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DataUnavailableException) OrigErr() error { - return nil +// SetProductDescription sets the ProductDescription field's value. +func (s *ElastiCacheInstanceDetails) SetProductDescription(v string) *ElastiCacheInstanceDetails { + s.ProductDescription = &v + return s +} + +// SetRegion sets the Region field's value. +func (s *ElastiCacheInstanceDetails) SetRegion(v string) *ElastiCacheInstanceDetails { + s.Region = &v + return s +} + +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *ElastiCacheInstanceDetails) SetSizeFlexEligible(v bool) *ElastiCacheInstanceDetails { + s.SizeFlexEligible = &v + return s } -func (s *DataUnavailableException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} +// Use Expression to filter by cost or by usage. There are two patterns: +// +// * Simple dimension values - You can set the dimension name and values +// for the filters that you plan to use. For example, you can filter for +// REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks +// like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", +// “us-west-1” ] } } The list of dimension values are OR'd together to +// retrieve cost or usage data. You can create Expression and DimensionValues +// objects using either with* methods or set* methods in multiple lines. +// +// * Compound dimension values with logical operations - You can use multiple +// Expression types and the logical operators AND/OR/NOT to create a list +// of one or more Expression objects. This allows you to filter on more advanced +// options. For example, you can filter on ((REGION == us-east-1 OR REGION +// == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). +// The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": +// { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": +// { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": +// { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each +// Expression can have only one operator, the service returns an error if +// more than one is specified. The following example shows an Expression +// object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": +// "USAGE_TYPE", "Values": [ "DataTransfer" ] } } +// +// For GetRightsizingRecommendation action, a combination of OR and NOT is not +// supported. OR is not supported between different dimensions, or dimensions +// and tags. NOT operators aren't supported. Dimensions are also limited to +// LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. +type Expression struct { + _ struct{} `type:"structure"` + + // Return results that match both Dimension objects. + And []*Expression `type:"list"` -// Status code returns the HTTP status code for the request's response error. -func (s *DataUnavailableException) StatusCode() int { - return s.RespMetadata.StatusCode -} + // The filter based on CostCategory values. + CostCategories *CostCategoryValues `type:"structure"` -// RequestID returns the service's response RequestID for request. -func (s *DataUnavailableException) RequestID() string { - return s.RespMetadata.RequestID -} + // The specific Dimension to use for Expression. + Dimensions *DimensionValues `type:"structure"` -// The time period that you want the usage and costs for. -type DateInterval struct { - _ struct{} `type:"structure"` + // Return results that don't match a Dimension object. + Not *Expression `type:"structure"` - // The end of the time period that you want the usage and costs for. The end - // date is exclusive. For example, if end is 2017-05-01, AWS retrieves cost - // and usage data from the start date up to, but not including, 2017-05-01. - // - // End is a required field - End *string `type:"string" required:"true"` + // Return results that match either Dimension object. + Or []*Expression `type:"list"` - // The beginning of the time period that you want the usage and costs for. The - // start date is inclusive. For example, if start is 2017-01-01, AWS retrieves - // cost and usage data starting at 2017-01-01 up to the end date. - // - // Start is a required field - Start *string `type:"string" required:"true"` + // The specific Tag to use for Expression. + Tags *TagValues `type:"structure"` } // String returns the string representation -func (s DateInterval) String() string { +func (s Expression) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DateInterval) GoString() string { +func (s Expression) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DateInterval) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DateInterval"} - if s.End == nil { - invalidParams.Add(request.NewErrParamRequired("End")) +func (s *Expression) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Expression"} + if s.CostCategories != nil { + if err := s.CostCategories.Validate(); err != nil { + invalidParams.AddNested("CostCategories", err.(request.ErrInvalidParams)) + } } - if s.Start == nil { - invalidParams.Add(request.NewErrParamRequired("Start")) + if s.Not != nil { + if err := s.Not.Validate(); err != nil { + invalidParams.AddNested("Not", err.(request.ErrInvalidParams)) + } + } + if s.Or != nil { + for i, v := range s.Or { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Or", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -2805,125 +5061,148 @@ func (s *DateInterval) Validate() error { return nil } -// SetEnd sets the End field's value. -func (s *DateInterval) SetEnd(v string) *DateInterval { - s.End = &v +// SetAnd sets the And field's value. +func (s *Expression) SetAnd(v []*Expression) *Expression { + s.And = v return s } -// SetStart sets the Start field's value. -func (s *DateInterval) SetStart(v string) *DateInterval { - s.Start = &v +// SetCostCategories sets the CostCategories field's value. +func (s *Expression) SetCostCategories(v *CostCategoryValues) *Expression { + s.CostCategories = v return s } -type DeleteCostCategoryDefinitionInput struct { - _ struct{} `type:"structure"` - - // The unique identifier for your Cost Category. - // - // CostCategoryArn is a required field - CostCategoryArn *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeleteCostCategoryDefinitionInput) String() string { - return awsutil.Prettify(s) +// SetDimensions sets the Dimensions field's value. +func (s *Expression) SetDimensions(v *DimensionValues) *Expression { + s.Dimensions = v + return s } -// GoString returns the string representation -func (s DeleteCostCategoryDefinitionInput) GoString() string { - return s.String() +// SetNot sets the Not field's value. +func (s *Expression) SetNot(v *Expression) *Expression { + s.Not = v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteCostCategoryDefinitionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteCostCategoryDefinitionInput"} - if s.CostCategoryArn == nil { - invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) - } - if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetOr sets the Or field's value. +func (s *Expression) SetOr(v []*Expression) *Expression { + s.Or = v + return s } -// SetCostCategoryArn sets the CostCategoryArn field's value. -func (s *DeleteCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionInput { - s.CostCategoryArn = &v +// SetTags sets the Tags field's value. +func (s *Expression) SetTags(v *TagValues) *Expression { + s.Tags = v return s } -type DeleteCostCategoryDefinitionOutput struct { +// The forecast created for your query. +type ForecastResult struct { _ struct{} `type:"structure"` - // The unique identifier for your Cost Category. - CostCategoryArn *string `min:"20" type:"string"` + // The mean value of the forecast. + MeanValue *string `type:"string"` - // The effective end date of the Cost Category as a result of deleting it. No - // costs after this date will be categorized by the deleted Cost Category. - EffectiveEnd *string `min:"20" type:"string"` + // The lower limit for the prediction interval. + PredictionIntervalLowerBound *string `type:"string"` + + // The upper limit for the prediction interval. + PredictionIntervalUpperBound *string `type:"string"` + + // The period of time that the forecast covers. + TimePeriod *DateInterval `type:"structure"` } // String returns the string representation -func (s DeleteCostCategoryDefinitionOutput) String() string { +func (s ForecastResult) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteCostCategoryDefinitionOutput) GoString() string { +func (s ForecastResult) GoString() string { return s.String() } -// SetCostCategoryArn sets the CostCategoryArn field's value. -func (s *DeleteCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionOutput { - s.CostCategoryArn = &v +// SetMeanValue sets the MeanValue field's value. +func (s *ForecastResult) SetMeanValue(v string) *ForecastResult { + s.MeanValue = &v return s } -// SetEffectiveEnd sets the EffectiveEnd field's value. -func (s *DeleteCostCategoryDefinitionOutput) SetEffectiveEnd(v string) *DeleteCostCategoryDefinitionOutput { - s.EffectiveEnd = &v +// SetPredictionIntervalLowerBound sets the PredictionIntervalLowerBound field's value. +func (s *ForecastResult) SetPredictionIntervalLowerBound(v string) *ForecastResult { + s.PredictionIntervalLowerBound = &v return s } -type DescribeCostCategoryDefinitionInput struct { +// SetPredictionIntervalUpperBound sets the PredictionIntervalUpperBound field's value. +func (s *ForecastResult) SetPredictionIntervalUpperBound(v string) *ForecastResult { + s.PredictionIntervalUpperBound = &v + return s +} + +// SetTimePeriod sets the TimePeriod field's value. +func (s *ForecastResult) SetTimePeriod(v *DateInterval) *ForecastResult { + s.TimePeriod = v + return s +} + +type GetAnomaliesInput struct { _ struct{} `type:"structure"` - // The unique identifier for your Cost Category. + // Assigns the start and end dates for retrieving cost anomalies. The returned + // anomaly object will have an AnomalyEndDate in the specified time range. // - // CostCategoryArn is a required field - CostCategoryArn *string `min:"20" type:"string" required:"true"` + // DateInterval is a required field + DateInterval *AnomalyDateInterval `type:"structure" required:"true"` - // The date when the Cost Category was effective. - EffectiveOn *string `min:"20" type:"string"` + // Filters anomaly results by the feedback field on the anomaly object. + Feedback *string `type:"string" enum:"AnomalyFeedbackType"` + + // The number of entries a paginated response contains. + MaxResults *int64 `type:"integer"` + + // Retrieves all of the cost anomalies detected for a specific cost anomaly + // monitor Amazon Resource Name (ARN). + MonitorArn *string `type:"string"` + + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` + + // Filters anomaly results by the total impact field on the anomaly object. + // For example, you can filter anomalies GREATER_THAN 200.00 to retrieve anomalies, + // with an estimated dollar impact greater than 200. + TotalImpact *TotalImpactFilter `type:"structure"` } // String returns the string representation -func (s DescribeCostCategoryDefinitionInput) String() string { +func (s GetAnomaliesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeCostCategoryDefinitionInput) GoString() string { +func (s GetAnomaliesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeCostCategoryDefinitionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeCostCategoryDefinitionInput"} - if s.CostCategoryArn == nil { - invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) - } - if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) +func (s *GetAnomaliesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAnomaliesInput"} + if s.DateInterval == nil { + invalidParams.Add(request.NewErrParamRequired("DateInterval")) + } + if s.DateInterval != nil { + if err := s.DateInterval.Validate(); err != nil { + invalidParams.AddNested("DateInterval", err.(request.ErrInvalidParams)) + } } - if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) + if s.TotalImpact != nil { + if err := s.TotalImpact.Validate(); err != nil { + invalidParams.AddNested("TotalImpact", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -2932,587 +5211,674 @@ func (s *DescribeCostCategoryDefinitionInput) Validate() error { return nil } -// SetCostCategoryArn sets the CostCategoryArn field's value. -func (s *DescribeCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DescribeCostCategoryDefinitionInput { - s.CostCategoryArn = &v +// SetDateInterval sets the DateInterval field's value. +func (s *GetAnomaliesInput) SetDateInterval(v *AnomalyDateInterval) *GetAnomaliesInput { + s.DateInterval = v return s } -// SetEffectiveOn sets the EffectiveOn field's value. -func (s *DescribeCostCategoryDefinitionInput) SetEffectiveOn(v string) *DescribeCostCategoryDefinitionInput { - s.EffectiveOn = &v +// SetFeedback sets the Feedback field's value. +func (s *GetAnomaliesInput) SetFeedback(v string) *GetAnomaliesInput { + s.Feedback = &v return s } -type DescribeCostCategoryDefinitionOutput struct { +// SetMaxResults sets the MaxResults field's value. +func (s *GetAnomaliesInput) SetMaxResults(v int64) *GetAnomaliesInput { + s.MaxResults = &v + return s +} + +// SetMonitorArn sets the MonitorArn field's value. +func (s *GetAnomaliesInput) SetMonitorArn(v string) *GetAnomaliesInput { + s.MonitorArn = &v + return s +} + +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetAnomaliesInput) SetNextPageToken(v string) *GetAnomaliesInput { + s.NextPageToken = &v + return s +} + +// SetTotalImpact sets the TotalImpact field's value. +func (s *GetAnomaliesInput) SetTotalImpact(v *TotalImpactFilter) *GetAnomaliesInput { + s.TotalImpact = v + return s +} + +type GetAnomaliesOutput struct { _ struct{} `type:"structure"` - // The structure of Cost Categories. This includes detailed metadata and the - // set of rules for the CostCategory object. - CostCategory *CostCategory `type:"structure"` + // A list of cost anomalies. + // + // Anomalies is a required field + Anomalies []*Anomaly `type:"list" required:"true"` + + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` } // String returns the string representation -func (s DescribeCostCategoryDefinitionOutput) String() string { +func (s GetAnomaliesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeCostCategoryDefinitionOutput) GoString() string { +func (s GetAnomaliesOutput) GoString() string { return s.String() } -// SetCostCategory sets the CostCategory field's value. -func (s *DescribeCostCategoryDefinitionOutput) SetCostCategory(v *CostCategory) *DescribeCostCategoryDefinitionOutput { - s.CostCategory = v +// SetAnomalies sets the Anomalies field's value. +func (s *GetAnomaliesOutput) SetAnomalies(v []*Anomaly) *GetAnomaliesOutput { + s.Anomalies = v return s } -// The metadata that you can use to filter and group your results. You can use -// GetDimensionValues to find specific values. -type DimensionValues struct { +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetAnomaliesOutput) SetNextPageToken(v string) *GetAnomaliesOutput { + s.NextPageToken = &v + return s +} + +type GetAnomalyMonitorsInput struct { _ struct{} `type:"structure"` - // The names of the metadata types that you can use to filter and group your - // results. For example, AZ returns a list of Availability Zones. - Key *string `type:"string" enum:"Dimension"` + // The number of entries a paginated response contains. + MaxResults *int64 `type:"integer"` - // The match options that you can use to filter your results. MatchOptions is - // only applicable for actions related to Cost Category. The default values - // for MatchOptions is EQUALS and CASE_SENSITIVE. - MatchOptions []*string `type:"list"` + // A list of cost anomaly monitor ARNs. + MonitorArnList []*string `type:"list"` - // The metadata values that you can use to filter and group your results. You - // can use GetDimensionValues to find specific values. - Values []*string `type:"list"` + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` } // String returns the string representation -func (s DimensionValues) String() string { +func (s GetAnomalyMonitorsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DimensionValues) GoString() string { +func (s GetAnomalyMonitorsInput) GoString() string { return s.String() } -// SetKey sets the Key field's value. -func (s *DimensionValues) SetKey(v string) *DimensionValues { - s.Key = &v +// SetMaxResults sets the MaxResults field's value. +func (s *GetAnomalyMonitorsInput) SetMaxResults(v int64) *GetAnomalyMonitorsInput { + s.MaxResults = &v return s } -// SetMatchOptions sets the MatchOptions field's value. -func (s *DimensionValues) SetMatchOptions(v []*string) *DimensionValues { - s.MatchOptions = v +// SetMonitorArnList sets the MonitorArnList field's value. +func (s *GetAnomalyMonitorsInput) SetMonitorArnList(v []*string) *GetAnomalyMonitorsInput { + s.MonitorArnList = v return s } -// SetValues sets the Values field's value. -func (s *DimensionValues) SetValues(v []*string) *DimensionValues { - s.Values = v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetAnomalyMonitorsInput) SetNextPageToken(v string) *GetAnomalyMonitorsInput { + s.NextPageToken = &v return s } -// The metadata of a specific type that you can use to filter and group your -// results. You can use GetDimensionValues to find specific values. -type DimensionValuesWithAttributes struct { +type GetAnomalyMonitorsOutput struct { _ struct{} `type:"structure"` - // The attribute that applies to a specific Dimension. - Attributes map[string]*string `type:"map"` + // A list of cost anomaly monitors that includes the detailed metadata for each + // monitor. + // + // AnomalyMonitors is a required field + AnomalyMonitors []*AnomalyMonitor `type:"list" required:"true"` - // The value of a dimension with a specific attribute. - Value *string `type:"string"` + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` } // String returns the string representation -func (s DimensionValuesWithAttributes) String() string { +func (s GetAnomalyMonitorsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DimensionValuesWithAttributes) GoString() string { +func (s GetAnomalyMonitorsOutput) GoString() string { return s.String() } -// SetAttributes sets the Attributes field's value. -func (s *DimensionValuesWithAttributes) SetAttributes(v map[string]*string) *DimensionValuesWithAttributes { - s.Attributes = v +// SetAnomalyMonitors sets the AnomalyMonitors field's value. +func (s *GetAnomalyMonitorsOutput) SetAnomalyMonitors(v []*AnomalyMonitor) *GetAnomalyMonitorsOutput { + s.AnomalyMonitors = v return s } -// SetValue sets the Value field's value. -func (s *DimensionValuesWithAttributes) SetValue(v string) *DimensionValuesWithAttributes { - s.Value = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetAnomalyMonitorsOutput) SetNextPageToken(v string) *GetAnomalyMonitorsOutput { + s.NextPageToken = &v return s } -// Details about the Amazon EC2 instances that AWS recommends that you purchase. -type EC2InstanceDetails struct { +type GetAnomalySubscriptionsInput struct { _ struct{} `type:"structure"` - // The Availability Zone of the recommended reservation. - AvailabilityZone *string `type:"string"` - - // Whether the recommendation is for a current-generation instance. - CurrentGeneration *bool `type:"boolean"` - - // The instance family of the recommended reservation. - Family *string `type:"string"` - - // The type of instance that AWS recommends. - InstanceType *string `type:"string"` - - // The platform of the recommended reservation. The platform is the specific - // combination of operating system, license model, and software on an instance. - Platform *string `type:"string"` + // The number of entries a paginated response contains. + MaxResults *int64 `type:"integer"` - // The AWS Region of the recommended reservation. - Region *string `type:"string"` + // Cost anomaly monitor ARNs. + MonitorArn *string `type:"string"` - // Whether the recommended reservation is size flexible. - SizeFlexEligible *bool `type:"boolean"` + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` - // Whether the recommended reservation is dedicated or shared. - Tenancy *string `type:"string"` + // A list of cost anomaly subscription ARNs. + SubscriptionArnList []*string `type:"list"` } // String returns the string representation -func (s EC2InstanceDetails) String() string { +func (s GetAnomalySubscriptionsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s EC2InstanceDetails) GoString() string { +func (s GetAnomalySubscriptionsInput) GoString() string { return s.String() } -// SetAvailabilityZone sets the AvailabilityZone field's value. -func (s *EC2InstanceDetails) SetAvailabilityZone(v string) *EC2InstanceDetails { - s.AvailabilityZone = &v +// SetMaxResults sets the MaxResults field's value. +func (s *GetAnomalySubscriptionsInput) SetMaxResults(v int64) *GetAnomalySubscriptionsInput { + s.MaxResults = &v return s } -// SetCurrentGeneration sets the CurrentGeneration field's value. -func (s *EC2InstanceDetails) SetCurrentGeneration(v bool) *EC2InstanceDetails { - s.CurrentGeneration = &v +// SetMonitorArn sets the MonitorArn field's value. +func (s *GetAnomalySubscriptionsInput) SetMonitorArn(v string) *GetAnomalySubscriptionsInput { + s.MonitorArn = &v return s } -// SetFamily sets the Family field's value. -func (s *EC2InstanceDetails) SetFamily(v string) *EC2InstanceDetails { - s.Family = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetAnomalySubscriptionsInput) SetNextPageToken(v string) *GetAnomalySubscriptionsInput { + s.NextPageToken = &v return s } -// SetInstanceType sets the InstanceType field's value. -func (s *EC2InstanceDetails) SetInstanceType(v string) *EC2InstanceDetails { - s.InstanceType = &v +// SetSubscriptionArnList sets the SubscriptionArnList field's value. +func (s *GetAnomalySubscriptionsInput) SetSubscriptionArnList(v []*string) *GetAnomalySubscriptionsInput { + s.SubscriptionArnList = v return s } -// SetPlatform sets the Platform field's value. -func (s *EC2InstanceDetails) SetPlatform(v string) *EC2InstanceDetails { - s.Platform = &v - return s +type GetAnomalySubscriptionsOutput struct { + _ struct{} `type:"structure"` + + // A list of cost anomaly subscriptions that includes the detailed metadata + // for each one. + // + // AnomalySubscriptions is a required field + AnomalySubscriptions []*AnomalySubscription `type:"list" required:"true"` + + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` } -// SetRegion sets the Region field's value. -func (s *EC2InstanceDetails) SetRegion(v string) *EC2InstanceDetails { - s.Region = &v - return s +// String returns the string representation +func (s GetAnomalySubscriptionsOutput) String() string { + return awsutil.Prettify(s) } -// SetSizeFlexEligible sets the SizeFlexEligible field's value. -func (s *EC2InstanceDetails) SetSizeFlexEligible(v bool) *EC2InstanceDetails { - s.SizeFlexEligible = &v +// GoString returns the string representation +func (s GetAnomalySubscriptionsOutput) GoString() string { + return s.String() +} + +// SetAnomalySubscriptions sets the AnomalySubscriptions field's value. +func (s *GetAnomalySubscriptionsOutput) SetAnomalySubscriptions(v []*AnomalySubscription) *GetAnomalySubscriptionsOutput { + s.AnomalySubscriptions = v return s } -// SetTenancy sets the Tenancy field's value. -func (s *EC2InstanceDetails) SetTenancy(v string) *EC2InstanceDetails { - s.Tenancy = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetAnomalySubscriptionsOutput) SetNextPageToken(v string) *GetAnomalySubscriptionsOutput { + s.NextPageToken = &v return s } -// Details on the Amazon EC2 Resource. -type EC2ResourceDetails struct { +type GetCostAndUsageInput struct { _ struct{} `type:"structure"` - // Hourly public On Demand rate for the instance type. - HourlyOnDemandRate *string `type:"string"` - - // The type of Amazon Web Services instance. - InstanceType *string `type:"string"` - - // Memory capacity of Amazon Web Services instance. - Memory *string `type:"string"` - - // Network performance capacity of the Amazon Web Services instance. - NetworkPerformance *string `type:"string"` + // Filters AWS costs by different dimensions. For example, you can specify SERVICE + // and LINKED_ACCOUNT and get the costs that are associated with that account's + // usage of that service. You can nest Expression objects to define any combination + // of dimension filters. For more information, see Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). + Filter *Expression `type:"structure"` - // The platform of the Amazon Web Services instance. The platform is the specific - // combination of operating system, license model, and software on an instance. - Platform *string `type:"string"` + // Sets the AWS cost granularity to MONTHLY or DAILY, or HOURLY. If Granularity + // isn't set, the response object doesn't include the Granularity, either MONTHLY + // or DAILY, or HOURLY. + Granularity *string `type:"string" enum:"Granularity"` - // The Amazon Web Services Region of the instance. - Region *string `type:"string"` + // You can group AWS costs using up to two different groups, either dimensions, + // tag keys, cost categories, or any two group by types. + // + // When you group by tag key, you get all tag values, including empty strings. + // + // Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, + // PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, RECORD_TYPE, and USAGE_TYPE. + GroupBy []*GroupDefinition `type:"list"` - // The SKU of the product. - Sku *string `type:"string"` + // Which metrics are returned in the query. For more information about blended + // and unblended rates, see Why does the "blended" annotation appear on some + // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). + // + // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, + // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. + // + // If you return the UsageQuantity metric, the service aggregates all usage + // numbers without taking into account the units. For example, if you aggregate + // usageQuantity across all of Amazon EC2, the results aren't meaningful because + // Amazon EC2 compute hours and data transfer are measured in different units + // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, + // filter by UsageType or UsageTypeGroups. + // + // Metrics is required for GetCostAndUsage requests. + // + // Metrics is a required field + Metrics []*string `type:"list" required:"true"` - // The disk storage of the Amazon Web Services instance (Not EBS storage). - Storage *string `type:"string"` + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` - // Number of VCPU cores in the Amazon Web Services instance type. - Vcpu *string `type:"string"` + // Sets the start and end dates for retrieving AWS costs. The start date is + // inclusive, but the end date is exclusive. For example, if start is 2017-01-01 + // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 + // up to and including 2017-04-30 but not including 2017-05-01. + // + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s EC2ResourceDetails) String() string { +func (s GetCostAndUsageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s EC2ResourceDetails) GoString() string { +func (s GetCostAndUsageInput) GoString() string { return s.String() } -// SetHourlyOnDemandRate sets the HourlyOnDemandRate field's value. -func (s *EC2ResourceDetails) SetHourlyOnDemandRate(v string) *EC2ResourceDetails { - s.HourlyOnDemandRate = &v - return s -} - -// SetInstanceType sets the InstanceType field's value. -func (s *EC2ResourceDetails) SetInstanceType(v string) *EC2ResourceDetails { - s.InstanceType = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCostAndUsageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageInput"} + if s.Metrics == nil { + invalidParams.Add(request.NewErrParamRequired("Metrics")) + } + if s.TimePeriod == nil { + invalidParams.Add(request.NewErrParamRequired("TimePeriod")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + if s.TimePeriod != nil { + if err := s.TimePeriod.Validate(); err != nil { + invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) + } + } -// SetMemory sets the Memory field's value. -func (s *EC2ResourceDetails) SetMemory(v string) *EC2ResourceDetails { - s.Memory = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetNetworkPerformance sets the NetworkPerformance field's value. -func (s *EC2ResourceDetails) SetNetworkPerformance(v string) *EC2ResourceDetails { - s.NetworkPerformance = &v +// SetFilter sets the Filter field's value. +func (s *GetCostAndUsageInput) SetFilter(v *Expression) *GetCostAndUsageInput { + s.Filter = v return s } -// SetPlatform sets the Platform field's value. -func (s *EC2ResourceDetails) SetPlatform(v string) *EC2ResourceDetails { - s.Platform = &v +// SetGranularity sets the Granularity field's value. +func (s *GetCostAndUsageInput) SetGranularity(v string) *GetCostAndUsageInput { + s.Granularity = &v return s } -// SetRegion sets the Region field's value. -func (s *EC2ResourceDetails) SetRegion(v string) *EC2ResourceDetails { - s.Region = &v +// SetGroupBy sets the GroupBy field's value. +func (s *GetCostAndUsageInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageInput { + s.GroupBy = v return s } -// SetSku sets the Sku field's value. -func (s *EC2ResourceDetails) SetSku(v string) *EC2ResourceDetails { - s.Sku = &v +// SetMetrics sets the Metrics field's value. +func (s *GetCostAndUsageInput) SetMetrics(v []*string) *GetCostAndUsageInput { + s.Metrics = v return s } -// SetStorage sets the Storage field's value. -func (s *EC2ResourceDetails) SetStorage(v string) *EC2ResourceDetails { - s.Storage = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetCostAndUsageInput) SetNextPageToken(v string) *GetCostAndUsageInput { + s.NextPageToken = &v return s } -// SetVcpu sets the Vcpu field's value. -func (s *EC2ResourceDetails) SetVcpu(v string) *EC2ResourceDetails { - s.Vcpu = &v +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetCostAndUsageInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageInput { + s.TimePeriod = v return s } -// Utilization metrics of the instance. -type EC2ResourceUtilization struct { +type GetCostAndUsageOutput struct { _ struct{} `type:"structure"` - // Maximum observed or expected CPU utilization of the instance. - MaxCpuUtilizationPercentage *string `type:"string"` + // The groups that are specified by the Filter or GroupBy parameters in the + // request. + GroupDefinitions []*GroupDefinition `type:"list"` - // Maximum observed or expected memory utilization of the instance. - MaxMemoryUtilizationPercentage *string `type:"string"` + // The token for the next set of retrievable results. AWS provides the token + // when the response from a previous call has more results than the maximum + // page size. + NextPageToken *string `type:"string"` - // Maximum observed or expected storage utilization of the instance (does not - // measure EBS storage). - MaxStorageUtilizationPercentage *string `type:"string"` + // The time period that is covered by the results in the response. + ResultsByTime []*ResultByTime `type:"list"` } // String returns the string representation -func (s EC2ResourceUtilization) String() string { +func (s GetCostAndUsageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s EC2ResourceUtilization) GoString() string { +func (s GetCostAndUsageOutput) GoString() string { return s.String() } -// SetMaxCpuUtilizationPercentage sets the MaxCpuUtilizationPercentage field's value. -func (s *EC2ResourceUtilization) SetMaxCpuUtilizationPercentage(v string) *EC2ResourceUtilization { - s.MaxCpuUtilizationPercentage = &v +// SetGroupDefinitions sets the GroupDefinitions field's value. +func (s *GetCostAndUsageOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageOutput { + s.GroupDefinitions = v return s } -// SetMaxMemoryUtilizationPercentage sets the MaxMemoryUtilizationPercentage field's value. -func (s *EC2ResourceUtilization) SetMaxMemoryUtilizationPercentage(v string) *EC2ResourceUtilization { - s.MaxMemoryUtilizationPercentage = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetCostAndUsageOutput) SetNextPageToken(v string) *GetCostAndUsageOutput { + s.NextPageToken = &v return s } -// SetMaxStorageUtilizationPercentage sets the MaxStorageUtilizationPercentage field's value. -func (s *EC2ResourceUtilization) SetMaxStorageUtilizationPercentage(v string) *EC2ResourceUtilization { - s.MaxStorageUtilizationPercentage = &v +// SetResultsByTime sets the ResultsByTime field's value. +func (s *GetCostAndUsageOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageOutput { + s.ResultsByTime = v return s } -// The Amazon EC2 hardware specifications that you want AWS to provide recommendations -// for. -type EC2Specification struct { +type GetCostAndUsageWithResourcesInput struct { _ struct{} `type:"structure"` - // Whether you want a recommendation for standard or convertible reservations. - OfferingClass *string `type:"string" enum:"OfferingClass"` -} - -// String returns the string representation -func (s EC2Specification) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s EC2Specification) GoString() string { - return s.String() -} - -// SetOfferingClass sets the OfferingClass field's value. -func (s *EC2Specification) SetOfferingClass(v string) *EC2Specification { - s.OfferingClass = &v - return s -} - -// Details about the Amazon ES instances that AWS recommends that you purchase. -type ESInstanceDetails struct { - _ struct{} `type:"structure"` + // Filters Amazon Web Services costs by different dimensions. For example, you + // can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated + // with that account's usage of that service. You can nest Expression objects + // to define any combination of dimension filters. For more information, see + // Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). + // + // The GetCostAndUsageWithResources operation requires that you either group + // by or filter by a ResourceId. It requires the Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // "SERVICE = Amazon Elastic Compute Cloud - Compute" in the filter. + // + // Filter is a required field + Filter *Expression `type:"structure" required:"true"` - // Whether the recommendation is for a current-generation instance. - CurrentGeneration *bool `type:"boolean"` + // Sets the AWS cost granularity to MONTHLY, DAILY, or HOURLY. If Granularity + // isn't set, the response object doesn't include the Granularity, MONTHLY, + // DAILY, or HOURLY. + Granularity *string `type:"string" enum:"Granularity"` - // The class of instance that AWS recommends. - InstanceClass *string `type:"string"` + // You can group Amazon Web Services costs using up to two different groups: + // either dimensions, tag keys, or both. + GroupBy []*GroupDefinition `type:"list"` - // The size of instance that AWS recommends. - InstanceSize *string `type:"string"` + // Which metrics are returned in the query. For more information about blended + // and unblended rates, see Why does the "blended" annotation appear on some + // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). + // + // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, + // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. + // + // If you return the UsageQuantity metric, the service aggregates all usage + // numbers without taking the units into account. For example, if you aggregate + // usageQuantity across all of Amazon EC2, the results aren't meaningful because + // Amazon EC2 compute hours and data transfer are measured in different units + // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, + // filter by UsageType or UsageTypeGroups. + // + // Metrics is required for GetCostAndUsageWithResources requests. + Metrics []*string `type:"list"` - // The AWS Region of the recommended reservation. - Region *string `type:"string"` + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` - // Whether the recommended reservation is size flexible. - SizeFlexEligible *bool `type:"boolean"` + // Sets the start and end dates for retrieving Amazon Web Services costs. The + // range must be within the last 14 days (the start date cannot be earlier than + // 14 days ago). The start date is inclusive, but the end date is exclusive. + // For example, if start is 2017-01-01 and end is 2017-05-01, then the cost + // and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 + // but not including 2017-05-01. + // + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s ESInstanceDetails) String() string { +func (s GetCostAndUsageWithResourcesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ESInstanceDetails) GoString() string { +func (s GetCostAndUsageWithResourcesInput) GoString() string { return s.String() } -// SetCurrentGeneration sets the CurrentGeneration field's value. -func (s *ESInstanceDetails) SetCurrentGeneration(v bool) *ESInstanceDetails { - s.CurrentGeneration = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCostAndUsageWithResourcesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageWithResourcesInput"} + if s.Filter == nil { + invalidParams.Add(request.NewErrParamRequired("Filter")) + } + if s.TimePeriod == nil { + invalidParams.Add(request.NewErrParamRequired("TimePeriod")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + if s.TimePeriod != nil { + if err := s.TimePeriod.Validate(); err != nil { + invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetInstanceClass sets the InstanceClass field's value. -func (s *ESInstanceDetails) SetInstanceClass(v string) *ESInstanceDetails { - s.InstanceClass = &v +// SetFilter sets the Filter field's value. +func (s *GetCostAndUsageWithResourcesInput) SetFilter(v *Expression) *GetCostAndUsageWithResourcesInput { + s.Filter = v return s } -// SetInstanceSize sets the InstanceSize field's value. -func (s *ESInstanceDetails) SetInstanceSize(v string) *ESInstanceDetails { - s.InstanceSize = &v +// SetGranularity sets the Granularity field's value. +func (s *GetCostAndUsageWithResourcesInput) SetGranularity(v string) *GetCostAndUsageWithResourcesInput { + s.Granularity = &v return s } -// SetRegion sets the Region field's value. -func (s *ESInstanceDetails) SetRegion(v string) *ESInstanceDetails { - s.Region = &v +// SetGroupBy sets the GroupBy field's value. +func (s *GetCostAndUsageWithResourcesInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageWithResourcesInput { + s.GroupBy = v return s } -// SetSizeFlexEligible sets the SizeFlexEligible field's value. -func (s *ESInstanceDetails) SetSizeFlexEligible(v bool) *ESInstanceDetails { - s.SizeFlexEligible = &v +// SetMetrics sets the Metrics field's value. +func (s *GetCostAndUsageWithResourcesInput) SetMetrics(v []*string) *GetCostAndUsageWithResourcesInput { + s.Metrics = v return s } -// Details about the Amazon ElastiCache instances that AWS recommends that you -// purchase. -type ElastiCacheInstanceDetails struct { - _ struct{} `type:"structure"` - - // Whether the recommendation is for a current generation instance. - CurrentGeneration *bool `type:"boolean"` +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetCostAndUsageWithResourcesInput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesInput { + s.NextPageToken = &v + return s +} - // The instance family of the recommended reservation. - Family *string `type:"string"` +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetCostAndUsageWithResourcesInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageWithResourcesInput { + s.TimePeriod = v + return s +} - // The type of node that AWS recommends. - NodeType *string `type:"string"` +type GetCostAndUsageWithResourcesOutput struct { + _ struct{} `type:"structure"` - // The description of the recommended reservation. - ProductDescription *string `type:"string"` + // The groups that are specified by the Filter or GroupBy parameters in the + // request. + GroupDefinitions []*GroupDefinition `type:"list"` - // The AWS Region of the recommended reservation. - Region *string `type:"string"` + // The token for the next set of retrievable results. AWS provides the token + // when the response from a previous call has more results than the maximum + // page size. + NextPageToken *string `type:"string"` - // Whether the recommended reservation is size flexible. - SizeFlexEligible *bool `type:"boolean"` + // The time period that is covered by the results in the response. + ResultsByTime []*ResultByTime `type:"list"` } // String returns the string representation -func (s ElastiCacheInstanceDetails) String() string { +func (s GetCostAndUsageWithResourcesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ElastiCacheInstanceDetails) GoString() string { +func (s GetCostAndUsageWithResourcesOutput) GoString() string { return s.String() } -// SetCurrentGeneration sets the CurrentGeneration field's value. -func (s *ElastiCacheInstanceDetails) SetCurrentGeneration(v bool) *ElastiCacheInstanceDetails { - s.CurrentGeneration = &v - return s -} - -// SetFamily sets the Family field's value. -func (s *ElastiCacheInstanceDetails) SetFamily(v string) *ElastiCacheInstanceDetails { - s.Family = &v - return s -} - -// SetNodeType sets the NodeType field's value. -func (s *ElastiCacheInstanceDetails) SetNodeType(v string) *ElastiCacheInstanceDetails { - s.NodeType = &v - return s -} - -// SetProductDescription sets the ProductDescription field's value. -func (s *ElastiCacheInstanceDetails) SetProductDescription(v string) *ElastiCacheInstanceDetails { - s.ProductDescription = &v +// SetGroupDefinitions sets the GroupDefinitions field's value. +func (s *GetCostAndUsageWithResourcesOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageWithResourcesOutput { + s.GroupDefinitions = v return s } -// SetRegion sets the Region field's value. -func (s *ElastiCacheInstanceDetails) SetRegion(v string) *ElastiCacheInstanceDetails { - s.Region = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetCostAndUsageWithResourcesOutput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesOutput { + s.NextPageToken = &v return s } -// SetSizeFlexEligible sets the SizeFlexEligible field's value. -func (s *ElastiCacheInstanceDetails) SetSizeFlexEligible(v bool) *ElastiCacheInstanceDetails { - s.SizeFlexEligible = &v +// SetResultsByTime sets the ResultsByTime field's value. +func (s *GetCostAndUsageWithResourcesOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageWithResourcesOutput { + s.ResultsByTime = v return s } -// Use Expression to filter by cost or by usage. There are two patterns: -// -// * Simple dimension values - You can set the dimension name and values -// for the filters that you plan to use. For example, you can filter for -// REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks -// like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", -// “us-west-1” ] } } The list of dimension values are OR'd together to -// retrieve cost or usage data. You can create Expression and DimensionValues -// objects using either with* methods or set* methods in multiple lines. -// -// * Compound dimension values with logical operations - You can use multiple -// Expression types and the logical operators AND/OR/NOT to create a list -// of one or more Expression objects. This allows you to filter on more advanced -// options. For example, you can filter on ((REGION == us-east-1 OR REGION -// == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). -// The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": -// { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": -// { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": -// { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each -// Expression can have only one operator, the service returns an error if -// more than one is specified. The following example shows an Expression -// object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": -// "USAGE_TYPE", "Values": [ "DataTransfer" ] } } -// -// For GetRightsizingRecommendation action, a combination of OR and NOT is not -// supported. OR is not supported between different dimensions, or dimensions -// and tags. NOT operators aren't supported. Dimensions are also limited to -// LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. -type Expression struct { +type GetCostForecastInput struct { _ struct{} `type:"structure"` - // Return results that match both Dimension objects. - And []*Expression `type:"list"` - - // The filter based on CostCategory values. - CostCategories *CostCategoryValues `type:"structure"` + // The filters that you want to use to filter your forecast. Cost Explorer API + // supports all of the Cost Explorer filters. + Filter *Expression `type:"structure"` - // The specific Dimension to use for Expression. - Dimensions *DimensionValues `type:"structure"` + // How granular you want the forecast to be. You can get 3 months of DAILY forecasts + // or 12 months of MONTHLY forecasts. + // + // The GetCostForecast operation supports only DAILY and MONTHLY granularities. + // + // Granularity is a required field + Granularity *string `type:"string" required:"true" enum:"Granularity"` - // Return results that don't match a Dimension object. - Not *Expression `type:"structure"` + // Which metric Cost Explorer uses to create your forecast. For more information + // about blended and unblended rates, see Why does the "blended" annotation + // appear on some line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). + // + // Valid values for a GetCostForecast call are the following: + // + // * AMORTIZED_COST + // + // * BLENDED_COST + // + // * NET_AMORTIZED_COST + // + // * NET_UNBLENDED_COST + // + // * UNBLENDED_COST + // + // Metric is a required field + Metric *string `type:"string" required:"true" enum:"Metric"` - // Return results that match either Dimension object. - Or []*Expression `type:"list"` + // Cost Explorer always returns the mean forecast as a single point. You can + // request a prediction interval around the mean by specifying a confidence + // level. The higher the confidence level, the more confident Cost Explorer + // is about the actual value falling in the prediction interval. Higher confidence + // levels result in wider prediction intervals. + PredictionIntervalLevel *int64 `min:"51" type:"integer"` - // The specific Tag to use for Expression. - Tags *TagValues `type:"structure"` + // The period of time that you want the forecast to cover. The start date must + // be equal to or no later than the current date to avoid a validation error. + // + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s Expression) String() string { +func (s GetCostForecastInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s Expression) GoString() string { +func (s GetCostForecastInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *Expression) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Expression"} - if s.CostCategories != nil { - if err := s.CostCategories.Validate(); err != nil { - invalidParams.AddNested("CostCategories", err.(request.ErrInvalidParams)) - } +func (s *GetCostForecastInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetCostForecastInput"} + if s.Granularity == nil { + invalidParams.Add(request.NewErrParamRequired("Granularity")) } - if s.Not != nil { - if err := s.Not.Validate(); err != nil { - invalidParams.AddNested("Not", err.(request.ErrInvalidParams)) + if s.Metric == nil { + invalidParams.Add(request.NewErrParamRequired("Metric")) + } + if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { + invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) + } + if s.TimePeriod == nil { + invalidParams.Add(request.NewErrParamRequired("TimePeriod")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } - if s.Or != nil { - for i, v := range s.Or { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Or", i), err.(request.ErrInvalidParams)) - } + if s.TimePeriod != nil { + if err := s.TimePeriod.Validate(); err != nil { + invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } @@ -3522,140 +5888,189 @@ func (s *Expression) Validate() error { return nil } -// SetAnd sets the And field's value. -func (s *Expression) SetAnd(v []*Expression) *Expression { - s.And = v - return s -} - -// SetCostCategories sets the CostCategories field's value. -func (s *Expression) SetCostCategories(v *CostCategoryValues) *Expression { - s.CostCategories = v +// SetFilter sets the Filter field's value. +func (s *GetCostForecastInput) SetFilter(v *Expression) *GetCostForecastInput { + s.Filter = v return s } -// SetDimensions sets the Dimensions field's value. -func (s *Expression) SetDimensions(v *DimensionValues) *Expression { - s.Dimensions = v +// SetGranularity sets the Granularity field's value. +func (s *GetCostForecastInput) SetGranularity(v string) *GetCostForecastInput { + s.Granularity = &v return s } -// SetNot sets the Not field's value. -func (s *Expression) SetNot(v *Expression) *Expression { - s.Not = v +// SetMetric sets the Metric field's value. +func (s *GetCostForecastInput) SetMetric(v string) *GetCostForecastInput { + s.Metric = &v return s } -// SetOr sets the Or field's value. -func (s *Expression) SetOr(v []*Expression) *Expression { - s.Or = v +// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. +func (s *GetCostForecastInput) SetPredictionIntervalLevel(v int64) *GetCostForecastInput { + s.PredictionIntervalLevel = &v return s } -// SetTags sets the Tags field's value. -func (s *Expression) SetTags(v *TagValues) *Expression { - s.Tags = v +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetCostForecastInput) SetTimePeriod(v *DateInterval) *GetCostForecastInput { + s.TimePeriod = v return s } -// The forecast created for your query. -type ForecastResult struct { +type GetCostForecastOutput struct { _ struct{} `type:"structure"` - // The mean value of the forecast. - MeanValue *string `type:"string"` - - // The lower limit for the prediction interval. - PredictionIntervalLowerBound *string `type:"string"` - - // The upper limit for the prediction interval. - PredictionIntervalUpperBound *string `type:"string"` + // The forecasts for your query, in order. For DAILY forecasts, this is a list + // of days. For MONTHLY forecasts, this is a list of months. + ForecastResultsByTime []*ForecastResult `type:"list"` - // The period of time that the forecast covers. - TimePeriod *DateInterval `type:"structure"` + // How much you are forecasted to spend over the forecast period, in USD. + Total *MetricValue `type:"structure"` } // String returns the string representation -func (s ForecastResult) String() string { +func (s GetCostForecastOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ForecastResult) GoString() string { +func (s GetCostForecastOutput) GoString() string { return s.String() } -// SetMeanValue sets the MeanValue field's value. -func (s *ForecastResult) SetMeanValue(v string) *ForecastResult { - s.MeanValue = &v - return s -} - -// SetPredictionIntervalLowerBound sets the PredictionIntervalLowerBound field's value. -func (s *ForecastResult) SetPredictionIntervalLowerBound(v string) *ForecastResult { - s.PredictionIntervalLowerBound = &v - return s -} - -// SetPredictionIntervalUpperBound sets the PredictionIntervalUpperBound field's value. -func (s *ForecastResult) SetPredictionIntervalUpperBound(v string) *ForecastResult { - s.PredictionIntervalUpperBound = &v +// SetForecastResultsByTime sets the ForecastResultsByTime field's value. +func (s *GetCostForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetCostForecastOutput { + s.ForecastResultsByTime = v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *ForecastResult) SetTimePeriod(v *DateInterval) *ForecastResult { - s.TimePeriod = v +// SetTotal sets the Total field's value. +func (s *GetCostForecastOutput) SetTotal(v *MetricValue) *GetCostForecastOutput { + s.Total = v return s } -type GetCostAndUsageInput struct { +type GetDimensionValuesInput struct { _ struct{} `type:"structure"` - // Filters AWS costs by different dimensions. For example, you can specify SERVICE - // and LINKED_ACCOUNT and get the costs that are associated with that account's - // usage of that service. You can nest Expression objects to define any combination - // of dimension filters. For more information, see Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). - Filter *Expression `type:"structure"` - - // Sets the AWS cost granularity to MONTHLY or DAILY, or HOURLY. If Granularity - // isn't set, the response object doesn't include the Granularity, either MONTHLY - // or DAILY, or HOURLY. - Granularity *string `type:"string" enum:"Granularity"` - - // You can group AWS costs using up to two different groups, either dimensions, - // tag keys, or both. + // The context for the call to GetDimensionValues. This can be RESERVATIONS + // or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is + // set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization + // operation. If the context is set to COST_AND_USAGE, the resulting dimension + // values can be used in the GetCostAndUsage operation. + // + // If you set the context to COST_AND_USAGE, you can use the following dimensions + // for searching: + // + // * AZ - The Availability Zone. An example is us-east-1a. + // + // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples + // are Aurora or MySQL. + // + // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. + // + // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS + // services, such as Amazon Web Services. + // + // * LINKED_ACCOUNT - The description in the attribute map that includes + // the full name of the member account. The value field contains the AWS + // ID of the member account. // - // When you group by tag key, you get all tag values, including empty strings. + // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. // - // Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, - // PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, RECORD_TYPE, and USAGE_TYPE. - GroupBy []*GroupDefinition `type:"list"` - - // Which metrics are returned in the query. For more information about blended - // and unblended rates, see Why does the "blended" annotation appear on some - // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). + // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. // - // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, - // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. + // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or + // Linux. // - // If you return the UsageQuantity metric, the service aggregates all usage - // numbers without taking into account the units. For example, if you aggregate - // usageQuantity across all of Amazon EC2, the results aren't meaningful because - // Amazon EC2 compute hours and data transfer are measured in different units - // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, - // filter by UsageType or UsageTypeGroups. + // * PURCHASE_TYPE - The reservation type of the purchase to which this usage + // is related. Examples include On-Demand Instances and Standard Reserved + // Instances. // - // Metrics is required for GetCostAndUsage requests. - Metrics []*string `type:"list"` + // * SERVICE - The AWS service such as Amazon DynamoDB. + // + // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. + // The response for the GetDimensionValues operation includes a unit attribute. + // Examples include GB and Hrs. + // + // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is + // Amazon EC2: CloudWatch – Alarms. The response for this operation includes + // a unit attribute. + // + // * REGION - The AWS Region. + // + // * RECORD_TYPE - The different types of charges such as RI fees, usage + // costs, tax refunds, and credits. + // + // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an + // opt-in feature only available for last 14 days for EC2-Compute Service. + // + // If you set the context to RESERVATIONS, you can use the following dimensions + // for searching: + // + // * AZ - The Availability Zone. An example is us-east-1a. + // + // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are + // Windows or Linux. + // + // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service + // deployments. Valid values are SingleAZ and MultiAZ. + // + // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. + // + // * LINKED_ACCOUNT - The description in the attribute map that includes + // the full name of the member account. The value field contains the AWS + // ID of the member account. + // + // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or + // Linux. + // + // * REGION - The AWS Region. + // + // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values + // are regional or a single Availability Zone. + // + // * TAG (Coverage only) - The tags that are associated with a Reserved Instance + // (RI). + // + // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. + // + // If you set the context to SAVINGS_PLANS, you can use the following dimensions + // for searching: + // + // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) + // + // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, + // All Upfront) + // + // * REGION - The AWS Region. + // + // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) + // + // * LINKED_ACCOUNT - The description in the attribute map that includes + // the full name of the member account. The value field contains the AWS + // ID of the member account. + // + // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan + Context *string `type:"string" enum:"Context"` + + // The name of the dimension. Each Dimension is available for a different Context. + // For more information, see Context. + // + // Dimension is a required field + Dimension *string `type:"string" required:"true" enum:"Dimension"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` - // Sets the start and end dates for retrieving AWS costs. The start date is - // inclusive, but the end date is exclusive. For example, if start is 2017-01-01 + // The value that you want to search the filter values for. + SearchString *string `type:"string"` + + // The start and end dates for retrieving the dimension values. The start date + // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 // up to and including 2017-04-30 but not including 2017-05-01. // @@ -3664,26 +6079,24 @@ type GetCostAndUsageInput struct { } // String returns the string representation -func (s GetCostAndUsageInput) String() string { +func (s GetDimensionValuesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetCostAndUsageInput) GoString() string { +func (s GetDimensionValuesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetCostAndUsageInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageInput"} +func (s *GetDimensionValuesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDimensionValuesInput"} + if s.Dimension == nil { + invalidParams.Add(request.NewErrParamRequired("Dimension")) + } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } - } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) @@ -3696,123 +6109,263 @@ func (s *GetCostAndUsageInput) Validate() error { return nil } -// SetFilter sets the Filter field's value. -func (s *GetCostAndUsageInput) SetFilter(v *Expression) *GetCostAndUsageInput { - s.Filter = v - return s -} - -// SetGranularity sets the Granularity field's value. -func (s *GetCostAndUsageInput) SetGranularity(v string) *GetCostAndUsageInput { - s.Granularity = &v +// SetContext sets the Context field's value. +func (s *GetDimensionValuesInput) SetContext(v string) *GetDimensionValuesInput { + s.Context = &v return s } -// SetGroupBy sets the GroupBy field's value. -func (s *GetCostAndUsageInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageInput { - s.GroupBy = v +// SetDimension sets the Dimension field's value. +func (s *GetDimensionValuesInput) SetDimension(v string) *GetDimensionValuesInput { + s.Dimension = &v return s } -// SetMetrics sets the Metrics field's value. -func (s *GetCostAndUsageInput) SetMetrics(v []*string) *GetCostAndUsageInput { - s.Metrics = v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetDimensionValuesInput) SetNextPageToken(v string) *GetDimensionValuesInput { + s.NextPageToken = &v return s } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetCostAndUsageInput) SetNextPageToken(v string) *GetCostAndUsageInput { - s.NextPageToken = &v +// SetSearchString sets the SearchString field's value. +func (s *GetDimensionValuesInput) SetSearchString(v string) *GetDimensionValuesInput { + s.SearchString = &v return s } // SetTimePeriod sets the TimePeriod field's value. -func (s *GetCostAndUsageInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageInput { +func (s *GetDimensionValuesInput) SetTimePeriod(v *DateInterval) *GetDimensionValuesInput { s.TimePeriod = v return s } -type GetCostAndUsageOutput struct { +type GetDimensionValuesOutput struct { _ struct{} `type:"structure"` - // The groups that are specified by the Filter or GroupBy parameters in the - // request. - GroupDefinitions []*GroupDefinition `type:"list"` + // The filters that you used to filter your request. Some dimensions are available + // only for a specific context. + // + // If you set the context to COST_AND_USAGE, you can use the following dimensions + // for searching: + // + // * AZ - The Availability Zone. An example is us-east-1a. + // + // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples + // are Aurora or MySQL. + // + // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. + // + // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS + // services, such as Amazon Web Services. + // + // * LINKED_ACCOUNT - The description in the attribute map that includes + // the full name of the member account. The value field contains the AWS + // ID of the member account. + // + // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. + // + // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. + // + // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or + // Linux. + // + // * PURCHASE_TYPE - The reservation type of the purchase to which this usage + // is related. Examples include On-Demand Instances and Standard Reserved + // Instances. + // + // * SERVICE - The AWS service such as Amazon DynamoDB. + // + // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. + // The response for the GetDimensionValues operation includes a unit attribute. + // Examples include GB and Hrs. + // + // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is + // Amazon EC2: CloudWatch – Alarms. The response for this operation includes + // a unit attribute. + // + // * RECORD_TYPE - The different types of charges such as RI fees, usage + // costs, tax refunds, and credits. + // + // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an + // opt-in feature only available for last 14 days for EC2-Compute Service. + // + // If you set the context to RESERVATIONS, you can use the following dimensions + // for searching: + // + // * AZ - The Availability Zone. An example is us-east-1a. + // + // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are + // Windows or Linux. + // + // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service + // deployments. Valid values are SingleAZ and MultiAZ. + // + // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. + // + // * LINKED_ACCOUNT - The description in the attribute map that includes + // the full name of the member account. The value field contains the AWS + // ID of the member account. + // + // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or + // Linux. + // + // * REGION - The AWS Region. + // + // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values + // are regional or a single Availability Zone. + // + // * TAG (Coverage only) - The tags that are associated with a Reserved Instance + // (RI). + // + // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. + // + // If you set the context to SAVINGS_PLANS, you can use the following dimensions + // for searching: + // + // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) + // + // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, + // All Upfront) + // + // * REGION - The AWS Region. + // + // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) + // + // * LINKED_ACCOUNT - The description in the attribute map that includes + // the full name of the member account. The value field contains the AWS + // ID of the member account. + // + // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan + // + // DimensionValues is a required field + DimensionValues []*DimensionValuesWithAttributes `type:"list" required:"true"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` - // The time period that is covered by the results in the response. - ResultsByTime []*ResultByTime `type:"list"` + // The number of results that AWS returned at one time. + // + // ReturnSize is a required field + ReturnSize *int64 `type:"integer" required:"true"` + + // The total number of search results. + // + // TotalSize is a required field + TotalSize *int64 `type:"integer" required:"true"` } // String returns the string representation -func (s GetCostAndUsageOutput) String() string { +func (s GetDimensionValuesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetCostAndUsageOutput) GoString() string { +func (s GetDimensionValuesOutput) GoString() string { return s.String() } -// SetGroupDefinitions sets the GroupDefinitions field's value. -func (s *GetCostAndUsageOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageOutput { - s.GroupDefinitions = v +// SetDimensionValues sets the DimensionValues field's value. +func (s *GetDimensionValuesOutput) SetDimensionValues(v []*DimensionValuesWithAttributes) *GetDimensionValuesOutput { + s.DimensionValues = v return s } // SetNextPageToken sets the NextPageToken field's value. -func (s *GetCostAndUsageOutput) SetNextPageToken(v string) *GetCostAndUsageOutput { +func (s *GetDimensionValuesOutput) SetNextPageToken(v string) *GetDimensionValuesOutput { s.NextPageToken = &v return s } -// SetResultsByTime sets the ResultsByTime field's value. -func (s *GetCostAndUsageOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageOutput { - s.ResultsByTime = v +// SetReturnSize sets the ReturnSize field's value. +func (s *GetDimensionValuesOutput) SetReturnSize(v int64) *GetDimensionValuesOutput { + s.ReturnSize = &v return s } -type GetCostAndUsageWithResourcesInput struct { +// SetTotalSize sets the TotalSize field's value. +func (s *GetDimensionValuesOutput) SetTotalSize(v int64) *GetDimensionValuesOutput { + s.TotalSize = &v + return s +} + +// You can use the following request parameters to query for how much of your +// instance usage a reservation covered. +type GetReservationCoverageInput struct { _ struct{} `type:"structure"` - // Filters Amazon Web Services costs by different dimensions. For example, you - // can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated - // with that account's usage of that service. You can nest Expression objects - // to define any combination of dimension filters. For more information, see - // Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). + // Filters utilization data by dimensions. You can filter by the following dimensions: // - // The GetCostAndUsageWithResources operation requires that you either group - // by or filter by a ResourceId. + // * AZ + // + // * CACHE_ENGINE + // + // * DATABASE_ENGINE + // + // * DEPLOYMENT_OPTION + // + // * INSTANCE_TYPE + // + // * LINKED_ACCOUNT + // + // * OPERATING_SYSTEM + // + // * PLATFORM + // + // * REGION + // + // * SERVICE + // + // * TAG + // + // * TENANCY + // + // GetReservationCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // object as the other operations, but only AND is supported among each dimension. + // You can nest only one level deep. If there are multiple values for a dimension, + // they are OR'd together. + // + // If you don't provide a SERVICE filter, Cost Explorer defaults to EC2. + // + // Cost category is also supported. Filter *Expression `type:"structure"` - // Sets the AWS cost granularity to MONTHLY, DAILY, or HOURLY. If Granularity - // isn't set, the response object doesn't include the Granularity, MONTHLY, - // DAILY, or HOURLY. + // The granularity of the AWS cost data for the reservation. Valid values are + // MONTHLY and DAILY. + // + // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the + // response object doesn't include Granularity, either MONTHLY or DAILY. + // + // The GetReservationCoverage operation supports only DAILY and MONTHLY granularities. Granularity *string `type:"string" enum:"Granularity"` - // You can group Amazon Web Services costs using up to two different groups: - // either dimensions, tag keys, or both. - GroupBy []*GroupDefinition `type:"list"` - - // Which metrics are returned in the query. For more information about blended - // and unblended rates, see Why does the "blended" annotation appear on some - // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). + // You can group the data by the following attributes: // - // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, - // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. + // * AZ // - // If you return the UsageQuantity metric, the service aggregates all usage - // numbers without taking the units into account. For example, if you aggregate - // usageQuantity across all of Amazon EC2, the results aren't meaningful because - // Amazon EC2 compute hours and data transfer are measured in different units - // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, - // filter by UsageType or UsageTypeGroups. + // * CACHE_ENGINE // - // Metrics is required for GetCostAndUsageWithResources requests. + // * DATABASE_ENGINE + // + // * DEPLOYMENT_OPTION + // + // * INSTANCE_TYPE + // + // * LINKED_ACCOUNT + // + // * OPERATING_SYSTEM + // + // * PLATFORM + // + // * REGION + // + // * TENANCY + GroupBy []*GroupDefinition `type:"list"` + + // The measurement that you want your reservation coverage reported in. + // + // Valid values are Hour, Unit, and Cost. You can use multiple values in a request. Metrics []*string `type:"list"` // The token to retrieve the next set of results. AWS provides the token when @@ -3820,30 +6373,30 @@ type GetCostAndUsageWithResourcesInput struct { // size. NextPageToken *string `type:"string"` - // Sets the start and end dates for retrieving Amazon Web Services costs. The - // range must be within the last 14 days (the start date cannot be earlier than - // 14 days ago). The start date is inclusive, but the end date is exclusive. - // For example, if start is 2017-01-01 and end is 2017-05-01, then the cost - // and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 - // but not including 2017-05-01. + // The start and end dates of the period that you want to retrieve data about + // reservation coverage for. You can retrieve data for a maximum of 13 months: + // the last 12 months and the current month. The start date is inclusive, but + // the end date is exclusive. For example, if start is 2017-01-01 and end is + // 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up + // to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s GetCostAndUsageWithResourcesInput) String() string { +func (s GetReservationCoverageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetCostAndUsageWithResourcesInput) GoString() string { +func (s GetReservationCoverageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetCostAndUsageWithResourcesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageWithResourcesInput"} +func (s *GetReservationCoverageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetReservationCoverageInput"} if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } @@ -3865,166 +6418,141 @@ func (s *GetCostAndUsageWithResourcesInput) Validate() error { } // SetFilter sets the Filter field's value. -func (s *GetCostAndUsageWithResourcesInput) SetFilter(v *Expression) *GetCostAndUsageWithResourcesInput { +func (s *GetReservationCoverageInput) SetFilter(v *Expression) *GetReservationCoverageInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. -func (s *GetCostAndUsageWithResourcesInput) SetGranularity(v string) *GetCostAndUsageWithResourcesInput { +func (s *GetReservationCoverageInput) SetGranularity(v string) *GetReservationCoverageInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. -func (s *GetCostAndUsageWithResourcesInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageWithResourcesInput { +func (s *GetReservationCoverageInput) SetGroupBy(v []*GroupDefinition) *GetReservationCoverageInput { s.GroupBy = v return s } // SetMetrics sets the Metrics field's value. -func (s *GetCostAndUsageWithResourcesInput) SetMetrics(v []*string) *GetCostAndUsageWithResourcesInput { +func (s *GetReservationCoverageInput) SetMetrics(v []*string) *GetReservationCoverageInput { s.Metrics = v return s } // SetNextPageToken sets the NextPageToken field's value. -func (s *GetCostAndUsageWithResourcesInput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesInput { +func (s *GetReservationCoverageInput) SetNextPageToken(v string) *GetReservationCoverageInput { s.NextPageToken = &v return s } // SetTimePeriod sets the TimePeriod field's value. -func (s *GetCostAndUsageWithResourcesInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageWithResourcesInput { +func (s *GetReservationCoverageInput) SetTimePeriod(v *DateInterval) *GetReservationCoverageInput { s.TimePeriod = v return s } -type GetCostAndUsageWithResourcesOutput struct { +type GetReservationCoverageOutput struct { _ struct{} `type:"structure"` - // The groups that are specified by the Filter or GroupBy parameters in the - // request. - GroupDefinitions []*GroupDefinition `type:"list"` + // The amount of time that your reservations covered. + // + // CoveragesByTime is a required field + CoveragesByTime []*CoverageByTime `type:"list" required:"true"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` - // The time period that is covered by the results in the response. - ResultsByTime []*ResultByTime `type:"list"` + // The total amount of instance usage that a reservation covered. + Total *Coverage `type:"structure"` } // String returns the string representation -func (s GetCostAndUsageWithResourcesOutput) String() string { +func (s GetReservationCoverageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetCostAndUsageWithResourcesOutput) GoString() string { +func (s GetReservationCoverageOutput) GoString() string { return s.String() } -// SetGroupDefinitions sets the GroupDefinitions field's value. -func (s *GetCostAndUsageWithResourcesOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageWithResourcesOutput { - s.GroupDefinitions = v +// SetCoveragesByTime sets the CoveragesByTime field's value. +func (s *GetReservationCoverageOutput) SetCoveragesByTime(v []*CoverageByTime) *GetReservationCoverageOutput { + s.CoveragesByTime = v return s } // SetNextPageToken sets the NextPageToken field's value. -func (s *GetCostAndUsageWithResourcesOutput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesOutput { +func (s *GetReservationCoverageOutput) SetNextPageToken(v string) *GetReservationCoverageOutput { s.NextPageToken = &v return s } -// SetResultsByTime sets the ResultsByTime field's value. -func (s *GetCostAndUsageWithResourcesOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageWithResourcesOutput { - s.ResultsByTime = v +// SetTotal sets the Total field's value. +func (s *GetReservationCoverageOutput) SetTotal(v *Coverage) *GetReservationCoverageOutput { + s.Total = v return s } -type GetCostForecastInput struct { +type GetReservationPurchaseRecommendationInput struct { _ struct{} `type:"structure"` - // The filters that you want to use to filter your forecast. Cost Explorer API - // supports all of the Cost Explorer filters. - Filter *Expression `type:"structure"` + // The account ID that is associated with the recommendation. + AccountId *string `type:"string"` - // How granular you want the forecast to be. You can get 3 months of DAILY forecasts - // or 12 months of MONTHLY forecasts. - // - // The GetCostForecast operation supports only DAILY and MONTHLY granularities. - // - // Granularity is a required field - Granularity *string `type:"string" required:"true" enum:"Granularity"` + // The account scope that you want your recommendations for. Amazon Web Services + // calculates recommendations including the payer account and linked accounts + // if the value is set to PAYER. If the value is LINKED, recommendations are + // calculated for individual linked accounts only. + AccountScope *string `type:"string" enum:"AccountScope"` - // Which metric Cost Explorer uses to create your forecast. For more information - // about blended and unblended rates, see Why does the "blended" annotation - // appear on some line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). - // - // Valid values for a GetCostForecast call are the following: - // - // * AMORTIZED_COST - // - // * BLENDED_COST - // - // * NET_AMORTIZED_COST - // - // * NET_UNBLENDED_COST - // - // * UNBLENDED_COST - // - // Metric is a required field - Metric *string `type:"string" required:"true" enum:"Metric"` + // The number of previous days that you want AWS to consider when it calculates + // your recommendations. + LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` - // Cost Explorer always returns the mean forecast as a single point. You can - // request a prediction interval around the mean by specifying a confidence - // level. The higher the confidence level, the more confident Cost Explorer - // is about the actual value falling in the prediction interval. Higher confidence - // levels result in wider prediction intervals. - PredictionIntervalLevel *int64 `min:"51" type:"integer"` + // The pagination token that indicates the next set of results that you want + // to retrieve. + NextPageToken *string `type:"string"` + + // The number of recommendations that you want returned in a single response + // object. + PageSize *int64 `type:"integer"` + + // The reservation purchase option that you want recommendations for. + PaymentOption *string `type:"string" enum:"PaymentOption"` - // The period of time that you want the forecast to cover. + // The specific service that you want recommendations for. // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` + // Service is a required field + Service *string `type:"string" required:"true"` + + // The hardware specifications for the service instances that you want recommendations + // for, such as standard or convertible Amazon EC2 instances. + ServiceSpecification *ServiceSpecification `type:"structure"` + + // The reservation term that you want recommendations for. + TermInYears *string `type:"string" enum:"TermInYears"` } // String returns the string representation -func (s GetCostForecastInput) String() string { +func (s GetReservationPurchaseRecommendationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetCostForecastInput) GoString() string { +func (s GetReservationPurchaseRecommendationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetCostForecastInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetCostForecastInput"} - if s.Granularity == nil { - invalidParams.Add(request.NewErrParamRequired("Granularity")) - } - if s.Metric == nil { - invalidParams.Add(request.NewErrParamRequired("Metric")) - } - if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { - invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) - } - if s.TimePeriod == nil { - invalidParams.Add(request.NewErrParamRequired("TimePeriod")) - } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } - } - if s.TimePeriod != nil { - if err := s.TimePeriod.Validate(); err != nil { - invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) - } +func (s *GetReservationPurchaseRecommendationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetReservationPurchaseRecommendationInput"} + if s.Service == nil { + invalidParams.Add(request.NewErrParamRequired("Service")) } if invalidParams.Len() > 0 { @@ -4033,186 +6561,152 @@ func (s *GetCostForecastInput) Validate() error { return nil } -// SetFilter sets the Filter field's value. -func (s *GetCostForecastInput) SetFilter(v *Expression) *GetCostForecastInput { - s.Filter = v +// SetAccountId sets the AccountId field's value. +func (s *GetReservationPurchaseRecommendationInput) SetAccountId(v string) *GetReservationPurchaseRecommendationInput { + s.AccountId = &v return s } -// SetGranularity sets the Granularity field's value. -func (s *GetCostForecastInput) SetGranularity(v string) *GetCostForecastInput { - s.Granularity = &v +// SetAccountScope sets the AccountScope field's value. +func (s *GetReservationPurchaseRecommendationInput) SetAccountScope(v string) *GetReservationPurchaseRecommendationInput { + s.AccountScope = &v return s } -// SetMetric sets the Metric field's value. -func (s *GetCostForecastInput) SetMetric(v string) *GetCostForecastInput { - s.Metric = &v +// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. +func (s *GetReservationPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetReservationPurchaseRecommendationInput { + s.LookbackPeriodInDays = &v return s } -// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. -func (s *GetCostForecastInput) SetPredictionIntervalLevel(v int64) *GetCostForecastInput { - s.PredictionIntervalLevel = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetReservationPurchaseRecommendationInput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationInput { + s.NextPageToken = &v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *GetCostForecastInput) SetTimePeriod(v *DateInterval) *GetCostForecastInput { - s.TimePeriod = v +// SetPageSize sets the PageSize field's value. +func (s *GetReservationPurchaseRecommendationInput) SetPageSize(v int64) *GetReservationPurchaseRecommendationInput { + s.PageSize = &v return s } -type GetCostForecastOutput struct { +// SetPaymentOption sets the PaymentOption field's value. +func (s *GetReservationPurchaseRecommendationInput) SetPaymentOption(v string) *GetReservationPurchaseRecommendationInput { + s.PaymentOption = &v + return s +} + +// SetService sets the Service field's value. +func (s *GetReservationPurchaseRecommendationInput) SetService(v string) *GetReservationPurchaseRecommendationInput { + s.Service = &v + return s +} + +// SetServiceSpecification sets the ServiceSpecification field's value. +func (s *GetReservationPurchaseRecommendationInput) SetServiceSpecification(v *ServiceSpecification) *GetReservationPurchaseRecommendationInput { + s.ServiceSpecification = v + return s +} + +// SetTermInYears sets the TermInYears field's value. +func (s *GetReservationPurchaseRecommendationInput) SetTermInYears(v string) *GetReservationPurchaseRecommendationInput { + s.TermInYears = &v + return s +} + +type GetReservationPurchaseRecommendationOutput struct { _ struct{} `type:"structure"` - // The forecasts for your query, in order. For DAILY forecasts, this is a list - // of days. For MONTHLY forecasts, this is a list of months. - ForecastResultsByTime []*ForecastResult `type:"list"` + // Information about this specific recommendation call, such as the time stamp + // for when Cost Explorer generated this recommendation. + Metadata *ReservationPurchaseRecommendationMetadata `type:"structure"` - // How much you are forecasted to spend over the forecast period, in USD. - Total *MetricValue `type:"structure"` + // The pagination token for the next set of retrievable results. + NextPageToken *string `type:"string"` + + // Recommendations for reservations to purchase. + Recommendations []*ReservationPurchaseRecommendation `type:"list"` } // String returns the string representation -func (s GetCostForecastOutput) String() string { +func (s GetReservationPurchaseRecommendationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetCostForecastOutput) GoString() string { +func (s GetReservationPurchaseRecommendationOutput) GoString() string { return s.String() } -// SetForecastResultsByTime sets the ForecastResultsByTime field's value. -func (s *GetCostForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetCostForecastOutput { - s.ForecastResultsByTime = v +// SetMetadata sets the Metadata field's value. +func (s *GetReservationPurchaseRecommendationOutput) SetMetadata(v *ReservationPurchaseRecommendationMetadata) *GetReservationPurchaseRecommendationOutput { + s.Metadata = v return s } -// SetTotal sets the Total field's value. -func (s *GetCostForecastOutput) SetTotal(v *MetricValue) *GetCostForecastOutput { - s.Total = v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetReservationPurchaseRecommendationOutput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationOutput { + s.NextPageToken = &v return s } -type GetDimensionValuesInput struct { +// SetRecommendations sets the Recommendations field's value. +func (s *GetReservationPurchaseRecommendationOutput) SetRecommendations(v []*ReservationPurchaseRecommendation) *GetReservationPurchaseRecommendationOutput { + s.Recommendations = v + return s +} + +type GetReservationUtilizationInput struct { _ struct{} `type:"structure"` - // The context for the call to GetDimensionValues. This can be RESERVATIONS - // or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is - // set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization - // operation. If the context is set to COST_AND_USAGE, the resulting dimension - // values can be used in the GetCostAndUsage operation. - // - // If you set the context to COST_AND_USAGE, you can use the following dimensions - // for searching: - // - // * AZ - The Availability Zone. An example is us-east-1a. - // - // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples - // are Aurora or MySQL. - // - // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. - // - // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS - // services, such as Amazon Web Services. - // - // * LINKED_ACCOUNT - The description in the attribute map that includes - // the full name of the member account. The value field contains the AWS - // ID of the member account. - // - // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. - // - // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. - // - // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or - // Linux. - // - // * PURCHASE_TYPE - The reservation type of the purchase to which this usage - // is related. Examples include On-Demand Instances and Standard Reserved - // Instances. - // - // * SERVICE - The AWS service such as Amazon DynamoDB. - // - // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. - // The response for the GetDimensionValues operation includes a unit attribute. - // Examples include GB and Hrs. - // - // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is - // Amazon EC2: CloudWatch – Alarms. The response for this operation includes - // a unit attribute. - // - // * RECORD_TYPE - The different types of charges such as RI fees, usage - // costs, tax refunds, and credits. - // - // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an - // opt-in feature only available for last 14 days for EC2-Compute Service. - // - // If you set the context to RESERVATIONS, you can use the following dimensions - // for searching: - // - // * AZ - The Availability Zone. An example is us-east-1a. - // - // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are - // Windows or Linux. - // - // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service - // deployments. Valid values are SingleAZ and MultiAZ. - // - // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. - // - // * LINKED_ACCOUNT - The description in the attribute map that includes - // the full name of the member account. The value field contains the AWS - // ID of the member account. + // Filters utilization data by dimensions. You can filter by the following dimensions: // - // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or - // Linux. + // * AZ // - // * REGION - The AWS Region. + // * CACHE_ENGINE // - // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values - // are regional or a single Availability Zone. + // * DEPLOYMENT_OPTION // - // * TAG (Coverage only) - The tags that are associated with a Reserved Instance - // (RI). + // * INSTANCE_TYPE // - // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. + // * LINKED_ACCOUNT // - // If you set the context to SAVINGS_PLANS, you can use the following dimensions - // for searching: + // * OPERATING_SYSTEM // - // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) + // * PLATFORM // - // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, - // All Upfront) + // * REGION // - // * REGION - The AWS Region. + // * SERVICE // - // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) + // * SCOPE // - // * LINKED_ACCOUNT - The description in the attribute map that includes - // the full name of the member account. The value field contains the AWS - // ID of the member account. + // * TENANCY // - // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan - Context *string `type:"string" enum:"Context"` + // GetReservationUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // object as the other operations, but only AND is supported among each dimension, + // and nesting is supported up to only one level deep. If there are multiple + // values for a dimension, they are OR'd together. + Filter *Expression `type:"structure"` - // The name of the dimension. Each Dimension is available for a different Context. - // For more information, see Context. + // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the + // response object doesn't include Granularity, either MONTHLY or DAILY. If + // both GroupBy and Granularity aren't set, GetReservationUtilization defaults + // to DAILY. // - // Dimension is a required field - Dimension *string `type:"string" required:"true" enum:"Dimension"` + // The GetReservationUtilization operation supports only DAILY and MONTHLY granularities. + Granularity *string `type:"string" enum:"Granularity"` + + // Groups only by SUBSCRIPTION_ID. Metadata is included. + GroupBy []*GroupDefinition `type:"list"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` - // The value that you want to search the filter values for. - SearchString *string `type:"string"` - - // The start and end dates for retrieving the dimension values. The start date + // Sets the start and end dates for retrieving RI utilization. The start date // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 // up to and including 2017-04-30 but not including 2017-05-01. @@ -4222,24 +6716,26 @@ type GetDimensionValuesInput struct { } // String returns the string representation -func (s GetDimensionValuesInput) String() string { +func (s GetReservationUtilizationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetDimensionValuesInput) GoString() string { +func (s GetReservationUtilizationInput) GoString() string { return s.String() } - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetDimensionValuesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetDimensionValuesInput"} - if s.Dimension == nil { - invalidParams.Add(request.NewErrParamRequired("Dimension")) - } + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetReservationUtilizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetReservationUtilizationInput"} if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) @@ -4252,294 +6748,329 @@ func (s *GetDimensionValuesInput) Validate() error { return nil } -// SetContext sets the Context field's value. -func (s *GetDimensionValuesInput) SetContext(v string) *GetDimensionValuesInput { - s.Context = &v +// SetFilter sets the Filter field's value. +func (s *GetReservationUtilizationInput) SetFilter(v *Expression) *GetReservationUtilizationInput { + s.Filter = v return s } -// SetDimension sets the Dimension field's value. -func (s *GetDimensionValuesInput) SetDimension(v string) *GetDimensionValuesInput { - s.Dimension = &v +// SetGranularity sets the Granularity field's value. +func (s *GetReservationUtilizationInput) SetGranularity(v string) *GetReservationUtilizationInput { + s.Granularity = &v return s } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetDimensionValuesInput) SetNextPageToken(v string) *GetDimensionValuesInput { - s.NextPageToken = &v +// SetGroupBy sets the GroupBy field's value. +func (s *GetReservationUtilizationInput) SetGroupBy(v []*GroupDefinition) *GetReservationUtilizationInput { + s.GroupBy = v return s } -// SetSearchString sets the SearchString field's value. -func (s *GetDimensionValuesInput) SetSearchString(v string) *GetDimensionValuesInput { - s.SearchString = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetReservationUtilizationInput) SetNextPageToken(v string) *GetReservationUtilizationInput { + s.NextPageToken = &v return s } // SetTimePeriod sets the TimePeriod field's value. -func (s *GetDimensionValuesInput) SetTimePeriod(v *DateInterval) *GetDimensionValuesInput { +func (s *GetReservationUtilizationInput) SetTimePeriod(v *DateInterval) *GetReservationUtilizationInput { s.TimePeriod = v return s } -type GetDimensionValuesOutput struct { +type GetReservationUtilizationOutput struct { _ struct{} `type:"structure"` - // The filters that you used to filter your request. Some dimensions are available - // only for a specific context. - // - // If you set the context to COST_AND_USAGE, you can use the following dimensions - // for searching: - // - // * AZ - The Availability Zone. An example is us-east-1a. - // - // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples - // are Aurora or MySQL. - // - // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. - // - // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS - // services, such as Amazon Web Services. - // - // * LINKED_ACCOUNT - The description in the attribute map that includes - // the full name of the member account. The value field contains the AWS - // ID of the member account. - // - // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. - // - // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. - // - // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or - // Linux. - // - // * PURCHASE_TYPE - The reservation type of the purchase to which this usage - // is related. Examples include On-Demand Instances and Standard Reserved - // Instances. - // - // * SERVICE - The AWS service such as Amazon DynamoDB. - // - // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. - // The response for the GetDimensionValues operation includes a unit attribute. - // Examples include GB and Hrs. - // - // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is - // Amazon EC2: CloudWatch – Alarms. The response for this operation includes - // a unit attribute. - // - // * RECORD_TYPE - The different types of charges such as RI fees, usage - // costs, tax refunds, and credits. - // - // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an - // opt-in feature only available for last 14 days for EC2-Compute Service. - // - // If you set the context to RESERVATIONS, you can use the following dimensions - // for searching: - // - // * AZ - The Availability Zone. An example is us-east-1a. - // - // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are - // Windows or Linux. - // - // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service - // deployments. Valid values are SingleAZ and MultiAZ. - // - // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. - // - // * LINKED_ACCOUNT - The description in the attribute map that includes - // the full name of the member account. The value field contains the AWS - // ID of the member account. - // - // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or - // Linux. - // - // * REGION - The AWS Region. - // - // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values - // are regional or a single Availability Zone. - // - // * TAG (Coverage only) - The tags that are associated with a Reserved Instance - // (RI). - // - // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. - // - // If you set the context to SAVINGS_PLANS, you can use the following dimensions - // for searching: - // - // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) - // - // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, - // All Upfront) + // The token for the next set of retrievable results. AWS provides the token + // when the response from a previous call has more results than the maximum + // page size. + NextPageToken *string `type:"string"` + + // The total amount of time that you used your RIs. + Total *ReservationAggregates `type:"structure"` + + // The amount of time that you used your RIs. // - // * REGION - The AWS Region. + // UtilizationsByTime is a required field + UtilizationsByTime []*UtilizationByTime `type:"list" required:"true"` +} + +// String returns the string representation +func (s GetReservationUtilizationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetReservationUtilizationOutput) GoString() string { + return s.String() +} + +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetReservationUtilizationOutput) SetNextPageToken(v string) *GetReservationUtilizationOutput { + s.NextPageToken = &v + return s +} + +// SetTotal sets the Total field's value. +func (s *GetReservationUtilizationOutput) SetTotal(v *ReservationAggregates) *GetReservationUtilizationOutput { + s.Total = v + return s +} + +// SetUtilizationsByTime sets the UtilizationsByTime field's value. +func (s *GetReservationUtilizationOutput) SetUtilizationsByTime(v []*UtilizationByTime) *GetReservationUtilizationOutput { + s.UtilizationsByTime = v + return s +} + +type GetRightsizingRecommendationInput struct { + _ struct{} `type:"structure"` + + // Enables you to customize recommendations across two attributes. You can choose + // to view recommendations for instances within the same instance families or + // across different instance families. You can also choose to view your estimated + // savings associated with recommendations with consideration of existing Savings + // Plans or RI benefits, or neither. + Configuration *RightsizingRecommendationConfiguration `type:"structure"` + + // Use Expression to filter by cost or by usage. There are two patterns: // - // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) + // * Simple dimension values - You can set the dimension name and values + // for the filters that you plan to use. For example, you can filter for + // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks + // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", + // “us-west-1” ] } } The list of dimension values are OR'd together to + // retrieve cost or usage data. You can create Expression and DimensionValues + // objects using either with* methods or set* methods in multiple lines. // - // * LINKED_ACCOUNT - The description in the attribute map that includes - // the full name of the member account. The value field contains the AWS - // ID of the member account. + // * Compound dimension values with logical operations - You can use multiple + // Expression types and the logical operators AND/OR/NOT to create a list + // of one or more Expression objects. This allows you to filter on more advanced + // options. For example, you can filter on ((REGION == us-east-1 OR REGION + // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). + // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": + // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": + // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": + // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each + // Expression can have only one operator, the service returns an error if + // more than one is specified. The following example shows an Expression + // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": + // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // - // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan + // For GetRightsizingRecommendation action, a combination of OR and NOT is not + // supported. OR is not supported between different dimensions, or dimensions + // and tags. NOT operators aren't supported. Dimensions are also limited to + // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. + Filter *Expression `type:"structure"` + + // The pagination token that indicates the next set of results that you want + // to retrieve. + NextPageToken *string `type:"string"` + + // The number of recommendations that you want returned in a single response + // object. + PageSize *int64 `type:"integer"` + + // The specific service that you want recommendations for. The only valid value + // for GetRightsizingRecommendation is "AmazonEC2". // - // DimensionValues is a required field - DimensionValues []*DimensionValuesWithAttributes `type:"list" required:"true"` + // Service is a required field + Service *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetRightsizingRecommendationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetRightsizingRecommendationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRightsizingRecommendationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetRightsizingRecommendationInput"} + if s.Service == nil { + invalidParams.Add(request.NewErrParamRequired("Service")) + } + if s.Configuration != nil { + if err := s.Configuration.Validate(); err != nil { + invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) + } + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfiguration sets the Configuration field's value. +func (s *GetRightsizingRecommendationInput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationInput { + s.Configuration = v + return s +} - // The token for the next set of retrievable results. AWS provides the token - // when the response from a previous call has more results than the maximum - // page size. +// SetFilter sets the Filter field's value. +func (s *GetRightsizingRecommendationInput) SetFilter(v *Expression) *GetRightsizingRecommendationInput { + s.Filter = v + return s +} + +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetRightsizingRecommendationInput) SetNextPageToken(v string) *GetRightsizingRecommendationInput { + s.NextPageToken = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *GetRightsizingRecommendationInput) SetPageSize(v int64) *GetRightsizingRecommendationInput { + s.PageSize = &v + return s +} + +// SetService sets the Service field's value. +func (s *GetRightsizingRecommendationInput) SetService(v string) *GetRightsizingRecommendationInput { + s.Service = &v + return s +} + +type GetRightsizingRecommendationOutput struct { + _ struct{} `type:"structure"` + + // Enables you to customize recommendations across two attributes. You can choose + // to view recommendations for instances within the same instance families or + // across different instance families. You can also choose to view your estimated + // savings associated with recommendations with consideration of existing Savings + // Plans or RI benefits, or neither. + Configuration *RightsizingRecommendationConfiguration `type:"structure"` + + // Information regarding this specific recommendation set. + Metadata *RightsizingRecommendationMetadata `type:"structure"` + + // The token to retrieve the next set of results. NextPageToken *string `type:"string"` - // The number of results that AWS returned at one time. - // - // ReturnSize is a required field - ReturnSize *int64 `type:"integer" required:"true"` + // Recommendations to rightsize resources. + RightsizingRecommendations []*RightsizingRecommendation `type:"list"` - // The total number of search results. - // - // TotalSize is a required field - TotalSize *int64 `type:"integer" required:"true"` + // Summary of this recommendation set. + Summary *RightsizingRecommendationSummary `type:"structure"` } // String returns the string representation -func (s GetDimensionValuesOutput) String() string { +func (s GetRightsizingRecommendationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetDimensionValuesOutput) GoString() string { +func (s GetRightsizingRecommendationOutput) GoString() string { return s.String() } -// SetDimensionValues sets the DimensionValues field's value. -func (s *GetDimensionValuesOutput) SetDimensionValues(v []*DimensionValuesWithAttributes) *GetDimensionValuesOutput { - s.DimensionValues = v +// SetConfiguration sets the Configuration field's value. +func (s *GetRightsizingRecommendationOutput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationOutput { + s.Configuration = v + return s +} + +// SetMetadata sets the Metadata field's value. +func (s *GetRightsizingRecommendationOutput) SetMetadata(v *RightsizingRecommendationMetadata) *GetRightsizingRecommendationOutput { + s.Metadata = v return s } // SetNextPageToken sets the NextPageToken field's value. -func (s *GetDimensionValuesOutput) SetNextPageToken(v string) *GetDimensionValuesOutput { +func (s *GetRightsizingRecommendationOutput) SetNextPageToken(v string) *GetRightsizingRecommendationOutput { s.NextPageToken = &v return s } -// SetReturnSize sets the ReturnSize field's value. -func (s *GetDimensionValuesOutput) SetReturnSize(v int64) *GetDimensionValuesOutput { - s.ReturnSize = &v +// SetRightsizingRecommendations sets the RightsizingRecommendations field's value. +func (s *GetRightsizingRecommendationOutput) SetRightsizingRecommendations(v []*RightsizingRecommendation) *GetRightsizingRecommendationOutput { + s.RightsizingRecommendations = v return s } -// SetTotalSize sets the TotalSize field's value. -func (s *GetDimensionValuesOutput) SetTotalSize(v int64) *GetDimensionValuesOutput { - s.TotalSize = &v +// SetSummary sets the Summary field's value. +func (s *GetRightsizingRecommendationOutput) SetSummary(v *RightsizingRecommendationSummary) *GetRightsizingRecommendationOutput { + s.Summary = v return s } -// You can use the following request parameters to query for how much of your -// instance usage a reservation covered. -type GetReservationCoverageInput struct { +type GetSavingsPlansCoverageInput struct { _ struct{} `type:"structure"` - // Filters utilization data by dimensions. You can filter by the following dimensions: - // - // * AZ - // - // * CACHE_ENGINE - // - // * DATABASE_ENGINE - // - // * DEPLOYMENT_OPTION - // - // * INSTANCE_TYPE + // Filters Savings Plans coverage data by dimensions. You can filter data for + // Savings Plans usage with the following dimensions: // // * LINKED_ACCOUNT // - // * OPERATING_SYSTEM - // - // * PLATFORM - // // * REGION // // * SERVICE // - // * TAG - // - // * TENANCY + // * INSTANCE_FAMILY // - // GetReservationCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // GetSavingsPlansCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object as the other operations, but only AND is supported among each dimension. - // You can nest only one level deep. If there are multiple values for a dimension, - // they are OR'd together. - // - // If you don't provide a SERVICE filter, Cost Explorer defaults to EC2. + // If there are multiple values for a dimension, they are OR'd together. // // Cost category is also supported. Filter *Expression `type:"structure"` - // The granularity of the AWS cost data for the reservation. Valid values are - // MONTHLY and DAILY. - // - // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the - // response object doesn't include Granularity, either MONTHLY or DAILY. + // The granularity of the Amazon Web Services cost data for your Savings Plans. + // Granularity can't be set if GroupBy is set. // - // The GetReservationCoverage operation supports only DAILY and MONTHLY granularities. + // The GetSavingsPlansCoverage operation supports only DAILY and MONTHLY granularities. Granularity *string `type:"string" enum:"Granularity"` - // You can group the data by the following attributes: - // - // * AZ - // - // * CACHE_ENGINE - // - // * DATABASE_ENGINE - // - // * DEPLOYMENT_OPTION - // - // * INSTANCE_TYPE - // - // * LINKED_ACCOUNT - // - // * OPERATING_SYSTEM - // - // * PLATFORM - // - // * REGION - // - // * TENANCY + // You can group the data using the attributes INSTANCE_FAMILY, REGION, or SERVICE. GroupBy []*GroupDefinition `type:"list"` - // The measurement that you want your reservation coverage reported in. - // - // Valid values are Hour, Unit, and Cost. You can use multiple values in a request. + // The number of items to be returned in a response. The default is 20, with + // a minimum value of 1. + MaxResults *int64 `min:"1" type:"integer"` + + // The measurement that you want your Savings Plans coverage reported in. The + // only valid value is SpendCoveredBySavingsPlans. Metrics []*string `type:"list"` - // The token to retrieve the next set of results. AWS provides the token when - // the response from a previous call has more results than the maximum page - // size. - NextPageToken *string `type:"string"` + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. + NextToken *string `type:"string"` - // The start and end dates of the period that you want to retrieve data about - // reservation coverage for. You can retrieve data for a maximum of 13 months: - // the last 12 months and the current month. The start date is inclusive, but - // the end date is exclusive. For example, if start is 2017-01-01 and end is - // 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up - // to and including 2017-04-30 but not including 2017-05-01. + // The time period that you want the usage and costs for. The Start date must + // be within 13 months. The End date must be after the Start date, and before + // the current date. Future dates can't be used as an End date. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s GetReservationCoverageInput) String() string { +func (s GetSavingsPlansCoverageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetReservationCoverageInput) GoString() string { +func (s GetSavingsPlansCoverageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetReservationCoverageInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetReservationCoverageInput"} +func (s *GetSavingsPlansCoverageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansCoverageInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } @@ -4561,141 +7092,163 @@ func (s *GetReservationCoverageInput) Validate() error { } // SetFilter sets the Filter field's value. -func (s *GetReservationCoverageInput) SetFilter(v *Expression) *GetReservationCoverageInput { +func (s *GetSavingsPlansCoverageInput) SetFilter(v *Expression) *GetSavingsPlansCoverageInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. -func (s *GetReservationCoverageInput) SetGranularity(v string) *GetReservationCoverageInput { +func (s *GetSavingsPlansCoverageInput) SetGranularity(v string) *GetSavingsPlansCoverageInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. -func (s *GetReservationCoverageInput) SetGroupBy(v []*GroupDefinition) *GetReservationCoverageInput { +func (s *GetSavingsPlansCoverageInput) SetGroupBy(v []*GroupDefinition) *GetSavingsPlansCoverageInput { s.GroupBy = v return s } +// SetMaxResults sets the MaxResults field's value. +func (s *GetSavingsPlansCoverageInput) SetMaxResults(v int64) *GetSavingsPlansCoverageInput { + s.MaxResults = &v + return s +} + // SetMetrics sets the Metrics field's value. -func (s *GetReservationCoverageInput) SetMetrics(v []*string) *GetReservationCoverageInput { +func (s *GetSavingsPlansCoverageInput) SetMetrics(v []*string) *GetSavingsPlansCoverageInput { s.Metrics = v return s } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetReservationCoverageInput) SetNextPageToken(v string) *GetReservationCoverageInput { - s.NextPageToken = &v +// SetNextToken sets the NextToken field's value. +func (s *GetSavingsPlansCoverageInput) SetNextToken(v string) *GetSavingsPlansCoverageInput { + s.NextToken = &v return s } // SetTimePeriod sets the TimePeriod field's value. -func (s *GetReservationCoverageInput) SetTimePeriod(v *DateInterval) *GetReservationCoverageInput { +func (s *GetSavingsPlansCoverageInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansCoverageInput { s.TimePeriod = v return s } -type GetReservationCoverageOutput struct { +type GetSavingsPlansCoverageOutput struct { _ struct{} `type:"structure"` - // The amount of time that your reservations covered. - // - // CoveragesByTime is a required field - CoveragesByTime []*CoverageByTime `type:"list" required:"true"` - - // The token for the next set of retrievable results. AWS provides the token - // when the response from a previous call has more results than the maximum - // page size. - NextPageToken *string `type:"string"` + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. + NextToken *string `type:"string"` - // The total amount of instance usage that a reservation covered. - Total *Coverage `type:"structure"` + // The amount of spend that your Savings Plans covered. + // + // SavingsPlansCoverages is a required field + SavingsPlansCoverages []*SavingsPlansCoverage `type:"list" required:"true"` } // String returns the string representation -func (s GetReservationCoverageOutput) String() string { +func (s GetSavingsPlansCoverageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetReservationCoverageOutput) GoString() string { +func (s GetSavingsPlansCoverageOutput) GoString() string { return s.String() } -// SetCoveragesByTime sets the CoveragesByTime field's value. -func (s *GetReservationCoverageOutput) SetCoveragesByTime(v []*CoverageByTime) *GetReservationCoverageOutput { - s.CoveragesByTime = v - return s -} - -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetReservationCoverageOutput) SetNextPageToken(v string) *GetReservationCoverageOutput { - s.NextPageToken = &v +// SetNextToken sets the NextToken field's value. +func (s *GetSavingsPlansCoverageOutput) SetNextToken(v string) *GetSavingsPlansCoverageOutput { + s.NextToken = &v return s } -// SetTotal sets the Total field's value. -func (s *GetReservationCoverageOutput) SetTotal(v *Coverage) *GetReservationCoverageOutput { - s.Total = v +// SetSavingsPlansCoverages sets the SavingsPlansCoverages field's value. +func (s *GetSavingsPlansCoverageOutput) SetSavingsPlansCoverages(v []*SavingsPlansCoverage) *GetSavingsPlansCoverageOutput { + s.SavingsPlansCoverages = v return s } -type GetReservationPurchaseRecommendationInput struct { +type GetSavingsPlansPurchaseRecommendationInput struct { _ struct{} `type:"structure"` - // The account ID that is associated with the recommendation. - AccountId *string `type:"string"` - // The account scope that you want your recommendations for. Amazon Web Services // calculates recommendations including the payer account and linked accounts // if the value is set to PAYER. If the value is LINKED, recommendations are // calculated for individual linked accounts only. AccountScope *string `type:"string" enum:"AccountScope"` - // The number of previous days that you want AWS to consider when it calculates - // your recommendations. - LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` + // You can filter your recommendations by Account ID with the LINKED_ACCOUNT + // dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT + // and Value as the comma-separated Acount ID(s) for which you want to see Savings + // Plans purchase recommendations. + // + // For GetSavingsPlansPurchaseRecommendation, the Filter does not include CostCategories + // or Tags. It only includes Dimensions. With Dimensions, Key must be LINKED_ACCOUNT + // and Value can be a single Account ID or multiple comma-separated Account + // IDs for which you want to see Savings Plans Purchase Recommendations. AND + // and OR operators are not supported. + Filter *Expression `type:"structure"` - // The pagination token that indicates the next set of results that you want - // to retrieve. + // The lookback period used to generate the recommendation. + // + // LookbackPeriodInDays is a required field + LookbackPeriodInDays *string `type:"string" required:"true" enum:"LookbackPeriodInDays"` + + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. NextPageToken *string `type:"string"` // The number of recommendations that you want returned in a single response // object. PageSize *int64 `type:"integer"` - // The reservation purchase option that you want recommendations for. - PaymentOption *string `type:"string" enum:"PaymentOption"` - - // The specific service that you want recommendations for. + // The payment option used to generate these recommendations. // - // Service is a required field - Service *string `type:"string" required:"true"` + // PaymentOption is a required field + PaymentOption *string `type:"string" required:"true" enum:"PaymentOption"` - // The hardware specifications for the service instances that you want recommendations - // for, such as standard or convertible Amazon EC2 instances. - ServiceSpecification *ServiceSpecification `type:"structure"` + // The Savings Plans recommendation type requested. + // + // SavingsPlansType is a required field + SavingsPlansType *string `type:"string" required:"true" enum:"SupportedSavingsPlansType"` - // The reservation term that you want recommendations for. - TermInYears *string `type:"string" enum:"TermInYears"` + // The savings plan recommendation term used to generate these recommendations. + // + // TermInYears is a required field + TermInYears *string `type:"string" required:"true" enum:"TermInYears"` } // String returns the string representation -func (s GetReservationPurchaseRecommendationInput) String() string { +func (s GetSavingsPlansPurchaseRecommendationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetReservationPurchaseRecommendationInput) GoString() string { +func (s GetSavingsPlansPurchaseRecommendationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetReservationPurchaseRecommendationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetReservationPurchaseRecommendationInput"} - if s.Service == nil { - invalidParams.Add(request.NewErrParamRequired("Service")) +func (s *GetSavingsPlansPurchaseRecommendationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansPurchaseRecommendationInput"} + if s.LookbackPeriodInDays == nil { + invalidParams.Add(request.NewErrParamRequired("LookbackPeriodInDays")) + } + if s.PaymentOption == nil { + invalidParams.Add(request.NewErrParamRequired("PaymentOption")) + } + if s.SavingsPlansType == nil { + invalidParams.Add(request.NewErrParamRequired("SavingsPlansType")) + } + if s.TermInYears == nil { + invalidParams.Add(request.NewErrParamRequired("TermInYears")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -4704,173 +7257,151 @@ func (s *GetReservationPurchaseRecommendationInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetReservationPurchaseRecommendationInput) SetAccountId(v string) *GetReservationPurchaseRecommendationInput { - s.AccountId = &v +// SetAccountScope sets the AccountScope field's value. +func (s *GetSavingsPlansPurchaseRecommendationInput) SetAccountScope(v string) *GetSavingsPlansPurchaseRecommendationInput { + s.AccountScope = &v return s } -// SetAccountScope sets the AccountScope field's value. -func (s *GetReservationPurchaseRecommendationInput) SetAccountScope(v string) *GetReservationPurchaseRecommendationInput { - s.AccountScope = &v +// SetFilter sets the Filter field's value. +func (s *GetSavingsPlansPurchaseRecommendationInput) SetFilter(v *Expression) *GetSavingsPlansPurchaseRecommendationInput { + s.Filter = v return s } // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. -func (s *GetReservationPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetReservationPurchaseRecommendationInput { +func (s *GetSavingsPlansPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetSavingsPlansPurchaseRecommendationInput { s.LookbackPeriodInDays = &v return s } // SetNextPageToken sets the NextPageToken field's value. -func (s *GetReservationPurchaseRecommendationInput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationInput { +func (s *GetSavingsPlansPurchaseRecommendationInput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationInput { s.NextPageToken = &v return s } // SetPageSize sets the PageSize field's value. -func (s *GetReservationPurchaseRecommendationInput) SetPageSize(v int64) *GetReservationPurchaseRecommendationInput { +func (s *GetSavingsPlansPurchaseRecommendationInput) SetPageSize(v int64) *GetSavingsPlansPurchaseRecommendationInput { s.PageSize = &v return s } // SetPaymentOption sets the PaymentOption field's value. -func (s *GetReservationPurchaseRecommendationInput) SetPaymentOption(v string) *GetReservationPurchaseRecommendationInput { +func (s *GetSavingsPlansPurchaseRecommendationInput) SetPaymentOption(v string) *GetSavingsPlansPurchaseRecommendationInput { s.PaymentOption = &v return s } -// SetService sets the Service field's value. -func (s *GetReservationPurchaseRecommendationInput) SetService(v string) *GetReservationPurchaseRecommendationInput { - s.Service = &v - return s -} - -// SetServiceSpecification sets the ServiceSpecification field's value. -func (s *GetReservationPurchaseRecommendationInput) SetServiceSpecification(v *ServiceSpecification) *GetReservationPurchaseRecommendationInput { - s.ServiceSpecification = v +// SetSavingsPlansType sets the SavingsPlansType field's value. +func (s *GetSavingsPlansPurchaseRecommendationInput) SetSavingsPlansType(v string) *GetSavingsPlansPurchaseRecommendationInput { + s.SavingsPlansType = &v return s } // SetTermInYears sets the TermInYears field's value. -func (s *GetReservationPurchaseRecommendationInput) SetTermInYears(v string) *GetReservationPurchaseRecommendationInput { +func (s *GetSavingsPlansPurchaseRecommendationInput) SetTermInYears(v string) *GetSavingsPlansPurchaseRecommendationInput { s.TermInYears = &v return s } -type GetReservationPurchaseRecommendationOutput struct { +type GetSavingsPlansPurchaseRecommendationOutput struct { _ struct{} `type:"structure"` - // Information about this specific recommendation call, such as the time stamp - // for when Cost Explorer generated this recommendation. - Metadata *ReservationPurchaseRecommendationMetadata `type:"structure"` + // Information regarding this specific recommendation set. + Metadata *SavingsPlansPurchaseRecommendationMetadata `type:"structure"` - // The pagination token for the next set of retrievable results. + // The token for the next set of retrievable results. AWS provides the token + // when the response from a previous call has more results than the maximum + // page size. NextPageToken *string `type:"string"` - // Recommendations for reservations to purchase. - Recommendations []*ReservationPurchaseRecommendation `type:"list"` + // Contains your request parameters, Savings Plan Recommendations Summary, and + // Details. + SavingsPlansPurchaseRecommendation *SavingsPlansPurchaseRecommendation `type:"structure"` } // String returns the string representation -func (s GetReservationPurchaseRecommendationOutput) String() string { +func (s GetSavingsPlansPurchaseRecommendationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetReservationPurchaseRecommendationOutput) GoString() string { +func (s GetSavingsPlansPurchaseRecommendationOutput) GoString() string { return s.String() } // SetMetadata sets the Metadata field's value. -func (s *GetReservationPurchaseRecommendationOutput) SetMetadata(v *ReservationPurchaseRecommendationMetadata) *GetReservationPurchaseRecommendationOutput { +func (s *GetSavingsPlansPurchaseRecommendationOutput) SetMetadata(v *SavingsPlansPurchaseRecommendationMetadata) *GetSavingsPlansPurchaseRecommendationOutput { s.Metadata = v return s } // SetNextPageToken sets the NextPageToken field's value. -func (s *GetReservationPurchaseRecommendationOutput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationOutput { +func (s *GetSavingsPlansPurchaseRecommendationOutput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationOutput { s.NextPageToken = &v return s } -// SetRecommendations sets the Recommendations field's value. -func (s *GetReservationPurchaseRecommendationOutput) SetRecommendations(v []*ReservationPurchaseRecommendation) *GetReservationPurchaseRecommendationOutput { - s.Recommendations = v +// SetSavingsPlansPurchaseRecommendation sets the SavingsPlansPurchaseRecommendation field's value. +func (s *GetSavingsPlansPurchaseRecommendationOutput) SetSavingsPlansPurchaseRecommendation(v *SavingsPlansPurchaseRecommendation) *GetSavingsPlansPurchaseRecommendationOutput { + s.SavingsPlansPurchaseRecommendation = v return s } -type GetReservationUtilizationInput struct { +type GetSavingsPlansUtilizationDetailsInput struct { _ struct{} `type:"structure"` - // Filters utilization data by dimensions. You can filter by the following dimensions: - // - // * AZ - // - // * CACHE_ENGINE - // - // * DEPLOYMENT_OPTION - // - // * INSTANCE_TYPE + // Filters Savings Plans utilization coverage data for active Savings Plans + // dimensions. You can filter data with the following dimensions: // // * LINKED_ACCOUNT // - // * OPERATING_SYSTEM - // - // * PLATFORM + // * SAVINGS_PLAN_ARN // // * REGION // - // * SERVICE - // - // * SCOPE + // * PAYMENT_OPTION // - // * TENANCY + // * INSTANCE_TYPE_FAMILY // - // GetReservationUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) - // object as the other operations, but only AND is supported among each dimension, - // and nesting is supported up to only one level deep. If there are multiple - // values for a dimension, they are OR'd together. + // GetSavingsPlansUtilizationDetails uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // object as the other operations, but only AND is supported among each dimension. Filter *Expression `type:"structure"` - // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the - // response object doesn't include Granularity, either MONTHLY or DAILY. If - // both GroupBy and Granularity aren't set, GetReservationUtilization defaults - // to DAILY. - // - // The GetReservationUtilization operation supports only DAILY and MONTHLY granularities. - Granularity *string `type:"string" enum:"Granularity"` - - // Groups only by SUBSCRIPTION_ID. Metadata is included. - GroupBy []*GroupDefinition `type:"list"` + // The number of items to be returned in a response. The default is 20, with + // a minimum value of 1. + MaxResults *int64 `min:"1" type:"integer"` - // The token to retrieve the next set of results. AWS provides the token when - // the response from a previous call has more results than the maximum page - // size. - NextPageToken *string `type:"string"` + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. + NextToken *string `type:"string"` - // Sets the start and end dates for retrieving RI utilization. The start date - // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 - // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 - // up to and including 2017-04-30 but not including 2017-05-01. + // The time period that you want the usage and costs for. The Start date must + // be within 13 months. The End date must be after the Start date, and before + // the current date. Future dates can't be used as an End date. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s GetReservationUtilizationInput) String() string { +func (s GetSavingsPlansUtilizationDetailsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetReservationUtilizationInput) GoString() string { +func (s GetSavingsPlansUtilizationDetailsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetReservationUtilizationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetReservationUtilizationInput"} +func (s *GetSavingsPlansUtilizationDetailsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationDetailsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } @@ -4892,161 +7423,149 @@ func (s *GetReservationUtilizationInput) Validate() error { } // SetFilter sets the Filter field's value. -func (s *GetReservationUtilizationInput) SetFilter(v *Expression) *GetReservationUtilizationInput { +func (s *GetSavingsPlansUtilizationDetailsInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationDetailsInput { s.Filter = v return s } -// SetGranularity sets the Granularity field's value. -func (s *GetReservationUtilizationInput) SetGranularity(v string) *GetReservationUtilizationInput { - s.Granularity = &v - return s -} - -// SetGroupBy sets the GroupBy field's value. -func (s *GetReservationUtilizationInput) SetGroupBy(v []*GroupDefinition) *GetReservationUtilizationInput { - s.GroupBy = v +// SetMaxResults sets the MaxResults field's value. +func (s *GetSavingsPlansUtilizationDetailsInput) SetMaxResults(v int64) *GetSavingsPlansUtilizationDetailsInput { + s.MaxResults = &v return s } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetReservationUtilizationInput) SetNextPageToken(v string) *GetReservationUtilizationInput { - s.NextPageToken = &v +// SetNextToken sets the NextToken field's value. +func (s *GetSavingsPlansUtilizationDetailsInput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsInput { + s.NextToken = &v return s } // SetTimePeriod sets the TimePeriod field's value. -func (s *GetReservationUtilizationInput) SetTimePeriod(v *DateInterval) *GetReservationUtilizationInput { +func (s *GetSavingsPlansUtilizationDetailsInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsInput { s.TimePeriod = v return s } -type GetReservationUtilizationOutput struct { +type GetSavingsPlansUtilizationDetailsOutput struct { _ struct{} `type:"structure"` - // The token for the next set of retrievable results. AWS provides the token - // when the response from a previous call has more results than the maximum - // page size. - NextPageToken *string `type:"string"` + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. + NextToken *string `type:"string"` - // The total amount of time that you used your RIs. - Total *ReservationAggregates `type:"structure"` + // Retrieves a single daily or monthly Savings Plans utilization rate and details + // for your account. + // + // SavingsPlansUtilizationDetails is a required field + SavingsPlansUtilizationDetails []*SavingsPlansUtilizationDetail `type:"list" required:"true"` - // The amount of time that you used your RIs. + // The time period that you want the usage and costs for. // - // UtilizationsByTime is a required field - UtilizationsByTime []*UtilizationByTime `type:"list" required:"true"` + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` + + // The total Savings Plans utilization, regardless of time period. + Total *SavingsPlansUtilizationAggregates `type:"structure"` } // String returns the string representation -func (s GetReservationUtilizationOutput) String() string { +func (s GetSavingsPlansUtilizationDetailsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetReservationUtilizationOutput) GoString() string { +func (s GetSavingsPlansUtilizationDetailsOutput) GoString() string { return s.String() } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetReservationUtilizationOutput) SetNextPageToken(v string) *GetReservationUtilizationOutput { - s.NextPageToken = &v +// SetNextToken sets the NextToken field's value. +func (s *GetSavingsPlansUtilizationDetailsOutput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsOutput { + s.NextToken = &v return s } -// SetTotal sets the Total field's value. -func (s *GetReservationUtilizationOutput) SetTotal(v *ReservationAggregates) *GetReservationUtilizationOutput { - s.Total = v +// SetSavingsPlansUtilizationDetails sets the SavingsPlansUtilizationDetails field's value. +func (s *GetSavingsPlansUtilizationDetailsOutput) SetSavingsPlansUtilizationDetails(v []*SavingsPlansUtilizationDetail) *GetSavingsPlansUtilizationDetailsOutput { + s.SavingsPlansUtilizationDetails = v return s } -// SetUtilizationsByTime sets the UtilizationsByTime field's value. -func (s *GetReservationUtilizationOutput) SetUtilizationsByTime(v []*UtilizationByTime) *GetReservationUtilizationOutput { - s.UtilizationsByTime = v +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetSavingsPlansUtilizationDetailsOutput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsOutput { + s.TimePeriod = v return s } -type GetRightsizingRecommendationInput struct { - _ struct{} `type:"structure"` +// SetTotal sets the Total field's value. +func (s *GetSavingsPlansUtilizationDetailsOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationDetailsOutput { + s.Total = v + return s +} - // Enables you to customize recommendations across two attributes. You can choose - // to view recommendations for instances within the same instance families or - // across different instance families. You can also choose to view your estimated - // savings associated with recommendations with consideration of existing Savings - // Plans or RI benefits, or neither. - Configuration *RightsizingRecommendationConfiguration `type:"structure"` +type GetSavingsPlansUtilizationInput struct { + _ struct{} `type:"structure"` - // Use Expression to filter by cost or by usage. There are two patterns: + // Filters Savings Plans utilization coverage data for active Savings Plans + // dimensions. You can filter data with the following dimensions: // - // * Simple dimension values - You can set the dimension name and values - // for the filters that you plan to use. For example, you can filter for - // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks - // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", - // “us-west-1” ] } } The list of dimension values are OR'd together to - // retrieve cost or usage data. You can create Expression and DimensionValues - // objects using either with* methods or set* methods in multiple lines. + // * LINKED_ACCOUNT // - // * Compound dimension values with logical operations - You can use multiple - // Expression types and the logical operators AND/OR/NOT to create a list - // of one or more Expression objects. This allows you to filter on more advanced - // options. For example, you can filter on ((REGION == us-east-1 OR REGION - // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). - // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": - // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": - // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": - // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each - // Expression can have only one operator, the service returns an error if - // more than one is specified. The following example shows an Expression - // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": - // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } + // * SAVINGS_PLAN_ARN // - // For GetRightsizingRecommendation action, a combination of OR and NOT is not - // supported. OR is not supported between different dimensions, or dimensions - // and tags. NOT operators aren't supported. Dimensions are also limited to - // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. + // * SAVINGS_PLANS_TYPE + // + // * REGION + // + // * PAYMENT_OPTION + // + // * INSTANCE_TYPE_FAMILY + // + // GetSavingsPlansUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) + // object as the other operations, but only AND is supported among each dimension. Filter *Expression `type:"structure"` - // The pagination token that indicates the next set of results that you want - // to retrieve. - NextPageToken *string `type:"string"` - - // The number of recommendations that you want returned in a single response - // object. - PageSize *int64 `type:"integer"` + // The granularity of the Amazon Web Services utillization data for your Savings + // Plans. + // + // The GetSavingsPlansUtilization operation supports only DAILY and MONTHLY + // granularities. + Granularity *string `type:"string" enum:"Granularity"` - // The specific service that you want recommendations for. The only valid value - // for GetRightsizingRecommendation is "AmazonEC2". + // The time period that you want the usage and costs for. The Start date must + // be within 13 months. The End date must be after the Start date, and before + // the current date. Future dates can't be used as an End date. // - // Service is a required field - Service *string `type:"string" required:"true"` + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s GetRightsizingRecommendationInput) String() string { +func (s GetSavingsPlansUtilizationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetRightsizingRecommendationInput) GoString() string { +func (s GetSavingsPlansUtilizationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetRightsizingRecommendationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetRightsizingRecommendationInput"} - if s.Service == nil { - invalidParams.Add(request.NewErrParamRequired("Service")) - } - if s.Configuration != nil { - if err := s.Configuration.Validate(); err != nil { - invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) - } +func (s *GetSavingsPlansUtilizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationInput"} + if s.TimePeriod == nil { + invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } + if s.TimePeriod != nil { + if err := s.TimePeriod.Validate(); err != nil { + invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -5054,174 +7573,99 @@ func (s *GetRightsizingRecommendationInput) Validate() error { return nil } -// SetConfiguration sets the Configuration field's value. -func (s *GetRightsizingRecommendationInput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationInput { - s.Configuration = v - return s -} - // SetFilter sets the Filter field's value. -func (s *GetRightsizingRecommendationInput) SetFilter(v *Expression) *GetRightsizingRecommendationInput { +func (s *GetSavingsPlansUtilizationInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationInput { s.Filter = v return s } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetRightsizingRecommendationInput) SetNextPageToken(v string) *GetRightsizingRecommendationInput { - s.NextPageToken = &v - return s -} - -// SetPageSize sets the PageSize field's value. -func (s *GetRightsizingRecommendationInput) SetPageSize(v int64) *GetRightsizingRecommendationInput { - s.PageSize = &v +// SetGranularity sets the Granularity field's value. +func (s *GetSavingsPlansUtilizationInput) SetGranularity(v string) *GetSavingsPlansUtilizationInput { + s.Granularity = &v return s } -// SetService sets the Service field's value. -func (s *GetRightsizingRecommendationInput) SetService(v string) *GetRightsizingRecommendationInput { - s.Service = &v +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetSavingsPlansUtilizationInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationInput { + s.TimePeriod = v return s } -type GetRightsizingRecommendationOutput struct { +type GetSavingsPlansUtilizationOutput struct { _ struct{} `type:"structure"` - // Enables you to customize recommendations across two attributes. You can choose - // to view recommendations for instances within the same instance families or - // across different instance families. You can also choose to view your estimated - // savings associated with recommendations with consideration of existing Savings - // Plans or RI benefits, or neither. - Configuration *RightsizingRecommendationConfiguration `type:"structure"` - - // Information regarding this specific recommendation set. - Metadata *RightsizingRecommendationMetadata `type:"structure"` - - // The token to retrieve the next set of results. - NextPageToken *string `type:"string"` - - // Recommendations to rightsize resources. - RightsizingRecommendations []*RightsizingRecommendation `type:"list"` + // The amount of cost/commitment you used your Savings Plans. This allows you + // to specify date ranges. + SavingsPlansUtilizationsByTime []*SavingsPlansUtilizationByTime `type:"list"` - // Summary of this recommendation set. - Summary *RightsizingRecommendationSummary `type:"structure"` + // The total amount of cost/commitment that you used your Savings Plans, regardless + // of date ranges. + // + // Total is a required field + Total *SavingsPlansUtilizationAggregates `type:"structure" required:"true"` } // String returns the string representation -func (s GetRightsizingRecommendationOutput) String() string { +func (s GetSavingsPlansUtilizationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetRightsizingRecommendationOutput) GoString() string { +func (s GetSavingsPlansUtilizationOutput) GoString() string { return s.String() } -// SetConfiguration sets the Configuration field's value. -func (s *GetRightsizingRecommendationOutput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationOutput { - s.Configuration = v - return s -} - -// SetMetadata sets the Metadata field's value. -func (s *GetRightsizingRecommendationOutput) SetMetadata(v *RightsizingRecommendationMetadata) *GetRightsizingRecommendationOutput { - s.Metadata = v - return s -} - -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetRightsizingRecommendationOutput) SetNextPageToken(v string) *GetRightsizingRecommendationOutput { - s.NextPageToken = &v - return s -} - -// SetRightsizingRecommendations sets the RightsizingRecommendations field's value. -func (s *GetRightsizingRecommendationOutput) SetRightsizingRecommendations(v []*RightsizingRecommendation) *GetRightsizingRecommendationOutput { - s.RightsizingRecommendations = v +// SetSavingsPlansUtilizationsByTime sets the SavingsPlansUtilizationsByTime field's value. +func (s *GetSavingsPlansUtilizationOutput) SetSavingsPlansUtilizationsByTime(v []*SavingsPlansUtilizationByTime) *GetSavingsPlansUtilizationOutput { + s.SavingsPlansUtilizationsByTime = v return s } -// SetSummary sets the Summary field's value. -func (s *GetRightsizingRecommendationOutput) SetSummary(v *RightsizingRecommendationSummary) *GetRightsizingRecommendationOutput { - s.Summary = v +// SetTotal sets the Total field's value. +func (s *GetSavingsPlansUtilizationOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationOutput { + s.Total = v return s } -type GetSavingsPlansCoverageInput struct { +type GetTagsInput struct { _ struct{} `type:"structure"` - // Filters Savings Plans coverage data by dimensions. You can filter data for - // Savings Plans usage with the following dimensions: - // - // * LINKED_ACCOUNT - // - // * REGION - // - // * SERVICE - // - // * INSTANCE_FAMILY - // - // GetSavingsPlansCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) - // object as the other operations, but only AND is supported among each dimension. - // If there are multiple values for a dimension, they are OR'd together. - // - // Cost category is also supported. - Filter *Expression `type:"structure"` - - // The granularity of the Amazon Web Services cost data for your Savings Plans. - // Granularity can't be set if GroupBy is set. - // - // The GetSavingsPlansCoverage operation supports only DAILY and MONTHLY granularities. - Granularity *string `type:"string" enum:"Granularity"` - - // You can group the data using the attributes INSTANCE_FAMILY, REGION, or SERVICE. - GroupBy []*GroupDefinition `type:"list"` - - // The number of items to be returned in a response. The default is 20, with - // a minimum value of 1. - MaxResults *int64 `min:"1" type:"integer"` + // The token to retrieve the next set of results. AWS provides the token when + // the response from a previous call has more results than the maximum page + // size. + NextPageToken *string `type:"string"` - // The measurement that you want your Savings Plans coverage reported in. The - // only valid value is SpendCoveredBySavingsPlans. - Metrics []*string `type:"list"` + // The value that you want to search for. + SearchString *string `type:"string"` - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextToken *string `type:"string"` + // The key of the tag that you want to return values for. + TagKey *string `type:"string"` - // The time period that you want the usage and costs for. The Start date must - // be within 13 months. The End date must be after the Start date, and before - // the current date. Future dates can't be used as an End date. + // The start and end dates for retrieving the dimension values. The start date + // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 + // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 + // up to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s GetSavingsPlansCoverageInput) String() string { +func (s GetTagsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansCoverageInput) GoString() string { +func (s GetTagsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetSavingsPlansCoverageInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansCoverageInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } +func (s *GetTagsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"} if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } - } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) @@ -5234,165 +7678,167 @@ func (s *GetSavingsPlansCoverageInput) Validate() error { return nil } -// SetFilter sets the Filter field's value. -func (s *GetSavingsPlansCoverageInput) SetFilter(v *Expression) *GetSavingsPlansCoverageInput { - s.Filter = v - return s -} - -// SetGranularity sets the Granularity field's value. -func (s *GetSavingsPlansCoverageInput) SetGranularity(v string) *GetSavingsPlansCoverageInput { - s.Granularity = &v - return s -} - -// SetGroupBy sets the GroupBy field's value. -func (s *GetSavingsPlansCoverageInput) SetGroupBy(v []*GroupDefinition) *GetSavingsPlansCoverageInput { - s.GroupBy = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetSavingsPlansCoverageInput) SetMaxResults(v int64) *GetSavingsPlansCoverageInput { - s.MaxResults = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetTagsInput) SetNextPageToken(v string) *GetTagsInput { + s.NextPageToken = &v return s } -// SetMetrics sets the Metrics field's value. -func (s *GetSavingsPlansCoverageInput) SetMetrics(v []*string) *GetSavingsPlansCoverageInput { - s.Metrics = v +// SetSearchString sets the SearchString field's value. +func (s *GetTagsInput) SetSearchString(v string) *GetTagsInput { + s.SearchString = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *GetSavingsPlansCoverageInput) SetNextToken(v string) *GetSavingsPlansCoverageInput { - s.NextToken = &v +// SetTagKey sets the TagKey field's value. +func (s *GetTagsInput) SetTagKey(v string) *GetTagsInput { + s.TagKey = &v return s } // SetTimePeriod sets the TimePeriod field's value. -func (s *GetSavingsPlansCoverageInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansCoverageInput { +func (s *GetTagsInput) SetTimePeriod(v *DateInterval) *GetTagsInput { s.TimePeriod = v return s } -type GetSavingsPlansCoverageOutput struct { +type GetTagsOutput struct { _ struct{} `type:"structure"` - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextToken *string `type:"string"` + // The token for the next set of retrievable results. AWS provides the token + // when the response from a previous call has more results than the maximum + // page size. + NextPageToken *string `type:"string"` - // The amount of spend that your Savings Plans covered. + // The number of query results that AWS returns at a time. // - // SavingsPlansCoverages is a required field - SavingsPlansCoverages []*SavingsPlansCoverage `type:"list" required:"true"` + // ReturnSize is a required field + ReturnSize *int64 `type:"integer" required:"true"` + + // The tags that match your request. + // + // Tags is a required field + Tags []*string `type:"list" required:"true"` + + // The total number of query results. + // + // TotalSize is a required field + TotalSize *int64 `type:"integer" required:"true"` } // String returns the string representation -func (s GetSavingsPlansCoverageOutput) String() string { +func (s GetTagsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansCoverageOutput) GoString() string { +func (s GetTagsOutput) GoString() string { return s.String() } -// SetNextToken sets the NextToken field's value. -func (s *GetSavingsPlansCoverageOutput) SetNextToken(v string) *GetSavingsPlansCoverageOutput { - s.NextToken = &v +// SetNextPageToken sets the NextPageToken field's value. +func (s *GetTagsOutput) SetNextPageToken(v string) *GetTagsOutput { + s.NextPageToken = &v return s } -// SetSavingsPlansCoverages sets the SavingsPlansCoverages field's value. -func (s *GetSavingsPlansCoverageOutput) SetSavingsPlansCoverages(v []*SavingsPlansCoverage) *GetSavingsPlansCoverageOutput { - s.SavingsPlansCoverages = v +// SetReturnSize sets the ReturnSize field's value. +func (s *GetTagsOutput) SetReturnSize(v int64) *GetTagsOutput { + s.ReturnSize = &v return s } -type GetSavingsPlansPurchaseRecommendationInput struct { - _ struct{} `type:"structure"` +// SetTags sets the Tags field's value. +func (s *GetTagsOutput) SetTags(v []*string) *GetTagsOutput { + s.Tags = v + return s +} - // The account scope that you want your recommendations for. Amazon Web Services - // calculates recommendations including the payer account and linked accounts - // if the value is set to PAYER. If the value is LINKED, recommendations are - // calculated for individual linked accounts only. - AccountScope *string `type:"string" enum:"AccountScope"` +// SetTotalSize sets the TotalSize field's value. +func (s *GetTagsOutput) SetTotalSize(v int64) *GetTagsOutput { + s.TotalSize = &v + return s +} - // You can filter your recommendations by Account ID with the LINKED_ACCOUNT - // dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT - // and Value as the comma-separated Acount ID(s) for which you want to see Savings - // Plans purchase recommendations. - // - // For GetSavingsPlansPurchaseRecommendation, the Filter does not include CostCategories - // or Tags. It only includes Dimensions. With Dimensions, Key must be LINKED_ACCOUNT - // and Value can be a single Account ID or multiple comma-separated Account - // IDs for which you want to see Savings Plans Purchase Recommendations. AND - // and OR operators are not supported. +type GetUsageForecastInput struct { + _ struct{} `type:"structure"` + + // The filters that you want to use to filter your forecast. Cost Explorer API + // supports all of the Cost Explorer filters. Filter *Expression `type:"structure"` - // The lookback period used to generate the recommendation. + // How granular you want the forecast to be. You can get 3 months of DAILY forecasts + // or 12 months of MONTHLY forecasts. // - // LookbackPeriodInDays is a required field - LookbackPeriodInDays *string `type:"string" required:"true" enum:"LookbackPeriodInDays"` - - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextPageToken *string `type:"string"` - - // The number of recommendations that you want returned in a single response - // object. - PageSize *int64 `type:"integer"` - - // The payment option used to generate these recommendations. + // The GetUsageForecast operation supports only DAILY and MONTHLY granularities. // - // PaymentOption is a required field - PaymentOption *string `type:"string" required:"true" enum:"PaymentOption"` + // Granularity is a required field + Granularity *string `type:"string" required:"true" enum:"Granularity"` - // The Savings Plans recommendation type requested. + // Which metric Cost Explorer uses to create your forecast. // - // SavingsPlansType is a required field - SavingsPlansType *string `type:"string" required:"true" enum:"SupportedSavingsPlansType"` + // Valid values for a GetUsageForecast call are the following: + // + // * USAGE_QUANTITY + // + // * NORMALIZED_USAGE_AMOUNT + // + // Metric is a required field + Metric *string `type:"string" required:"true" enum:"Metric"` - // The savings plan recommendation term used to generate these recommendations. + // Cost Explorer always returns the mean forecast as a single point. You can + // request a prediction interval around the mean by specifying a confidence + // level. The higher the confidence level, the more confident Cost Explorer + // is about the actual value falling in the prediction interval. Higher confidence + // levels result in wider prediction intervals. + PredictionIntervalLevel *int64 `min:"51" type:"integer"` + + // The start and end dates of the period that you want to retrieve usage forecast + // for. The start date is inclusive, but the end date is exclusive. For example, + // if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data + // is retrieved from 2017-01-01 up to and including 2017-04-30 but not including + // 2017-05-01. The start date must be equal to or later than the current date + // to avoid a validation error. // - // TermInYears is a required field - TermInYears *string `type:"string" required:"true" enum:"TermInYears"` + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation -func (s GetSavingsPlansPurchaseRecommendationInput) String() string { +func (s GetUsageForecastInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansPurchaseRecommendationInput) GoString() string { +func (s GetUsageForecastInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetSavingsPlansPurchaseRecommendationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansPurchaseRecommendationInput"} - if s.LookbackPeriodInDays == nil { - invalidParams.Add(request.NewErrParamRequired("LookbackPeriodInDays")) +func (s *GetUsageForecastInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetUsageForecastInput"} + if s.Granularity == nil { + invalidParams.Add(request.NewErrParamRequired("Granularity")) } - if s.PaymentOption == nil { - invalidParams.Add(request.NewErrParamRequired("PaymentOption")) + if s.Metric == nil { + invalidParams.Add(request.NewErrParamRequired("Metric")) } - if s.SavingsPlansType == nil { - invalidParams.Add(request.NewErrParamRequired("SavingsPlansType")) + if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { + invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) } - if s.TermInYears == nil { - invalidParams.Add(request.NewErrParamRequired("TermInYears")) + if s.TimePeriod == nil { + invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } + if s.TimePeriod != nil { + if err := s.TimePeriod.Validate(); err != nil { + invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -5400,419 +7846,376 @@ func (s *GetSavingsPlansPurchaseRecommendationInput) Validate() error { return nil } -// SetAccountScope sets the AccountScope field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetAccountScope(v string) *GetSavingsPlansPurchaseRecommendationInput { - s.AccountScope = &v +// SetFilter sets the Filter field's value. +func (s *GetUsageForecastInput) SetFilter(v *Expression) *GetUsageForecastInput { + s.Filter = v + return s +} + +// SetGranularity sets the Granularity field's value. +func (s *GetUsageForecastInput) SetGranularity(v string) *GetUsageForecastInput { + s.Granularity = &v + return s +} + +// SetMetric sets the Metric field's value. +func (s *GetUsageForecastInput) SetMetric(v string) *GetUsageForecastInput { + s.Metric = &v + return s +} + +// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. +func (s *GetUsageForecastInput) SetPredictionIntervalLevel(v int64) *GetUsageForecastInput { + s.PredictionIntervalLevel = &v + return s +} + +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetUsageForecastInput) SetTimePeriod(v *DateInterval) *GetUsageForecastInput { + s.TimePeriod = v return s } -// SetFilter sets the Filter field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetFilter(v *Expression) *GetSavingsPlansPurchaseRecommendationInput { - s.Filter = v +type GetUsageForecastOutput struct { + _ struct{} `type:"structure"` + + // The forecasts for your query, in order. For DAILY forecasts, this is a list + // of days. For MONTHLY forecasts, this is a list of months. + ForecastResultsByTime []*ForecastResult `type:"list"` + + // How much you're forecasted to use over the forecast period. + Total *MetricValue `type:"structure"` +} + +// String returns the string representation +func (s GetUsageForecastOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetUsageForecastOutput) GoString() string { + return s.String() +} + +// SetForecastResultsByTime sets the ForecastResultsByTime field's value. +func (s *GetUsageForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetUsageForecastOutput { + s.ForecastResultsByTime = v return s } -// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetSavingsPlansPurchaseRecommendationInput { - s.LookbackPeriodInDays = &v +// SetTotal sets the Total field's value. +func (s *GetUsageForecastOutput) SetTotal(v *MetricValue) *GetUsageForecastOutput { + s.Total = v return s } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationInput { - s.NextPageToken = &v - return s +// One level of grouped data in the results. +type Group struct { + _ struct{} `type:"structure"` + + // The keys that are included in this group. + Keys []*string `type:"list"` + + // The metrics that are included in this group. + Metrics map[string]*MetricValue `type:"map"` } -// SetPageSize sets the PageSize field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetPageSize(v int64) *GetSavingsPlansPurchaseRecommendationInput { - s.PageSize = &v - return s +// String returns the string representation +func (s Group) String() string { + return awsutil.Prettify(s) } -// SetPaymentOption sets the PaymentOption field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetPaymentOption(v string) *GetSavingsPlansPurchaseRecommendationInput { - s.PaymentOption = &v - return s +// GoString returns the string representation +func (s Group) GoString() string { + return s.String() } -// SetSavingsPlansType sets the SavingsPlansType field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetSavingsPlansType(v string) *GetSavingsPlansPurchaseRecommendationInput { - s.SavingsPlansType = &v +// SetKeys sets the Keys field's value. +func (s *Group) SetKeys(v []*string) *Group { + s.Keys = v return s } -// SetTermInYears sets the TermInYears field's value. -func (s *GetSavingsPlansPurchaseRecommendationInput) SetTermInYears(v string) *GetSavingsPlansPurchaseRecommendationInput { - s.TermInYears = &v +// SetMetrics sets the Metrics field's value. +func (s *Group) SetMetrics(v map[string]*MetricValue) *Group { + s.Metrics = v return s } -type GetSavingsPlansPurchaseRecommendationOutput struct { +// Represents a group when you specify a group by criteria or in the response +// to a query with a specific grouping. +type GroupDefinition struct { _ struct{} `type:"structure"` - // Information regarding this specific recommendation set. - Metadata *SavingsPlansPurchaseRecommendationMetadata `type:"structure"` - - // The token for the next set of retrievable results. AWS provides the token - // when the response from a previous call has more results than the maximum - // page size. - NextPageToken *string `type:"string"` + // The string that represents a key for a specified group. + Key *string `type:"string"` - // Contains your request parameters, Savings Plan Recommendations Summary, and - // Details. - SavingsPlansPurchaseRecommendation *SavingsPlansPurchaseRecommendation `type:"structure"` + // The string that represents the type of group. + Type *string `type:"string" enum:"GroupDefinitionType"` } // String returns the string representation -func (s GetSavingsPlansPurchaseRecommendationOutput) String() string { +func (s GroupDefinition) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansPurchaseRecommendationOutput) GoString() string { +func (s GroupDefinition) GoString() string { return s.String() } -// SetMetadata sets the Metadata field's value. -func (s *GetSavingsPlansPurchaseRecommendationOutput) SetMetadata(v *SavingsPlansPurchaseRecommendationMetadata) *GetSavingsPlansPurchaseRecommendationOutput { - s.Metadata = v - return s -} - -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetSavingsPlansPurchaseRecommendationOutput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationOutput { - s.NextPageToken = &v +// SetKey sets the Key field's value. +func (s *GroupDefinition) SetKey(v string) *GroupDefinition { + s.Key = &v return s } -// SetSavingsPlansPurchaseRecommendation sets the SavingsPlansPurchaseRecommendation field's value. -func (s *GetSavingsPlansPurchaseRecommendationOutput) SetSavingsPlansPurchaseRecommendation(v *SavingsPlansPurchaseRecommendation) *GetSavingsPlansPurchaseRecommendationOutput { - s.SavingsPlansPurchaseRecommendation = v +// SetType sets the Type field's value. +func (s *GroupDefinition) SetType(v string) *GroupDefinition { + s.Type = &v return s } -type GetSavingsPlansUtilizationDetailsInput struct { +// The anomaly's dollar value. +type Impact struct { _ struct{} `type:"structure"` - // Filters Savings Plans utilization coverage data for active Savings Plans - // dimensions. You can filter data with the following dimensions: + // The maximum dollar value observed for an anomaly. // - // * LINKED_ACCOUNT - // - // * SAVINGS_PLAN_ARN - // - // * REGION - // - // * PAYMENT_OPTION - // - // * INSTANCE_TYPE_FAMILY - // - // GetSavingsPlansUtilizationDetails uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) - // object as the other operations, but only AND is supported among each dimension. - Filter *Expression `type:"structure"` - - // The number of items to be returned in a response. The default is 20, with - // a minimum value of 1. - MaxResults *int64 `min:"1" type:"integer"` - - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextToken *string `type:"string"` + // MaxImpact is a required field + MaxImpact *float64 `type:"double" required:"true"` - // The time period that you want the usage and costs for. The Start date must - // be within 13 months. The End date must be after the Start date, and before - // the current date. Future dates can't be used as an End date. - // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` + // The cumulative dollar value observed for an anomaly. + TotalImpact *float64 `type:"double"` } // String returns the string representation -func (s GetSavingsPlansUtilizationDetailsInput) String() string { +func (s Impact) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansUtilizationDetailsInput) GoString() string { +func (s Impact) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetSavingsPlansUtilizationDetailsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationDetailsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.TimePeriod == nil { - invalidParams.Add(request.NewErrParamRequired("TimePeriod")) - } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } - } - if s.TimePeriod != nil { - if err := s.TimePeriod.Validate(); err != nil { - invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilter sets the Filter field's value. -func (s *GetSavingsPlansUtilizationDetailsInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationDetailsInput { - s.Filter = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetSavingsPlansUtilizationDetailsInput) SetMaxResults(v int64) *GetSavingsPlansUtilizationDetailsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetSavingsPlansUtilizationDetailsInput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsInput { - s.NextToken = &v +// SetMaxImpact sets the MaxImpact field's value. +func (s *Impact) SetMaxImpact(v float64) *Impact { + s.MaxImpact = &v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *GetSavingsPlansUtilizationDetailsInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsInput { - s.TimePeriod = v +// SetTotalImpact sets the TotalImpact field's value. +func (s *Impact) SetTotalImpact(v float64) *Impact { + s.TotalImpact = &v return s } -type GetSavingsPlansUtilizationDetailsOutput struct { +// Details about the instances that AWS recommends that you purchase. +type InstanceDetails struct { _ struct{} `type:"structure"` - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextToken *string `type:"string"` + // The Amazon EC2 instances that AWS recommends that you purchase. + EC2InstanceDetails *EC2InstanceDetails `type:"structure"` - // Retrieves a single daily or monthly Savings Plans utilization rate and details - // for your account. - // - // SavingsPlansUtilizationDetails is a required field - SavingsPlansUtilizationDetails []*SavingsPlansUtilizationDetail `type:"list" required:"true"` + // The Amazon ES instances that AWS recommends that you purchase. + ESInstanceDetails *ESInstanceDetails `type:"structure"` - // The time period that you want the usage and costs for. - // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` + // The ElastiCache instances that AWS recommends that you purchase. + ElastiCacheInstanceDetails *ElastiCacheInstanceDetails `type:"structure"` - // The total Savings Plans utilization, regardless of time period. - Total *SavingsPlansUtilizationAggregates `type:"structure"` + // The Amazon RDS instances that AWS recommends that you purchase. + RDSInstanceDetails *RDSInstanceDetails `type:"structure"` + + // The Amazon Redshift instances that AWS recommends that you purchase. + RedshiftInstanceDetails *RedshiftInstanceDetails `type:"structure"` } // String returns the string representation -func (s GetSavingsPlansUtilizationDetailsOutput) String() string { +func (s InstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansUtilizationDetailsOutput) GoString() string { +func (s InstanceDetails) GoString() string { return s.String() } -// SetNextToken sets the NextToken field's value. -func (s *GetSavingsPlansUtilizationDetailsOutput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsOutput { - s.NextToken = &v +// SetEC2InstanceDetails sets the EC2InstanceDetails field's value. +func (s *InstanceDetails) SetEC2InstanceDetails(v *EC2InstanceDetails) *InstanceDetails { + s.EC2InstanceDetails = v return s } -// SetSavingsPlansUtilizationDetails sets the SavingsPlansUtilizationDetails field's value. -func (s *GetSavingsPlansUtilizationDetailsOutput) SetSavingsPlansUtilizationDetails(v []*SavingsPlansUtilizationDetail) *GetSavingsPlansUtilizationDetailsOutput { - s.SavingsPlansUtilizationDetails = v +// SetESInstanceDetails sets the ESInstanceDetails field's value. +func (s *InstanceDetails) SetESInstanceDetails(v *ESInstanceDetails) *InstanceDetails { + s.ESInstanceDetails = v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *GetSavingsPlansUtilizationDetailsOutput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsOutput { - s.TimePeriod = v +// SetElastiCacheInstanceDetails sets the ElastiCacheInstanceDetails field's value. +func (s *InstanceDetails) SetElastiCacheInstanceDetails(v *ElastiCacheInstanceDetails) *InstanceDetails { + s.ElastiCacheInstanceDetails = v return s } -// SetTotal sets the Total field's value. -func (s *GetSavingsPlansUtilizationDetailsOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationDetailsOutput { - s.Total = v +// SetRDSInstanceDetails sets the RDSInstanceDetails field's value. +func (s *InstanceDetails) SetRDSInstanceDetails(v *RDSInstanceDetails) *InstanceDetails { + s.RDSInstanceDetails = v return s } -type GetSavingsPlansUtilizationInput struct { - _ struct{} `type:"structure"` - - // Filters Savings Plans utilization coverage data for active Savings Plans - // dimensions. You can filter data with the following dimensions: - // - // * LINKED_ACCOUNT - // - // * SAVINGS_PLAN_ARN - // - // * SAVINGS_PLANS_TYPE - // - // * REGION - // - // * PAYMENT_OPTION - // - // * INSTANCE_TYPE_FAMILY - // - // GetSavingsPlansUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) - // object as the other operations, but only AND is supported among each dimension. - Filter *Expression `type:"structure"` - - // The granularity of the Amazon Web Services utillization data for your Savings - // Plans. - // - // The GetSavingsPlansUtilization operation supports only DAILY and MONTHLY - // granularities. - Granularity *string `type:"string" enum:"Granularity"` +// SetRedshiftInstanceDetails sets the RedshiftInstanceDetails field's value. +func (s *InstanceDetails) SetRedshiftInstanceDetails(v *RedshiftInstanceDetails) *InstanceDetails { + s.RedshiftInstanceDetails = v + return s +} - // The time period that you want the usage and costs for. The Start date must - // be within 13 months. The End date must be after the Start date, and before - // the current date. Future dates can't be used as an End date. - // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` +// The pagination token is invalid. Try again without a pagination token. +type InvalidNextTokenException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation -func (s GetSavingsPlansUtilizationInput) String() string { +func (s InvalidNextTokenException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansUtilizationInput) GoString() string { +func (s InvalidNextTokenException) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetSavingsPlansUtilizationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationInput"} - if s.TimePeriod == nil { - invalidParams.Add(request.NewErrParamRequired("TimePeriod")) - } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } - } - if s.TimePeriod != nil { - if err := s.TimePeriod.Validate(); err != nil { - invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) - } +func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error { + return &InvalidNextTokenException{ + RespMetadata: v, } +} - if invalidParams.Len() > 0 { - return invalidParams +// Code returns the exception type name. +func (s *InvalidNextTokenException) Code() string { + return "InvalidNextTokenException" +} + +// Message returns the exception's message. +func (s *InvalidNextTokenException) Message() string { + if s.Message_ != nil { + return *s.Message_ } - return nil + return "" } -// SetFilter sets the Filter field's value. -func (s *GetSavingsPlansUtilizationInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationInput { - s.Filter = v - return s +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidNextTokenException) OrigErr() error { + return nil } -// SetGranularity sets the Granularity field's value. -func (s *GetSavingsPlansUtilizationInput) SetGranularity(v string) *GetSavingsPlansUtilizationInput { - s.Granularity = &v - return s +func (s *InvalidNextTokenException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -// SetTimePeriod sets the TimePeriod field's value. -func (s *GetSavingsPlansUtilizationInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationInput { - s.TimePeriod = v - return s +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidNextTokenException) StatusCode() int { + return s.RespMetadata.StatusCode } -type GetSavingsPlansUtilizationOutput struct { - _ struct{} `type:"structure"` +// RequestID returns the service's response RequestID for request. +func (s *InvalidNextTokenException) RequestID() string { + return s.RespMetadata.RequestID +} - // The amount of cost/commitment you used your Savings Plans. This allows you - // to specify date ranges. - SavingsPlansUtilizationsByTime []*SavingsPlansUtilizationByTime `type:"list"` +// You made too many calls in a short period of time. Try again later. +type LimitExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // The total amount of cost/commitment that you used your Savings Plans, regardless - // of date ranges. - // - // Total is a required field - Total *SavingsPlansUtilizationAggregates `type:"structure" required:"true"` + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation -func (s GetSavingsPlansUtilizationOutput) String() string { +func (s LimitExceededException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetSavingsPlansUtilizationOutput) GoString() string { +func (s LimitExceededException) GoString() string { return s.String() } -// SetSavingsPlansUtilizationsByTime sets the SavingsPlansUtilizationsByTime field's value. -func (s *GetSavingsPlansUtilizationOutput) SetSavingsPlansUtilizationsByTime(v []*SavingsPlansUtilizationByTime) *GetSavingsPlansUtilizationOutput { - s.SavingsPlansUtilizationsByTime = v - return s +func newErrorLimitExceededException(v protocol.ResponseMetadata) error { + return &LimitExceededException{ + RespMetadata: v, + } } -// SetTotal sets the Total field's value. -func (s *GetSavingsPlansUtilizationOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationOutput { - s.Total = v - return s +// Code returns the exception type name. +func (s *LimitExceededException) Code() string { + return "LimitExceededException" } -type GetTagsInput struct { - _ struct{} `type:"structure"` +// Message returns the exception's message. +func (s *LimitExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} - // The token to retrieve the next set of results. AWS provides the token when - // the response from a previous call has more results than the maximum page - // size. - NextPageToken *string `type:"string"` +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *LimitExceededException) OrigErr() error { + return nil +} - // The value that you want to search for. - SearchString *string `type:"string"` +func (s *LimitExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} - // The key of the tag that you want to return values for. - TagKey *string `type:"string"` +// Status code returns the HTTP status code for the request's response error. +func (s *LimitExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} - // The start and end dates for retrieving the dimension values. The start date - // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 - // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 - // up to and including 2017-04-30 but not including 2017-05-01. - // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` +// RequestID returns the service's response RequestID for request. +func (s *LimitExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListCostCategoryDefinitionsInput struct { + _ struct{} `type:"structure"` + + // The date when the Cost Category was effective. + EffectiveOn *string `min:"20" type:"string"` + + // The number of entries a paginated response contains. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. + NextToken *string `type:"string"` } // String returns the string representation -func (s GetTagsInput) String() string { +func (s ListCostCategoryDefinitionsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetTagsInput) GoString() string { +func (s ListCostCategoryDefinitionsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetTagsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"} - if s.TimePeriod == nil { - invalidParams.Add(request.NewErrParamRequired("TimePeriod")) +func (s *ListCostCategoryDefinitionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListCostCategoryDefinitionsInput"} + if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) } - if s.TimePeriod != nil { - if err := s.TimePeriod.Validate(); err != nil { - invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) - } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if invalidParams.Len() > 0 { @@ -5821,165 +8224,149 @@ func (s *GetTagsInput) Validate() error { return nil } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetTagsInput) SetNextPageToken(v string) *GetTagsInput { - s.NextPageToken = &v +// SetEffectiveOn sets the EffectiveOn field's value. +func (s *ListCostCategoryDefinitionsInput) SetEffectiveOn(v string) *ListCostCategoryDefinitionsInput { + s.EffectiveOn = &v return s } -// SetSearchString sets the SearchString field's value. -func (s *GetTagsInput) SetSearchString(v string) *GetTagsInput { - s.SearchString = &v +// SetMaxResults sets the MaxResults field's value. +func (s *ListCostCategoryDefinitionsInput) SetMaxResults(v int64) *ListCostCategoryDefinitionsInput { + s.MaxResults = &v return s } -// SetTagKey sets the TagKey field's value. -func (s *GetTagsInput) SetTagKey(v string) *GetTagsInput { - s.TagKey = &v +// SetNextToken sets the NextToken field's value. +func (s *ListCostCategoryDefinitionsInput) SetNextToken(v string) *ListCostCategoryDefinitionsInput { + s.NextToken = &v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *GetTagsInput) SetTimePeriod(v *DateInterval) *GetTagsInput { - s.TimePeriod = v - return s +type ListCostCategoryDefinitionsOutput struct { + _ struct{} `type:"structure"` + + // A reference to a Cost Category containing enough information to identify + // the Cost Category. + CostCategoryReferences []*CostCategoryReference `type:"list"` + + // The token to retrieve the next set of results. Amazon Web Services provides + // the token when the response from a previous call has more results than the + // maximum page size. + NextToken *string `type:"string"` } -type GetTagsOutput struct { - _ struct{} `type:"structure"` +// String returns the string representation +func (s ListCostCategoryDefinitionsOutput) String() string { + return awsutil.Prettify(s) +} - // The token for the next set of retrievable results. AWS provides the token - // when the response from a previous call has more results than the maximum - // page size. - NextPageToken *string `type:"string"` +// GoString returns the string representation +func (s ListCostCategoryDefinitionsOutput) GoString() string { + return s.String() +} - // The number of query results that AWS returns at a time. - // - // ReturnSize is a required field - ReturnSize *int64 `type:"integer" required:"true"` +// SetCostCategoryReferences sets the CostCategoryReferences field's value. +func (s *ListCostCategoryDefinitionsOutput) SetCostCategoryReferences(v []*CostCategoryReference) *ListCostCategoryDefinitionsOutput { + s.CostCategoryReferences = v + return s +} - // The tags that match your request. - // - // Tags is a required field - Tags []*string `type:"list" required:"true"` +// SetNextToken sets the NextToken field's value. +func (s *ListCostCategoryDefinitionsOutput) SetNextToken(v string) *ListCostCategoryDefinitionsOutput { + s.NextToken = &v + return s +} - // The total number of query results. - // - // TotalSize is a required field - TotalSize *int64 `type:"integer" required:"true"` +// The aggregated value for a metric. +type MetricValue struct { + _ struct{} `type:"structure"` + + // The actual number that represents the metric. + Amount *string `type:"string"` + + // The unit that the metric is given in. + Unit *string `type:"string"` } // String returns the string representation -func (s GetTagsOutput) String() string { +func (s MetricValue) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetTagsOutput) GoString() string { +func (s MetricValue) GoString() string { return s.String() } -// SetNextPageToken sets the NextPageToken field's value. -func (s *GetTagsOutput) SetNextPageToken(v string) *GetTagsOutput { - s.NextPageToken = &v +// SetAmount sets the Amount field's value. +func (s *MetricValue) SetAmount(v string) *MetricValue { + s.Amount = &v return s } -// SetReturnSize sets the ReturnSize field's value. -func (s *GetTagsOutput) SetReturnSize(v int64) *GetTagsOutput { - s.ReturnSize = &v +// SetUnit sets the Unit field's value. +func (s *MetricValue) SetUnit(v string) *MetricValue { + s.Unit = &v return s } -// SetTags sets the Tags field's value. -func (s *GetTagsOutput) SetTags(v []*string) *GetTagsOutput { - s.Tags = v - return s +// Details on the modification recommendation. +type ModifyRecommendationDetail struct { + _ struct{} `type:"structure"` + + // Identifies whether this instance type is the AWS default recommendation. + TargetInstances []*TargetInstance `type:"list"` } -// SetTotalSize sets the TotalSize field's value. -func (s *GetTagsOutput) SetTotalSize(v int64) *GetTagsOutput { - s.TotalSize = &v - return s +// String returns the string representation +func (s ModifyRecommendationDetail) String() string { + return awsutil.Prettify(s) } -type GetUsageForecastInput struct { - _ struct{} `type:"structure"` +// GoString returns the string representation +func (s ModifyRecommendationDetail) GoString() string { + return s.String() +} - // The filters that you want to use to filter your forecast. Cost Explorer API - // supports all of the Cost Explorer filters. - Filter *Expression `type:"structure"` +// SetTargetInstances sets the TargetInstances field's value. +func (s *ModifyRecommendationDetail) SetTargetInstances(v []*TargetInstance) *ModifyRecommendationDetail { + s.TargetInstances = v + return s +} - // How granular you want the forecast to be. You can get 3 months of DAILY forecasts - // or 12 months of MONTHLY forecasts. - // - // The GetUsageForecast operation supports only DAILY and MONTHLY granularities. - // - // Granularity is a required field - Granularity *string `type:"string" required:"true" enum:"Granularity"` +type ProvideAnomalyFeedbackInput struct { + _ struct{} `type:"structure"` - // Which metric Cost Explorer uses to create your forecast. - // - // Valid values for a GetUsageForecast call are the following: - // - // * USAGE_QUANTITY - // - // * NORMALIZED_USAGE_AMOUNT + // A cost anomaly ID. // - // Metric is a required field - Metric *string `type:"string" required:"true" enum:"Metric"` - - // Cost Explorer always returns the mean forecast as a single point. You can - // request a prediction interval around the mean by specifying a confidence - // level. The higher the confidence level, the more confident Cost Explorer - // is about the actual value falling in the prediction interval. Higher confidence - // levels result in wider prediction intervals. - PredictionIntervalLevel *int64 `min:"51" type:"integer"` + // AnomalyId is a required field + AnomalyId *string `type:"string" required:"true"` - // The start and end dates of the period that you want to retrieve usage forecast - // for. The start date is inclusive, but the end date is exclusive. For example, - // if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data - // is retrieved from 2017-01-01 up to and including 2017-04-30 but not including - // 2017-05-01. + // Describes whether the cost anomaly was a planned activity or you considered + // it an anomaly. // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` + // Feedback is a required field + Feedback *string `type:"string" required:"true" enum:"AnomalyFeedbackType"` } // String returns the string representation -func (s GetUsageForecastInput) String() string { +func (s ProvideAnomalyFeedbackInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetUsageForecastInput) GoString() string { +func (s ProvideAnomalyFeedbackInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetUsageForecastInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetUsageForecastInput"} - if s.Granularity == nil { - invalidParams.Add(request.NewErrParamRequired("Granularity")) - } - if s.Metric == nil { - invalidParams.Add(request.NewErrParamRequired("Metric")) - } - if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { - invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) - } - if s.TimePeriod == nil { - invalidParams.Add(request.NewErrParamRequired("TimePeriod")) - } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } +func (s *ProvideAnomalyFeedbackInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ProvideAnomalyFeedbackInput"} + if s.AnomalyId == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyId")) } - if s.TimePeriod != nil { - if err := s.TimePeriod.Validate(); err != nil { - invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) - } + if s.Feedback == nil { + invalidParams.Add(request.NewErrParamRequired("Feedback")) } if invalidParams.Len() > 0 { @@ -5988,198 +8375,204 @@ func (s *GetUsageForecastInput) Validate() error { return nil } -// SetFilter sets the Filter field's value. -func (s *GetUsageForecastInput) SetFilter(v *Expression) *GetUsageForecastInput { - s.Filter = v - return s -} - -// SetGranularity sets the Granularity field's value. -func (s *GetUsageForecastInput) SetGranularity(v string) *GetUsageForecastInput { - s.Granularity = &v - return s -} - -// SetMetric sets the Metric field's value. -func (s *GetUsageForecastInput) SetMetric(v string) *GetUsageForecastInput { - s.Metric = &v - return s -} - -// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. -func (s *GetUsageForecastInput) SetPredictionIntervalLevel(v int64) *GetUsageForecastInput { - s.PredictionIntervalLevel = &v +// SetAnomalyId sets the AnomalyId field's value. +func (s *ProvideAnomalyFeedbackInput) SetAnomalyId(v string) *ProvideAnomalyFeedbackInput { + s.AnomalyId = &v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *GetUsageForecastInput) SetTimePeriod(v *DateInterval) *GetUsageForecastInput { - s.TimePeriod = v +// SetFeedback sets the Feedback field's value. +func (s *ProvideAnomalyFeedbackInput) SetFeedback(v string) *ProvideAnomalyFeedbackInput { + s.Feedback = &v return s } -type GetUsageForecastOutput struct { +type ProvideAnomalyFeedbackOutput struct { _ struct{} `type:"structure"` - // The forecasts for your query, in order. For DAILY forecasts, this is a list - // of days. For MONTHLY forecasts, this is a list of months. - ForecastResultsByTime []*ForecastResult `type:"list"` - - // How much you're forecasted to use over the forecast period. - Total *MetricValue `type:"structure"` + // The ID of the modified cost anomaly. + // + // AnomalyId is a required field + AnomalyId *string `type:"string" required:"true"` } // String returns the string representation -func (s GetUsageForecastOutput) String() string { +func (s ProvideAnomalyFeedbackOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetUsageForecastOutput) GoString() string { +func (s ProvideAnomalyFeedbackOutput) GoString() string { return s.String() } -// SetForecastResultsByTime sets the ForecastResultsByTime field's value. -func (s *GetUsageForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetUsageForecastOutput { - s.ForecastResultsByTime = v - return s -} - -// SetTotal sets the Total field's value. -func (s *GetUsageForecastOutput) SetTotal(v *MetricValue) *GetUsageForecastOutput { - s.Total = v +// SetAnomalyId sets the AnomalyId field's value. +func (s *ProvideAnomalyFeedbackOutput) SetAnomalyId(v string) *ProvideAnomalyFeedbackOutput { + s.AnomalyId = &v return s } -// One level of grouped data in the results. -type Group struct { +// Details about the Amazon RDS instances that AWS recommends that you purchase. +type RDSInstanceDetails struct { _ struct{} `type:"structure"` - // The keys that are included in this group. - Keys []*string `type:"list"` + // Whether the recommendation is for a current-generation instance. + CurrentGeneration *bool `type:"boolean"` - // The metrics that are included in this group. - Metrics map[string]*MetricValue `type:"map"` + // The database edition that the recommended reservation supports. + DatabaseEdition *string `type:"string"` + + // The database engine that the recommended reservation supports. + DatabaseEngine *string `type:"string"` + + // Whether the recommendation is for a reservation in a single Availability + // Zone or a reservation with a backup in a second Availability Zone. + DeploymentOption *string `type:"string"` + + // The instance family of the recommended reservation. + Family *string `type:"string"` + + // The type of instance that AWS recommends. + InstanceType *string `type:"string"` + + // The license model that the recommended reservation supports. + LicenseModel *string `type:"string"` + + // The AWS Region of the recommended reservation. + Region *string `type:"string"` + + // Whether the recommended reservation is size flexible. + SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation -func (s Group) String() string { +func (s RDSInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s Group) GoString() string { +func (s RDSInstanceDetails) GoString() string { return s.String() } -// SetKeys sets the Keys field's value. -func (s *Group) SetKeys(v []*string) *Group { - s.Keys = v +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *RDSInstanceDetails) SetCurrentGeneration(v bool) *RDSInstanceDetails { + s.CurrentGeneration = &v return s } -// SetMetrics sets the Metrics field's value. -func (s *Group) SetMetrics(v map[string]*MetricValue) *Group { - s.Metrics = v +// SetDatabaseEdition sets the DatabaseEdition field's value. +func (s *RDSInstanceDetails) SetDatabaseEdition(v string) *RDSInstanceDetails { + s.DatabaseEdition = &v return s } -// Represents a group when you specify a group by criteria or in the response -// to a query with a specific grouping. -type GroupDefinition struct { - _ struct{} `type:"structure"` +// SetDatabaseEngine sets the DatabaseEngine field's value. +func (s *RDSInstanceDetails) SetDatabaseEngine(v string) *RDSInstanceDetails { + s.DatabaseEngine = &v + return s +} - // The string that represents a key for a specified group. - Key *string `type:"string"` +// SetDeploymentOption sets the DeploymentOption field's value. +func (s *RDSInstanceDetails) SetDeploymentOption(v string) *RDSInstanceDetails { + s.DeploymentOption = &v + return s +} - // The string that represents the type of group. - Type *string `type:"string" enum:"GroupDefinitionType"` +// SetFamily sets the Family field's value. +func (s *RDSInstanceDetails) SetFamily(v string) *RDSInstanceDetails { + s.Family = &v + return s } -// String returns the string representation -func (s GroupDefinition) String() string { - return awsutil.Prettify(s) +// SetInstanceType sets the InstanceType field's value. +func (s *RDSInstanceDetails) SetInstanceType(v string) *RDSInstanceDetails { + s.InstanceType = &v + return s } -// GoString returns the string representation -func (s GroupDefinition) GoString() string { - return s.String() +// SetLicenseModel sets the LicenseModel field's value. +func (s *RDSInstanceDetails) SetLicenseModel(v string) *RDSInstanceDetails { + s.LicenseModel = &v + return s } -// SetKey sets the Key field's value. -func (s *GroupDefinition) SetKey(v string) *GroupDefinition { - s.Key = &v +// SetRegion sets the Region field's value. +func (s *RDSInstanceDetails) SetRegion(v string) *RDSInstanceDetails { + s.Region = &v return s } -// SetType sets the Type field's value. -func (s *GroupDefinition) SetType(v string) *GroupDefinition { - s.Type = &v +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *RDSInstanceDetails) SetSizeFlexEligible(v bool) *RDSInstanceDetails { + s.SizeFlexEligible = &v return s } -// Details about the instances that AWS recommends that you purchase. -type InstanceDetails struct { +// Details about the Amazon Redshift instances that AWS recommends that you +// purchase. +type RedshiftInstanceDetails struct { _ struct{} `type:"structure"` - // The Amazon EC2 instances that AWS recommends that you purchase. - EC2InstanceDetails *EC2InstanceDetails `type:"structure"` - - // The Amazon ES instances that AWS recommends that you purchase. - ESInstanceDetails *ESInstanceDetails `type:"structure"` + // Whether the recommendation is for a current-generation instance. + CurrentGeneration *bool `type:"boolean"` - // The ElastiCache instances that AWS recommends that you purchase. - ElastiCacheInstanceDetails *ElastiCacheInstanceDetails `type:"structure"` + // The instance family of the recommended reservation. + Family *string `type:"string"` - // The Amazon RDS instances that AWS recommends that you purchase. - RDSInstanceDetails *RDSInstanceDetails `type:"structure"` + // The type of node that AWS recommends. + NodeType *string `type:"string"` - // The Amazon Redshift instances that AWS recommends that you purchase. - RedshiftInstanceDetails *RedshiftInstanceDetails `type:"structure"` + // The AWS Region of the recommended reservation. + Region *string `type:"string"` + + // Whether the recommended reservation is size flexible. + SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation -func (s InstanceDetails) String() string { +func (s RedshiftInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s InstanceDetails) GoString() string { +func (s RedshiftInstanceDetails) GoString() string { return s.String() } -// SetEC2InstanceDetails sets the EC2InstanceDetails field's value. -func (s *InstanceDetails) SetEC2InstanceDetails(v *EC2InstanceDetails) *InstanceDetails { - s.EC2InstanceDetails = v +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *RedshiftInstanceDetails) SetCurrentGeneration(v bool) *RedshiftInstanceDetails { + s.CurrentGeneration = &v return s } -// SetESInstanceDetails sets the ESInstanceDetails field's value. -func (s *InstanceDetails) SetESInstanceDetails(v *ESInstanceDetails) *InstanceDetails { - s.ESInstanceDetails = v +// SetFamily sets the Family field's value. +func (s *RedshiftInstanceDetails) SetFamily(v string) *RedshiftInstanceDetails { + s.Family = &v return s } -// SetElastiCacheInstanceDetails sets the ElastiCacheInstanceDetails field's value. -func (s *InstanceDetails) SetElastiCacheInstanceDetails(v *ElastiCacheInstanceDetails) *InstanceDetails { - s.ElastiCacheInstanceDetails = v +// SetNodeType sets the NodeType field's value. +func (s *RedshiftInstanceDetails) SetNodeType(v string) *RedshiftInstanceDetails { + s.NodeType = &v return s } -// SetRDSInstanceDetails sets the RDSInstanceDetails field's value. -func (s *InstanceDetails) SetRDSInstanceDetails(v *RDSInstanceDetails) *InstanceDetails { - s.RDSInstanceDetails = v +// SetRegion sets the Region field's value. +func (s *RedshiftInstanceDetails) SetRegion(v string) *RedshiftInstanceDetails { + s.Region = &v return s } -// SetRedshiftInstanceDetails sets the RedshiftInstanceDetails field's value. -func (s *InstanceDetails) SetRedshiftInstanceDetails(v *RedshiftInstanceDetails) *InstanceDetails { - s.RedshiftInstanceDetails = v +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *RedshiftInstanceDetails) SetSizeFlexEligible(v bool) *RedshiftInstanceDetails { + s.SizeFlexEligible = &v return s } -// The pagination token is invalid. Try again without a pagination token. -type InvalidNextTokenException struct { +// Your request parameters changed between pages. Try again with the old parameters +// or without a pagination token. +type RequestChangedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -6187,28 +8580,28 @@ type InvalidNextTokenException struct { } // String returns the string representation -func (s InvalidNextTokenException) String() string { +func (s RequestChangedException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s InvalidNextTokenException) GoString() string { +func (s RequestChangedException) GoString() string { return s.String() } -func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error { - return &InvalidNextTokenException{ +func newErrorRequestChangedException(v protocol.ResponseMetadata) error { + return &RequestChangedException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *InvalidNextTokenException) Code() string { - return "InvalidNextTokenException" +func (s *RequestChangedException) Code() string { + return "RequestChangedException" } // Message returns the exception's message. -func (s *InvalidNextTokenException) Message() string { +func (s *RequestChangedException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -6216,2279 +8609,2362 @@ func (s *InvalidNextTokenException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidNextTokenException) OrigErr() error { +func (s *RequestChangedException) OrigErr() error { return nil } -func (s *InvalidNextTokenException) Error() string { +func (s *RequestChangedException) 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 *InvalidNextTokenException) StatusCode() int { +func (s *RequestChangedException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *InvalidNextTokenException) RequestID() string { +func (s *RequestChangedException) RequestID() string { return s.RespMetadata.RequestID } -// You made too many calls in a short period of time. Try again later. -type LimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// The aggregated numbers for your reservation usage. +type ReservationAggregates struct { + _ struct{} `type:"structure"` - Message_ *string `locationName:"Message" type:"string"` -} + // The monthly cost of your reservation, amortized over the reservation period. + AmortizedRecurringFee *string `type:"string"` -// String returns the string representation -func (s LimitExceededException) String() string { - return awsutil.Prettify(s) -} + // The upfront cost of your reservation, amortized over the reservation period. + AmortizedUpfrontFee *string `type:"string"` -// GoString returns the string representation -func (s LimitExceededException) GoString() string { - return s.String() -} + // How much you saved due to purchasing and utilizing reservation. AWS calculates + // this by subtracting TotalAmortizedFee from OnDemandCostOfRIHoursUsed. + NetRISavings *string `type:"string"` -func newErrorLimitExceededException(v protocol.ResponseMetadata) error { - return &LimitExceededException{ - RespMetadata: v, - } -} + // How much your reservation would cost if charged On-Demand rates. + OnDemandCostOfRIHoursUsed *string `type:"string"` -// Code returns the exception type name. -func (s *LimitExceededException) Code() string { - return "LimitExceededException" -} + // How many reservation hours that you purchased. + PurchasedHours *string `type:"string"` -// Message returns the exception's message. -func (s *LimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} + // How many Amazon EC2 reservation hours that you purchased, converted to normalized + // units. Normalized units are available only for Amazon EC2 usage after November + // 11, 2017. + PurchasedUnits *string `type:"string"` -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *LimitExceededException) OrigErr() error { - return nil -} + // The total number of reservation hours that you used. + TotalActualHours *string `type:"string"` -func (s *LimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} + // The total number of Amazon EC2 reservation hours that you used, converted + // to normalized units. Normalized units are available only for Amazon EC2 usage + // after November 11, 2017. + TotalActualUnits *string `type:"string"` -// Status code returns the HTTP status code for the request's response error. -func (s *LimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} + // The total cost of your reservation, amortized over the reservation period. + TotalAmortizedFee *string `type:"string"` -// RequestID returns the service's response RequestID for request. -func (s *LimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} + // How much you could save if you use your entire reservation. + TotalPotentialRISavings *string `type:"string"` -type ListCostCategoryDefinitionsInput struct { - _ struct{} `type:"structure"` + // The number of reservation hours that you didn't use. + UnusedHours *string `type:"string"` - // The date when the Cost Category was effective. - EffectiveOn *string `min:"20" type:"string"` + // The number of Amazon EC2 reservation hours that you didn't use, converted + // to normalized units. Normalized units are available only for Amazon EC2 usage + // after November 11, 2017. + UnusedUnits *string `type:"string"` - // The number of entries a paginated response contains. - MaxResults *int64 `min:"1" type:"integer"` + // The percentage of reservation time that you used. + UtilizationPercentage *string `type:"string"` - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextToken *string `type:"string"` + // The percentage of Amazon EC2 reservation time that you used, converted to + // normalized units. Normalized units are available only for Amazon EC2 usage + // after November 11, 2017. + UtilizationPercentageInUnits *string `type:"string"` } // String returns the string representation -func (s ListCostCategoryDefinitionsInput) String() string { +func (s ReservationAggregates) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ListCostCategoryDefinitionsInput) GoString() string { +func (s ReservationAggregates) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListCostCategoryDefinitionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListCostCategoryDefinitionsInput"} - if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetEffectiveOn sets the EffectiveOn field's value. -func (s *ListCostCategoryDefinitionsInput) SetEffectiveOn(v string) *ListCostCategoryDefinitionsInput { - s.EffectiveOn = &v +// SetAmortizedRecurringFee sets the AmortizedRecurringFee field's value. +func (s *ReservationAggregates) SetAmortizedRecurringFee(v string) *ReservationAggregates { + s.AmortizedRecurringFee = &v return s } -// SetMaxResults sets the MaxResults field's value. -func (s *ListCostCategoryDefinitionsInput) SetMaxResults(v int64) *ListCostCategoryDefinitionsInput { - s.MaxResults = &v +// SetAmortizedUpfrontFee sets the AmortizedUpfrontFee field's value. +func (s *ReservationAggregates) SetAmortizedUpfrontFee(v string) *ReservationAggregates { + s.AmortizedUpfrontFee = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListCostCategoryDefinitionsInput) SetNextToken(v string) *ListCostCategoryDefinitionsInput { - s.NextToken = &v +// SetNetRISavings sets the NetRISavings field's value. +func (s *ReservationAggregates) SetNetRISavings(v string) *ReservationAggregates { + s.NetRISavings = &v return s } -type ListCostCategoryDefinitionsOutput struct { - _ struct{} `type:"structure"` - - // A reference to a Cost Category containing enough information to identify - // the Cost Category. - CostCategoryReferences []*CostCategoryReference `type:"list"` - - // The token to retrieve the next set of results. Amazon Web Services provides - // the token when the response from a previous call has more results than the - // maximum page size. - NextToken *string `type:"string"` +// SetOnDemandCostOfRIHoursUsed sets the OnDemandCostOfRIHoursUsed field's value. +func (s *ReservationAggregates) SetOnDemandCostOfRIHoursUsed(v string) *ReservationAggregates { + s.OnDemandCostOfRIHoursUsed = &v + return s } -// String returns the string representation -func (s ListCostCategoryDefinitionsOutput) String() string { - return awsutil.Prettify(s) +// SetPurchasedHours sets the PurchasedHours field's value. +func (s *ReservationAggregates) SetPurchasedHours(v string) *ReservationAggregates { + s.PurchasedHours = &v + return s } -// GoString returns the string representation -func (s ListCostCategoryDefinitionsOutput) GoString() string { - return s.String() +// SetPurchasedUnits sets the PurchasedUnits field's value. +func (s *ReservationAggregates) SetPurchasedUnits(v string) *ReservationAggregates { + s.PurchasedUnits = &v + return s } -// SetCostCategoryReferences sets the CostCategoryReferences field's value. -func (s *ListCostCategoryDefinitionsOutput) SetCostCategoryReferences(v []*CostCategoryReference) *ListCostCategoryDefinitionsOutput { - s.CostCategoryReferences = v +// SetTotalActualHours sets the TotalActualHours field's value. +func (s *ReservationAggregates) SetTotalActualHours(v string) *ReservationAggregates { + s.TotalActualHours = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListCostCategoryDefinitionsOutput) SetNextToken(v string) *ListCostCategoryDefinitionsOutput { - s.NextToken = &v +// SetTotalActualUnits sets the TotalActualUnits field's value. +func (s *ReservationAggregates) SetTotalActualUnits(v string) *ReservationAggregates { + s.TotalActualUnits = &v return s } -// The aggregated value for a metric. -type MetricValue struct { - _ struct{} `type:"structure"` - - // The actual number that represents the metric. - Amount *string `type:"string"` +// SetTotalAmortizedFee sets the TotalAmortizedFee field's value. +func (s *ReservationAggregates) SetTotalAmortizedFee(v string) *ReservationAggregates { + s.TotalAmortizedFee = &v + return s +} - // The unit that the metric is given in. - Unit *string `type:"string"` +// SetTotalPotentialRISavings sets the TotalPotentialRISavings field's value. +func (s *ReservationAggregates) SetTotalPotentialRISavings(v string) *ReservationAggregates { + s.TotalPotentialRISavings = &v + return s } -// String returns the string representation -func (s MetricValue) String() string { - return awsutil.Prettify(s) +// SetUnusedHours sets the UnusedHours field's value. +func (s *ReservationAggregates) SetUnusedHours(v string) *ReservationAggregates { + s.UnusedHours = &v + return s } -// GoString returns the string representation -func (s MetricValue) GoString() string { - return s.String() +// SetUnusedUnits sets the UnusedUnits field's value. +func (s *ReservationAggregates) SetUnusedUnits(v string) *ReservationAggregates { + s.UnusedUnits = &v + return s } -// SetAmount sets the Amount field's value. -func (s *MetricValue) SetAmount(v string) *MetricValue { - s.Amount = &v +// SetUtilizationPercentage sets the UtilizationPercentage field's value. +func (s *ReservationAggregates) SetUtilizationPercentage(v string) *ReservationAggregates { + s.UtilizationPercentage = &v return s } -// SetUnit sets the Unit field's value. -func (s *MetricValue) SetUnit(v string) *MetricValue { - s.Unit = &v +// SetUtilizationPercentageInUnits sets the UtilizationPercentageInUnits field's value. +func (s *ReservationAggregates) SetUtilizationPercentageInUnits(v string) *ReservationAggregates { + s.UtilizationPercentageInUnits = &v return s } -// Details on the modification recommendation. -type ModifyRecommendationDetail struct { +// A group of reservations that share a set of attributes. +type ReservationCoverageGroup struct { _ struct{} `type:"structure"` - // Identifies whether this instance type is the Amazon Web Services default - // recommendation. - TargetInstances []*TargetInstance `type:"list"` + // The attributes for this group of reservations. + Attributes map[string]*string `type:"map"` + + // How much instance usage this group of reservations covered. + Coverage *Coverage `type:"structure"` } // String returns the string representation -func (s ModifyRecommendationDetail) String() string { +func (s ReservationCoverageGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ModifyRecommendationDetail) GoString() string { +func (s ReservationCoverageGroup) GoString() string { return s.String() } -// SetTargetInstances sets the TargetInstances field's value. -func (s *ModifyRecommendationDetail) SetTargetInstances(v []*TargetInstance) *ModifyRecommendationDetail { - s.TargetInstances = v +// SetAttributes sets the Attributes field's value. +func (s *ReservationCoverageGroup) SetAttributes(v map[string]*string) *ReservationCoverageGroup { + s.Attributes = v return s } -// Details about the Amazon RDS instances that AWS recommends that you purchase. -type RDSInstanceDetails struct { - _ struct{} `type:"structure"` - - // Whether the recommendation is for a current-generation instance. - CurrentGeneration *bool `type:"boolean"` +// SetCoverage sets the Coverage field's value. +func (s *ReservationCoverageGroup) SetCoverage(v *Coverage) *ReservationCoverageGroup { + s.Coverage = v + return s +} - // The database edition that the recommended reservation supports. - DatabaseEdition *string `type:"string"` +// A specific reservation that AWS recommends for purchase. +type ReservationPurchaseRecommendation struct { + _ struct{} `type:"structure"` - // The database engine that the recommended reservation supports. - DatabaseEngine *string `type:"string"` + // The account scope that AWS recommends that you purchase this instance for. + // For example, you can purchase this reservation for an entire organization + // in AWS Organizations. + AccountScope *string `type:"string" enum:"AccountScope"` - // Whether the recommendation is for a reservation in a single Availability - // Zone or a reservation with a backup in a second Availability Zone. - DeploymentOption *string `type:"string"` + // How many days of previous usage that AWS considers when making this recommendation. + LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` - // The instance family of the recommended reservation. - Family *string `type:"string"` + // The payment option for the reservation. For example, AllUpfront or NoUpfront. + PaymentOption *string `type:"string" enum:"PaymentOption"` - // The type of instance that AWS recommends. - InstanceType *string `type:"string"` + // Details about the recommended purchases. + RecommendationDetails []*ReservationPurchaseRecommendationDetail `type:"list"` - // The license model that the recommended reservation supports. - LicenseModel *string `type:"string"` + // A summary about the recommended purchase. + RecommendationSummary *ReservationPurchaseRecommendationSummary `type:"structure"` - // The AWS Region of the recommended reservation. - Region *string `type:"string"` + // Hardware specifications for the service that you want recommendations for. + ServiceSpecification *ServiceSpecification `type:"structure"` - // Whether the recommended reservation is size flexible. - SizeFlexEligible *bool `type:"boolean"` + // The term of the reservation that you want recommendations for, in years. + TermInYears *string `type:"string" enum:"TermInYears"` } // String returns the string representation -func (s RDSInstanceDetails) String() string { +func (s ReservationPurchaseRecommendation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s RDSInstanceDetails) GoString() string { +func (s ReservationPurchaseRecommendation) GoString() string { return s.String() } -// SetCurrentGeneration sets the CurrentGeneration field's value. -func (s *RDSInstanceDetails) SetCurrentGeneration(v bool) *RDSInstanceDetails { - s.CurrentGeneration = &v +// SetAccountScope sets the AccountScope field's value. +func (s *ReservationPurchaseRecommendation) SetAccountScope(v string) *ReservationPurchaseRecommendation { + s.AccountScope = &v return s } -// SetDatabaseEdition sets the DatabaseEdition field's value. -func (s *RDSInstanceDetails) SetDatabaseEdition(v string) *RDSInstanceDetails { - s.DatabaseEdition = &v +// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. +func (s *ReservationPurchaseRecommendation) SetLookbackPeriodInDays(v string) *ReservationPurchaseRecommendation { + s.LookbackPeriodInDays = &v return s } -// SetDatabaseEngine sets the DatabaseEngine field's value. -func (s *RDSInstanceDetails) SetDatabaseEngine(v string) *RDSInstanceDetails { - s.DatabaseEngine = &v +// SetPaymentOption sets the PaymentOption field's value. +func (s *ReservationPurchaseRecommendation) SetPaymentOption(v string) *ReservationPurchaseRecommendation { + s.PaymentOption = &v return s } -// SetDeploymentOption sets the DeploymentOption field's value. -func (s *RDSInstanceDetails) SetDeploymentOption(v string) *RDSInstanceDetails { - s.DeploymentOption = &v +// SetRecommendationDetails sets the RecommendationDetails field's value. +func (s *ReservationPurchaseRecommendation) SetRecommendationDetails(v []*ReservationPurchaseRecommendationDetail) *ReservationPurchaseRecommendation { + s.RecommendationDetails = v return s } -// SetFamily sets the Family field's value. -func (s *RDSInstanceDetails) SetFamily(v string) *RDSInstanceDetails { - s.Family = &v +// SetRecommendationSummary sets the RecommendationSummary field's value. +func (s *ReservationPurchaseRecommendation) SetRecommendationSummary(v *ReservationPurchaseRecommendationSummary) *ReservationPurchaseRecommendation { + s.RecommendationSummary = v return s } -// SetInstanceType sets the InstanceType field's value. -func (s *RDSInstanceDetails) SetInstanceType(v string) *RDSInstanceDetails { - s.InstanceType = &v +// SetServiceSpecification sets the ServiceSpecification field's value. +func (s *ReservationPurchaseRecommendation) SetServiceSpecification(v *ServiceSpecification) *ReservationPurchaseRecommendation { + s.ServiceSpecification = v return s } -// SetLicenseModel sets the LicenseModel field's value. -func (s *RDSInstanceDetails) SetLicenseModel(v string) *RDSInstanceDetails { - s.LicenseModel = &v +// SetTermInYears sets the TermInYears field's value. +func (s *ReservationPurchaseRecommendation) SetTermInYears(v string) *ReservationPurchaseRecommendation { + s.TermInYears = &v return s } -// SetRegion sets the Region field's value. -func (s *RDSInstanceDetails) SetRegion(v string) *RDSInstanceDetails { - s.Region = &v - return s -} +// Details about your recommended reservation purchase. +type ReservationPurchaseRecommendationDetail struct { + _ struct{} `type:"structure"` -// SetSizeFlexEligible sets the SizeFlexEligible field's value. -func (s *RDSInstanceDetails) SetSizeFlexEligible(v bool) *RDSInstanceDetails { - s.SizeFlexEligible = &v - return s -} + // The account that this RI recommendation is for. + AccountId *string `type:"string"` -// Details about the Amazon Redshift instances that AWS recommends that you -// purchase. -type RedshiftInstanceDetails struct { - _ struct{} `type:"structure"` + // The average number of normalized units that you used in an hour during the + // historical period. AWS uses this to calculate your recommended reservation + // purchases. + AverageNormalizedUnitsUsedPerHour *string `type:"string"` - // Whether the recommendation is for a current-generation instance. - CurrentGeneration *bool `type:"boolean"` + // The average number of instances that you used in an hour during the historical + // period. AWS uses this to calculate your recommended reservation purchases. + AverageNumberOfInstancesUsedPerHour *string `type:"string"` - // The instance family of the recommended reservation. - Family *string `type:"string"` + // The average utilization of your instances. AWS uses this to calculate your + // recommended reservation purchases. + AverageUtilization *string `type:"string"` - // The type of node that AWS recommends. - NodeType *string `type:"string"` + // The currency code that AWS used to calculate the costs for this instance. + CurrencyCode *string `type:"string"` - // The AWS Region of the recommended reservation. - Region *string `type:"string"` + // How long AWS estimates that it takes for this instance to start saving you + // money, in months. + EstimatedBreakEvenInMonths *string `type:"string"` - // Whether the recommended reservation is size flexible. - SizeFlexEligible *bool `type:"boolean"` + // How much AWS estimates that you spend on On-Demand Instances in a month. + EstimatedMonthlyOnDemandCost *string `type:"string"` + + // How much AWS estimates that this specific recommendation could save you in + // a month. + EstimatedMonthlySavingsAmount *string `type:"string"` + + // How much AWS estimates that this specific recommendation could save you in + // a month, as a percentage of your overall costs. + EstimatedMonthlySavingsPercentage *string `type:"string"` + + // How much AWS estimates that you would have spent for all usage during the + // specified historical period if you had a reservation. + EstimatedReservationCostForLookbackPeriod *string `type:"string"` + + // Details about the instances that AWS recommends that you purchase. + InstanceDetails *InstanceDetails `type:"structure"` + + // The maximum number of normalized units that you used in an hour during the + // historical period. AWS uses this to calculate your recommended reservation + // purchases. + MaximumNormalizedUnitsUsedPerHour *string `type:"string"` + + // The maximum number of instances that you used in an hour during the historical + // period. AWS uses this to calculate your recommended reservation purchases. + MaximumNumberOfInstancesUsedPerHour *string `type:"string"` + + // The minimum number of normalized units that you used in an hour during the + // historical period. AWS uses this to calculate your recommended reservation + // purchases. + MinimumNormalizedUnitsUsedPerHour *string `type:"string"` + + // The minimum number of instances that you used in an hour during the historical + // period. AWS uses this to calculate your recommended reservation purchases. + MinimumNumberOfInstancesUsedPerHour *string `type:"string"` + + // The number of normalized units that AWS recommends that you purchase. + RecommendedNormalizedUnitsToPurchase *string `type:"string"` + + // The number of instances that AWS recommends that you purchase. + RecommendedNumberOfInstancesToPurchase *string `type:"string"` + + // How much purchasing this instance costs you on a monthly basis. + RecurringStandardMonthlyCost *string `type:"string"` + + // How much purchasing this instance costs you upfront. + UpfrontCost *string `type:"string"` +} + +// String returns the string representation +func (s ReservationPurchaseRecommendationDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ReservationPurchaseRecommendationDetail) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *ReservationPurchaseRecommendationDetail) SetAccountId(v string) *ReservationPurchaseRecommendationDetail { + s.AccountId = &v + return s } -// String returns the string representation -func (s RedshiftInstanceDetails) String() string { - return awsutil.Prettify(s) +// SetAverageNormalizedUnitsUsedPerHour sets the AverageNormalizedUnitsUsedPerHour field's value. +func (s *ReservationPurchaseRecommendationDetail) SetAverageNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { + s.AverageNormalizedUnitsUsedPerHour = &v + return s } -// GoString returns the string representation -func (s RedshiftInstanceDetails) GoString() string { - return s.String() +// SetAverageNumberOfInstancesUsedPerHour sets the AverageNumberOfInstancesUsedPerHour field's value. +func (s *ReservationPurchaseRecommendationDetail) SetAverageNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { + s.AverageNumberOfInstancesUsedPerHour = &v + return s } -// SetCurrentGeneration sets the CurrentGeneration field's value. -func (s *RedshiftInstanceDetails) SetCurrentGeneration(v bool) *RedshiftInstanceDetails { - s.CurrentGeneration = &v +// SetAverageUtilization sets the AverageUtilization field's value. +func (s *ReservationPurchaseRecommendationDetail) SetAverageUtilization(v string) *ReservationPurchaseRecommendationDetail { + s.AverageUtilization = &v return s } -// SetFamily sets the Family field's value. -func (s *RedshiftInstanceDetails) SetFamily(v string) *RedshiftInstanceDetails { - s.Family = &v +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *ReservationPurchaseRecommendationDetail) SetCurrencyCode(v string) *ReservationPurchaseRecommendationDetail { + s.CurrencyCode = &v return s } -// SetNodeType sets the NodeType field's value. -func (s *RedshiftInstanceDetails) SetNodeType(v string) *RedshiftInstanceDetails { - s.NodeType = &v +// SetEstimatedBreakEvenInMonths sets the EstimatedBreakEvenInMonths field's value. +func (s *ReservationPurchaseRecommendationDetail) SetEstimatedBreakEvenInMonths(v string) *ReservationPurchaseRecommendationDetail { + s.EstimatedBreakEvenInMonths = &v return s } -// SetRegion sets the Region field's value. -func (s *RedshiftInstanceDetails) SetRegion(v string) *RedshiftInstanceDetails { - s.Region = &v +// SetEstimatedMonthlyOnDemandCost sets the EstimatedMonthlyOnDemandCost field's value. +func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlyOnDemandCost(v string) *ReservationPurchaseRecommendationDetail { + s.EstimatedMonthlyOnDemandCost = &v return s } -// SetSizeFlexEligible sets the SizeFlexEligible field's value. -func (s *RedshiftInstanceDetails) SetSizeFlexEligible(v bool) *RedshiftInstanceDetails { - s.SizeFlexEligible = &v +// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. +func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationDetail { + s.EstimatedMonthlySavingsAmount = &v return s } -// Your request parameters changed between pages. Try again with the old parameters -// or without a pagination token. -type RequestChangedException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// SetEstimatedMonthlySavingsPercentage sets the EstimatedMonthlySavingsPercentage field's value. +func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationDetail { + s.EstimatedMonthlySavingsPercentage = &v + return s +} - Message_ *string `locationName:"Message" type:"string"` +// SetEstimatedReservationCostForLookbackPeriod sets the EstimatedReservationCostForLookbackPeriod field's value. +func (s *ReservationPurchaseRecommendationDetail) SetEstimatedReservationCostForLookbackPeriod(v string) *ReservationPurchaseRecommendationDetail { + s.EstimatedReservationCostForLookbackPeriod = &v + return s } -// String returns the string representation -func (s RequestChangedException) String() string { - return awsutil.Prettify(s) +// SetInstanceDetails sets the InstanceDetails field's value. +func (s *ReservationPurchaseRecommendationDetail) SetInstanceDetails(v *InstanceDetails) *ReservationPurchaseRecommendationDetail { + s.InstanceDetails = v + return s } -// GoString returns the string representation -func (s RequestChangedException) GoString() string { - return s.String() +// SetMaximumNormalizedUnitsUsedPerHour sets the MaximumNormalizedUnitsUsedPerHour field's value. +func (s *ReservationPurchaseRecommendationDetail) SetMaximumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { + s.MaximumNormalizedUnitsUsedPerHour = &v + return s } -func newErrorRequestChangedException(v protocol.ResponseMetadata) error { - return &RequestChangedException{ - RespMetadata: v, - } +// SetMaximumNumberOfInstancesUsedPerHour sets the MaximumNumberOfInstancesUsedPerHour field's value. +func (s *ReservationPurchaseRecommendationDetail) SetMaximumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { + s.MaximumNumberOfInstancesUsedPerHour = &v + return s } -// Code returns the exception type name. -func (s *RequestChangedException) Code() string { - return "RequestChangedException" +// SetMinimumNormalizedUnitsUsedPerHour sets the MinimumNormalizedUnitsUsedPerHour field's value. +func (s *ReservationPurchaseRecommendationDetail) SetMinimumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { + s.MinimumNormalizedUnitsUsedPerHour = &v + return s } -// Message returns the exception's message. -func (s *RequestChangedException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetMinimumNumberOfInstancesUsedPerHour sets the MinimumNumberOfInstancesUsedPerHour field's value. +func (s *ReservationPurchaseRecommendationDetail) SetMinimumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { + s.MinimumNumberOfInstancesUsedPerHour = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *RequestChangedException) OrigErr() error { - return nil +// SetRecommendedNormalizedUnitsToPurchase sets the RecommendedNormalizedUnitsToPurchase field's value. +func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNormalizedUnitsToPurchase(v string) *ReservationPurchaseRecommendationDetail { + s.RecommendedNormalizedUnitsToPurchase = &v + return s } -func (s *RequestChangedException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// SetRecommendedNumberOfInstancesToPurchase sets the RecommendedNumberOfInstancesToPurchase field's value. +func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNumberOfInstancesToPurchase(v string) *ReservationPurchaseRecommendationDetail { + s.RecommendedNumberOfInstancesToPurchase = &v + return s } -// Status code returns the HTTP status code for the request's response error. -func (s *RequestChangedException) StatusCode() int { - return s.RespMetadata.StatusCode +// SetRecurringStandardMonthlyCost sets the RecurringStandardMonthlyCost field's value. +func (s *ReservationPurchaseRecommendationDetail) SetRecurringStandardMonthlyCost(v string) *ReservationPurchaseRecommendationDetail { + s.RecurringStandardMonthlyCost = &v + return s } -// RequestID returns the service's response RequestID for request. -func (s *RequestChangedException) RequestID() string { - return s.RespMetadata.RequestID +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *ReservationPurchaseRecommendationDetail) SetUpfrontCost(v string) *ReservationPurchaseRecommendationDetail { + s.UpfrontCost = &v + return s } -// The aggregated numbers for your reservation usage. -type ReservationAggregates struct { +// Information about this specific recommendation, such as the timestamp for +// when AWS made a specific recommendation. +type ReservationPurchaseRecommendationMetadata struct { _ struct{} `type:"structure"` - // The monthly cost of your reservation, amortized over the reservation period. - AmortizedRecurringFee *string `type:"string"` - - // The upfront cost of your reservation, amortized over the reservation period. - AmortizedUpfrontFee *string `type:"string"` - - // How much you saved due to purchasing and utilizing reservation. AWS calculates - // this by subtracting TotalAmortizedFee from OnDemandCostOfRIHoursUsed. - NetRISavings *string `type:"string"` - - // How much your reservation would cost if charged On-Demand rates. - OnDemandCostOfRIHoursUsed *string `type:"string"` - - // How many reservation hours that you purchased. - PurchasedHours *string `type:"string"` - - // How many Amazon EC2 reservation hours that you purchased, converted to normalized - // units. Normalized units are available only for Amazon EC2 usage after November - // 11, 2017. - PurchasedUnits *string `type:"string"` - - // The total number of reservation hours that you used. - TotalActualHours *string `type:"string"` - - // The total number of Amazon EC2 reservation hours that you used, converted - // to normalized units. Normalized units are available only for Amazon EC2 usage - // after November 11, 2017. - TotalActualUnits *string `type:"string"` - - // The total cost of your reservation, amortized over the reservation period. - TotalAmortizedFee *string `type:"string"` - - // How much you could save if you use your entire reservation. - TotalPotentialRISavings *string `type:"string"` - - // The number of reservation hours that you didn't use. - UnusedHours *string `type:"string"` - - // The number of Amazon EC2 reservation hours that you didn't use, converted - // to normalized units. Normalized units are available only for Amazon EC2 usage - // after November 11, 2017. - UnusedUnits *string `type:"string"` - - // The percentage of reservation time that you used. - UtilizationPercentage *string `type:"string"` + // The timestamp for when AWS made this recommendation. + GenerationTimestamp *string `type:"string"` - // The percentage of Amazon EC2 reservation time that you used, converted to - // normalized units. Normalized units are available only for Amazon EC2 usage - // after November 11, 2017. - UtilizationPercentageInUnits *string `type:"string"` + // The ID for this specific recommendation. + RecommendationId *string `type:"string"` } // String returns the string representation -func (s ReservationAggregates) String() string { +func (s ReservationPurchaseRecommendationMetadata) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationAggregates) GoString() string { +func (s ReservationPurchaseRecommendationMetadata) GoString() string { return s.String() } -// SetAmortizedRecurringFee sets the AmortizedRecurringFee field's value. -func (s *ReservationAggregates) SetAmortizedRecurringFee(v string) *ReservationAggregates { - s.AmortizedRecurringFee = &v - return s -} - -// SetAmortizedUpfrontFee sets the AmortizedUpfrontFee field's value. -func (s *ReservationAggregates) SetAmortizedUpfrontFee(v string) *ReservationAggregates { - s.AmortizedUpfrontFee = &v - return s -} - -// SetNetRISavings sets the NetRISavings field's value. -func (s *ReservationAggregates) SetNetRISavings(v string) *ReservationAggregates { - s.NetRISavings = &v - return s -} - -// SetOnDemandCostOfRIHoursUsed sets the OnDemandCostOfRIHoursUsed field's value. -func (s *ReservationAggregates) SetOnDemandCostOfRIHoursUsed(v string) *ReservationAggregates { - s.OnDemandCostOfRIHoursUsed = &v +// SetGenerationTimestamp sets the GenerationTimestamp field's value. +func (s *ReservationPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *ReservationPurchaseRecommendationMetadata { + s.GenerationTimestamp = &v return s } -// SetPurchasedHours sets the PurchasedHours field's value. -func (s *ReservationAggregates) SetPurchasedHours(v string) *ReservationAggregates { - s.PurchasedHours = &v +// SetRecommendationId sets the RecommendationId field's value. +func (s *ReservationPurchaseRecommendationMetadata) SetRecommendationId(v string) *ReservationPurchaseRecommendationMetadata { + s.RecommendationId = &v return s } -// SetPurchasedUnits sets the PurchasedUnits field's value. -func (s *ReservationAggregates) SetPurchasedUnits(v string) *ReservationAggregates { - s.PurchasedUnits = &v - return s -} +// A summary about this recommendation, such as the currency code, the amount +// that AWS estimates that you could save, and the total amount of reservation +// to purchase. +type ReservationPurchaseRecommendationSummary struct { + _ struct{} `type:"structure"` -// SetTotalActualHours sets the TotalActualHours field's value. -func (s *ReservationAggregates) SetTotalActualHours(v string) *ReservationAggregates { - s.TotalActualHours = &v - return s -} + // The currency code used for this recommendation. + CurrencyCode *string `type:"string"` -// SetTotalActualUnits sets the TotalActualUnits field's value. -func (s *ReservationAggregates) SetTotalActualUnits(v string) *ReservationAggregates { - s.TotalActualUnits = &v - return s -} + // The total amount that AWS estimates that this recommendation could save you + // in a month. + TotalEstimatedMonthlySavingsAmount *string `type:"string"` -// SetTotalAmortizedFee sets the TotalAmortizedFee field's value. -func (s *ReservationAggregates) SetTotalAmortizedFee(v string) *ReservationAggregates { - s.TotalAmortizedFee = &v - return s + // The total amount that AWS estimates that this recommendation could save you + // in a month, as a percentage of your costs. + TotalEstimatedMonthlySavingsPercentage *string `type:"string"` } -// SetTotalPotentialRISavings sets the TotalPotentialRISavings field's value. -func (s *ReservationAggregates) SetTotalPotentialRISavings(v string) *ReservationAggregates { - s.TotalPotentialRISavings = &v - return s +// String returns the string representation +func (s ReservationPurchaseRecommendationSummary) String() string { + return awsutil.Prettify(s) } -// SetUnusedHours sets the UnusedHours field's value. -func (s *ReservationAggregates) SetUnusedHours(v string) *ReservationAggregates { - s.UnusedHours = &v - return s +// GoString returns the string representation +func (s ReservationPurchaseRecommendationSummary) GoString() string { + return s.String() } -// SetUnusedUnits sets the UnusedUnits field's value. -func (s *ReservationAggregates) SetUnusedUnits(v string) *ReservationAggregates { - s.UnusedUnits = &v +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *ReservationPurchaseRecommendationSummary) SetCurrencyCode(v string) *ReservationPurchaseRecommendationSummary { + s.CurrencyCode = &v return s } -// SetUtilizationPercentage sets the UtilizationPercentage field's value. -func (s *ReservationAggregates) SetUtilizationPercentage(v string) *ReservationAggregates { - s.UtilizationPercentage = &v +// SetTotalEstimatedMonthlySavingsAmount sets the TotalEstimatedMonthlySavingsAmount field's value. +func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationSummary { + s.TotalEstimatedMonthlySavingsAmount = &v return s } -// SetUtilizationPercentageInUnits sets the UtilizationPercentageInUnits field's value. -func (s *ReservationAggregates) SetUtilizationPercentageInUnits(v string) *ReservationAggregates { - s.UtilizationPercentageInUnits = &v +// SetTotalEstimatedMonthlySavingsPercentage sets the TotalEstimatedMonthlySavingsPercentage field's value. +func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationSummary { + s.TotalEstimatedMonthlySavingsPercentage = &v return s } // A group of reservations that share a set of attributes. -type ReservationCoverageGroup struct { +type ReservationUtilizationGroup struct { _ struct{} `type:"structure"` // The attributes for this group of reservations. Attributes map[string]*string `type:"map"` - // How much instance usage this group of reservations covered. - Coverage *Coverage `type:"structure"` + // The key for a specific reservation attribute. + Key *string `type:"string"` + + // How much you used this group of reservations. + Utilization *ReservationAggregates `type:"structure"` + + // The value of a specific reservation attribute. + Value *string `type:"string"` } // String returns the string representation -func (s ReservationCoverageGroup) String() string { +func (s ReservationUtilizationGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationCoverageGroup) GoString() string { +func (s ReservationUtilizationGroup) GoString() string { return s.String() } // SetAttributes sets the Attributes field's value. -func (s *ReservationCoverageGroup) SetAttributes(v map[string]*string) *ReservationCoverageGroup { +func (s *ReservationUtilizationGroup) SetAttributes(v map[string]*string) *ReservationUtilizationGroup { s.Attributes = v return s } -// SetCoverage sets the Coverage field's value. -func (s *ReservationCoverageGroup) SetCoverage(v *Coverage) *ReservationCoverageGroup { - s.Coverage = v +// SetKey sets the Key field's value. +func (s *ReservationUtilizationGroup) SetKey(v string) *ReservationUtilizationGroup { + s.Key = &v return s } -// A specific reservation that AWS recommends for purchase. -type ReservationPurchaseRecommendation struct { - _ struct{} `type:"structure"` +// SetUtilization sets the Utilization field's value. +func (s *ReservationUtilizationGroup) SetUtilization(v *ReservationAggregates) *ReservationUtilizationGroup { + s.Utilization = v + return s +} - // The account scope that AWS recommends that you purchase this instance for. - // For example, you can purchase this reservation for an entire organization - // in AWS Organizations. - AccountScope *string `type:"string" enum:"AccountScope"` +// SetValue sets the Value field's value. +func (s *ReservationUtilizationGroup) SetValue(v string) *ReservationUtilizationGroup { + s.Value = &v + return s +} - // How many days of previous usage that AWS considers when making this recommendation. - LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` +// Details on the resource. +type ResourceDetails struct { + _ struct{} `type:"structure"` - // The payment option for the reservation. For example, AllUpfront or NoUpfront. - PaymentOption *string `type:"string" enum:"PaymentOption"` + // Details on the Amazon EC2 resource. + EC2ResourceDetails *EC2ResourceDetails `type:"structure"` +} - // Details about the recommended purchases. - RecommendationDetails []*ReservationPurchaseRecommendationDetail `type:"list"` +// String returns the string representation +func (s ResourceDetails) String() string { + return awsutil.Prettify(s) +} - // A summary about the recommended purchase. - RecommendationSummary *ReservationPurchaseRecommendationSummary `type:"structure"` +// GoString returns the string representation +func (s ResourceDetails) GoString() string { + return s.String() +} - // Hardware specifications for the service that you want recommendations for. - ServiceSpecification *ServiceSpecification `type:"structure"` +// SetEC2ResourceDetails sets the EC2ResourceDetails field's value. +func (s *ResourceDetails) SetEC2ResourceDetails(v *EC2ResourceDetails) *ResourceDetails { + s.EC2ResourceDetails = v + return s +} - // The term of the reservation that you want recommendations for, in years. - TermInYears *string `type:"string" enum:"TermInYears"` +// The specified ARN in the request doesn't exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation -func (s ReservationPurchaseRecommendation) String() string { +func (s ResourceNotFoundException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationPurchaseRecommendation) GoString() string { +func (s ResourceNotFoundException) GoString() string { return s.String() } -// SetAccountScope sets the AccountScope field's value. -func (s *ReservationPurchaseRecommendation) SetAccountScope(v string) *ReservationPurchaseRecommendation { - s.AccountScope = &v - return s +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } } -// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. -func (s *ReservationPurchaseRecommendation) SetLookbackPeriodInDays(v string) *ReservationPurchaseRecommendation { - s.LookbackPeriodInDays = &v - return s +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" } -// SetPaymentOption sets the PaymentOption field's value. -func (s *ReservationPurchaseRecommendation) SetPaymentOption(v string) *ReservationPurchaseRecommendation { - s.PaymentOption = &v - return s +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" } -// SetRecommendationDetails sets the RecommendationDetails field's value. -func (s *ReservationPurchaseRecommendation) SetRecommendationDetails(v []*ReservationPurchaseRecommendationDetail) *ReservationPurchaseRecommendation { - s.RecommendationDetails = v - return s +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil } -// SetRecommendationSummary sets the RecommendationSummary field's value. -func (s *ReservationPurchaseRecommendation) SetRecommendationSummary(v *ReservationPurchaseRecommendationSummary) *ReservationPurchaseRecommendation { - s.RecommendationSummary = v - return s +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -// SetServiceSpecification sets the ServiceSpecification field's value. -func (s *ReservationPurchaseRecommendation) SetServiceSpecification(v *ServiceSpecification) *ReservationPurchaseRecommendation { - s.ServiceSpecification = v - return s +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode } -// SetTermInYears sets the TermInYears field's value. -func (s *ReservationPurchaseRecommendation) SetTermInYears(v string) *ReservationPurchaseRecommendation { - s.TermInYears = &v - return s +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID } -// Details about your recommended reservation purchase. -type ReservationPurchaseRecommendationDetail struct { +// Resource utilization of current resource. +type ResourceUtilization struct { _ struct{} `type:"structure"` - // The account that this RI recommendation is for. - AccountId *string `type:"string"` + // Utilization of current Amazon EC2 instance. + EC2ResourceUtilization *EC2ResourceUtilization `type:"structure"` +} - // The average number of normalized units that you used in an hour during the - // historical period. AWS uses this to calculate your recommended reservation - // purchases. - AverageNormalizedUnitsUsedPerHour *string `type:"string"` +// String returns the string representation +func (s ResourceUtilization) String() string { + return awsutil.Prettify(s) +} - // The average number of instances that you used in an hour during the historical - // period. AWS uses this to calculate your recommended reservation purchases. - AverageNumberOfInstancesUsedPerHour *string `type:"string"` +// GoString returns the string representation +func (s ResourceUtilization) GoString() string { + return s.String() +} - // The average utilization of your instances. AWS uses this to calculate your - // recommended reservation purchases. - AverageUtilization *string `type:"string"` +// SetEC2ResourceUtilization sets the EC2ResourceUtilization field's value. +func (s *ResourceUtilization) SetEC2ResourceUtilization(v *EC2ResourceUtilization) *ResourceUtilization { + s.EC2ResourceUtilization = v + return s +} - // The currency code that AWS used to calculate the costs for this instance. - CurrencyCode *string `type:"string"` +// The result that is associated with a time period. +type ResultByTime struct { + _ struct{} `type:"structure"` - // How long AWS estimates that it takes for this instance to start saving you - // money, in months. - EstimatedBreakEvenInMonths *string `type:"string"` + // Whether the result is estimated. + Estimated *bool `type:"boolean"` - // How much AWS estimates that you spend on On-Demand Instances in a month. - EstimatedMonthlyOnDemandCost *string `type:"string"` + // The groups that this time period includes. + Groups []*Group `type:"list"` - // How much AWS estimates that this specific recommendation could save you in - // a month. - EstimatedMonthlySavingsAmount *string `type:"string"` + // The time period that the result covers. + TimePeriod *DateInterval `type:"structure"` - // How much AWS estimates that this specific recommendation could save you in - // a month, as a percentage of your overall costs. - EstimatedMonthlySavingsPercentage *string `type:"string"` + // The total amount of cost or usage accrued during the time period. + Total map[string]*MetricValue `type:"map"` +} - // How much AWS estimates that you would have spent for all usage during the - // specified historical period if you had a reservation. - EstimatedReservationCostForLookbackPeriod *string `type:"string"` +// String returns the string representation +func (s ResultByTime) String() string { + return awsutil.Prettify(s) +} - // Details about the instances that AWS recommends that you purchase. - InstanceDetails *InstanceDetails `type:"structure"` +// GoString returns the string representation +func (s ResultByTime) GoString() string { + return s.String() +} - // The maximum number of normalized units that you used in an hour during the - // historical period. AWS uses this to calculate your recommended reservation - // purchases. - MaximumNormalizedUnitsUsedPerHour *string `type:"string"` +// SetEstimated sets the Estimated field's value. +func (s *ResultByTime) SetEstimated(v bool) *ResultByTime { + s.Estimated = &v + return s +} - // The maximum number of instances that you used in an hour during the historical - // period. AWS uses this to calculate your recommended reservation purchases. - MaximumNumberOfInstancesUsedPerHour *string `type:"string"` +// SetGroups sets the Groups field's value. +func (s *ResultByTime) SetGroups(v []*Group) *ResultByTime { + s.Groups = v + return s +} + +// SetTimePeriod sets the TimePeriod field's value. +func (s *ResultByTime) SetTimePeriod(v *DateInterval) *ResultByTime { + s.TimePeriod = v + return s +} + +// SetTotal sets the Total field's value. +func (s *ResultByTime) SetTotal(v map[string]*MetricValue) *ResultByTime { + s.Total = v + return s +} - // The minimum number of normalized units that you used in an hour during the - // historical period. AWS uses this to calculate your recommended reservation - // purchases. - MinimumNormalizedUnitsUsedPerHour *string `type:"string"` +// Recommendations to rightsize resources. +type RightsizingRecommendation struct { + _ struct{} `type:"structure"` - // The minimum number of instances that you used in an hour during the historical - // period. AWS uses this to calculate your recommended reservation purchases. - MinimumNumberOfInstancesUsedPerHour *string `type:"string"` + // The account that this recommendation is for. + AccountId *string `type:"string"` - // The number of normalized units that AWS recommends that you purchase. - RecommendedNormalizedUnitsToPurchase *string `type:"string"` + // Context regarding the current instance. + CurrentInstance *CurrentInstance `type:"structure"` - // The number of instances that AWS recommends that you purchase. - RecommendedNumberOfInstancesToPurchase *string `type:"string"` + // Details for modification recommendations. + ModifyRecommendationDetail *ModifyRecommendationDetail `type:"structure"` - // How much purchasing this instance costs you on a monthly basis. - RecurringStandardMonthlyCost *string `type:"string"` + // Recommendation to either terminate or modify the resource. + RightsizingType *string `type:"string" enum:"RightsizingType"` - // How much purchasing this instance costs you upfront. - UpfrontCost *string `type:"string"` + // Details for termination recommendations. + TerminateRecommendationDetail *TerminateRecommendationDetail `type:"structure"` } // String returns the string representation -func (s ReservationPurchaseRecommendationDetail) String() string { +func (s RightsizingRecommendation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationPurchaseRecommendationDetail) GoString() string { +func (s RightsizingRecommendation) GoString() string { return s.String() } // SetAccountId sets the AccountId field's value. -func (s *ReservationPurchaseRecommendationDetail) SetAccountId(v string) *ReservationPurchaseRecommendationDetail { +func (s *RightsizingRecommendation) SetAccountId(v string) *RightsizingRecommendation { s.AccountId = &v return s } -// SetAverageNormalizedUnitsUsedPerHour sets the AverageNormalizedUnitsUsedPerHour field's value. -func (s *ReservationPurchaseRecommendationDetail) SetAverageNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { - s.AverageNormalizedUnitsUsedPerHour = &v +// SetCurrentInstance sets the CurrentInstance field's value. +func (s *RightsizingRecommendation) SetCurrentInstance(v *CurrentInstance) *RightsizingRecommendation { + s.CurrentInstance = v return s } -// SetAverageNumberOfInstancesUsedPerHour sets the AverageNumberOfInstancesUsedPerHour field's value. -func (s *ReservationPurchaseRecommendationDetail) SetAverageNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { - s.AverageNumberOfInstancesUsedPerHour = &v +// SetModifyRecommendationDetail sets the ModifyRecommendationDetail field's value. +func (s *RightsizingRecommendation) SetModifyRecommendationDetail(v *ModifyRecommendationDetail) *RightsizingRecommendation { + s.ModifyRecommendationDetail = v return s } -// SetAverageUtilization sets the AverageUtilization field's value. -func (s *ReservationPurchaseRecommendationDetail) SetAverageUtilization(v string) *ReservationPurchaseRecommendationDetail { - s.AverageUtilization = &v +// SetRightsizingType sets the RightsizingType field's value. +func (s *RightsizingRecommendation) SetRightsizingType(v string) *RightsizingRecommendation { + s.RightsizingType = &v return s } -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *ReservationPurchaseRecommendationDetail) SetCurrencyCode(v string) *ReservationPurchaseRecommendationDetail { - s.CurrencyCode = &v +// SetTerminateRecommendationDetail sets the TerminateRecommendationDetail field's value. +func (s *RightsizingRecommendation) SetTerminateRecommendationDetail(v *TerminateRecommendationDetail) *RightsizingRecommendation { + s.TerminateRecommendationDetail = v return s } -// SetEstimatedBreakEvenInMonths sets the EstimatedBreakEvenInMonths field's value. -func (s *ReservationPurchaseRecommendationDetail) SetEstimatedBreakEvenInMonths(v string) *ReservationPurchaseRecommendationDetail { - s.EstimatedBreakEvenInMonths = &v - return s +// Enables you to customize recommendations across two attributes. You can choose +// to view recommendations for instances within the same instance families or +// across different instance families. You can also choose to view your estimated +// savings associated with recommendations with consideration of existing Savings +// Plans or RI benefits, or neither. +type RightsizingRecommendationConfiguration struct { + _ struct{} `type:"structure"` + + // The option to consider RI or Savings Plans discount benefits in your savings + // calculation. The default value is TRUE. + // + // BenefitsConsidered is a required field + BenefitsConsidered *bool `type:"boolean" required:"true"` + + // The option to see recommendations within the same instance family, or recommendations + // for instances across other families. The default value is SAME_INSTANCE_FAMILY. + // + // RecommendationTarget is a required field + RecommendationTarget *string `type:"string" required:"true" enum:"RecommendationTarget"` } -// SetEstimatedMonthlyOnDemandCost sets the EstimatedMonthlyOnDemandCost field's value. -func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlyOnDemandCost(v string) *ReservationPurchaseRecommendationDetail { - s.EstimatedMonthlyOnDemandCost = &v +// String returns the string representation +func (s RightsizingRecommendationConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RightsizingRecommendationConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RightsizingRecommendationConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RightsizingRecommendationConfiguration"} + if s.BenefitsConsidered == nil { + invalidParams.Add(request.NewErrParamRequired("BenefitsConsidered")) + } + if s.RecommendationTarget == nil { + invalidParams.Add(request.NewErrParamRequired("RecommendationTarget")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBenefitsConsidered sets the BenefitsConsidered field's value. +func (s *RightsizingRecommendationConfiguration) SetBenefitsConsidered(v bool) *RightsizingRecommendationConfiguration { + s.BenefitsConsidered = &v return s } -// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. -func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationDetail { - s.EstimatedMonthlySavingsAmount = &v +// SetRecommendationTarget sets the RecommendationTarget field's value. +func (s *RightsizingRecommendationConfiguration) SetRecommendationTarget(v string) *RightsizingRecommendationConfiguration { + s.RecommendationTarget = &v return s } -// SetEstimatedMonthlySavingsPercentage sets the EstimatedMonthlySavingsPercentage field's value. -func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationDetail { - s.EstimatedMonthlySavingsPercentage = &v +// Metadata for this recommendation set. +type RightsizingRecommendationMetadata struct { + _ struct{} `type:"structure"` + + // The timestamp for when AWS made this recommendation. + GenerationTimestamp *string `type:"string"` + + // How many days of previous usage that AWS considers when making this recommendation. + LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` + + // The ID for this specific recommendation. + RecommendationId *string `type:"string"` +} + +// String returns the string representation +func (s RightsizingRecommendationMetadata) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RightsizingRecommendationMetadata) GoString() string { + return s.String() +} + +// SetGenerationTimestamp sets the GenerationTimestamp field's value. +func (s *RightsizingRecommendationMetadata) SetGenerationTimestamp(v string) *RightsizingRecommendationMetadata { + s.GenerationTimestamp = &v return s } -// SetEstimatedReservationCostForLookbackPeriod sets the EstimatedReservationCostForLookbackPeriod field's value. -func (s *ReservationPurchaseRecommendationDetail) SetEstimatedReservationCostForLookbackPeriod(v string) *ReservationPurchaseRecommendationDetail { - s.EstimatedReservationCostForLookbackPeriod = &v +// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. +func (s *RightsizingRecommendationMetadata) SetLookbackPeriodInDays(v string) *RightsizingRecommendationMetadata { + s.LookbackPeriodInDays = &v return s } -// SetInstanceDetails sets the InstanceDetails field's value. -func (s *ReservationPurchaseRecommendationDetail) SetInstanceDetails(v *InstanceDetails) *ReservationPurchaseRecommendationDetail { - s.InstanceDetails = v +// SetRecommendationId sets the RecommendationId field's value. +func (s *RightsizingRecommendationMetadata) SetRecommendationId(v string) *RightsizingRecommendationMetadata { + s.RecommendationId = &v return s } -// SetMaximumNormalizedUnitsUsedPerHour sets the MaximumNormalizedUnitsUsedPerHour field's value. -func (s *ReservationPurchaseRecommendationDetail) SetMaximumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { - s.MaximumNormalizedUnitsUsedPerHour = &v +// Summary of rightsizing recommendations +type RightsizingRecommendationSummary struct { + _ struct{} `type:"structure"` + + // Estimated total savings resulting from modifications, on a monthly basis. + EstimatedTotalMonthlySavingsAmount *string `type:"string"` + + // The currency code that AWS used to calculate the savings. + SavingsCurrencyCode *string `type:"string"` + + // Savings percentage based on the recommended modifications, relative to the + // total On-Demand costs associated with these instances. + SavingsPercentage *string `type:"string"` + + // Total number of instance recommendations. + TotalRecommendationCount *string `type:"string"` +} + +// String returns the string representation +func (s RightsizingRecommendationSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RightsizingRecommendationSummary) GoString() string { + return s.String() +} + +// SetEstimatedTotalMonthlySavingsAmount sets the EstimatedTotalMonthlySavingsAmount field's value. +func (s *RightsizingRecommendationSummary) SetEstimatedTotalMonthlySavingsAmount(v string) *RightsizingRecommendationSummary { + s.EstimatedTotalMonthlySavingsAmount = &v return s } -// SetMaximumNumberOfInstancesUsedPerHour sets the MaximumNumberOfInstancesUsedPerHour field's value. -func (s *ReservationPurchaseRecommendationDetail) SetMaximumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { - s.MaximumNumberOfInstancesUsedPerHour = &v +// SetSavingsCurrencyCode sets the SavingsCurrencyCode field's value. +func (s *RightsizingRecommendationSummary) SetSavingsCurrencyCode(v string) *RightsizingRecommendationSummary { + s.SavingsCurrencyCode = &v return s } -// SetMinimumNormalizedUnitsUsedPerHour sets the MinimumNormalizedUnitsUsedPerHour field's value. -func (s *ReservationPurchaseRecommendationDetail) SetMinimumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { - s.MinimumNormalizedUnitsUsedPerHour = &v +// SetSavingsPercentage sets the SavingsPercentage field's value. +func (s *RightsizingRecommendationSummary) SetSavingsPercentage(v string) *RightsizingRecommendationSummary { + s.SavingsPercentage = &v return s } -// SetMinimumNumberOfInstancesUsedPerHour sets the MinimumNumberOfInstancesUsedPerHour field's value. -func (s *ReservationPurchaseRecommendationDetail) SetMinimumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { - s.MinimumNumberOfInstancesUsedPerHour = &v +// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. +func (s *RightsizingRecommendationSummary) SetTotalRecommendationCount(v string) *RightsizingRecommendationSummary { + s.TotalRecommendationCount = &v return s } -// SetRecommendedNormalizedUnitsToPurchase sets the RecommendedNormalizedUnitsToPurchase field's value. -func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNormalizedUnitsToPurchase(v string) *ReservationPurchaseRecommendationDetail { - s.RecommendedNormalizedUnitsToPurchase = &v +// The combination of AWS service, linked account, Region, and usage type where +// a cost anomaly is observed. +type RootCause struct { + _ struct{} `type:"structure"` + + // The linked account value associated with the cost anomaly. + LinkedAccount *string `type:"string"` + + // The AWS Region associated with the cost anomaly. + Region *string `type:"string"` + + // The AWS service name associated with the cost anomaly. + Service *string `type:"string"` + + // The UsageType value associated with the cost anomaly. + UsageType *string `type:"string"` +} + +// String returns the string representation +func (s RootCause) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RootCause) GoString() string { + return s.String() +} + +// SetLinkedAccount sets the LinkedAccount field's value. +func (s *RootCause) SetLinkedAccount(v string) *RootCause { + s.LinkedAccount = &v return s } -// SetRecommendedNumberOfInstancesToPurchase sets the RecommendedNumberOfInstancesToPurchase field's value. -func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNumberOfInstancesToPurchase(v string) *ReservationPurchaseRecommendationDetail { - s.RecommendedNumberOfInstancesToPurchase = &v +// SetRegion sets the Region field's value. +func (s *RootCause) SetRegion(v string) *RootCause { + s.Region = &v return s } -// SetRecurringStandardMonthlyCost sets the RecurringStandardMonthlyCost field's value. -func (s *ReservationPurchaseRecommendationDetail) SetRecurringStandardMonthlyCost(v string) *ReservationPurchaseRecommendationDetail { - s.RecurringStandardMonthlyCost = &v +// SetService sets the Service field's value. +func (s *RootCause) SetService(v string) *RootCause { + s.Service = &v return s } -// SetUpfrontCost sets the UpfrontCost field's value. -func (s *ReservationPurchaseRecommendationDetail) SetUpfrontCost(v string) *ReservationPurchaseRecommendationDetail { - s.UpfrontCost = &v +// SetUsageType sets the UsageType field's value. +func (s *RootCause) SetUsageType(v string) *RootCause { + s.UsageType = &v return s } -// Information about this specific recommendation, such as the timestamp for -// when AWS made a specific recommendation. -type ReservationPurchaseRecommendationMetadata struct { +// The amortized amount of Savings Plans purchased in a specific account during +// a specific time interval. +type SavingsPlansAmortizedCommitment struct { _ struct{} `type:"structure"` - // The timestamp for when AWS made this recommendation. - GenerationTimestamp *string `type:"string"` + // The amortized amount of your Savings Plans commitment that was purchased + // with either a Partial or a NoUpfront. + AmortizedRecurringCommitment *string `type:"string"` + + // The amortized amount of your Savings Plans commitment that was purchased + // with an Upfront or PartialUpfront Savings Plans. + AmortizedUpfrontCommitment *string `type:"string"` - // The ID for this specific recommendation. - RecommendationId *string `type:"string"` + // The total amortized amount of your Savings Plans commitment, regardless of + // your Savings Plans purchase method. + TotalAmortizedCommitment *string `type:"string"` } // String returns the string representation -func (s ReservationPurchaseRecommendationMetadata) String() string { +func (s SavingsPlansAmortizedCommitment) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationPurchaseRecommendationMetadata) GoString() string { +func (s SavingsPlansAmortizedCommitment) GoString() string { return s.String() } -// SetGenerationTimestamp sets the GenerationTimestamp field's value. -func (s *ReservationPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *ReservationPurchaseRecommendationMetadata { - s.GenerationTimestamp = &v +// SetAmortizedRecurringCommitment sets the AmortizedRecurringCommitment field's value. +func (s *SavingsPlansAmortizedCommitment) SetAmortizedRecurringCommitment(v string) *SavingsPlansAmortizedCommitment { + s.AmortizedRecurringCommitment = &v return s } -// SetRecommendationId sets the RecommendationId field's value. -func (s *ReservationPurchaseRecommendationMetadata) SetRecommendationId(v string) *ReservationPurchaseRecommendationMetadata { - s.RecommendationId = &v +// SetAmortizedUpfrontCommitment sets the AmortizedUpfrontCommitment field's value. +func (s *SavingsPlansAmortizedCommitment) SetAmortizedUpfrontCommitment(v string) *SavingsPlansAmortizedCommitment { + s.AmortizedUpfrontCommitment = &v return s } -// A summary about this recommendation, such as the currency code, the amount -// that AWS estimates that you could save, and the total amount of reservation -// to purchase. -type ReservationPurchaseRecommendationSummary struct { +// SetTotalAmortizedCommitment sets the TotalAmortizedCommitment field's value. +func (s *SavingsPlansAmortizedCommitment) SetTotalAmortizedCommitment(v string) *SavingsPlansAmortizedCommitment { + s.TotalAmortizedCommitment = &v + return s +} + +// The amount of Savings Plans eligible usage that is covered by Savings Plans. +// All calculations consider the On-Demand equivalent of your Savings Plans +// usage. +type SavingsPlansCoverage struct { _ struct{} `type:"structure"` - // The currency code used for this recommendation. - CurrencyCode *string `type:"string"` + // The attribute that applies to a specific Dimension. + Attributes map[string]*string `type:"map"` - // The total amount that AWS estimates that this recommendation could save you - // in a month. - TotalEstimatedMonthlySavingsAmount *string `type:"string"` + // The amount of Savings Plans eligible usage that the Savings Plans covered. + Coverage *SavingsPlansCoverageData `type:"structure"` - // The total amount that AWS estimates that this recommendation could save you - // in a month, as a percentage of your costs. - TotalEstimatedMonthlySavingsPercentage *string `type:"string"` + // The time period that you want the usage and costs for. + TimePeriod *DateInterval `type:"structure"` } // String returns the string representation -func (s ReservationPurchaseRecommendationSummary) String() string { +func (s SavingsPlansCoverage) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationPurchaseRecommendationSummary) GoString() string { +func (s SavingsPlansCoverage) GoString() string { return s.String() } -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *ReservationPurchaseRecommendationSummary) SetCurrencyCode(v string) *ReservationPurchaseRecommendationSummary { - s.CurrencyCode = &v +// SetAttributes sets the Attributes field's value. +func (s *SavingsPlansCoverage) SetAttributes(v map[string]*string) *SavingsPlansCoverage { + s.Attributes = v return s } -// SetTotalEstimatedMonthlySavingsAmount sets the TotalEstimatedMonthlySavingsAmount field's value. -func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationSummary { - s.TotalEstimatedMonthlySavingsAmount = &v +// SetCoverage sets the Coverage field's value. +func (s *SavingsPlansCoverage) SetCoverage(v *SavingsPlansCoverageData) *SavingsPlansCoverage { + s.Coverage = v return s } -// SetTotalEstimatedMonthlySavingsPercentage sets the TotalEstimatedMonthlySavingsPercentage field's value. -func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationSummary { - s.TotalEstimatedMonthlySavingsPercentage = &v +// SetTimePeriod sets the TimePeriod field's value. +func (s *SavingsPlansCoverage) SetTimePeriod(v *DateInterval) *SavingsPlansCoverage { + s.TimePeriod = v return s } -// A group of reservations that share a set of attributes. -type ReservationUtilizationGroup struct { +// Specific coverage percentage, On-Demand costs, and spend covered by Savings +// Plans, and total Savings Plans costs for an account. +type SavingsPlansCoverageData struct { _ struct{} `type:"structure"` - // The attributes for this group of reservations. - Attributes map[string]*string `type:"map"` + // The percentage of your existing Savings Plans covered usage, divided by all + // of your eligible Savings Plans usage in an account(or set of accounts). + CoveragePercentage *string `type:"string"` - // The key for a specific reservation attribute. - Key *string `type:"string"` + // The cost of your AWS usage at the public On-Demand rate. + OnDemandCost *string `type:"string"` - // How much you used this group of reservations. - Utilization *ReservationAggregates `type:"structure"` + // The amount of your AWS usage that is covered by a Savings Plans. + SpendCoveredBySavingsPlans *string `type:"string"` - // The value of a specific reservation attribute. - Value *string `type:"string"` + // The total cost of your AWS usage, regardless of your purchase option. + TotalCost *string `type:"string"` } // String returns the string representation -func (s ReservationUtilizationGroup) String() string { +func (s SavingsPlansCoverageData) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ReservationUtilizationGroup) GoString() string { +func (s SavingsPlansCoverageData) GoString() string { return s.String() } -// SetAttributes sets the Attributes field's value. -func (s *ReservationUtilizationGroup) SetAttributes(v map[string]*string) *ReservationUtilizationGroup { - s.Attributes = v +// SetCoveragePercentage sets the CoveragePercentage field's value. +func (s *SavingsPlansCoverageData) SetCoveragePercentage(v string) *SavingsPlansCoverageData { + s.CoveragePercentage = &v return s } -// SetKey sets the Key field's value. -func (s *ReservationUtilizationGroup) SetKey(v string) *ReservationUtilizationGroup { - s.Key = &v +// SetOnDemandCost sets the OnDemandCost field's value. +func (s *SavingsPlansCoverageData) SetOnDemandCost(v string) *SavingsPlansCoverageData { + s.OnDemandCost = &v return s } -// SetUtilization sets the Utilization field's value. -func (s *ReservationUtilizationGroup) SetUtilization(v *ReservationAggregates) *ReservationUtilizationGroup { - s.Utilization = v +// SetSpendCoveredBySavingsPlans sets the SpendCoveredBySavingsPlans field's value. +func (s *SavingsPlansCoverageData) SetSpendCoveredBySavingsPlans(v string) *SavingsPlansCoverageData { + s.SpendCoveredBySavingsPlans = &v return s } -// SetValue sets the Value field's value. -func (s *ReservationUtilizationGroup) SetValue(v string) *ReservationUtilizationGroup { - s.Value = &v +// SetTotalCost sets the TotalCost field's value. +func (s *SavingsPlansCoverageData) SetTotalCost(v string) *SavingsPlansCoverageData { + s.TotalCost = &v return s } -// Details on the resource. -type ResourceDetails struct { +// Attribute details on a specific Savings Plan. +type SavingsPlansDetails struct { _ struct{} `type:"structure"` - // Details on the Amazon EC2 resource. - EC2ResourceDetails *EC2ResourceDetails `type:"structure"` + // A group of instance types that Savings Plans applies to. + InstanceFamily *string `type:"string"` + + // The unique ID used to distinguish Savings Plans from one another. + OfferingId *string `type:"string"` + + // A collection of AWS resources in a geographic area. Each AWS Region is isolated + // and independent of the other Regions. + Region *string `type:"string"` } // String returns the string representation -func (s ResourceDetails) String() string { +func (s SavingsPlansDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ResourceDetails) GoString() string { +func (s SavingsPlansDetails) GoString() string { return s.String() } -// SetEC2ResourceDetails sets the EC2ResourceDetails field's value. -func (s *ResourceDetails) SetEC2ResourceDetails(v *EC2ResourceDetails) *ResourceDetails { - s.EC2ResourceDetails = v +// SetInstanceFamily sets the InstanceFamily field's value. +func (s *SavingsPlansDetails) SetInstanceFamily(v string) *SavingsPlansDetails { + s.InstanceFamily = &v return s } -// The specified ARN in the request doesn't exist. -type ResourceNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ResourceNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceNotFoundException) GoString() string { - return s.String() +// SetOfferingId sets the OfferingId field's value. +func (s *SavingsPlansDetails) SetOfferingId(v string) *SavingsPlansDetails { + s.OfferingId = &v + return s } -func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { - return &ResourceNotFoundException{ - RespMetadata: v, - } +// SetRegion sets the Region field's value. +func (s *SavingsPlansDetails) SetRegion(v string) *SavingsPlansDetails { + s.Region = &v + return s } -// Code returns the exception type name. -func (s *ResourceNotFoundException) Code() string { - return "ResourceNotFoundException" -} +// Contains your request parameters, Savings Plan Recommendations Summary, and +// Details. +type SavingsPlansPurchaseRecommendation struct { + _ struct{} `type:"structure"` -// Message returns the exception's message. -func (s *ResourceNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} + // The account scope that you want your recommendations for. AWS calculates + // recommendations including the payer account and linked accounts if the value + // is set to PAYER. If the value is LINKED, recommendations are calculated for + // individual linked accounts only. + AccountScope *string `type:"string" enum:"AccountScope"` -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceNotFoundException) OrigErr() error { - return nil -} + // The lookback period in days, used to generate the recommendation. + LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` -func (s *ResourceNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} + // The payment option used to generate the recommendation. + PaymentOption *string `type:"string" enum:"PaymentOption"` -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} + // Details for the Savings Plans we recommend that you purchase to cover existing + // Savings Plans eligible workloads. + SavingsPlansPurchaseRecommendationDetails []*SavingsPlansPurchaseRecommendationDetail `type:"list"` -// RequestID returns the service's response RequestID for request. -func (s *ResourceNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} + // Summary metrics for your Savings Plans Recommendations. + SavingsPlansPurchaseRecommendationSummary *SavingsPlansPurchaseRecommendationSummary `type:"structure"` -// Resource utilization of current resource. -type ResourceUtilization struct { - _ struct{} `type:"structure"` + // The requested Savings Plans recommendation type. + SavingsPlansType *string `type:"string" enum:"SupportedSavingsPlansType"` - // Utilization of current Amazon EC2 Instance - EC2ResourceUtilization *EC2ResourceUtilization `type:"structure"` + // The Savings Plans recommendation term in years, used to generate the recommendation. + TermInYears *string `type:"string" enum:"TermInYears"` } // String returns the string representation -func (s ResourceUtilization) String() string { +func (s SavingsPlansPurchaseRecommendation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ResourceUtilization) GoString() string { +func (s SavingsPlansPurchaseRecommendation) GoString() string { return s.String() } -// SetEC2ResourceUtilization sets the EC2ResourceUtilization field's value. -func (s *ResourceUtilization) SetEC2ResourceUtilization(v *EC2ResourceUtilization) *ResourceUtilization { - s.EC2ResourceUtilization = v +// SetAccountScope sets the AccountScope field's value. +func (s *SavingsPlansPurchaseRecommendation) SetAccountScope(v string) *SavingsPlansPurchaseRecommendation { + s.AccountScope = &v return s } -// The result that is associated with a time period. -type ResultByTime struct { - _ struct{} `type:"structure"` - - // Whether the result is estimated. - Estimated *bool `type:"boolean"` - - // The groups that this time period includes. - Groups []*Group `type:"list"` - - // The time period that the result covers. - TimePeriod *DateInterval `type:"structure"` - - // The total amount of cost or usage accrued during the time period. - Total map[string]*MetricValue `type:"map"` -} - -// String returns the string representation -func (s ResultByTime) String() string { - return awsutil.Prettify(s) +// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. +func (s *SavingsPlansPurchaseRecommendation) SetLookbackPeriodInDays(v string) *SavingsPlansPurchaseRecommendation { + s.LookbackPeriodInDays = &v + return s } -// GoString returns the string representation -func (s ResultByTime) GoString() string { - return s.String() +// SetPaymentOption sets the PaymentOption field's value. +func (s *SavingsPlansPurchaseRecommendation) SetPaymentOption(v string) *SavingsPlansPurchaseRecommendation { + s.PaymentOption = &v + return s } -// SetEstimated sets the Estimated field's value. -func (s *ResultByTime) SetEstimated(v bool) *ResultByTime { - s.Estimated = &v +// SetSavingsPlansPurchaseRecommendationDetails sets the SavingsPlansPurchaseRecommendationDetails field's value. +func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationDetails(v []*SavingsPlansPurchaseRecommendationDetail) *SavingsPlansPurchaseRecommendation { + s.SavingsPlansPurchaseRecommendationDetails = v return s } -// SetGroups sets the Groups field's value. -func (s *ResultByTime) SetGroups(v []*Group) *ResultByTime { - s.Groups = v +// SetSavingsPlansPurchaseRecommendationSummary sets the SavingsPlansPurchaseRecommendationSummary field's value. +func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationSummary(v *SavingsPlansPurchaseRecommendationSummary) *SavingsPlansPurchaseRecommendation { + s.SavingsPlansPurchaseRecommendationSummary = v return s } -// SetTimePeriod sets the TimePeriod field's value. -func (s *ResultByTime) SetTimePeriod(v *DateInterval) *ResultByTime { - s.TimePeriod = v +// SetSavingsPlansType sets the SavingsPlansType field's value. +func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansType(v string) *SavingsPlansPurchaseRecommendation { + s.SavingsPlansType = &v return s } -// SetTotal sets the Total field's value. -func (s *ResultByTime) SetTotal(v map[string]*MetricValue) *ResultByTime { - s.Total = v +// SetTermInYears sets the TermInYears field's value. +func (s *SavingsPlansPurchaseRecommendation) SetTermInYears(v string) *SavingsPlansPurchaseRecommendation { + s.TermInYears = &v return s } -// Recommendations to rightsize resources. -type RightsizingRecommendation struct { +// Details for your recommended Savings Plans. +type SavingsPlansPurchaseRecommendationDetail struct { _ struct{} `type:"structure"` - // The account that this recommendation is for. + // The AccountID the recommendation is generated for. AccountId *string `type:"string"` - // Context regarding the current instance. - CurrentInstance *CurrentInstance `type:"structure"` + // The currency code AWS used to generate the recommendations and present potential + // savings. + CurrencyCode *string `type:"string"` - // Details for modification recommendations. - ModifyRecommendationDetail *ModifyRecommendationDetail `type:"structure"` + // The average value of hourly On-Demand spend over the lookback period of the + // applicable usage type. + CurrentAverageHourlyOnDemandSpend *string `type:"string"` - // Recommendation to either terminate or modify the resource. - RightsizingType *string `type:"string" enum:"RightsizingType"` + // The highest value of hourly On-Demand spend over the lookback period of the + // applicable usage type. + CurrentMaximumHourlyOnDemandSpend *string `type:"string"` - // Details for termination recommendations. - TerminateRecommendationDetail *TerminateRecommendationDetail `type:"structure"` -} + // The lowest value of hourly On-Demand spend over the lookback period of the + // applicable usage type. + CurrentMinimumHourlyOnDemandSpend *string `type:"string"` -// String returns the string representation -func (s RightsizingRecommendation) String() string { - return awsutil.Prettify(s) -} + // The estimated utilization of the recommended Savings Plans. + EstimatedAverageUtilization *string `type:"string"` -// GoString returns the string representation -func (s RightsizingRecommendation) GoString() string { - return s.String() -} + // The estimated monthly savings amount, based on the recommended Savings Plans. + EstimatedMonthlySavingsAmount *string `type:"string"` -// SetAccountId sets the AccountId field's value. -func (s *RightsizingRecommendation) SetAccountId(v string) *RightsizingRecommendation { - s.AccountId = &v - return s -} + // The remaining On-Demand cost estimated to not be covered by the recommended + // Savings Plans, over the length of the lookback period. + EstimatedOnDemandCost *string `type:"string"` -// SetCurrentInstance sets the CurrentInstance field's value. -func (s *RightsizingRecommendation) SetCurrentInstance(v *CurrentInstance) *RightsizingRecommendation { - s.CurrentInstance = v - return s -} + // The estimated On-Demand costs you would expect with no additional commitment, + // based on your usage of the selected time period and the Savings Plans you + // own. + EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` -// SetModifyRecommendationDetail sets the ModifyRecommendationDetail field's value. -func (s *RightsizingRecommendation) SetModifyRecommendationDetail(v *ModifyRecommendationDetail) *RightsizingRecommendation { - s.ModifyRecommendationDetail = v - return s -} + // The estimated return on investment based on the recommended Savings Plans + // purchased. This is calculated as estimatedSavingsAmount/ estimatedSPCost*100. + EstimatedROI *string `type:"string"` -// SetRightsizingType sets the RightsizingType field's value. -func (s *RightsizingRecommendation) SetRightsizingType(v string) *RightsizingRecommendation { - s.RightsizingType = &v - return s -} + // The cost of the recommended Savings Plans over the length of the lookback + // period. + EstimatedSPCost *string `type:"string"` -// SetTerminateRecommendationDetail sets the TerminateRecommendationDetail field's value. -func (s *RightsizingRecommendation) SetTerminateRecommendationDetail(v *TerminateRecommendationDetail) *RightsizingRecommendation { - s.TerminateRecommendationDetail = v - return s -} + // The estimated savings amount based on the recommended Savings Plans over + // the length of the lookback period. + EstimatedSavingsAmount *string `type:"string"` -// Enables you to customize recommendations across two attributes. You can choose -// to view recommendations for instances within the same instance families or -// across different instance families. You can also choose to view your estimated -// savings associated with recommendations with consideration of existing Savings -// Plans or RI benefits, or neither. -type RightsizingRecommendationConfiguration struct { - _ struct{} `type:"structure"` + // The estimated savings percentage relative to the total cost of applicable + // On-Demand usage over the lookback period. + EstimatedSavingsPercentage *string `type:"string"` - // The option to consider RI or Savings Plans discount benefits in your savings - // calculation. The default value is TRUE. - // - // BenefitsConsidered is a required field - BenefitsConsidered *bool `type:"boolean" required:"true"` + // The recommended hourly commitment level for the Savings Plans type, and configuration + // based on the usage during the lookback period. + HourlyCommitmentToPurchase *string `type:"string"` - // The option to see recommendations within the same instance family, or recommendations - // for instances across other families. The default value is SAME_INSTANCE_FAMILY. - // - // RecommendationTarget is a required field - RecommendationTarget *string `type:"string" required:"true" enum:"RecommendationTarget"` + // Details for your recommended Savings Plans. + SavingsPlansDetails *SavingsPlansDetails `type:"structure"` + + // The upfront cost of the recommended Savings Plans, based on the selected + // payment option. + UpfrontCost *string `type:"string"` } // String returns the string representation -func (s RightsizingRecommendationConfiguration) String() string { +func (s SavingsPlansPurchaseRecommendationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s RightsizingRecommendationConfiguration) GoString() string { +func (s SavingsPlansPurchaseRecommendationDetail) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *RightsizingRecommendationConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RightsizingRecommendationConfiguration"} - if s.BenefitsConsidered == nil { - invalidParams.Add(request.NewErrParamRequired("BenefitsConsidered")) - } - if s.RecommendationTarget == nil { - invalidParams.Add(request.NewErrParamRequired("RecommendationTarget")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetAccountId sets the AccountId field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetAccountId(v string) *SavingsPlansPurchaseRecommendationDetail { + s.AccountId = &v + return s } -// SetBenefitsConsidered sets the BenefitsConsidered field's value. -func (s *RightsizingRecommendationConfiguration) SetBenefitsConsidered(v bool) *RightsizingRecommendationConfiguration { - s.BenefitsConsidered = &v +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationDetail { + s.CurrencyCode = &v return s } -// SetRecommendationTarget sets the RecommendationTarget field's value. -func (s *RightsizingRecommendationConfiguration) SetRecommendationTarget(v string) *RightsizingRecommendationConfiguration { - s.RecommendationTarget = &v +// SetCurrentAverageHourlyOnDemandSpend sets the CurrentAverageHourlyOnDemandSpend field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentAverageHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { + s.CurrentAverageHourlyOnDemandSpend = &v return s } -// Metadata for this recommendation set. -type RightsizingRecommendationMetadata struct { - _ struct{} `type:"structure"` - - // The timestamp for when Amazon Web Services made this recommendation. - GenerationTimestamp *string `type:"string"` - - // How many days of previous usage that Amazon Web Services considers when making - // this recommendation. - LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` - - // The ID for this specific recommendation. - RecommendationId *string `type:"string"` +// SetCurrentMaximumHourlyOnDemandSpend sets the CurrentMaximumHourlyOnDemandSpend field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMaximumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { + s.CurrentMaximumHourlyOnDemandSpend = &v + return s } -// String returns the string representation -func (s RightsizingRecommendationMetadata) String() string { - return awsutil.Prettify(s) +// SetCurrentMinimumHourlyOnDemandSpend sets the CurrentMinimumHourlyOnDemandSpend field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMinimumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { + s.CurrentMinimumHourlyOnDemandSpend = &v + return s } -// GoString returns the string representation -func (s RightsizingRecommendationMetadata) GoString() string { - return s.String() +// SetEstimatedAverageUtilization sets the EstimatedAverageUtilization field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedAverageUtilization(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedAverageUtilization = &v + return s } -// SetGenerationTimestamp sets the GenerationTimestamp field's value. -func (s *RightsizingRecommendationMetadata) SetGenerationTimestamp(v string) *RightsizingRecommendationMetadata { - s.GenerationTimestamp = &v +// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedMonthlySavingsAmount = &v return s } -// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. -func (s *RightsizingRecommendationMetadata) SetLookbackPeriodInDays(v string) *RightsizingRecommendationMetadata { - s.LookbackPeriodInDays = &v +// SetEstimatedOnDemandCost sets the EstimatedOnDemandCost field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCost(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedOnDemandCost = &v return s } -// SetRecommendationId sets the RecommendationId field's value. -func (s *RightsizingRecommendationMetadata) SetRecommendationId(v string) *RightsizingRecommendationMetadata { - s.RecommendationId = &v +// SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedOnDemandCostWithCurrentCommitment = &v return s } -// Summary of rightsizing recommendations -type RightsizingRecommendationSummary struct { - _ struct{} `type:"structure"` - - // Estimated total savings resulting from modifications, on a monthly basis. - EstimatedTotalMonthlySavingsAmount *string `type:"string"` - - // The currency code that Amazon Web Services used to calculate the savings. - SavingsCurrencyCode *string `type:"string"` - - // Savings percentage based on the recommended modifications, relative to the - // total On-Demand costs associated with these instances. - SavingsPercentage *string `type:"string"` - - // Total number of instance recommendations. - TotalRecommendationCount *string `type:"string"` +// SetEstimatedROI sets the EstimatedROI field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedROI = &v + return s } -// String returns the string representation -func (s RightsizingRecommendationSummary) String() string { - return awsutil.Prettify(s) +// SetEstimatedSPCost sets the EstimatedSPCost field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSPCost(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedSPCost = &v + return s } -// GoString returns the string representation -func (s RightsizingRecommendationSummary) GoString() string { - return s.String() +// SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedSavingsAmount = &v + return s } -// SetEstimatedTotalMonthlySavingsAmount sets the EstimatedTotalMonthlySavingsAmount field's value. -func (s *RightsizingRecommendationSummary) SetEstimatedTotalMonthlySavingsAmount(v string) *RightsizingRecommendationSummary { - s.EstimatedTotalMonthlySavingsAmount = &v +// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationDetail { + s.EstimatedSavingsPercentage = &v return s } -// SetSavingsCurrencyCode sets the SavingsCurrencyCode field's value. -func (s *RightsizingRecommendationSummary) SetSavingsCurrencyCode(v string) *RightsizingRecommendationSummary { - s.SavingsCurrencyCode = &v +// SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationDetail { + s.HourlyCommitmentToPurchase = &v return s } -// SetSavingsPercentage sets the SavingsPercentage field's value. -func (s *RightsizingRecommendationSummary) SetSavingsPercentage(v string) *RightsizingRecommendationSummary { - s.SavingsPercentage = &v +// SetSavingsPlansDetails sets the SavingsPlansDetails field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetSavingsPlansDetails(v *SavingsPlansDetails) *SavingsPlansPurchaseRecommendationDetail { + s.SavingsPlansDetails = v return s } -// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. -func (s *RightsizingRecommendationSummary) SetTotalRecommendationCount(v string) *RightsizingRecommendationSummary { - s.TotalRecommendationCount = &v +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *SavingsPlansPurchaseRecommendationDetail) SetUpfrontCost(v string) *SavingsPlansPurchaseRecommendationDetail { + s.UpfrontCost = &v return s } -// The amortized amount of Savings Plans purchased in a specific account during -// a specific time interval. -type SavingsPlansAmortizedCommitment struct { +// Metadata about your Savings Plans Purchase Recommendations. +type SavingsPlansPurchaseRecommendationMetadata struct { _ struct{} `type:"structure"` - // The amortized amount of your Savings Plans commitment that was purchased - // with either a Partial or a NoUpfront. - AmortizedRecurringCommitment *string `type:"string"` - - // The amortized amount of your Savings Plans commitment that was purchased - // with an Upfront or PartialUpfront Savings Plans. - AmortizedUpfrontCommitment *string `type:"string"` + // The timestamp showing when the recommendations were generated. + GenerationTimestamp *string `type:"string"` - // The total amortized amount of your Savings Plans commitment, regardless of - // your Savings Plans purchase method. - TotalAmortizedCommitment *string `type:"string"` + // The unique identifier for the recommendation set. + RecommendationId *string `type:"string"` } // String returns the string representation -func (s SavingsPlansAmortizedCommitment) String() string { +func (s SavingsPlansPurchaseRecommendationMetadata) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansAmortizedCommitment) GoString() string { +func (s SavingsPlansPurchaseRecommendationMetadata) GoString() string { return s.String() } -// SetAmortizedRecurringCommitment sets the AmortizedRecurringCommitment field's value. -func (s *SavingsPlansAmortizedCommitment) SetAmortizedRecurringCommitment(v string) *SavingsPlansAmortizedCommitment { - s.AmortizedRecurringCommitment = &v - return s -} - -// SetAmortizedUpfrontCommitment sets the AmortizedUpfrontCommitment field's value. -func (s *SavingsPlansAmortizedCommitment) SetAmortizedUpfrontCommitment(v string) *SavingsPlansAmortizedCommitment { - s.AmortizedUpfrontCommitment = &v +// SetGenerationTimestamp sets the GenerationTimestamp field's value. +func (s *SavingsPlansPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *SavingsPlansPurchaseRecommendationMetadata { + s.GenerationTimestamp = &v return s } -// SetTotalAmortizedCommitment sets the TotalAmortizedCommitment field's value. -func (s *SavingsPlansAmortizedCommitment) SetTotalAmortizedCommitment(v string) *SavingsPlansAmortizedCommitment { - s.TotalAmortizedCommitment = &v +// SetRecommendationId sets the RecommendationId field's value. +func (s *SavingsPlansPurchaseRecommendationMetadata) SetRecommendationId(v string) *SavingsPlansPurchaseRecommendationMetadata { + s.RecommendationId = &v return s } -// The amount of Savings Plans eligible usage that is covered by Savings Plans. -// All calculations consider the On-Demand equivalent of your Savings Plans -// usage. -type SavingsPlansCoverage struct { +// Summary metrics for your Savings Plans Purchase Recommendations. +type SavingsPlansPurchaseRecommendationSummary struct { _ struct{} `type:"structure"` - // The attribute that applies to a specific Dimension. - Attributes map[string]*string `type:"map"` - - // The amount of Savings Plans eligible usage that the Savings Plans covered. - Coverage *SavingsPlansCoverageData `type:"structure"` - - // The time period that you want the usage and costs for. - TimePeriod *DateInterval `type:"structure"` -} + // The currency code AWS used to generate the recommendations and present potential + // savings. + CurrencyCode *string `type:"string"` -// String returns the string representation -func (s SavingsPlansCoverage) String() string { - return awsutil.Prettify(s) -} + // The current total on demand spend of the applicable usage types over the + // lookback period. + CurrentOnDemandSpend *string `type:"string"` -// GoString returns the string representation -func (s SavingsPlansCoverage) GoString() string { - return s.String() -} + // The recommended Savings Plans cost on a daily (24 hourly) basis. + DailyCommitmentToPurchase *string `type:"string"` -// SetAttributes sets the Attributes field's value. -func (s *SavingsPlansCoverage) SetAttributes(v map[string]*string) *SavingsPlansCoverage { - s.Attributes = v - return s -} + // The estimated monthly savings amount, based on the recommended Savings Plans + // purchase. + EstimatedMonthlySavingsAmount *string `type:"string"` -// SetCoverage sets the Coverage field's value. -func (s *SavingsPlansCoverage) SetCoverage(v *SavingsPlansCoverageData) *SavingsPlansCoverage { - s.Coverage = v - return s -} + // The estimated On-Demand costs you would expect with no additional commitment, + // based on your usage of the selected time period and the Savings Plans you + // own. + EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` -// SetTimePeriod sets the TimePeriod field's value. -func (s *SavingsPlansCoverage) SetTimePeriod(v *DateInterval) *SavingsPlansCoverage { - s.TimePeriod = v - return s -} + // The estimated return on investment based on the recommended Savings Plans + // and estimated savings. + EstimatedROI *string `type:"string"` -// Specific coverage percentage, On-Demand costs, and spend covered by Savings -// Plans, and total Savings Plans costs for an account. -type SavingsPlansCoverageData struct { - _ struct{} `type:"structure"` + // The estimated total savings over the lookback period, based on the purchase + // of the recommended Savings Plans. + EstimatedSavingsAmount *string `type:"string"` - // The percentage of your existing Savings Plans covered usage, divided by all - // of your eligible Savings Plans usage in an account(or set of accounts). - CoveragePercentage *string `type:"string"` + // The estimated savings relative to the total cost of On-Demand usage, over + // the lookback period. This is calculated as estimatedSavingsAmount/ CurrentOnDemandSpend*100. + EstimatedSavingsPercentage *string `type:"string"` - // The cost of your Amazon Web Services usage at the public On-Demand rate. - OnDemandCost *string `type:"string"` + // The estimated total cost of the usage after purchasing the recommended Savings + // Plans. This is a sum of the cost of Savings Plans during this term, and the + // remaining On-Demand usage. + EstimatedTotalCost *string `type:"string"` - // The amount of your Amazon Web Services usage that is covered by a Savings - // Plans. - SpendCoveredBySavingsPlans *string `type:"string"` + // The recommended hourly commitment based on the recommendation parameters. + HourlyCommitmentToPurchase *string `type:"string"` - // The total cost of your Amazon Web Services usage, regardless of your purchase - // option. - TotalCost *string `type:"string"` + // The aggregate number of Savings Plans recommendations that exist for your + // account. + TotalRecommendationCount *string `type:"string"` } // String returns the string representation -func (s SavingsPlansCoverageData) String() string { +func (s SavingsPlansPurchaseRecommendationSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansCoverageData) GoString() string { +func (s SavingsPlansPurchaseRecommendationSummary) GoString() string { return s.String() } -// SetCoveragePercentage sets the CoveragePercentage field's value. -func (s *SavingsPlansCoverageData) SetCoveragePercentage(v string) *SavingsPlansCoverageData { - s.CoveragePercentage = &v +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationSummary { + s.CurrencyCode = &v return s } -// SetOnDemandCost sets the OnDemandCost field's value. -func (s *SavingsPlansCoverageData) SetOnDemandCost(v string) *SavingsPlansCoverageData { - s.OnDemandCost = &v +// SetCurrentOnDemandSpend sets the CurrentOnDemandSpend field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrentOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationSummary { + s.CurrentOnDemandSpend = &v return s } -// SetSpendCoveredBySavingsPlans sets the SpendCoveredBySavingsPlans field's value. -func (s *SavingsPlansCoverageData) SetSpendCoveredBySavingsPlans(v string) *SavingsPlansCoverageData { - s.SpendCoveredBySavingsPlans = &v +// SetDailyCommitmentToPurchase sets the DailyCommitmentToPurchase field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetDailyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { + s.DailyCommitmentToPurchase = &v return s } -// SetTotalCost sets the TotalCost field's value. -func (s *SavingsPlansCoverageData) SetTotalCost(v string) *SavingsPlansCoverageData { - s.TotalCost = &v +// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { + s.EstimatedMonthlySavingsAmount = &v return s } -// Attribute details on a specific Savings Plan. -type SavingsPlansDetails struct { - _ struct{} `type:"structure"` - - // A group of instance types that Savings Plans applies to. - InstanceFamily *string `type:"string"` - - // The unique ID used to distinguish Savings Plans from one another. - OfferingId *string `type:"string"` +// SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationSummary { + s.EstimatedOnDemandCostWithCurrentCommitment = &v + return s +} - // A collection of AWS resources in a geographic area. Each AWS Region is isolated - // and independent of the other Regions. - Region *string `type:"string"` +// SetEstimatedROI sets the EstimatedROI field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationSummary { + s.EstimatedROI = &v + return s } -// String returns the string representation -func (s SavingsPlansDetails) String() string { - return awsutil.Prettify(s) +// SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { + s.EstimatedSavingsAmount = &v + return s } -// GoString returns the string representation -func (s SavingsPlansDetails) GoString() string { - return s.String() +// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationSummary { + s.EstimatedSavingsPercentage = &v + return s } -// SetInstanceFamily sets the InstanceFamily field's value. -func (s *SavingsPlansDetails) SetInstanceFamily(v string) *SavingsPlansDetails { - s.InstanceFamily = &v +// SetEstimatedTotalCost sets the EstimatedTotalCost field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedTotalCost(v string) *SavingsPlansPurchaseRecommendationSummary { + s.EstimatedTotalCost = &v return s } -// SetOfferingId sets the OfferingId field's value. -func (s *SavingsPlansDetails) SetOfferingId(v string) *SavingsPlansDetails { - s.OfferingId = &v +// SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { + s.HourlyCommitmentToPurchase = &v return s } -// SetRegion sets the Region field's value. -func (s *SavingsPlansDetails) SetRegion(v string) *SavingsPlansDetails { - s.Region = &v +// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. +func (s *SavingsPlansPurchaseRecommendationSummary) SetTotalRecommendationCount(v string) *SavingsPlansPurchaseRecommendationSummary { + s.TotalRecommendationCount = &v return s } -// Contains your request parameters, Savings Plan Recommendations Summary, and -// Details. -type SavingsPlansPurchaseRecommendation struct { +// The amount of savings you're accumulating, against the public On-Demand rate +// of the usage accrued in an account. +type SavingsPlansSavings struct { _ struct{} `type:"structure"` - // The account scope that you want your recommendations for. Amazon Web Services - // calculates recommendations including the payer account and linked accounts - // if the value is set to PAYER. If the value is LINKED, recommendations are - // calculated for individual linked accounts only. - AccountScope *string `type:"string" enum:"AccountScope"` - - // The lookback period in days, used to generate the recommendation. - LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` - - // The payment option used to generate the recommendation. - PaymentOption *string `type:"string" enum:"PaymentOption"` - - // Details for the Savings Plans we recommend that you purchase to cover existing - // Savings Plans eligible workloads. - SavingsPlansPurchaseRecommendationDetails []*SavingsPlansPurchaseRecommendationDetail `type:"list"` - - // Summary metrics for your Savings Plans Recommendations. - SavingsPlansPurchaseRecommendationSummary *SavingsPlansPurchaseRecommendationSummary `type:"structure"` - - // The requested Savings Plans recommendation type. - SavingsPlansType *string `type:"string" enum:"SupportedSavingsPlansType"` + // The savings amount that you are accumulating for the usage that is covered + // by a Savings Plans, when compared to the On-Demand equivalent of the same + // usage. + NetSavings *string `type:"string"` - // The Savings Plans recommendation term in years, used to generate the recommendation. - TermInYears *string `type:"string" enum:"TermInYears"` + // How much the amount that the usage would have cost if it was accrued at the + // On-Demand rate. + OnDemandCostEquivalent *string `type:"string"` } // String returns the string representation -func (s SavingsPlansPurchaseRecommendation) String() string { +func (s SavingsPlansSavings) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansPurchaseRecommendation) GoString() string { +func (s SavingsPlansSavings) GoString() string { return s.String() } -// SetAccountScope sets the AccountScope field's value. -func (s *SavingsPlansPurchaseRecommendation) SetAccountScope(v string) *SavingsPlansPurchaseRecommendation { - s.AccountScope = &v +// SetNetSavings sets the NetSavings field's value. +func (s *SavingsPlansSavings) SetNetSavings(v string) *SavingsPlansSavings { + s.NetSavings = &v return s } -// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. -func (s *SavingsPlansPurchaseRecommendation) SetLookbackPeriodInDays(v string) *SavingsPlansPurchaseRecommendation { - s.LookbackPeriodInDays = &v +// SetOnDemandCostEquivalent sets the OnDemandCostEquivalent field's value. +func (s *SavingsPlansSavings) SetOnDemandCostEquivalent(v string) *SavingsPlansSavings { + s.OnDemandCostEquivalent = &v return s } -// SetPaymentOption sets the PaymentOption field's value. -func (s *SavingsPlansPurchaseRecommendation) SetPaymentOption(v string) *SavingsPlansPurchaseRecommendation { - s.PaymentOption = &v - return s +// The measurement of how well you are using your existing Savings Plans. +type SavingsPlansUtilization struct { + _ struct{} `type:"structure"` + + // The total amount of Savings Plans commitment that's been purchased in an + // account (or set of accounts). + TotalCommitment *string `type:"string"` + + // The amount of your Savings Plans commitment that was not consumed from Savings + // Plans eligible usage in a specific period. + UnusedCommitment *string `type:"string"` + + // The amount of your Savings Plans commitment that was consumed from Savings + // Plans eligible usage in a specific period. + UsedCommitment *string `type:"string"` + + // The amount of UsedCommitment divided by the TotalCommitment for your Savings + // Plans. + UtilizationPercentage *string `type:"string"` } -// SetSavingsPlansPurchaseRecommendationDetails sets the SavingsPlansPurchaseRecommendationDetails field's value. -func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationDetails(v []*SavingsPlansPurchaseRecommendationDetail) *SavingsPlansPurchaseRecommendation { - s.SavingsPlansPurchaseRecommendationDetails = v +// String returns the string representation +func (s SavingsPlansUtilization) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SavingsPlansUtilization) GoString() string { + return s.String() +} + +// SetTotalCommitment sets the TotalCommitment field's value. +func (s *SavingsPlansUtilization) SetTotalCommitment(v string) *SavingsPlansUtilization { + s.TotalCommitment = &v return s } -// SetSavingsPlansPurchaseRecommendationSummary sets the SavingsPlansPurchaseRecommendationSummary field's value. -func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationSummary(v *SavingsPlansPurchaseRecommendationSummary) *SavingsPlansPurchaseRecommendation { - s.SavingsPlansPurchaseRecommendationSummary = v +// SetUnusedCommitment sets the UnusedCommitment field's value. +func (s *SavingsPlansUtilization) SetUnusedCommitment(v string) *SavingsPlansUtilization { + s.UnusedCommitment = &v return s } -// SetSavingsPlansType sets the SavingsPlansType field's value. -func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansType(v string) *SavingsPlansPurchaseRecommendation { - s.SavingsPlansType = &v +// SetUsedCommitment sets the UsedCommitment field's value. +func (s *SavingsPlansUtilization) SetUsedCommitment(v string) *SavingsPlansUtilization { + s.UsedCommitment = &v return s } -// SetTermInYears sets the TermInYears field's value. -func (s *SavingsPlansPurchaseRecommendation) SetTermInYears(v string) *SavingsPlansPurchaseRecommendation { - s.TermInYears = &v +// SetUtilizationPercentage sets the UtilizationPercentage field's value. +func (s *SavingsPlansUtilization) SetUtilizationPercentage(v string) *SavingsPlansUtilization { + s.UtilizationPercentage = &v return s } -// Details for your recommended Savings Plans. -type SavingsPlansPurchaseRecommendationDetail struct { +// The aggregated utilization metrics for your Savings Plans usage. +type SavingsPlansUtilizationAggregates struct { _ struct{} `type:"structure"` - // The AccountID the recommendation is generated for. - AccountId *string `type:"string"` - - // The currency code Amazon Web Services used to generate the recommendations - // and present potential savings. - CurrencyCode *string `type:"string"` - - // The average value of hourly On-Demand spend over the lookback period of the - // applicable usage type. - CurrentAverageHourlyOnDemandSpend *string `type:"string"` - - // The highest value of hourly On-Demand spend over the lookback period of the - // applicable usage type. - CurrentMaximumHourlyOnDemandSpend *string `type:"string"` + // The total amortized commitment for a Savings Plans. This includes the sum + // of the upfront and recurring Savings Plans fees. + AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` - // The lowest value of hourly On-Demand spend over the lookback period of the - // applicable usage type. - CurrentMinimumHourlyOnDemandSpend *string `type:"string"` + // The amount saved by using existing Savings Plans. Savings returns both net + // savings from Savings Plans, as well as the onDemandCostEquivalent of the + // Savings Plans when considering the utilization rate. + Savings *SavingsPlansSavings `type:"structure"` - // The estimated utilization of the recommended Savings Plans. - EstimatedAverageUtilization *string `type:"string"` + // A ratio of your effectiveness of using existing Savings Plans to apply to + // workloads that are Savings Plans eligible. + // + // Utilization is a required field + Utilization *SavingsPlansUtilization `type:"structure" required:"true"` +} - // The estimated monthly savings amount, based on the recommended Savings Plans. - EstimatedMonthlySavingsAmount *string `type:"string"` +// String returns the string representation +func (s SavingsPlansUtilizationAggregates) String() string { + return awsutil.Prettify(s) +} - // The remaining On-Demand cost estimated to not be covered by the recommended - // Savings Plans, over the length of the lookback period. - EstimatedOnDemandCost *string `type:"string"` +// GoString returns the string representation +func (s SavingsPlansUtilizationAggregates) GoString() string { + return s.String() +} - // The estimated On-Demand costs you would expect with no additional commitment, - // based on your usage of the selected time period and the Savings Plans you - // own. - EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` +// SetAmortizedCommitment sets the AmortizedCommitment field's value. +func (s *SavingsPlansUtilizationAggregates) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationAggregates { + s.AmortizedCommitment = v + return s +} - // The estimated return on investment based on the recommended Savings Plans - // purchased. This is calculated as estimatedSavingsAmount/ estimatedSPCost*100. - EstimatedROI *string `type:"string"` +// SetSavings sets the Savings field's value. +func (s *SavingsPlansUtilizationAggregates) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationAggregates { + s.Savings = v + return s +} - // The cost of the recommended Savings Plans over the length of the lookback - // period. - EstimatedSPCost *string `type:"string"` +// SetUtilization sets the Utilization field's value. +func (s *SavingsPlansUtilizationAggregates) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationAggregates { + s.Utilization = v + return s +} - // The estimated savings amount based on the recommended Savings Plans over - // the length of the lookback period. - EstimatedSavingsAmount *string `type:"string"` +// The amount of Savings Plans utilization, in hours. +type SavingsPlansUtilizationByTime struct { + _ struct{} `type:"structure"` - // The estimated savings percentage relative to the total cost of applicable - // On-Demand usage over the lookback period. - EstimatedSavingsPercentage *string `type:"string"` + // The total amortized commitment for a Savings Plans. This includes the sum + // of the upfront and recurring Savings Plans fees. + AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` - // The recommended hourly commitment level for the Savings Plans type, and configuration - // based on the usage during the lookback period. - HourlyCommitmentToPurchase *string `type:"string"` + // The amount saved by using existing Savings Plans. Savings returns both net + // savings from Savings Plans as well as the onDemandCostEquivalent of the Savings + // Plans when considering the utilization rate. + Savings *SavingsPlansSavings `type:"structure"` - // Details for your recommended Savings Plans. - SavingsPlansDetails *SavingsPlansDetails `type:"structure"` + // The time period that you want the usage and costs for. + // + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` - // The upfront cost of the recommended Savings Plans, based on the selected - // payment option. - UpfrontCost *string `type:"string"` + // A ratio of your effectiveness of using existing Savings Plans to apply to + // workloads that are Savings Plans eligible. + // + // Utilization is a required field + Utilization *SavingsPlansUtilization `type:"structure" required:"true"` } // String returns the string representation -func (s SavingsPlansPurchaseRecommendationDetail) String() string { +func (s SavingsPlansUtilizationByTime) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansPurchaseRecommendationDetail) GoString() string { +func (s SavingsPlansUtilizationByTime) GoString() string { return s.String() } -// SetAccountId sets the AccountId field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetAccountId(v string) *SavingsPlansPurchaseRecommendationDetail { - s.AccountId = &v +// SetAmortizedCommitment sets the AmortizedCommitment field's value. +func (s *SavingsPlansUtilizationByTime) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationByTime { + s.AmortizedCommitment = v return s } -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationDetail { - s.CurrencyCode = &v +// SetSavings sets the Savings field's value. +func (s *SavingsPlansUtilizationByTime) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationByTime { + s.Savings = v return s } -// SetCurrentAverageHourlyOnDemandSpend sets the CurrentAverageHourlyOnDemandSpend field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentAverageHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { - s.CurrentAverageHourlyOnDemandSpend = &v +// SetTimePeriod sets the TimePeriod field's value. +func (s *SavingsPlansUtilizationByTime) SetTimePeriod(v *DateInterval) *SavingsPlansUtilizationByTime { + s.TimePeriod = v return s } -// SetCurrentMaximumHourlyOnDemandSpend sets the CurrentMaximumHourlyOnDemandSpend field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMaximumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { - s.CurrentMaximumHourlyOnDemandSpend = &v +// SetUtilization sets the Utilization field's value. +func (s *SavingsPlansUtilizationByTime) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationByTime { + s.Utilization = v return s } -// SetCurrentMinimumHourlyOnDemandSpend sets the CurrentMinimumHourlyOnDemandSpend field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMinimumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { - s.CurrentMinimumHourlyOnDemandSpend = &v - return s -} +// A single daily or monthly Savings Plans utilization rate, and details for +// your account. Master accounts in an organization have access to member accounts. +// You can use GetDimensionValues to determine the possible dimension values. +type SavingsPlansUtilizationDetail struct { + _ struct{} `type:"structure"` -// SetEstimatedAverageUtilization sets the EstimatedAverageUtilization field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedAverageUtilization(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedAverageUtilization = &v - return s -} + // The total amortized commitment for a Savings Plans. Includes the sum of the + // upfront and recurring Savings Plans fees. + AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` -// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedMonthlySavingsAmount = &v - return s -} + // The attribute that applies to a specific Dimension. + Attributes map[string]*string `type:"map"` -// SetEstimatedOnDemandCost sets the EstimatedOnDemandCost field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCost(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedOnDemandCost = &v - return s -} + // The amount saved by using existing Savings Plans. Savings returns both net + // savings from savings plans as well as the onDemandCostEquivalent of the Savings + // Plans when considering the utilization rate. + Savings *SavingsPlansSavings `type:"structure"` -// SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedOnDemandCostWithCurrentCommitment = &v - return s -} + // The unique Amazon Resource Name (ARN) for a particular Savings Plan. + SavingsPlanArn *string `type:"string"` -// SetEstimatedROI sets the EstimatedROI field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedROI = &v - return s + // A ratio of your effectiveness of using existing Savings Plans to apply to + // workloads that are Savings Plans eligible. + Utilization *SavingsPlansUtilization `type:"structure"` } -// SetEstimatedSPCost sets the EstimatedSPCost field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSPCost(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedSPCost = &v - return s +// String returns the string representation +func (s SavingsPlansUtilizationDetail) String() string { + return awsutil.Prettify(s) } -// SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedSavingsAmount = &v - return s +// GoString returns the string representation +func (s SavingsPlansUtilizationDetail) GoString() string { + return s.String() } -// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationDetail { - s.EstimatedSavingsPercentage = &v +// SetAmortizedCommitment sets the AmortizedCommitment field's value. +func (s *SavingsPlansUtilizationDetail) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationDetail { + s.AmortizedCommitment = v return s } -// SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationDetail { - s.HourlyCommitmentToPurchase = &v +// SetAttributes sets the Attributes field's value. +func (s *SavingsPlansUtilizationDetail) SetAttributes(v map[string]*string) *SavingsPlansUtilizationDetail { + s.Attributes = v return s } -// SetSavingsPlansDetails sets the SavingsPlansDetails field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetSavingsPlansDetails(v *SavingsPlansDetails) *SavingsPlansPurchaseRecommendationDetail { - s.SavingsPlansDetails = v +// SetSavings sets the Savings field's value. +func (s *SavingsPlansUtilizationDetail) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationDetail { + s.Savings = v return s } -// SetUpfrontCost sets the UpfrontCost field's value. -func (s *SavingsPlansPurchaseRecommendationDetail) SetUpfrontCost(v string) *SavingsPlansPurchaseRecommendationDetail { - s.UpfrontCost = &v +// SetSavingsPlanArn sets the SavingsPlanArn field's value. +func (s *SavingsPlansUtilizationDetail) SetSavingsPlanArn(v string) *SavingsPlansUtilizationDetail { + s.SavingsPlanArn = &v return s } -// Metadata about your Savings Plans Purchase Recommendations. -type SavingsPlansPurchaseRecommendationMetadata struct { - _ struct{} `type:"structure"` +// SetUtilization sets the Utilization field's value. +func (s *SavingsPlansUtilizationDetail) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationDetail { + s.Utilization = v + return s +} - // The timestamp showing when the recommendations were generated. - GenerationTimestamp *string `type:"string"` +// You've reached the limit on the number of resources you can create, or exceeded +// the size of an individual resource. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // The unique identifier for the recommendation set. - RecommendationId *string `type:"string"` + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation -func (s SavingsPlansPurchaseRecommendationMetadata) String() string { +func (s ServiceQuotaExceededException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansPurchaseRecommendationMetadata) GoString() string { +func (s ServiceQuotaExceededException) GoString() string { return s.String() } -// SetGenerationTimestamp sets the GenerationTimestamp field's value. -func (s *SavingsPlansPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *SavingsPlansPurchaseRecommendationMetadata { - s.GenerationTimestamp = &v - return s +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } } -// SetRecommendationId sets the RecommendationId field's value. -func (s *SavingsPlansPurchaseRecommendationMetadata) SetRecommendationId(v string) *SavingsPlansPurchaseRecommendationMetadata { - s.RecommendationId = &v - return s +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" } -// Summary metrics for your Savings Plans Purchase Recommendations. -type SavingsPlansPurchaseRecommendationSummary struct { - _ struct{} `type:"structure"` +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} - // The currency code Amazon Web Services used to generate the recommendations - // and present potential savings. - CurrencyCode *string `type:"string"` +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} - // The current total on demand spend of the applicable usage types over the - // lookback period. - CurrentOnDemandSpend *string `type:"string"` +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} - // The recommended Savings Plans cost on a daily (24 hourly) basis. - DailyCommitmentToPurchase *string `type:"string"` +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} - // The estimated monthly savings amount, based on the recommended Savings Plans - // purchase. - EstimatedMonthlySavingsAmount *string `type:"string"` +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} - // The estimated On-Demand costs you would expect with no additional commitment, - // based on your usage of the selected time period and the Savings Plans you - // own. - EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` +// Hardware specifications for the service that you want recommendations for. +type ServiceSpecification struct { + _ struct{} `type:"structure"` - // The estimated return on investment based on the recommended Savings Plans - // and estimated savings. - EstimatedROI *string `type:"string"` + // The Amazon EC2 hardware specifications that you want AWS to provide recommendations + // for. + EC2Specification *EC2Specification `type:"structure"` +} - // The estimated total savings over the lookback period, based on the purchase - // of the recommended Savings Plans. - EstimatedSavingsAmount *string `type:"string"` +// String returns the string representation +func (s ServiceSpecification) String() string { + return awsutil.Prettify(s) +} - // The estimated savings relative to the total cost of On-Demand usage, over - // the lookback period. This is calculated as estimatedSavingsAmount/ CurrentOnDemandSpend*100. - EstimatedSavingsPercentage *string `type:"string"` +// GoString returns the string representation +func (s ServiceSpecification) GoString() string { + return s.String() +} - // The estimated total cost of the usage after purchasing the recommended Savings - // Plans. This is a sum of the cost of Savings Plans during this term, and the - // remaining On-Demand usage. - EstimatedTotalCost *string `type:"string"` +// SetEC2Specification sets the EC2Specification field's value. +func (s *ServiceSpecification) SetEC2Specification(v *EC2Specification) *ServiceSpecification { + s.EC2Specification = v + return s +} - // The recommended hourly commitment based on the recommendation parameters. - HourlyCommitmentToPurchase *string `type:"string"` +// The recipient of AnomalySubscription notifications. +type Subscriber struct { + _ struct{} `type:"structure"` - // The aggregate number of Savings Plans recommendations that exist for your - // account. - TotalRecommendationCount *string `type:"string"` + // The email address or SNS Amazon Resource Name (ARN), depending on the Type. + Address *string `min:"6" type:"string"` + + // Indicates if the subscriber accepts the notifications. + Status *string `type:"string" enum:"SubscriberStatus"` + + // The notification delivery channel. + Type *string `type:"string" enum:"SubscriberType"` } // String returns the string representation -func (s SavingsPlansPurchaseRecommendationSummary) String() string { +func (s Subscriber) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansPurchaseRecommendationSummary) GoString() string { +func (s Subscriber) GoString() string { return s.String() } -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationSummary { - s.CurrencyCode = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *Subscriber) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Subscriber"} + if s.Address != nil && len(*s.Address) < 6 { + invalidParams.Add(request.NewErrParamMinLen("Address", 6)) + } -// SetCurrentOnDemandSpend sets the CurrentOnDemandSpend field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrentOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationSummary { - s.CurrentOnDemandSpend = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetDailyCommitmentToPurchase sets the DailyCommitmentToPurchase field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetDailyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { - s.DailyCommitmentToPurchase = &v +// SetAddress sets the Address field's value. +func (s *Subscriber) SetAddress(v string) *Subscriber { + s.Address = &v return s } -// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { - s.EstimatedMonthlySavingsAmount = &v +// SetStatus sets the Status field's value. +func (s *Subscriber) SetStatus(v string) *Subscriber { + s.Status = &v return s } -// SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationSummary { - s.EstimatedOnDemandCostWithCurrentCommitment = &v +// SetType sets the Type field's value. +func (s *Subscriber) SetType(v string) *Subscriber { + s.Type = &v return s } -// SetEstimatedROI sets the EstimatedROI field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationSummary { - s.EstimatedROI = &v - return s +// The values that are available for a tag. +type TagValues struct { + _ struct{} `type:"structure"` + + // The key for the tag. + Key *string `type:"string"` + + // The match options that you can use to filter your results. MatchOptions is + // only applicable for actions related to Cost Category. The default values + // for MatchOptions are EQUALS and CASE_SENSITIVE. + MatchOptions []*string `type:"list"` + + // The specific value of the tag. + Values []*string `type:"list"` } -// SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { - s.EstimatedSavingsAmount = &v - return s +// String returns the string representation +func (s TagValues) String() string { + return awsutil.Prettify(s) } -// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationSummary { - s.EstimatedSavingsPercentage = &v - return s +// GoString returns the string representation +func (s TagValues) GoString() string { + return s.String() } -// SetEstimatedTotalCost sets the EstimatedTotalCost field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedTotalCost(v string) *SavingsPlansPurchaseRecommendationSummary { - s.EstimatedTotalCost = &v +// SetKey sets the Key field's value. +func (s *TagValues) SetKey(v string) *TagValues { + s.Key = &v return s } -// SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { - s.HourlyCommitmentToPurchase = &v +// SetMatchOptions sets the MatchOptions field's value. +func (s *TagValues) SetMatchOptions(v []*string) *TagValues { + s.MatchOptions = v return s } -// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. -func (s *SavingsPlansPurchaseRecommendationSummary) SetTotalRecommendationCount(v string) *SavingsPlansPurchaseRecommendationSummary { - s.TotalRecommendationCount = &v +// SetValues sets the Values field's value. +func (s *TagValues) SetValues(v []*string) *TagValues { + s.Values = v return s } -// The amount of savings you're accumulating, against the public On-Demand rate -// of the usage accrued in an account. -type SavingsPlansSavings struct { +// Details on recommended instance. +type TargetInstance struct { _ struct{} `type:"structure"` - // The savings amount that you are accumulating for the usage that is covered - // by a Savings Plans, when compared to the On-Demand equivalent of the same - // usage. - NetSavings *string `type:"string"` + // The currency code that AWS used to calculate the costs for this instance. + CurrencyCode *string `type:"string"` - // How much the amount that the usage would have cost if it was accrued at the - // On-Demand rate. - OnDemandCostEquivalent *string `type:"string"` + // Indicates whether this recommendation is the defaulted AWS recommendation. + DefaultTargetInstance *bool `type:"boolean"` + + // Expected cost to operate this instance type on a monthly basis. + EstimatedMonthlyCost *string `type:"string"` + + // Estimated savings resulting from modification, on a monthly basis. + EstimatedMonthlySavings *string `type:"string"` + + // Expected utilization metrics for target instance type. + ExpectedResourceUtilization *ResourceUtilization `type:"structure"` + + // Details on the target instance type. + ResourceDetails *ResourceDetails `type:"structure"` } // String returns the string representation -func (s SavingsPlansSavings) String() string { +func (s TargetInstance) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansSavings) GoString() string { +func (s TargetInstance) GoString() string { return s.String() } -// SetNetSavings sets the NetSavings field's value. -func (s *SavingsPlansSavings) SetNetSavings(v string) *SavingsPlansSavings { - s.NetSavings = &v +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *TargetInstance) SetCurrencyCode(v string) *TargetInstance { + s.CurrencyCode = &v return s } -// SetOnDemandCostEquivalent sets the OnDemandCostEquivalent field's value. -func (s *SavingsPlansSavings) SetOnDemandCostEquivalent(v string) *SavingsPlansSavings { - s.OnDemandCostEquivalent = &v +// SetDefaultTargetInstance sets the DefaultTargetInstance field's value. +func (s *TargetInstance) SetDefaultTargetInstance(v bool) *TargetInstance { + s.DefaultTargetInstance = &v return s } -// The measurement of how well you are using your existing Savings Plans. -type SavingsPlansUtilization struct { - _ struct{} `type:"structure"` +// SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. +func (s *TargetInstance) SetEstimatedMonthlyCost(v string) *TargetInstance { + s.EstimatedMonthlyCost = &v + return s +} - // The total amount of Savings Plans commitment that's been purchased in an - // account (or set of accounts). - TotalCommitment *string `type:"string"` +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *TargetInstance) SetEstimatedMonthlySavings(v string) *TargetInstance { + s.EstimatedMonthlySavings = &v + return s +} - // The amount of your Savings Plans commitment that was not consumed from Savings - // Plans eligible usage in a specific period. - UnusedCommitment *string `type:"string"` +// SetExpectedResourceUtilization sets the ExpectedResourceUtilization field's value. +func (s *TargetInstance) SetExpectedResourceUtilization(v *ResourceUtilization) *TargetInstance { + s.ExpectedResourceUtilization = v + return s +} - // The amount of your Savings Plans commitment that was consumed from Savings - // Plans eligible usage in a specific period. - UsedCommitment *string `type:"string"` +// SetResourceDetails sets the ResourceDetails field's value. +func (s *TargetInstance) SetResourceDetails(v *ResourceDetails) *TargetInstance { + s.ResourceDetails = v + return s +} - // The amount of UsedCommitment divided by the TotalCommitment for your Savings - // Plans. - UtilizationPercentage *string `type:"string"` +// Details on termination recommendation. +type TerminateRecommendationDetail struct { + _ struct{} `type:"structure"` + + // The currency code that AWS used to calculate the costs for this instance. + CurrencyCode *string `type:"string"` + + // Estimated savings resulting from modification, on a monthly basis. + EstimatedMonthlySavings *string `type:"string"` } // String returns the string representation -func (s SavingsPlansUtilization) String() string { +func (s TerminateRecommendationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansUtilization) GoString() string { +func (s TerminateRecommendationDetail) GoString() string { return s.String() } -// SetTotalCommitment sets the TotalCommitment field's value. -func (s *SavingsPlansUtilization) SetTotalCommitment(v string) *SavingsPlansUtilization { - s.TotalCommitment = &v - return s -} - -// SetUnusedCommitment sets the UnusedCommitment field's value. -func (s *SavingsPlansUtilization) SetUnusedCommitment(v string) *SavingsPlansUtilization { - s.UnusedCommitment = &v - return s -} - -// SetUsedCommitment sets the UsedCommitment field's value. -func (s *SavingsPlansUtilization) SetUsedCommitment(v string) *SavingsPlansUtilization { - s.UsedCommitment = &v +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *TerminateRecommendationDetail) SetCurrencyCode(v string) *TerminateRecommendationDetail { + s.CurrencyCode = &v return s } -// SetUtilizationPercentage sets the UtilizationPercentage field's value. -func (s *SavingsPlansUtilization) SetUtilizationPercentage(v string) *SavingsPlansUtilization { - s.UtilizationPercentage = &v +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *TerminateRecommendationDetail) SetEstimatedMonthlySavings(v string) *TerminateRecommendationDetail { + s.EstimatedMonthlySavings = &v return s } -// The aggregated utilization metrics for your Savings Plans usage. -type SavingsPlansUtilizationAggregates struct { +// Filters cost anomalies based on the total impact. +type TotalImpactFilter struct { _ struct{} `type:"structure"` - // The total amortized commitment for a Savings Plans. This includes the sum - // of the upfront and recurring Savings Plans fees. - AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` + // The upper bound dollar value used in the filter. + EndValue *float64 `type:"double"` - // The amount saved by using existing Savings Plans. Savings returns both net - // savings from Savings Plans, as well as the onDemandCostEquivalent of the - // Savings Plans when considering the utilization rate. - Savings *SavingsPlansSavings `type:"structure"` + // The comparing value used in the filter. + // + // NumericOperator is a required field + NumericOperator *string `type:"string" required:"true" enum:"NumericOperator"` - // A ratio of your effectiveness of using existing Savings Plans to apply to - // workloads that are Savings Plans eligible. + // The lower bound dollar value used in the filter. // - // Utilization is a required field - Utilization *SavingsPlansUtilization `type:"structure" required:"true"` + // StartValue is a required field + StartValue *float64 `type:"double" required:"true"` } // String returns the string representation -func (s SavingsPlansUtilizationAggregates) String() string { +func (s TotalImpactFilter) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansUtilizationAggregates) GoString() string { +func (s TotalImpactFilter) GoString() string { return s.String() } -// SetAmortizedCommitment sets the AmortizedCommitment field's value. -func (s *SavingsPlansUtilizationAggregates) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationAggregates { - s.AmortizedCommitment = v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *TotalImpactFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TotalImpactFilter"} + if s.NumericOperator == nil { + invalidParams.Add(request.NewErrParamRequired("NumericOperator")) + } + if s.StartValue == nil { + invalidParams.Add(request.NewErrParamRequired("StartValue")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetSavings sets the Savings field's value. -func (s *SavingsPlansUtilizationAggregates) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationAggregates { - s.Savings = v +// SetEndValue sets the EndValue field's value. +func (s *TotalImpactFilter) SetEndValue(v float64) *TotalImpactFilter { + s.EndValue = &v return s } -// SetUtilization sets the Utilization field's value. -func (s *SavingsPlansUtilizationAggregates) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationAggregates { - s.Utilization = v +// SetNumericOperator sets the NumericOperator field's value. +func (s *TotalImpactFilter) SetNumericOperator(v string) *TotalImpactFilter { + s.NumericOperator = &v return s } -// The amount of Savings Plans utilization, in hours. -type SavingsPlansUtilizationByTime struct { - _ struct{} `type:"structure"` - - // The total amortized commitment for a Savings Plans. This includes the sum - // of the upfront and recurring Savings Plans fees. - AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` - - // The amount saved by using existing Savings Plans. Savings returns both net - // savings from Savings Plans as well as the onDemandCostEquivalent of the Savings - // Plans when considering the utilization rate. - Savings *SavingsPlansSavings `type:"structure"` +// SetStartValue sets the StartValue field's value. +func (s *TotalImpactFilter) SetStartValue(v float64) *TotalImpactFilter { + s.StartValue = &v + return s +} - // The time period that you want the usage and costs for. - // - // TimePeriod is a required field - TimePeriod *DateInterval `type:"structure" required:"true"` +// The cost anomaly monitor does not exist for the account. +type UnknownMonitorException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // A ratio of your effectiveness of using existing Savings Plans to apply to - // workloads that are Savings Plans eligible. - // - // Utilization is a required field - Utilization *SavingsPlansUtilization `type:"structure" required:"true"` + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation -func (s SavingsPlansUtilizationByTime) String() string { +func (s UnknownMonitorException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansUtilizationByTime) GoString() string { +func (s UnknownMonitorException) GoString() string { return s.String() } -// SetAmortizedCommitment sets the AmortizedCommitment field's value. -func (s *SavingsPlansUtilizationByTime) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationByTime { - s.AmortizedCommitment = v - return s +func newErrorUnknownMonitorException(v protocol.ResponseMetadata) error { + return &UnknownMonitorException{ + RespMetadata: v, + } } -// SetSavings sets the Savings field's value. -func (s *SavingsPlansUtilizationByTime) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationByTime { - s.Savings = v - return s +// Code returns the exception type name. +func (s *UnknownMonitorException) Code() string { + return "UnknownMonitorException" } -// SetTimePeriod sets the TimePeriod field's value. -func (s *SavingsPlansUtilizationByTime) SetTimePeriod(v *DateInterval) *SavingsPlansUtilizationByTime { - s.TimePeriod = v - return s +// Message returns the exception's message. +func (s *UnknownMonitorException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" } -// SetUtilization sets the Utilization field's value. -func (s *SavingsPlansUtilizationByTime) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationByTime { - s.Utilization = v - return s +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *UnknownMonitorException) OrigErr() error { + return nil } -// A single daily or monthly Savings Plans utilization rate, and details for -// your account. Master accounts in an organization have access to member accounts. -// You can use GetDimensionValues to determine the possible dimension values. -type SavingsPlansUtilizationDetail struct { - _ struct{} `type:"structure"` - - // The total amortized commitment for a Savings Plans. Includes the sum of the - // upfront and recurring Savings Plans fees. - AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` +func (s *UnknownMonitorException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} - // The attribute that applies to a specific Dimension. - Attributes map[string]*string `type:"map"` +// Status code returns the HTTP status code for the request's response error. +func (s *UnknownMonitorException) StatusCode() int { + return s.RespMetadata.StatusCode +} - // The amount saved by using existing Savings Plans. Savings returns both net - // savings from savings plans as well as the onDemandCostEquivalent of the Savings - // Plans when considering the utilization rate. - Savings *SavingsPlansSavings `type:"structure"` +// RequestID returns the service's response RequestID for request. +func (s *UnknownMonitorException) RequestID() string { + return s.RespMetadata.RequestID +} - // The unique Amazon Resource Name (ARN) for a particular Savings Plan. - SavingsPlanArn *string `type:"string"` +// The cost anomaly subscription does not exist for the account. +type UnknownSubscriptionException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // A ratio of your effectiveness of using existing Savings Plans to apply to - // workloads that are Savings Plans eligible. - Utilization *SavingsPlansUtilization `type:"structure"` + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation -func (s SavingsPlansUtilizationDetail) String() string { +func (s UnknownSubscriptionException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s SavingsPlansUtilizationDetail) GoString() string { +func (s UnknownSubscriptionException) GoString() string { return s.String() } -// SetAmortizedCommitment sets the AmortizedCommitment field's value. -func (s *SavingsPlansUtilizationDetail) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationDetail { - s.AmortizedCommitment = v - return s +func newErrorUnknownSubscriptionException(v protocol.ResponseMetadata) error { + return &UnknownSubscriptionException{ + RespMetadata: v, + } } -// SetAttributes sets the Attributes field's value. -func (s *SavingsPlansUtilizationDetail) SetAttributes(v map[string]*string) *SavingsPlansUtilizationDetail { - s.Attributes = v - return s +// Code returns the exception type name. +func (s *UnknownSubscriptionException) Code() string { + return "UnknownSubscriptionException" } -// SetSavings sets the Savings field's value. -func (s *SavingsPlansUtilizationDetail) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationDetail { - s.Savings = v - return s +// Message returns the exception's message. +func (s *UnknownSubscriptionException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" } -// SetSavingsPlanArn sets the SavingsPlanArn field's value. -func (s *SavingsPlansUtilizationDetail) SetSavingsPlanArn(v string) *SavingsPlansUtilizationDetail { - s.SavingsPlanArn = &v - return s +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *UnknownSubscriptionException) OrigErr() error { + return nil } -// SetUtilization sets the Utilization field's value. -func (s *SavingsPlansUtilizationDetail) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationDetail { - s.Utilization = v - return s +func (s *UnknownSubscriptionException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -// You've reached the limit on the number of resources you can create, or exceeded -// the size of an individual resources. -type ServiceQuotaExceededException struct { +// Status code returns the HTTP status code for the request's response error. +func (s *UnknownSubscriptionException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *UnknownSubscriptionException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup +// filter selections that contain matching units, for example: hours. +type UnresolvableUsageUnitException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -8496,28 +10972,28 @@ type ServiceQuotaExceededException struct { } // String returns the string representation -func (s ServiceQuotaExceededException) String() string { +func (s UnresolvableUsageUnitException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ServiceQuotaExceededException) GoString() string { +func (s UnresolvableUsageUnitException) GoString() string { return s.String() } -func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { - return &ServiceQuotaExceededException{ +func newErrorUnresolvableUsageUnitException(v protocol.ResponseMetadata) error { + return &UnresolvableUsageUnitException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *ServiceQuotaExceededException) Code() string { - return "ServiceQuotaExceededException" +func (s *UnresolvableUsageUnitException) Code() string { + return "UnresolvableUsageUnitException" } // Message returns the exception's message. -func (s *ServiceQuotaExceededException) Message() string { +func (s *UnresolvableUsageUnitException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -8525,253 +11001,212 @@ func (s *ServiceQuotaExceededException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ServiceQuotaExceededException) OrigErr() error { +func (s *UnresolvableUsageUnitException) OrigErr() error { return nil } -func (s *ServiceQuotaExceededException) Error() string { +func (s *UnresolvableUsageUnitException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *ServiceQuotaExceededException) StatusCode() int { +func (s *UnresolvableUsageUnitException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *ServiceQuotaExceededException) RequestID() string { +func (s *UnresolvableUsageUnitException) RequestID() string { return s.RespMetadata.RequestID } -// Hardware specifications for the service that you want recommendations for. -type ServiceSpecification struct { +type UpdateAnomalyMonitorInput struct { _ struct{} `type:"structure"` - // The Amazon EC2 hardware specifications that you want AWS to provide recommendations - // for. - EC2Specification *EC2Specification `type:"structure"` + // Cost anomaly monitor Amazon Resource Names (ARNs). + // + // MonitorArn is a required field + MonitorArn *string `type:"string" required:"true"` + + // The new name for the cost anomaly monitor. + MonitorName *string `type:"string"` } // String returns the string representation -func (s ServiceSpecification) String() string { +func (s UpdateAnomalyMonitorInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ServiceSpecification) GoString() string { +func (s UpdateAnomalyMonitorInput) GoString() string { return s.String() } -// SetEC2Specification sets the EC2Specification field's value. -func (s *ServiceSpecification) SetEC2Specification(v *EC2Specification) *ServiceSpecification { - s.EC2Specification = v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAnomalyMonitorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAnomalyMonitorInput"} + if s.MonitorArn == nil { + invalidParams.Add(request.NewErrParamRequired("MonitorArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// The values that are available for a tag. -type TagValues struct { - _ struct{} `type:"structure"` +// SetMonitorArn sets the MonitorArn field's value. +func (s *UpdateAnomalyMonitorInput) SetMonitorArn(v string) *UpdateAnomalyMonitorInput { + s.MonitorArn = &v + return s +} - // The key for the tag. - Key *string `type:"string"` +// SetMonitorName sets the MonitorName field's value. +func (s *UpdateAnomalyMonitorInput) SetMonitorName(v string) *UpdateAnomalyMonitorInput { + s.MonitorName = &v + return s +} - // The match options that you can use to filter your results. MatchOptions is - // only applicable for only applicable for actions related to Cost Category. - // The default values for MatchOptions is EQUALS and CASE_SENSITIVE. - MatchOptions []*string `type:"list"` +type UpdateAnomalyMonitorOutput struct { + _ struct{} `type:"structure"` - // The specific value of the tag. - Values []*string `type:"list"` + // A cost anomaly monitor ARN. + // + // MonitorArn is a required field + MonitorArn *string `type:"string" required:"true"` } // String returns the string representation -func (s TagValues) String() string { +func (s UpdateAnomalyMonitorOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s TagValues) GoString() string { +func (s UpdateAnomalyMonitorOutput) GoString() string { return s.String() } -// SetKey sets the Key field's value. -func (s *TagValues) SetKey(v string) *TagValues { - s.Key = &v - return s -} - -// SetMatchOptions sets the MatchOptions field's value. -func (s *TagValues) SetMatchOptions(v []*string) *TagValues { - s.MatchOptions = v - return s -} - -// SetValues sets the Values field's value. -func (s *TagValues) SetValues(v []*string) *TagValues { - s.Values = v +// SetMonitorArn sets the MonitorArn field's value. +func (s *UpdateAnomalyMonitorOutput) SetMonitorArn(v string) *UpdateAnomalyMonitorOutput { + s.MonitorArn = &v return s } -// Details on recommended instance. -type TargetInstance struct { +type UpdateAnomalySubscriptionInput struct { _ struct{} `type:"structure"` - // The currency code that Amazon Web Services used to calculate the costs for - // this instance. - CurrencyCode *string `type:"string"` + // The update to the frequency value at which subscribers will receive notifications. + Frequency *string `type:"string" enum:"AnomalySubscriptionFrequency"` - // Indicates whether or not this recommendation is the defaulted Amazon Web - // Services recommendation. - DefaultTargetInstance *bool `type:"boolean"` + // A list of cost anomaly subscription ARNs. + MonitorArnList []*string `type:"list"` - // Expected cost to operate this instance type on a monthly basis. - EstimatedMonthlyCost *string `type:"string"` + // The update to the subscriber list. + Subscribers []*Subscriber `type:"list"` - // Estimated savings resulting from modification, on a monthly basis. - EstimatedMonthlySavings *string `type:"string"` + // A cost anomaly subscription Amazon Resource Name (ARN). + // + // SubscriptionArn is a required field + SubscriptionArn *string `type:"string" required:"true"` - // Expected utilization metrics for target instance type. - ExpectedResourceUtilization *ResourceUtilization `type:"structure"` + // The subscription's new name. + SubscriptionName *string `type:"string"` - // Details on the target instance type. - ResourceDetails *ResourceDetails `type:"structure"` + // The update to the threshold value for receiving notifications. + Threshold *float64 `type:"double"` } // String returns the string representation -func (s TargetInstance) String() string { +func (s UpdateAnomalySubscriptionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s TargetInstance) GoString() string { +func (s UpdateAnomalySubscriptionInput) GoString() string { return s.String() } -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *TargetInstance) SetCurrencyCode(v string) *TargetInstance { - s.CurrencyCode = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAnomalySubscriptionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAnomalySubscriptionInput"} + if s.SubscriptionArn == nil { + invalidParams.Add(request.NewErrParamRequired("SubscriptionArn")) + } + if s.Subscribers != nil { + for i, v := range s.Subscribers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams)) + } + } + } -// SetDefaultTargetInstance sets the DefaultTargetInstance field's value. -func (s *TargetInstance) SetDefaultTargetInstance(v bool) *TargetInstance { - s.DefaultTargetInstance = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. -func (s *TargetInstance) SetEstimatedMonthlyCost(v string) *TargetInstance { - s.EstimatedMonthlyCost = &v +// SetFrequency sets the Frequency field's value. +func (s *UpdateAnomalySubscriptionInput) SetFrequency(v string) *UpdateAnomalySubscriptionInput { + s.Frequency = &v return s } -// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. -func (s *TargetInstance) SetEstimatedMonthlySavings(v string) *TargetInstance { - s.EstimatedMonthlySavings = &v +// SetMonitorArnList sets the MonitorArnList field's value. +func (s *UpdateAnomalySubscriptionInput) SetMonitorArnList(v []*string) *UpdateAnomalySubscriptionInput { + s.MonitorArnList = v return s } -// SetExpectedResourceUtilization sets the ExpectedResourceUtilization field's value. -func (s *TargetInstance) SetExpectedResourceUtilization(v *ResourceUtilization) *TargetInstance { - s.ExpectedResourceUtilization = v +// SetSubscribers sets the Subscribers field's value. +func (s *UpdateAnomalySubscriptionInput) SetSubscribers(v []*Subscriber) *UpdateAnomalySubscriptionInput { + s.Subscribers = v return s } -// SetResourceDetails sets the ResourceDetails field's value. -func (s *TargetInstance) SetResourceDetails(v *ResourceDetails) *TargetInstance { - s.ResourceDetails = v +// SetSubscriptionArn sets the SubscriptionArn field's value. +func (s *UpdateAnomalySubscriptionInput) SetSubscriptionArn(v string) *UpdateAnomalySubscriptionInput { + s.SubscriptionArn = &v return s } -// Details on termination recommendation. -type TerminateRecommendationDetail struct { - _ struct{} `type:"structure"` - - // The currency code that Amazon Web Services used to calculate the costs for - // this instance. - CurrencyCode *string `type:"string"` - - // Estimated savings resulting from modification, on a monthly basis. - EstimatedMonthlySavings *string `type:"string"` -} - -// String returns the string representation -func (s TerminateRecommendationDetail) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TerminateRecommendationDetail) GoString() string { - return s.String() -} - -// SetCurrencyCode sets the CurrencyCode field's value. -func (s *TerminateRecommendationDetail) SetCurrencyCode(v string) *TerminateRecommendationDetail { - s.CurrencyCode = &v +// SetSubscriptionName sets the SubscriptionName field's value. +func (s *UpdateAnomalySubscriptionInput) SetSubscriptionName(v string) *UpdateAnomalySubscriptionInput { + s.SubscriptionName = &v return s } -// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. -func (s *TerminateRecommendationDetail) SetEstimatedMonthlySavings(v string) *TerminateRecommendationDetail { - s.EstimatedMonthlySavings = &v +// SetThreshold sets the Threshold field's value. +func (s *UpdateAnomalySubscriptionInput) SetThreshold(v float64) *UpdateAnomalySubscriptionInput { + s.Threshold = &v return s } -// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup -// filter selections that contain matching units, for example: hours. -type UnresolvableUsageUnitException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +type UpdateAnomalySubscriptionOutput struct { + _ struct{} `type:"structure"` - Message_ *string `locationName:"Message" type:"string"` + // A cost anomaly subscription ARN. + // + // SubscriptionArn is a required field + SubscriptionArn *string `type:"string" required:"true"` } // String returns the string representation -func (s UnresolvableUsageUnitException) String() string { +func (s UpdateAnomalySubscriptionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s UnresolvableUsageUnitException) GoString() string { +func (s UpdateAnomalySubscriptionOutput) GoString() string { return s.String() } -func newErrorUnresolvableUsageUnitException(v protocol.ResponseMetadata) error { - return &UnresolvableUsageUnitException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnresolvableUsageUnitException) Code() string { - return "UnresolvableUsageUnitException" -} - -// Message returns the exception's message. -func (s *UnresolvableUsageUnitException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnresolvableUsageUnitException) OrigErr() error { - return nil -} - -func (s *UnresolvableUsageUnitException) 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 *UnresolvableUsageUnitException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnresolvableUsageUnitException) RequestID() string { - return s.RespMetadata.RequestID +// SetSubscriptionArn sets the SubscriptionArn field's value. +func (s *UpdateAnomalySubscriptionOutput) SetSubscriptionArn(v string) *UpdateAnomalySubscriptionOutput { + s.SubscriptionArn = &v + return s } type UpdateCostCategoryDefinitionInput struct { @@ -8947,6 +11382,46 @@ func AccountScope_Values() []string { } } +const ( + // AnomalyFeedbackTypeYes is a AnomalyFeedbackType enum value + AnomalyFeedbackTypeYes = "YES" + + // AnomalyFeedbackTypeNo is a AnomalyFeedbackType enum value + AnomalyFeedbackTypeNo = "NO" + + // AnomalyFeedbackTypePlannedActivity is a AnomalyFeedbackType enum value + AnomalyFeedbackTypePlannedActivity = "PLANNED_ACTIVITY" +) + +// AnomalyFeedbackType_Values returns all elements of the AnomalyFeedbackType enum +func AnomalyFeedbackType_Values() []string { + return []string{ + AnomalyFeedbackTypeYes, + AnomalyFeedbackTypeNo, + AnomalyFeedbackTypePlannedActivity, + } +} + +const ( + // AnomalySubscriptionFrequencyDaily is a AnomalySubscriptionFrequency enum value + AnomalySubscriptionFrequencyDaily = "DAILY" + + // AnomalySubscriptionFrequencyImmediate is a AnomalySubscriptionFrequency enum value + AnomalySubscriptionFrequencyImmediate = "IMMEDIATE" + + // AnomalySubscriptionFrequencyWeekly is a AnomalySubscriptionFrequency enum value + AnomalySubscriptionFrequencyWeekly = "WEEKLY" +) + +// AnomalySubscriptionFrequency_Values returns all elements of the AnomalySubscriptionFrequency enum +func AnomalySubscriptionFrequency_Values() []string { + return []string{ + AnomalySubscriptionFrequencyDaily, + AnomalySubscriptionFrequencyImmediate, + AnomalySubscriptionFrequencyWeekly, + } +} + const ( // ContextCostAndUsage is a Context enum value ContextCostAndUsage = "COST_AND_USAGE" @@ -9232,6 +11707,66 @@ func Metric_Values() []string { } } +const ( + // MonitorDimensionService is a MonitorDimension enum value + MonitorDimensionService = "SERVICE" +) + +// MonitorDimension_Values returns all elements of the MonitorDimension enum +func MonitorDimension_Values() []string { + return []string{ + MonitorDimensionService, + } +} + +const ( + // MonitorTypeDimensional is a MonitorType enum value + MonitorTypeDimensional = "DIMENSIONAL" + + // MonitorTypeCustom is a MonitorType enum value + MonitorTypeCustom = "CUSTOM" +) + +// MonitorType_Values returns all elements of the MonitorType enum +func MonitorType_Values() []string { + return []string{ + MonitorTypeDimensional, + MonitorTypeCustom, + } +} + +const ( + // NumericOperatorEqual is a NumericOperator enum value + NumericOperatorEqual = "EQUAL" + + // NumericOperatorGreaterThanOrEqual is a NumericOperator enum value + NumericOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL" + + // NumericOperatorLessThanOrEqual is a NumericOperator enum value + NumericOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL" + + // NumericOperatorGreaterThan is a NumericOperator enum value + NumericOperatorGreaterThan = "GREATER_THAN" + + // NumericOperatorLessThan is a NumericOperator enum value + NumericOperatorLessThan = "LESS_THAN" + + // NumericOperatorBetween is a NumericOperator enum value + NumericOperatorBetween = "BETWEEN" +) + +// NumericOperator_Values returns all elements of the NumericOperator enum +func NumericOperator_Values() []string { + return []string{ + NumericOperatorEqual, + NumericOperatorGreaterThanOrEqual, + NumericOperatorLessThanOrEqual, + NumericOperatorGreaterThan, + NumericOperatorLessThan, + NumericOperatorBetween, + } +} + const ( // OfferingClassStandard is a OfferingClass enum value OfferingClassStandard = "STANDARD" @@ -9312,6 +11847,38 @@ func RightsizingType_Values() []string { } } +const ( + // SubscriberStatusConfirmed is a SubscriberStatus enum value + SubscriberStatusConfirmed = "CONFIRMED" + + // SubscriberStatusDeclined is a SubscriberStatus enum value + SubscriberStatusDeclined = "DECLINED" +) + +// SubscriberStatus_Values returns all elements of the SubscriberStatus enum +func SubscriberStatus_Values() []string { + return []string{ + SubscriberStatusConfirmed, + SubscriberStatusDeclined, + } +} + +const ( + // SubscriberTypeEmail is a SubscriberType enum value + SubscriberTypeEmail = "EMAIL" + + // SubscriberTypeSns is a SubscriberType enum value + SubscriberTypeSns = "SNS" +) + +// SubscriberType_Values returns all elements of the SubscriberType enum +func SubscriberType_Values() []string { + return []string{ + SubscriberTypeEmail, + SubscriberTypeSns, + } +} + const ( // SupportedSavingsPlansTypeComputeSp is a SupportedSavingsPlansType enum value SupportedSavingsPlansTypeComputeSp = "COMPUTE_SP" diff --git a/service/costexplorer/costexploreriface/interface.go b/service/costexplorer/costexploreriface/interface.go index ffcf3446141..6bef73b6f6a 100644 --- a/service/costexplorer/costexploreriface/interface.go +++ b/service/costexplorer/costexploreriface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS Cost Explorer Service. // func myFunc(svc costexploreriface.CostExplorerAPI) bool { -// // Make svc.CreateCostCategoryDefinition request +// // Make svc.CreateAnomalyMonitor request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockCostExplorerClient struct { // costexploreriface.CostExplorerAPI // } -// func (m *mockCostExplorerClient) CreateCostCategoryDefinition(input *costexplorer.CreateCostCategoryDefinitionInput) (*costexplorer.CreateCostCategoryDefinitionOutput, error) { +// func (m *mockCostExplorerClient) CreateAnomalyMonitor(input *costexplorer.CreateAnomalyMonitorInput) (*costexplorer.CreateAnomalyMonitorOutput, error) { // // mock response/functionality // } // @@ -60,10 +60,26 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type CostExplorerAPI interface { + CreateAnomalyMonitor(*costexplorer.CreateAnomalyMonitorInput) (*costexplorer.CreateAnomalyMonitorOutput, error) + CreateAnomalyMonitorWithContext(aws.Context, *costexplorer.CreateAnomalyMonitorInput, ...request.Option) (*costexplorer.CreateAnomalyMonitorOutput, error) + CreateAnomalyMonitorRequest(*costexplorer.CreateAnomalyMonitorInput) (*request.Request, *costexplorer.CreateAnomalyMonitorOutput) + + CreateAnomalySubscription(*costexplorer.CreateAnomalySubscriptionInput) (*costexplorer.CreateAnomalySubscriptionOutput, error) + CreateAnomalySubscriptionWithContext(aws.Context, *costexplorer.CreateAnomalySubscriptionInput, ...request.Option) (*costexplorer.CreateAnomalySubscriptionOutput, error) + CreateAnomalySubscriptionRequest(*costexplorer.CreateAnomalySubscriptionInput) (*request.Request, *costexplorer.CreateAnomalySubscriptionOutput) + CreateCostCategoryDefinition(*costexplorer.CreateCostCategoryDefinitionInput) (*costexplorer.CreateCostCategoryDefinitionOutput, error) CreateCostCategoryDefinitionWithContext(aws.Context, *costexplorer.CreateCostCategoryDefinitionInput, ...request.Option) (*costexplorer.CreateCostCategoryDefinitionOutput, error) CreateCostCategoryDefinitionRequest(*costexplorer.CreateCostCategoryDefinitionInput) (*request.Request, *costexplorer.CreateCostCategoryDefinitionOutput) + DeleteAnomalyMonitor(*costexplorer.DeleteAnomalyMonitorInput) (*costexplorer.DeleteAnomalyMonitorOutput, error) + DeleteAnomalyMonitorWithContext(aws.Context, *costexplorer.DeleteAnomalyMonitorInput, ...request.Option) (*costexplorer.DeleteAnomalyMonitorOutput, error) + DeleteAnomalyMonitorRequest(*costexplorer.DeleteAnomalyMonitorInput) (*request.Request, *costexplorer.DeleteAnomalyMonitorOutput) + + DeleteAnomalySubscription(*costexplorer.DeleteAnomalySubscriptionInput) (*costexplorer.DeleteAnomalySubscriptionOutput, error) + DeleteAnomalySubscriptionWithContext(aws.Context, *costexplorer.DeleteAnomalySubscriptionInput, ...request.Option) (*costexplorer.DeleteAnomalySubscriptionOutput, error) + DeleteAnomalySubscriptionRequest(*costexplorer.DeleteAnomalySubscriptionInput) (*request.Request, *costexplorer.DeleteAnomalySubscriptionOutput) + DeleteCostCategoryDefinition(*costexplorer.DeleteCostCategoryDefinitionInput) (*costexplorer.DeleteCostCategoryDefinitionOutput, error) DeleteCostCategoryDefinitionWithContext(aws.Context, *costexplorer.DeleteCostCategoryDefinitionInput, ...request.Option) (*costexplorer.DeleteCostCategoryDefinitionOutput, error) DeleteCostCategoryDefinitionRequest(*costexplorer.DeleteCostCategoryDefinitionInput) (*request.Request, *costexplorer.DeleteCostCategoryDefinitionOutput) @@ -72,6 +88,18 @@ type CostExplorerAPI interface { DescribeCostCategoryDefinitionWithContext(aws.Context, *costexplorer.DescribeCostCategoryDefinitionInput, ...request.Option) (*costexplorer.DescribeCostCategoryDefinitionOutput, error) DescribeCostCategoryDefinitionRequest(*costexplorer.DescribeCostCategoryDefinitionInput) (*request.Request, *costexplorer.DescribeCostCategoryDefinitionOutput) + GetAnomalies(*costexplorer.GetAnomaliesInput) (*costexplorer.GetAnomaliesOutput, error) + GetAnomaliesWithContext(aws.Context, *costexplorer.GetAnomaliesInput, ...request.Option) (*costexplorer.GetAnomaliesOutput, error) + GetAnomaliesRequest(*costexplorer.GetAnomaliesInput) (*request.Request, *costexplorer.GetAnomaliesOutput) + + GetAnomalyMonitors(*costexplorer.GetAnomalyMonitorsInput) (*costexplorer.GetAnomalyMonitorsOutput, error) + GetAnomalyMonitorsWithContext(aws.Context, *costexplorer.GetAnomalyMonitorsInput, ...request.Option) (*costexplorer.GetAnomalyMonitorsOutput, error) + GetAnomalyMonitorsRequest(*costexplorer.GetAnomalyMonitorsInput) (*request.Request, *costexplorer.GetAnomalyMonitorsOutput) + + GetAnomalySubscriptions(*costexplorer.GetAnomalySubscriptionsInput) (*costexplorer.GetAnomalySubscriptionsOutput, error) + GetAnomalySubscriptionsWithContext(aws.Context, *costexplorer.GetAnomalySubscriptionsInput, ...request.Option) (*costexplorer.GetAnomalySubscriptionsOutput, error) + GetAnomalySubscriptionsRequest(*costexplorer.GetAnomalySubscriptionsInput) (*request.Request, *costexplorer.GetAnomalySubscriptionsOutput) + GetCostAndUsage(*costexplorer.GetCostAndUsageInput) (*costexplorer.GetCostAndUsageOutput, error) GetCostAndUsageWithContext(aws.Context, *costexplorer.GetCostAndUsageInput, ...request.Option) (*costexplorer.GetCostAndUsageOutput, error) GetCostAndUsageRequest(*costexplorer.GetCostAndUsageInput) (*request.Request, *costexplorer.GetCostAndUsageOutput) @@ -141,6 +169,18 @@ type CostExplorerAPI interface { ListCostCategoryDefinitionsPages(*costexplorer.ListCostCategoryDefinitionsInput, func(*costexplorer.ListCostCategoryDefinitionsOutput, bool) bool) error ListCostCategoryDefinitionsPagesWithContext(aws.Context, *costexplorer.ListCostCategoryDefinitionsInput, func(*costexplorer.ListCostCategoryDefinitionsOutput, bool) bool, ...request.Option) error + ProvideAnomalyFeedback(*costexplorer.ProvideAnomalyFeedbackInput) (*costexplorer.ProvideAnomalyFeedbackOutput, error) + ProvideAnomalyFeedbackWithContext(aws.Context, *costexplorer.ProvideAnomalyFeedbackInput, ...request.Option) (*costexplorer.ProvideAnomalyFeedbackOutput, error) + ProvideAnomalyFeedbackRequest(*costexplorer.ProvideAnomalyFeedbackInput) (*request.Request, *costexplorer.ProvideAnomalyFeedbackOutput) + + UpdateAnomalyMonitor(*costexplorer.UpdateAnomalyMonitorInput) (*costexplorer.UpdateAnomalyMonitorOutput, error) + UpdateAnomalyMonitorWithContext(aws.Context, *costexplorer.UpdateAnomalyMonitorInput, ...request.Option) (*costexplorer.UpdateAnomalyMonitorOutput, error) + UpdateAnomalyMonitorRequest(*costexplorer.UpdateAnomalyMonitorInput) (*request.Request, *costexplorer.UpdateAnomalyMonitorOutput) + + UpdateAnomalySubscription(*costexplorer.UpdateAnomalySubscriptionInput) (*costexplorer.UpdateAnomalySubscriptionOutput, error) + UpdateAnomalySubscriptionWithContext(aws.Context, *costexplorer.UpdateAnomalySubscriptionInput, ...request.Option) (*costexplorer.UpdateAnomalySubscriptionOutput, error) + UpdateAnomalySubscriptionRequest(*costexplorer.UpdateAnomalySubscriptionInput) (*request.Request, *costexplorer.UpdateAnomalySubscriptionOutput) + UpdateCostCategoryDefinition(*costexplorer.UpdateCostCategoryDefinitionInput) (*costexplorer.UpdateCostCategoryDefinitionOutput, error) UpdateCostCategoryDefinitionWithContext(aws.Context, *costexplorer.UpdateCostCategoryDefinitionInput, ...request.Option) (*costexplorer.UpdateCostCategoryDefinitionOutput, error) UpdateCostCategoryDefinitionRequest(*costexplorer.UpdateCostCategoryDefinitionInput) (*request.Request, *costexplorer.UpdateCostCategoryDefinitionOutput) diff --git a/service/costexplorer/errors.go b/service/costexplorer/errors.go index 27fd874c48c..452f0cec335 100644 --- a/service/costexplorer/errors.go +++ b/service/costexplorer/errors.go @@ -49,9 +49,21 @@ const ( // "ServiceQuotaExceededException". // // You've reached the limit on the number of resources you can create, or exceeded - // the size of an individual resources. + // the size of an individual resource. ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + // ErrCodeUnknownMonitorException for service response error code + // "UnknownMonitorException". + // + // The cost anomaly monitor does not exist for the account. + ErrCodeUnknownMonitorException = "UnknownMonitorException" + + // ErrCodeUnknownSubscriptionException for service response error code + // "UnknownSubscriptionException". + // + // The cost anomaly subscription does not exist for the account. + ErrCodeUnknownSubscriptionException = "UnknownSubscriptionException" + // ErrCodeUnresolvableUsageUnitException for service response error code // "UnresolvableUsageUnitException". // @@ -68,5 +80,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "RequestChangedException": newErrorRequestChangedException, "ResourceNotFoundException": newErrorResourceNotFoundException, "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "UnknownMonitorException": newErrorUnknownMonitorException, + "UnknownSubscriptionException": newErrorUnknownSubscriptionException, "UnresolvableUsageUnitException": newErrorUnresolvableUsageUnitException, } diff --git a/service/quicksight/api.go b/service/quicksight/api.go index 099038bcc89..a5f3cb6001a 100644 --- a/service/quicksight/api.go +++ b/service/quicksight/api.go @@ -166,10 +166,13 @@ func (c *QuickSight) CreateAccountCustomizationRequest(input *CreateAccountCusto // always override customizations that apply to an AWS account. To find out // which customizations apply, use the DescribeAccountCustomization API operation. // -// Before you add a theme as the namespace default, make sure that you first -// share the theme with the namespace. If you don't share it with the namespace, -// the theme won't be visible to your users even if you use this API operation -// to make it the default theme. +// Before you use the CreateAccountCustomization API operation to add a theme +// as the namespace default, make sure that you first share the theme with the +// namespace. If you don't share it with the namespace, the theme isn't visible +// to your users even if you make it the default theme. To check if the theme +// is shared, view the current permissions by using the DescribeThemePermissions +// API operation. To share the theme, grant permissions by using the UpdateThemePermissions +// API operation. // // 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 @@ -1670,7 +1673,7 @@ func (c *QuickSight) DeleteAccountCustomizationRequest(input *DeleteAccountCusto // DeleteAccountCustomization API operation for Amazon QuickSight. // // Deletes all Amazon QuickSight customizations in this AWS Region for the specified -// AWS Account and QuickSight namespace. +// AWS account and QuickSight namespace. // // 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 @@ -3190,7 +3193,7 @@ func (c *QuickSight) DescribeAccountCustomizationRequest(input *DescribeAccountC // * AWS Account - The AWS account exists at the top of the hierarchy. It // has the potential to use all of the AWS Regions and AWS Services. When // you subscribe to QuickSight, you choose one AWS Region to use as your -// home region. That's where your free SPICE capacity is located. You can +// home Region. That's where your free SPICE capacity is located. You can // use QuickSight in any supported AWS Region. // // * AWS Region - In each AWS Region where you sign in to QuickSight at least @@ -3198,7 +3201,7 @@ func (c *QuickSight) DescribeAccountCustomizationRequest(input *DescribeAccountC // have a user directory, it resides in us-east-1, which is the US East (N. // Virginia). Generally speaking, these users have access to QuickSight in // any AWS Region, unless they are constrained to a namespace. To run the -// command in a different AWS Region, you change your region settings. If +// command in a different AWS Region, you change your Region settings. If // you're using the AWS CLI, you can use one of the following options: Use // command line options (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html). // Use named profiles (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html). @@ -3215,7 +3218,7 @@ func (c *QuickSight) DescribeAccountCustomizationRequest(input *DescribeAccountC // // * Applied customizations - Within an AWS Region, a set of QuickSight customizations // can apply to an AWS account or to a namespace. Settings that you apply -// to a namespace override settings that you apply to an AWS Account. All +// to a namespace override settings that you apply to an AWS account. All // settings are isolated to a single AWS Region. To apply them in other AWS // Regions, run the CreateAccountCustomization command in each AWS Region // where you want to apply the same customizations. @@ -3317,7 +3320,7 @@ func (c *QuickSight) DescribeAccountSettingsRequest(input *DescribeAccountSettin // DescribeAccountSettings API operation for Amazon QuickSight. // // Describes the settings that were used when your QuickSight subscription was -// first created in this AWS Account. +// first created in this 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 @@ -8947,7 +8950,7 @@ func (c *QuickSight) UpdateAccountSettingsRequest(input *UpdateAccountSettingsIn // UpdateAccountSettings API operation for Amazon QuickSight. // -// Updates the Amazon QuickSight settings in your AWS Account. +// Updates the Amazon QuickSight settings 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 @@ -11086,6 +11089,10 @@ type Analysis struct { // The descriptive name of the analysis. Name *string `min:"1" type:"string"` + // A list of the associated sheets with the unique identifier and name of each + // sheet. + Sheets []*Sheet `type:"list"` + // Status associated with the analysis. Status *string `type:"string" enum:"ResourceStatus"` @@ -11145,6 +11152,12 @@ func (s *Analysis) SetName(v string) *Analysis { return s } +// SetSheets sets the Sheets field's value. +func (s *Analysis) SetSheets(v []*Sheet) *Analysis { + s.Sheets = v + return s +} + // SetStatus sets the Status field's value. func (s *Analysis) SetStatus(v string) *Analysis { s.Status = &v @@ -12223,10 +12236,10 @@ type CreateAccountCustomizationInput struct { // The QuickSight customizations you're adding in the current AWS Region. You // can add these to an AWS account and a QuickSight namespace. // - // For example, you could add a default theme by setting AccountCustomization + // For example, you can add a default theme by setting AccountCustomization // to the midnight theme: "AccountCustomization": { "DefaultTheme": "arn:aws:quicksight::aws:theme/MIDNIGHT" - // }. . Or, you could add a custom theme by specifying "AccountCustomization": - // { "DefaultTheme": "arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639" + // }. Or, you can add a custom theme by specifying "AccountCustomization": { + // "DefaultTheme": "arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639" // }. // // AccountCustomization is a required field @@ -15603,6 +15616,10 @@ type DashboardVersion struct { // Errors associated with this dashboard version. Errors []*DashboardError `min:"1" type:"list"` + // A list of the associated sheets with the unique identifier and name of each + // sheet. + Sheets []*Sheet `type:"list"` + // Source entity ARN. SourceEntityArn *string `type:"string"` @@ -15656,6 +15673,12 @@ func (s *DashboardVersion) SetErrors(v []*DashboardError) *DashboardVersion { return s } +// SetSheets sets the Sheets field's value. +func (s *DashboardVersion) SetSheets(v []*Sheet) *DashboardVersion { + s.Sheets = v + return s +} + // SetSourceEntityArn sets the SourceEntityArn field's value. func (s *DashboardVersion) SetSourceEntityArn(v string) *DashboardVersion { s.SourceEntityArn = &v @@ -18657,7 +18680,7 @@ type DescribeAccountSettingsOutput struct { // The QuickSight settings for this AWS account. This information includes the // edition of Amazon QuickSight that you subscribed to (Standard or Enterprise) - // and the notification email for the QuickSight subscription. The QuickSight + // and the notification email for the QuickSight subscription. In the QuickSight // console, the QuickSight subscription is sometimes referred to as a QuickSight // "account" even though it's technically not an account by itself. Instead, // it's a subscription to the QuickSight service for your AWS account. The edition @@ -27269,6 +27292,44 @@ func (s *SessionLifetimeInMinutesInvalidException) RequestID() string { return s.RespMetadata.RequestID } +// A sheet is an object that contains a set of visuals that are viewed together +// on one page in the Amazon QuickSight console. Every analysis and dashboard +// contains at least one sheet. Each sheet contains at least one visualization +// widget, for example a chart, pivot table, or narrative insight. Sheets can +// be associated with other components, such as controls, filters, and so on. +type Sheet struct { + _ struct{} `type:"structure"` + + // The name of a sheet. This is displayed on the sheet's tab in the QuickSight + // console. + Name *string `type:"string"` + + // The unique identifier associated with a sheet. + SheetId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Sheet) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Sheet) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *Sheet) SetName(v string) *Sheet { + s.Name = &v + return s +} + +// SetSheetId sets the SheetId field's value. +func (s *Sheet) SetSheetId(v string) *Sheet { + s.SheetId = &v + return s +} + // Sheet controls option. type SheetControlsOption struct { _ struct{} `type:"structure"` @@ -28232,6 +28293,10 @@ type TemplateVersion struct { // Errors associated with this template version. Errors []*TemplateError `min:"1" type:"list"` + // A list of the associated sheets with the unique identifier and name of each + // sheet. + Sheets []*Sheet `type:"list"` + // The Amazon Resource Name (ARN) of an analysis or template that was used to // create this template. SourceEntityArn *string `type:"string"` @@ -28280,6 +28345,12 @@ func (s *TemplateVersion) SetErrors(v []*TemplateError) *TemplateVersion { return s } +// SetSheets sets the Sheets field's value. +func (s *TemplateVersion) SetSheets(v []*Sheet) *TemplateVersion { + s.Sheets = v + return s +} + // SetSourceEntityArn sets the SourceEntityArn field's value. func (s *TemplateVersion) SetSourceEntityArn(v string) *TemplateVersion { s.SourceEntityArn = &v @@ -29612,9 +29683,10 @@ type UpdateAccountSettingsInput struct { // AwsAccountId is a required field AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` - // The default namespace for this AWS Account. Currently, the default is default. - // IAM users who register for the first time with QuickSight provide an email - // that becomes associated with the default namespace. + // The default namespace for this AWS account. Currently, the default is default. + // AWS Identity and Access Management (IAM) users that register for the first + // time with QuickSight provide an email that becomes associated with the default + // namespace. // // DefaultNamespace is a required field DefaultNamespace *string `type:"string" required:"true"` diff --git a/service/translate/api.go b/service/translate/api.go index e4bc4acbd65..382ae1a6b68 100644 --- a/service/translate/api.go +++ b/service/translate/api.go @@ -77,6 +77,10 @@ func (c *Translate) DeleteTerminologyRequest(input *DeleteTerminologyInput) (req // You have made too many requests within a short period of time. Wait for a // short time and then try your request again. // +// * InvalidParameterValueException +// The value of the parameter is invalid. Review the value of the parameter +// you are using to correct it, and then retry your operation. +// // * InternalServerException // An internal server error occurred. Retry your request. // @@ -1488,8 +1492,30 @@ func (s *ImportTerminologyOutput) SetTerminologyProperties(v *TerminologyPropert type InputDataConfig struct { _ struct{} `type:"structure"` - // The multipurpose internet mail extension (MIME) type of the input files. - // Valid values are text/plain for plaintext files and text/html for HTML files. + // Describes the format of the data that you submit to Amazon Translate as input. + // You can specify one of the following multipurpose internet mail extension + // (MIME) types: + // + // * text/html: The input data consists of one or more HTML files. Amazon + // Translate translates only the text that resides in the html element in + // each file. + // + // * text/plain: The input data consists of one or more unformatted text + // files. Amazon Translate translates every character in this type of input. + // + // * application/vnd.openxmlformats-officedocument.wordprocessingml.document: + // The input data consists of one or more Word documents (.docx). + // + // * application/vnd.openxmlformats-officedocument.presentationml.presentation: + // The input data consists of one or more PowerPoint Presentation files (.pptx). + // + // * application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: The + // input data consists of one or more Excel Workbook files (.xlsx). + // + // If you structure your input data as HTML, ensure that you set this parameter + // to text/html. By doing so, you cut costs by limiting the translation to the + // contents of the html element in each file. Otherwise, if you set this parameter + // to text/plain, your costs will cover the translation of every character. // // ContentType is a required field ContentType *string `type:"string" required:"true"` @@ -2198,12 +2224,8 @@ func (s *ServiceUnavailableException) RequestID() string { type StartTextTranslationJobInput struct { _ struct{} `type:"structure"` - // The client token of the EC2 instance calling the request. This token is auto-generated - // when using the Amazon Translate SDK. Otherwise, use the DescribeInstances - // (docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) - // EC2 operation to retreive an instance's client token. For more information, - // see Client Tokens (docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html#client-tokens) - // in the EC2 User Guide. + // A unique identifier for the request. This token is auto-generated when using + // the Amazon Translate SDK. ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` // The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) @@ -2369,7 +2391,7 @@ type StartTextTranslationJobOutput struct { // // * COMPLETED - The job was successfully completed and the output is available. // - // * COMPLETED_WITH_ERRORS - The job was completed with errors. The errors + // * COMPLETED_WITH_ERROR - The job was completed with errors. The errors // can be analyzed in the job's output. // // * FAILED - The job did not complete. To get details, use the DescribeTextTranslationJob @@ -2610,7 +2632,7 @@ type TerminologyProperties struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the custom terminology. - Arn *string `type:"string"` + Arn *string `min:"1" type:"string"` // The time at which the custom terminology was created, based on the timestamp. CreatedAt *time.Time `type:"timestamp"`