RecommendationPreferences class

Manages AWS Compute Optimizer recommendation preferences.

Example Usage

Lookback Period Preference

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.computeoptimizer.RecommendationPreferences("example", {
    scope: {
        name: "AccountId",
        value: "123456789012",
    },
    resourceType: "Ec2Instance",
    lookBackPeriod: "DAYS_32",
});
import pulumi
import pulumi_aws as aws

example = aws.computeoptimizer.RecommendationPreferences("example",
    scope={
        "name": "AccountId",
        "value": "123456789012",
    },
    resource_type="Ec2Instance",
    look_back_period="DAYS_32")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = new Aws.ComputeOptimizer.RecommendationPreferences("example", new()
    {
        Scope = new Aws.ComputeOptimizer.Inputs.RecommendationPreferencesScopeArgs
        {
            Name = "AccountId",
            Value = "123456789012",
        },
        ResourceType = "Ec2Instance",
        LookBackPeriod = "DAYS_32",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/computeoptimizer"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := computeoptimizer.NewRecommendationPreferences(ctx, "example", &computeoptimizer.RecommendationPreferencesArgs{
			Scope: &computeoptimizer.RecommendationPreferencesScopeArgs{
				Name:  pulumi.String("AccountId"),
				Value: pulumi.String("123456789012"),
			},
			ResourceType:   pulumi.String("Ec2Instance"),
			LookBackPeriod: pulumi.String("DAYS_32"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

resource "aws_computeoptimizer_recommendationpreferences" "example" {
  scope = {
    name  = "AccountId"
    value = "123456789012"
  }
  resource_type    = "Ec2Instance"
  look_back_period = "DAYS_32"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.computeoptimizer.RecommendationPreferences;
import com.pulumi.aws.computeoptimizer.RecommendationPreferencesArgs;
import com.pulumi.aws.computeoptimizer.inputs.RecommendationPreferencesScopeArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RecommendationPreferences("example", RecommendationPreferencesArgs.builder()
            .scope(RecommendationPreferencesScopeArgs.builder()
                .name("AccountId")
                .value("123456789012")
                .build())
            .resourceType("Ec2Instance")
            .lookBackPeriod("DAYS_32")
            .build());

    }
}
resources:
  example:
    type: aws:computeoptimizer:RecommendationPreferences
    properties:
      scope:
        name: AccountId
        value: '123456789012'
      resourceType: Ec2Instance
      lookBackPeriod: DAYS_32

Multiple Preferences

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.computeoptimizer.RecommendationPreferences("example", {
    scope: {
        name: "AccountId",
        value: "123456789012",
    },
    externalMetricsPreference: {
        source: "Datadog",
    },
    preferredResources: [{
        includeLists: [
            "m5.xlarge",
            "r5",
        ],
        name: "Ec2InstanceTypes",
    }],
    resourceType: "Ec2Instance",
    enhancedInfrastructureMetrics: "Active",
});
import pulumi
import pulumi_aws as aws

example = aws.computeoptimizer.RecommendationPreferences("example",
    scope={
        "name": "AccountId",
        "value": "123456789012",
    },
    external_metrics_preference={
        "source": "Datadog",
    },
    preferred_resources=[{
        "include_lists": [
            "m5.xlarge",
            "r5",
        ],
        "name": "Ec2InstanceTypes",
    }],
    resource_type="Ec2Instance",
    enhanced_infrastructure_metrics="Active")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = new Aws.ComputeOptimizer.RecommendationPreferences("example", new()
    {
        Scope = new Aws.ComputeOptimizer.Inputs.RecommendationPreferencesScopeArgs
        {
            Name = "AccountId",
            Value = "123456789012",
        },
        ExternalMetricsPreference = new Aws.ComputeOptimizer.Inputs.RecommendationPreferencesExternalMetricsPreferenceArgs
        {
            Source = "Datadog",
        },
        PreferredResources = new[]
        {
            new Aws.ComputeOptimizer.Inputs.RecommendationPreferencesPreferredResourceArgs
            {
                IncludeLists = new[]
                {
                    "m5.xlarge",
                    "r5",
                },
                Name = "Ec2InstanceTypes",
            },
        },
        ResourceType = "Ec2Instance",
        EnhancedInfrastructureMetrics = "Active",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/computeoptimizer"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := computeoptimizer.NewRecommendationPreferences(ctx, "example", &computeoptimizer.RecommendationPreferencesArgs{
			Scope: &computeoptimizer.RecommendationPreferencesScopeArgs{
				Name:  pulumi.String("AccountId"),
				Value: pulumi.String("123456789012"),
			},
			ExternalMetricsPreference: &computeoptimizer.RecommendationPreferencesExternalMetricsPreferenceArgs{
				Source: pulumi.String("Datadog"),
			},
			PreferredResources: computeoptimizer.RecommendationPreferencesPreferredResourceArray{
				&computeoptimizer.RecommendationPreferencesPreferredResourceArgs{
					IncludeLists: pulumi.StringArray{
						pulumi.String("m5.xlarge"),
						pulumi.String("r5"),
					},
					Name: pulumi.String("Ec2InstanceTypes"),
				},
			},
			ResourceType:                  pulumi.String("Ec2Instance"),
			EnhancedInfrastructureMetrics: pulumi.String("Active"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

resource "aws_computeoptimizer_recommendationpreferences" "example" {
  scope = {
    name  = "AccountId"
    value = "123456789012"
  }
  external_metrics_preference = {
    source = "Datadog"
  }
  preferred_resources {
    include_lists = ["m5.xlarge", "r5"]
    name          = "Ec2InstanceTypes"
  }
  resource_type                   = "Ec2Instance"
  enhanced_infrastructure_metrics = "Active"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.computeoptimizer.RecommendationPreferences;
import com.pulumi.aws.computeoptimizer.RecommendationPreferencesArgs;
import com.pulumi.aws.computeoptimizer.inputs.RecommendationPreferencesScopeArgs;
import com.pulumi.aws.computeoptimizer.inputs.RecommendationPreferencesExternalMetricsPreferenceArgs;
import com.pulumi.aws.computeoptimizer.inputs.RecommendationPreferencesPreferredResourceArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RecommendationPreferences("example", RecommendationPreferencesArgs.builder()
            .scope(RecommendationPreferencesScopeArgs.builder()
                .name("AccountId")
                .value("123456789012")
                .build())
            .externalMetricsPreference(RecommendationPreferencesExternalMetricsPreferenceArgs.builder()
                .source("Datadog")
                .build())
            .preferredResources(RecommendationPreferencesPreferredResourceArgs.builder()
                .includeLists(
                    "m5.xlarge",
                    "r5")
                .name("Ec2InstanceTypes")
                .build())
            .resourceType("Ec2Instance")
            .enhancedInfrastructureMetrics("Active")
            .build());

    }
}
resources:
  example:
    type: aws:computeoptimizer:RecommendationPreferences
    properties:
      scope:
        name: AccountId
        value: '123456789012'
      externalMetricsPreference:
        source: Datadog
      preferredResources:
        - includeLists:
            - m5.xlarge
            - r5
          name: Ec2InstanceTypes
      resourceType: Ec2Instance
      enhancedInfrastructureMetrics: Active

Import

Using pulumi import, import recommendation preferences using the resource type, scope name and scope value. For example:

$ pulumi import aws:computeoptimizer/recommendationPreferences:RecommendationPreferences example Ec2Instance,AccountId,123456789012

Constructors

RecommendationPreferences(String name, {RecommendationPreferencesArgs? args, CustomResourceOptions? options})
Creates a new RecommendationPreferences. name The Pulumi resource name. args Arguments used to configure this RecommendationPreferences. The set of arguments for RecommendationPreferences. options Resource options controlling this resource's behavior.
RecommendationPreferences.reference(String urn)
Creates a typed reference to an existing RecommendationPreferences resource.

Properties

childResources → Set<Resource>
finalinherited
completionSources ↔ Map<String, IOutputCompletionSource>
latefinalinherited
enhancedInfrastructureMetrics ↔ Output<String?>
The status of the enhanced infrastructure metrics recommendation preference. Valid values: Active, Inactive.
latefinal
externalMetricsPreference ↔ Output<RecommendationPreferencesExternalMetricsPreference?>
The provider of the external metrics recommendation preference. See External Metrics Preference below.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
id ↔ Output<String>
getter/setter pairinherited
inferredWorkloadTypes ↔ Output<String?>
The status of the inferred workload types recommendation preference. Valid values: Active, Inactive.
latefinal
isCustom → bool
Returns whether this resource is provider-managed.
no setterinherited
isProtected → bool
Returns whether this resource is protected from deletion.
no setterinherited
isRemote → bool
Whether this resource is registered as remote.
no setterinherited
isResourceReference → bool
Whether this instance represents a resource value returned over RPC.
finalinherited
lookBackPeriod ↔ Output<String>
The preference to control the number of days the utilization metrics of the AWS resource are analyzed. Valid values: DAYS_14, DAYS_32, DAYS_93.
latefinal
preferredResources ↔ Output<List<RecommendationPreferencesPreferredResource>?>
The preference to control which resource type values are considered when generating rightsizing recommendations. See Preferred Resources below.
latefinal
region ↔ Output<String>
Region where this resource will be managed. Defaults to the Region set in the provider configuration.
latefinal
resourceTransforms → List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
resourceType ↔ Output<String>
The target resource type of the recommendation preferences. Valid values: Ec2Instance, AutoScalingGroup, RdsDBInstance, AuroraDBClusterStorage.
latefinal
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
savingsEstimationMode ↔ Output<String?>
The status of the savings estimation mode preference. Valid values: AfterDiscounts, BeforeDiscounts.
latefinal
scope ↔ Output<RecommendationPreferencesScope>
The scope of the recommendation preferences. See Scope below.
latefinal
transformations → List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
urn ↔ Output<String>
latefinalinherited
utilizationPreferences ↔ Output<List<RecommendationPreferencesUtilizationPreference>?>
The preference to control the resource’s CPU utilization threshold, CPU utilization headroom, and memory utilization headroom. See Utilization Preferences below.
latefinal

Methods

failId(Object error) → void
Completes this resource ID with an error when registration fails.
inherited
failOutputs(Object error) → void
Completes all output properties with error.
inherited
failUrn(Object error) → void
Completes this resource URN with an error when registration fails.
inherited
getProvider(String moduleMember) → ProviderResource?
Returns provider for moduleMember's package, if configured.
inherited
getResourceName() → String
Returns this resource's logical name.
inherited
getResourceType() → String
Returns this resource's Pulumi type token.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerOutput<T>(String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output<T>
Registers a dynamic output property for this resource.
inherited
resolveId(String? value, {required bool isKnown}) → void
Resolves the provider-assigned ID for this resource.
inherited
resolveOutputs(Struct outputs) → void
Resolves all output properties from a monitor response payload.
inherited
resolveUrn(String value) → void
Resolves this resource's URN once assigned by the engine.
inherited
serializeProperties(Map<String, dynamic> properties) → Future<Struct>
Serializes resource properties for RPC transmission.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

get(String name, Input<String> id, {RecommendationPreferencesState? state, CustomResourceOptions? options}) → RecommendationPreferences
Gets an existing RecommendationPreferences resource's state with the given name and id.