1. Packages
  2. AWS
  3. API Docs
  4. sagemaker
  5. Algorithm
Viewing docs for AWS v7.24.0
published on Tuesday, Mar 31, 2026 by Pulumi
aws logo
Viewing docs for AWS v7.24.0
published on Tuesday, Mar 31, 2026 by Pulumi

    Manages an AWS SageMaker AI Algorithm.

    Example Usage

    Basic Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.sagemaker.Algorithm("example", {
        algorithmName: "example-algorithm",
        trainingSpecification: {
            supportedTrainingInstanceTypes: ["ml.m5.large"],
            trainingImage: "123456789012.dkr.ecr.us-west-2.amazonaws.com/example-training:latest",
            trainingChannels: [{
                name: "train",
                supportedContentTypes: ["text/csv"],
                supportedInputModes: ["File"],
            }],
        },
        tags: {
            Environment: "test",
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.sagemaker.Algorithm("example",
        algorithm_name="example-algorithm",
        training_specification={
            "supported_training_instance_types": ["ml.m5.large"],
            "training_image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/example-training:latest",
            "training_channels": [{
                "name": "train",
                "supported_content_types": ["text/csv"],
                "supported_input_modes": ["File"],
            }],
        },
        tags={
            "Environment": "test",
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/sagemaker"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := sagemaker.NewAlgorithm(ctx, "example", &sagemaker.AlgorithmArgs{
    			AlgorithmName: pulumi.String("example-algorithm"),
    			TrainingSpecification: &sagemaker.AlgorithmTrainingSpecificationArgs{
    				SupportedTrainingInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    				},
    				TrainingImage: pulumi.String("123456789012.dkr.ecr.us-west-2.amazonaws.com/example-training:latest"),
    				TrainingChannels: sagemaker.AlgorithmTrainingSpecificationTrainingChannelArray{
    					&sagemaker.AlgorithmTrainingSpecificationTrainingChannelArgs{
    						Name: pulumi.String("train"),
    						SupportedContentTypes: pulumi.StringArray{
    							pulumi.String("text/csv"),
    						},
    						SupportedInputModes: pulumi.StringArray{
    							pulumi.String("File"),
    						},
    					},
    				},
    			},
    			Tags: pulumi.StringMap{
    				"Environment": pulumi.String("test"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Sagemaker.Algorithm("example", new()
        {
            AlgorithmName = "example-algorithm",
            TrainingSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationArgs
            {
                SupportedTrainingInstanceTypes = new[]
                {
                    "ml.m5.large",
                },
                TrainingImage = "123456789012.dkr.ecr.us-west-2.amazonaws.com/example-training:latest",
                TrainingChannels = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationTrainingChannelArgs
                    {
                        Name = "train",
                        SupportedContentTypes = new[]
                        {
                            "text/csv",
                        },
                        SupportedInputModes = new[]
                        {
                            "File",
                        },
                    },
                },
            },
            Tags = 
            {
                { "Environment", "test" },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.sagemaker.Algorithm;
    import com.pulumi.aws.sagemaker.AlgorithmArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmTrainingSpecificationArgs;
    import java.util.List;
    import java.util.ArrayList;
    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 Algorithm("example", AlgorithmArgs.builder()
                .algorithmName("example-algorithm")
                .trainingSpecification(AlgorithmTrainingSpecificationArgs.builder()
                    .supportedTrainingInstanceTypes("ml.m5.large")
                    .trainingImage("123456789012.dkr.ecr.us-west-2.amazonaws.com/example-training:latest")
                    .trainingChannels(AlgorithmTrainingSpecificationTrainingChannelArgs.builder()
                        .name("train")
                        .supportedContentTypes("text/csv")
                        .supportedInputModes("File")
                        .build())
                    .build())
                .tags(Map.of("Environment", "test"))
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:sagemaker:Algorithm
        properties:
          algorithmName: example-algorithm
          trainingSpecification:
            supportedTrainingInstanceTypes:
              - ml.m5.large
            trainingImage: 123456789012.dkr.ecr.us-west-2.amazonaws.com/example-training:latest
            trainingChannels:
              - name: train
                supportedContentTypes:
                  - text/csv
                supportedInputModes:
                  - File
          tags:
            Environment: test
    

    Training Specification

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = aws.sagemaker.getPrebuiltEcrImage({
        repositoryName: "linear-learner",
        imageTag: "1",
    });
    const exampleAlgorithm = new aws.sagemaker.Algorithm("example", {
        algorithmName: "example-training-algorithm",
        trainingSpecification: {
            supportedTrainingInstanceTypes: [
                "ml.m5.large",
                "ml.c5.xlarge",
            ],
            supportsDistributedTraining: true,
            trainingImage: example.then(example => example.registryPath),
            metricDefinitions: [{
                name: "train:loss",
                regex: "loss=(.*?);",
            }],
            supportedHyperParameters: [
                {
                    defaultValue: "0.5",
                    description: "Continuous learning rate",
                    isRequired: true,
                    isTunable: true,
                    name: "eta",
                    type: "Continuous",
                    range: {
                        continuousParameterRangeSpecification: {
                            minValue: "0.1",
                            maxValue: "0.9",
                        },
                    },
                },
                {
                    defaultValue: "5",
                    description: "Maximum tree depth",
                    isRequired: false,
                    isTunable: true,
                    name: "max_depth",
                    type: "Integer",
                    range: {
                        integerParameterRangeSpecification: {
                            minValue: "1",
                            maxValue: "10",
                        },
                    },
                },
                {
                    defaultValue: "reg:squarederror",
                    description: "Objective function",
                    isRequired: false,
                    isTunable: false,
                    name: "objective",
                    type: "Categorical",
                    range: {
                        categoricalParameterRangeSpecification: {
                            values: [
                                "reg:squarederror",
                                "binary:logistic",
                            ],
                        },
                    },
                },
            ],
            supportedTuningJobObjectiveMetrics: [{
                metricName: "train:loss",
                type: "Minimize",
            }],
            trainingChannels: [
                {
                    description: "Training data channel",
                    isRequired: true,
                    name: "train",
                    supportedCompressionTypes: [
                        "None",
                        "Gzip",
                    ],
                    supportedContentTypes: ["text/csv"],
                    supportedInputModes: ["File"],
                },
                {
                    name: "validation",
                    supportedContentTypes: ["application/json"],
                    supportedInputModes: ["Pipe"],
                },
            ],
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.sagemaker.get_prebuilt_ecr_image(repository_name="linear-learner",
        image_tag="1")
    example_algorithm = aws.sagemaker.Algorithm("example",
        algorithm_name="example-training-algorithm",
        training_specification={
            "supported_training_instance_types": [
                "ml.m5.large",
                "ml.c5.xlarge",
            ],
            "supports_distributed_training": True,
            "training_image": example.registry_path,
            "metric_definitions": [{
                "name": "train:loss",
                "regex": "loss=(.*?);",
            }],
            "supported_hyper_parameters": [
                {
                    "default_value": "0.5",
                    "description": "Continuous learning rate",
                    "is_required": True,
                    "is_tunable": True,
                    "name": "eta",
                    "type": "Continuous",
                    "range": {
                        "continuous_parameter_range_specification": {
                            "min_value": "0.1",
                            "max_value": "0.9",
                        },
                    },
                },
                {
                    "default_value": "5",
                    "description": "Maximum tree depth",
                    "is_required": False,
                    "is_tunable": True,
                    "name": "max_depth",
                    "type": "Integer",
                    "range": {
                        "integer_parameter_range_specification": {
                            "min_value": "1",
                            "max_value": "10",
                        },
                    },
                },
                {
                    "default_value": "reg:squarederror",
                    "description": "Objective function",
                    "is_required": False,
                    "is_tunable": False,
                    "name": "objective",
                    "type": "Categorical",
                    "range": {
                        "categorical_parameter_range_specification": {
                            "values": [
                                "reg:squarederror",
                                "binary:logistic",
                            ],
                        },
                    },
                },
            ],
            "supported_tuning_job_objective_metrics": [{
                "metric_name": "train:loss",
                "type": "Minimize",
            }],
            "training_channels": [
                {
                    "description": "Training data channel",
                    "is_required": True,
                    "name": "train",
                    "supported_compression_types": [
                        "None",
                        "Gzip",
                    ],
                    "supported_content_types": ["text/csv"],
                    "supported_input_modes": ["File"],
                },
                {
                    "name": "validation",
                    "supported_content_types": ["application/json"],
                    "supported_input_modes": ["Pipe"],
                },
            ],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/sagemaker"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := sagemaker.GetPrebuiltEcrImage(ctx, &sagemaker.GetPrebuiltEcrImageArgs{
    			RepositoryName: "linear-learner",
    			ImageTag:       pulumi.StringRef("1"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = sagemaker.NewAlgorithm(ctx, "example", &sagemaker.AlgorithmArgs{
    			AlgorithmName: pulumi.String("example-training-algorithm"),
    			TrainingSpecification: &sagemaker.AlgorithmTrainingSpecificationArgs{
    				SupportedTrainingInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    					pulumi.String("ml.c5.xlarge"),
    				},
    				SupportsDistributedTraining: pulumi.Bool(true),
    				TrainingImage:               pulumi.String(example.RegistryPath),
    				MetricDefinitions: sagemaker.AlgorithmTrainingSpecificationMetricDefinitionArray{
    					&sagemaker.AlgorithmTrainingSpecificationMetricDefinitionArgs{
    						Name:  pulumi.String("train:loss"),
    						Regex: pulumi.String("loss=(.*?);"),
    					},
    				},
    				SupportedHyperParameters: sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArray{
    					&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    						DefaultValue: pulumi.String("0.5"),
    						Description:  pulumi.String("Continuous learning rate"),
    						IsRequired:   pulumi.Bool(true),
    						IsTunable:    pulumi.Bool(true),
    						Name:         pulumi.String("eta"),
    						Type:         pulumi.String("Continuous"),
    						Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    							ContinuousParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs{
    								MinValue: pulumi.String("0.1"),
    								MaxValue: pulumi.String("0.9"),
    							},
    						},
    					},
    					&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    						DefaultValue: pulumi.String("5"),
    						Description:  pulumi.String("Maximum tree depth"),
    						IsRequired:   pulumi.Bool(false),
    						IsTunable:    pulumi.Bool(true),
    						Name:         pulumi.String("max_depth"),
    						Type:         pulumi.String("Integer"),
    						Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    							IntegerParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs{
    								MinValue: pulumi.String("1"),
    								MaxValue: pulumi.String("10"),
    							},
    						},
    					},
    					&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    						DefaultValue: pulumi.String("reg:squarederror"),
    						Description:  pulumi.String("Objective function"),
    						IsRequired:   pulumi.Bool(false),
    						IsTunable:    pulumi.Bool(false),
    						Name:         pulumi.String("objective"),
    						Type:         pulumi.String("Categorical"),
    						Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    							CategoricalParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs{
    								Values: pulumi.StringArray{
    									pulumi.String("reg:squarederror"),
    									pulumi.String("binary:logistic"),
    								},
    							},
    						},
    					},
    				},
    				SupportedTuningJobObjectiveMetrics: sagemaker.AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArray{
    					&sagemaker.AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs{
    						MetricName: pulumi.String("train:loss"),
    						Type:       pulumi.String("Minimize"),
    					},
    				},
    				TrainingChannels: sagemaker.AlgorithmTrainingSpecificationTrainingChannelArray{
    					&sagemaker.AlgorithmTrainingSpecificationTrainingChannelArgs{
    						Description: pulumi.String("Training data channel"),
    						IsRequired:  pulumi.Bool(true),
    						Name:        pulumi.String("train"),
    						SupportedCompressionTypes: pulumi.StringArray{
    							pulumi.String("None"),
    							pulumi.String("Gzip"),
    						},
    						SupportedContentTypes: pulumi.StringArray{
    							pulumi.String("text/csv"),
    						},
    						SupportedInputModes: pulumi.StringArray{
    							pulumi.String("File"),
    						},
    					},
    					&sagemaker.AlgorithmTrainingSpecificationTrainingChannelArgs{
    						Name: pulumi.String("validation"),
    						SupportedContentTypes: pulumi.StringArray{
    							pulumi.String("application/json"),
    						},
    						SupportedInputModes: pulumi.StringArray{
    							pulumi.String("Pipe"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = Aws.Sagemaker.GetPrebuiltEcrImage.Invoke(new()
        {
            RepositoryName = "linear-learner",
            ImageTag = "1",
        });
    
        var exampleAlgorithm = new Aws.Sagemaker.Algorithm("example", new()
        {
            AlgorithmName = "example-training-algorithm",
            TrainingSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationArgs
            {
                SupportedTrainingInstanceTypes = new[]
                {
                    "ml.m5.large",
                    "ml.c5.xlarge",
                },
                SupportsDistributedTraining = true,
                TrainingImage = example.Apply(getPrebuiltEcrImageResult => getPrebuiltEcrImageResult.RegistryPath),
                MetricDefinitions = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationMetricDefinitionArgs
                    {
                        Name = "train:loss",
                        Regex = "loss=(.*?);",
                    },
                },
                SupportedHyperParameters = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                    {
                        DefaultValue = "0.5",
                        Description = "Continuous learning rate",
                        IsRequired = true,
                        IsTunable = true,
                        Name = "eta",
                        Type = "Continuous",
                        Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                        {
                            ContinuousParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs
                            {
                                MinValue = "0.1",
                                MaxValue = "0.9",
                            },
                        },
                    },
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                    {
                        DefaultValue = "5",
                        Description = "Maximum tree depth",
                        IsRequired = false,
                        IsTunable = true,
                        Name = "max_depth",
                        Type = "Integer",
                        Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                        {
                            IntegerParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs
                            {
                                MinValue = "1",
                                MaxValue = "10",
                            },
                        },
                    },
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                    {
                        DefaultValue = "reg:squarederror",
                        Description = "Objective function",
                        IsRequired = false,
                        IsTunable = false,
                        Name = "objective",
                        Type = "Categorical",
                        Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                        {
                            CategoricalParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs
                            {
                                Values = new[]
                                {
                                    "reg:squarederror",
                                    "binary:logistic",
                                },
                            },
                        },
                    },
                },
                SupportedTuningJobObjectiveMetrics = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs
                    {
                        MetricName = "train:loss",
                        Type = "Minimize",
                    },
                },
                TrainingChannels = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationTrainingChannelArgs
                    {
                        Description = "Training data channel",
                        IsRequired = true,
                        Name = "train",
                        SupportedCompressionTypes = new[]
                        {
                            "None",
                            "Gzip",
                        },
                        SupportedContentTypes = new[]
                        {
                            "text/csv",
                        },
                        SupportedInputModes = new[]
                        {
                            "File",
                        },
                    },
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationTrainingChannelArgs
                    {
                        Name = "validation",
                        SupportedContentTypes = new[]
                        {
                            "application/json",
                        },
                        SupportedInputModes = new[]
                        {
                            "Pipe",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.sagemaker.SagemakerFunctions;
    import com.pulumi.aws.sagemaker.inputs.GetPrebuiltEcrImageArgs;
    import com.pulumi.aws.sagemaker.Algorithm;
    import com.pulumi.aws.sagemaker.AlgorithmArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmTrainingSpecificationArgs;
    import java.util.List;
    import java.util.ArrayList;
    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) {
            final var example = SagemakerFunctions.getPrebuiltEcrImage(GetPrebuiltEcrImageArgs.builder()
                .repositoryName("linear-learner")
                .imageTag("1")
                .build());
    
            var exampleAlgorithm = new Algorithm("exampleAlgorithm", AlgorithmArgs.builder()
                .algorithmName("example-training-algorithm")
                .trainingSpecification(AlgorithmTrainingSpecificationArgs.builder()
                    .supportedTrainingInstanceTypes(                
                        "ml.m5.large",
                        "ml.c5.xlarge")
                    .supportsDistributedTraining(true)
                    .trainingImage(example.registryPath())
                    .metricDefinitions(AlgorithmTrainingSpecificationMetricDefinitionArgs.builder()
                        .name("train:loss")
                        .regex("loss=(.*?);")
                        .build())
                    .supportedHyperParameters(                
                        AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                            .defaultValue("0.5")
                            .description("Continuous learning rate")
                            .isRequired(true)
                            .isTunable(true)
                            .name("eta")
                            .type("Continuous")
                            .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                                .continuousParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs.builder()
                                    .minValue("0.1")
                                    .maxValue("0.9")
                                    .build())
                                .build())
                            .build(),
                        AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                            .defaultValue("5")
                            .description("Maximum tree depth")
                            .isRequired(false)
                            .isTunable(true)
                            .name("max_depth")
                            .type("Integer")
                            .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                                .integerParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs.builder()
                                    .minValue("1")
                                    .maxValue("10")
                                    .build())
                                .build())
                            .build(),
                        AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                            .defaultValue("reg:squarederror")
                            .description("Objective function")
                            .isRequired(false)
                            .isTunable(false)
                            .name("objective")
                            .type("Categorical")
                            .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                                .categoricalParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs.builder()
                                    .values(                                
                                        "reg:squarederror",
                                        "binary:logistic")
                                    .build())
                                .build())
                            .build())
                    .supportedTuningJobObjectiveMetrics(AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs.builder()
                        .metricName("train:loss")
                        .type("Minimize")
                        .build())
                    .trainingChannels(                
                        AlgorithmTrainingSpecificationTrainingChannelArgs.builder()
                            .description("Training data channel")
                            .isRequired(true)
                            .name("train")
                            .supportedCompressionTypes(                        
                                "None",
                                "Gzip")
                            .supportedContentTypes("text/csv")
                            .supportedInputModes("File")
                            .build(),
                        AlgorithmTrainingSpecificationTrainingChannelArgs.builder()
                            .name("validation")
                            .supportedContentTypes("application/json")
                            .supportedInputModes("Pipe")
                            .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      exampleAlgorithm:
        type: aws:sagemaker:Algorithm
        name: example
        properties:
          algorithmName: example-training-algorithm
          trainingSpecification:
            supportedTrainingInstanceTypes:
              - ml.m5.large
              - ml.c5.xlarge
            supportsDistributedTraining: true
            trainingImage: ${example.registryPath}
            metricDefinitions:
              - name: train:loss
                regex: loss=(.*?);
            supportedHyperParameters:
              - defaultValue: '0.5'
                description: Continuous learning rate
                isRequired: true
                isTunable: true
                name: eta
                type: Continuous
                range:
                  continuousParameterRangeSpecification:
                    minValue: '0.1'
                    maxValue: '0.9'
              - defaultValue: '5'
                description: Maximum tree depth
                isRequired: false
                isTunable: true
                name: max_depth
                type: Integer
                range:
                  integerParameterRangeSpecification:
                    minValue: '1'
                    maxValue: '10'
              - defaultValue: reg:squarederror
                description: Objective function
                isRequired: false
                isTunable: false
                name: objective
                type: Categorical
                range:
                  categoricalParameterRangeSpecification:
                    values:
                      - reg:squarederror
                      - binary:logistic
            supportedTuningJobObjectiveMetrics:
              - metricName: train:loss
                type: Minimize
            trainingChannels:
              - description: Training data channel
                isRequired: true
                name: train
                supportedCompressionTypes:
                  - None
                  - Gzip
                supportedContentTypes:
                  - text/csv
                supportedInputModes:
                  - File
              - name: validation
                supportedContentTypes:
                  - application/json
                supportedInputModes:
                  - Pipe
    variables:
      example:
        fn::invoke:
          function: aws:sagemaker:getPrebuiltEcrImage
          arguments:
            repositoryName: linear-learner
            imageTag: '1'
    

    Inference Specification

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = aws.sagemaker.getPrebuiltEcrImage({
        repositoryName: "linear-learner",
        imageTag: "1",
    });
    const exampleAlgorithm = new aws.sagemaker.Algorithm("example", {
        algorithmName: "example-inference-algorithm",
        trainingSpecification: {
            supportedTrainingInstanceTypes: ["ml.m5.large"],
            trainingImage: example.then(example => example.registryPath),
            trainingChannels: [{
                name: "train",
                supportedContentTypes: ["text/csv"],
                supportedInputModes: ["File"],
            }],
        },
        inferenceSpecification: {
            supportedContentTypes: ["text/csv"],
            supportedRealtimeInferenceInstanceTypes: ["ml.m5.large"],
            supportedResponseMimeTypes: ["text/csv"],
            supportedTransformInstanceTypes: ["ml.m5.large"],
            containers: [{
                containerHostname: "test-host",
                environment: {
                    TEST: "value",
                },
                framework: "XGBOOST",
                frameworkVersion: "1.5-1",
                image: example.then(example => example.registryPath),
                isCheckpoint: true,
                nearestModelName: "nearest-model",
                baseModel: {
                    hubContentName: "basemodel",
                    hubContentVersion: "1.0.0",
                    recipeName: "recipe",
                },
                modelInput: {
                    dataInputConfig: "{}",
                },
            }],
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.sagemaker.get_prebuilt_ecr_image(repository_name="linear-learner",
        image_tag="1")
    example_algorithm = aws.sagemaker.Algorithm("example",
        algorithm_name="example-inference-algorithm",
        training_specification={
            "supported_training_instance_types": ["ml.m5.large"],
            "training_image": example.registry_path,
            "training_channels": [{
                "name": "train",
                "supported_content_types": ["text/csv"],
                "supported_input_modes": ["File"],
            }],
        },
        inference_specification={
            "supported_content_types": ["text/csv"],
            "supported_realtime_inference_instance_types": ["ml.m5.large"],
            "supported_response_mime_types": ["text/csv"],
            "supported_transform_instance_types": ["ml.m5.large"],
            "containers": [{
                "container_hostname": "test-host",
                "environment": {
                    "TEST": "value",
                },
                "framework": "XGBOOST",
                "framework_version": "1.5-1",
                "image": example.registry_path,
                "is_checkpoint": True,
                "nearest_model_name": "nearest-model",
                "base_model": {
                    "hub_content_name": "basemodel",
                    "hub_content_version": "1.0.0",
                    "recipe_name": "recipe",
                },
                "model_input": {
                    "data_input_config": "{}",
                },
            }],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/sagemaker"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := sagemaker.GetPrebuiltEcrImage(ctx, &sagemaker.GetPrebuiltEcrImageArgs{
    			RepositoryName: "linear-learner",
    			ImageTag:       pulumi.StringRef("1"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = sagemaker.NewAlgorithm(ctx, "example", &sagemaker.AlgorithmArgs{
    			AlgorithmName: pulumi.String("example-inference-algorithm"),
    			TrainingSpecification: &sagemaker.AlgorithmTrainingSpecificationArgs{
    				SupportedTrainingInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    				},
    				TrainingImage: pulumi.String(example.RegistryPath),
    				TrainingChannels: sagemaker.AlgorithmTrainingSpecificationTrainingChannelArray{
    					&sagemaker.AlgorithmTrainingSpecificationTrainingChannelArgs{
    						Name: pulumi.String("train"),
    						SupportedContentTypes: pulumi.StringArray{
    							pulumi.String("text/csv"),
    						},
    						SupportedInputModes: pulumi.StringArray{
    							pulumi.String("File"),
    						},
    					},
    				},
    			},
    			InferenceSpecification: &sagemaker.AlgorithmInferenceSpecificationArgs{
    				SupportedContentTypes: pulumi.StringArray{
    					pulumi.String("text/csv"),
    				},
    				SupportedRealtimeInferenceInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    				},
    				SupportedResponseMimeTypes: pulumi.StringArray{
    					pulumi.String("text/csv"),
    				},
    				SupportedTransformInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    				},
    				Containers: sagemaker.AlgorithmInferenceSpecificationContainerArray{
    					&sagemaker.AlgorithmInferenceSpecificationContainerArgs{
    						ContainerHostname: pulumi.String("test-host"),
    						Environment: pulumi.StringMap{
    							"TEST": pulumi.String("value"),
    						},
    						Framework:        pulumi.String("XGBOOST"),
    						FrameworkVersion: pulumi.String("1.5-1"),
    						Image:            pulumi.String(example.RegistryPath),
    						IsCheckpoint:     pulumi.Bool(true),
    						NearestModelName: pulumi.String("nearest-model"),
    						BaseModel: &sagemaker.AlgorithmInferenceSpecificationContainerBaseModelArgs{
    							HubContentName:    pulumi.String("basemodel"),
    							HubContentVersion: pulumi.String("1.0.0"),
    							RecipeName:        pulumi.String("recipe"),
    						},
    						ModelInput: &sagemaker.AlgorithmInferenceSpecificationContainerModelInputArgs{
    							DataInputConfig: pulumi.String("{}"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = Aws.Sagemaker.GetPrebuiltEcrImage.Invoke(new()
        {
            RepositoryName = "linear-learner",
            ImageTag = "1",
        });
    
        var exampleAlgorithm = new Aws.Sagemaker.Algorithm("example", new()
        {
            AlgorithmName = "example-inference-algorithm",
            TrainingSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationArgs
            {
                SupportedTrainingInstanceTypes = new[]
                {
                    "ml.m5.large",
                },
                TrainingImage = example.Apply(getPrebuiltEcrImageResult => getPrebuiltEcrImageResult.RegistryPath),
                TrainingChannels = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationTrainingChannelArgs
                    {
                        Name = "train",
                        SupportedContentTypes = new[]
                        {
                            "text/csv",
                        },
                        SupportedInputModes = new[]
                        {
                            "File",
                        },
                    },
                },
            },
            InferenceSpecification = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationArgs
            {
                SupportedContentTypes = new[]
                {
                    "text/csv",
                },
                SupportedRealtimeInferenceInstanceTypes = new[]
                {
                    "ml.m5.large",
                },
                SupportedResponseMimeTypes = new[]
                {
                    "text/csv",
                },
                SupportedTransformInstanceTypes = new[]
                {
                    "ml.m5.large",
                },
                Containers = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerArgs
                    {
                        ContainerHostname = "test-host",
                        Environment = 
                        {
                            { "TEST", "value" },
                        },
                        Framework = "XGBOOST",
                        FrameworkVersion = "1.5-1",
                        Image = example.Apply(getPrebuiltEcrImageResult => getPrebuiltEcrImageResult.RegistryPath),
                        IsCheckpoint = true,
                        NearestModelName = "nearest-model",
                        BaseModel = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerBaseModelArgs
                        {
                            HubContentName = "basemodel",
                            HubContentVersion = "1.0.0",
                            RecipeName = "recipe",
                        },
                        ModelInput = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerModelInputArgs
                        {
                            DataInputConfig = "{}",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.sagemaker.SagemakerFunctions;
    import com.pulumi.aws.sagemaker.inputs.GetPrebuiltEcrImageArgs;
    import com.pulumi.aws.sagemaker.Algorithm;
    import com.pulumi.aws.sagemaker.AlgorithmArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmTrainingSpecificationArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmInferenceSpecificationArgs;
    import java.util.List;
    import java.util.ArrayList;
    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) {
            final var example = SagemakerFunctions.getPrebuiltEcrImage(GetPrebuiltEcrImageArgs.builder()
                .repositoryName("linear-learner")
                .imageTag("1")
                .build());
    
            var exampleAlgorithm = new Algorithm("exampleAlgorithm", AlgorithmArgs.builder()
                .algorithmName("example-inference-algorithm")
                .trainingSpecification(AlgorithmTrainingSpecificationArgs.builder()
                    .supportedTrainingInstanceTypes("ml.m5.large")
                    .trainingImage(example.registryPath())
                    .trainingChannels(AlgorithmTrainingSpecificationTrainingChannelArgs.builder()
                        .name("train")
                        .supportedContentTypes("text/csv")
                        .supportedInputModes("File")
                        .build())
                    .build())
                .inferenceSpecification(AlgorithmInferenceSpecificationArgs.builder()
                    .supportedContentTypes("text/csv")
                    .supportedRealtimeInferenceInstanceTypes("ml.m5.large")
                    .supportedResponseMimeTypes("text/csv")
                    .supportedTransformInstanceTypes("ml.m5.large")
                    .containers(AlgorithmInferenceSpecificationContainerArgs.builder()
                        .containerHostname("test-host")
                        .environment(Map.of("TEST", "value"))
                        .framework("XGBOOST")
                        .frameworkVersion("1.5-1")
                        .image(example.registryPath())
                        .isCheckpoint(true)
                        .nearestModelName("nearest-model")
                        .baseModel(AlgorithmInferenceSpecificationContainerBaseModelArgs.builder()
                            .hubContentName("basemodel")
                            .hubContentVersion("1.0.0")
                            .recipeName("recipe")
                            .build())
                        .modelInput(AlgorithmInferenceSpecificationContainerModelInputArgs.builder()
                            .dataInputConfig("{}")
                            .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      exampleAlgorithm:
        type: aws:sagemaker:Algorithm
        name: example
        properties:
          algorithmName: example-inference-algorithm
          trainingSpecification:
            supportedTrainingInstanceTypes:
              - ml.m5.large
            trainingImage: ${example.registryPath}
            trainingChannels:
              - name: train
                supportedContentTypes:
                  - text/csv
                supportedInputModes:
                  - File
          inferenceSpecification:
            supportedContentTypes:
              - text/csv
            supportedRealtimeInferenceInstanceTypes:
              - ml.m5.large
            supportedResponseMimeTypes:
              - text/csv
            supportedTransformInstanceTypes:
              - ml.m5.large
            containers:
              - containerHostname: test-host
                environment:
                  TEST: value
                framework: XGBOOST
                frameworkVersion: 1.5-1
                image: ${example.registryPath}
                isCheckpoint: true
                nearestModelName: nearest-model
                baseModel:
                  hubContentName: basemodel
                  hubContentVersion: 1.0.0
                  recipeName: recipe
                modelInput:
                  dataInputConfig: '{}'
    variables:
      example:
        fn::invoke:
          function: aws:sagemaker:getPrebuiltEcrImage
          arguments:
            repositoryName: linear-learner
            imageTag: '1'
    

    Validation Specification

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const current = aws.getPartition({});
    const example = aws.sagemaker.getPrebuiltEcrImage({
        repositoryName: "linear-learner",
        imageTag: "1",
    });
    const assumeRole = current.then(current => aws.iam.getPolicyDocument({
        statements: [{
            actions: ["sts:AssumeRole"],
            principals: [{
                type: "Service",
                identifiers: [`sagemaker.${current.dnsSuffix}`],
            }],
        }],
    }));
    const exampleRole = new aws.iam.Role("example", {
        name: "example-sagemaker-algorithm-role",
        assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json),
    });
    const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", {
        role: exampleRole.name,
        policyArn: current.then(current => `arn:${current.partition}:iam::aws:policy/AmazonSageMakerFullAccess`),
    });
    const exampleBucket = new aws.s3.Bucket("example", {
        bucket: "example-sagemaker-algorithm-validation-bucket",
        forceDestroy: true,
    });
    const s3Access = aws.iam.getPolicyDocumentOutput({
        statements: [{
            effect: "Allow",
            actions: [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
            ],
            resources: [
                exampleBucket.arn,
                pulumi.interpolate`${exampleBucket.arn}/*`,
            ],
        }],
    });
    const exampleRolePolicy = new aws.iam.RolePolicy("example", {
        role: exampleRole.name,
        policy: s3Access.apply(s3Access => s3Access.json),
    });
    const training = new aws.s3.BucketObjectv2("training", {
        bucket: exampleBucket.bucket,
        key: "algorithm/training/data.csv",
        content: `1,1.0,0.0
    0,0.0,1.0
    1,1.0,1.0
    0,0.0,0.0
    `,
    });
    const transform = new aws.s3.BucketObjectv2("transform", {
        bucket: exampleBucket.bucket,
        key: "algorithm/transform/input.csv",
        content: `1.0,0.0
    0.0,1.0
    `,
    });
    const exampleAlgorithm = new aws.sagemaker.Algorithm("example", {
        algorithmName: "example-validation-algorithm",
        trainingSpecification: {
            trainingImage: example.then(example => example.registryPath),
            supportedTrainingInstanceTypes: ["ml.m5.large"],
            supportedHyperParameters: [
                {
                    defaultValue: "2",
                    description: "Feature dimension",
                    isRequired: true,
                    isTunable: false,
                    name: "feature_dim",
                    type: "Integer",
                    range: {
                        integerParameterRangeSpecification: {
                            minValue: "2",
                            maxValue: "2",
                        },
                    },
                },
                {
                    defaultValue: "4",
                    description: "Mini batch size",
                    isRequired: true,
                    isTunable: false,
                    name: "mini_batch_size",
                    type: "Integer",
                    range: {
                        integerParameterRangeSpecification: {
                            minValue: "4",
                            maxValue: "4",
                        },
                    },
                },
                {
                    defaultValue: "binary_classifier",
                    description: "Predictor type",
                    isRequired: true,
                    isTunable: false,
                    name: "predictor_type",
                    type: "Categorical",
                    range: {
                        categoricalParameterRangeSpecification: {
                            values: ["binary_classifier"],
                        },
                    },
                },
            ],
            trainingChannels: [{
                name: "train",
                supportedContentTypes: ["text/csv"],
                supportedInputModes: ["File"],
            }],
        },
        inferenceSpecification: {
            supportedContentTypes: ["text/csv"],
            supportedResponseMimeTypes: ["text/csv"],
            supportedTransformInstanceTypes: ["ml.m5.large"],
            containers: [{
                image: example.then(example => example.registryPath),
            }],
        },
        validationSpecification: {
            validationRole: exampleRole.arn,
            validationProfiles: {
                profileName: "validation-profile",
                trainingJobDefinition: {
                    hyperParameters: {
                        feature_dim: "2",
                        mini_batch_size: "4",
                        predictor_type: "binary_classifier",
                    },
                    trainingInputMode: "File",
                    inputDataConfigs: [{
                        channelName: "train",
                        compressionType: "None",
                        contentType: "text/csv",
                        inputMode: "File",
                        recordWrapperType: "None",
                        shuffleConfig: {
                            seed: 1,
                        },
                        dataSource: {
                            s3DataSource: {
                                attributeNames: ["label"],
                                s3DataDistributionType: "ShardedByS3Key",
                                s3DataType: "S3Prefix",
                                s3Uri: pulumi.interpolate`s3://${exampleBucket.bucket}/algorithm/training/`,
                            },
                        },
                    }],
                    outputDataConfig: {
                        compressionType: "GZIP",
                        s3OutputPath: pulumi.interpolate`s3://${exampleBucket.bucket}/algorithm/output`,
                    },
                    resourceConfig: {
                        instanceCount: 1,
                        instanceType: "ml.m5.large",
                        keepAlivePeriodInSeconds: 60,
                        volumeSizeInGb: 30,
                    },
                    stoppingCondition: {
                        maxPendingTimeInSeconds: 7200,
                        maxRuntimeInSeconds: 1800,
                        maxWaitTimeInSeconds: 3600,
                    },
                },
                transformJobDefinition: {
                    batchStrategy: "MultiRecord",
                    environment: {
                        Te: "enabled",
                    },
                    maxConcurrentTransforms: 1,
                    maxPayloadInMb: 6,
                    transformInput: {
                        compressionType: "None",
                        contentType: "text/csv",
                        splitType: "Line",
                        dataSource: {
                            s3DataSource: {
                                s3DataType: "S3Prefix",
                                s3Uri: pulumi.interpolate`s3://${exampleBucket.bucket}/algorithm/transform/`,
                            },
                        },
                    },
                    transformOutput: {
                        accept: "text/csv",
                        assembleWith: "Line",
                        s3OutputPath: pulumi.interpolate`s3://${exampleBucket.bucket}/algorithm/transform-output`,
                    },
                    transformResources: {
                        instanceCount: 1,
                        instanceType: "ml.m5.large",
                    },
                },
            },
        },
    }, {
        dependsOn: [
            exampleRolePolicyAttachment,
            exampleRolePolicy,
            training,
            transform,
        ],
    });
    
    import pulumi
    import pulumi_aws as aws
    
    current = aws.get_partition()
    example = aws.sagemaker.get_prebuilt_ecr_image(repository_name="linear-learner",
        image_tag="1")
    assume_role = aws.iam.get_policy_document(statements=[{
        "actions": ["sts:AssumeRole"],
        "principals": [{
            "type": "Service",
            "identifiers": [f"sagemaker.{current.dns_suffix}"],
        }],
    }])
    example_role = aws.iam.Role("example",
        name="example-sagemaker-algorithm-role",
        assume_role_policy=assume_role.json)
    example_role_policy_attachment = aws.iam.RolePolicyAttachment("example",
        role=example_role.name,
        policy_arn=f"arn:{current.partition}:iam::aws:policy/AmazonSageMakerFullAccess")
    example_bucket = aws.s3.Bucket("example",
        bucket="example-sagemaker-algorithm-validation-bucket",
        force_destroy=True)
    s3_access = aws.iam.get_policy_document_output(statements=[{
        "effect": "Allow",
        "actions": [
            "s3:GetBucketLocation",
            "s3:ListBucket",
            "s3:GetObject",
            "s3:PutObject",
        ],
        "resources": [
            example_bucket.arn,
            example_bucket.arn.apply(lambda arn: f"{arn}/*"),
        ],
    }])
    example_role_policy = aws.iam.RolePolicy("example",
        role=example_role.name,
        policy=s3_access.json)
    training = aws.s3.BucketObjectv2("training",
        bucket=example_bucket.bucket,
        key="algorithm/training/data.csv",
        content="""1,1.0,0.0
    0,0.0,1.0
    1,1.0,1.0
    0,0.0,0.0
    """)
    transform = aws.s3.BucketObjectv2("transform",
        bucket=example_bucket.bucket,
        key="algorithm/transform/input.csv",
        content="""1.0,0.0
    0.0,1.0
    """)
    example_algorithm = aws.sagemaker.Algorithm("example",
        algorithm_name="example-validation-algorithm",
        training_specification={
            "training_image": example.registry_path,
            "supported_training_instance_types": ["ml.m5.large"],
            "supported_hyper_parameters": [
                {
                    "default_value": "2",
                    "description": "Feature dimension",
                    "is_required": True,
                    "is_tunable": False,
                    "name": "feature_dim",
                    "type": "Integer",
                    "range": {
                        "integer_parameter_range_specification": {
                            "min_value": "2",
                            "max_value": "2",
                        },
                    },
                },
                {
                    "default_value": "4",
                    "description": "Mini batch size",
                    "is_required": True,
                    "is_tunable": False,
                    "name": "mini_batch_size",
                    "type": "Integer",
                    "range": {
                        "integer_parameter_range_specification": {
                            "min_value": "4",
                            "max_value": "4",
                        },
                    },
                },
                {
                    "default_value": "binary_classifier",
                    "description": "Predictor type",
                    "is_required": True,
                    "is_tunable": False,
                    "name": "predictor_type",
                    "type": "Categorical",
                    "range": {
                        "categorical_parameter_range_specification": {
                            "values": ["binary_classifier"],
                        },
                    },
                },
            ],
            "training_channels": [{
                "name": "train",
                "supported_content_types": ["text/csv"],
                "supported_input_modes": ["File"],
            }],
        },
        inference_specification={
            "supported_content_types": ["text/csv"],
            "supported_response_mime_types": ["text/csv"],
            "supported_transform_instance_types": ["ml.m5.large"],
            "containers": [{
                "image": example.registry_path,
            }],
        },
        validation_specification={
            "validation_role": example_role.arn,
            "validation_profiles": {
                "profile_name": "validation-profile",
                "training_job_definition": {
                    "hyper_parameters": {
                        "feature_dim": "2",
                        "mini_batch_size": "4",
                        "predictor_type": "binary_classifier",
                    },
                    "training_input_mode": "File",
                    "input_data_configs": [{
                        "channel_name": "train",
                        "compression_type": "None",
                        "content_type": "text/csv",
                        "input_mode": "File",
                        "record_wrapper_type": "None",
                        "shuffle_config": {
                            "seed": 1,
                        },
                        "data_source": {
                            "s3_data_source": {
                                "attribute_names": ["label"],
                                "s3_data_distribution_type": "ShardedByS3Key",
                                "s3_data_type": "S3Prefix",
                                "s3_uri": example_bucket.bucket.apply(lambda bucket: f"s3://{bucket}/algorithm/training/"),
                            },
                        },
                    }],
                    "output_data_config": {
                        "compression_type": "GZIP",
                        "s3_output_path": example_bucket.bucket.apply(lambda bucket: f"s3://{bucket}/algorithm/output"),
                    },
                    "resource_config": {
                        "instance_count": 1,
                        "instance_type": "ml.m5.large",
                        "keep_alive_period_in_seconds": 60,
                        "volume_size_in_gb": 30,
                    },
                    "stopping_condition": {
                        "max_pending_time_in_seconds": 7200,
                        "max_runtime_in_seconds": 1800,
                        "max_wait_time_in_seconds": 3600,
                    },
                },
                "transform_job_definition": {
                    "batch_strategy": "MultiRecord",
                    "environment": {
                        "Te": "enabled",
                    },
                    "max_concurrent_transforms": 1,
                    "max_payload_in_mb": 6,
                    "transform_input": {
                        "compression_type": "None",
                        "content_type": "text/csv",
                        "split_type": "Line",
                        "data_source": {
                            "s3_data_source": {
                                "s3_data_type": "S3Prefix",
                                "s3_uri": example_bucket.bucket.apply(lambda bucket: f"s3://{bucket}/algorithm/transform/"),
                            },
                        },
                    },
                    "transform_output": {
                        "accept": "text/csv",
                        "assemble_with": "Line",
                        "s3_output_path": example_bucket.bucket.apply(lambda bucket: f"s3://{bucket}/algorithm/transform-output"),
                    },
                    "transform_resources": {
                        "instance_count": 1,
                        "instance_type": "ml.m5.large",
                    },
                },
            },
        },
        opts = pulumi.ResourceOptions(depends_on=[
                example_role_policy_attachment,
                example_role_policy,
                training,
                transform,
            ]))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/sagemaker"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		current, err := aws.GetPartition(ctx, &aws.GetPartitionArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		example, err := sagemaker.GetPrebuiltEcrImage(ctx, &sagemaker.GetPrebuiltEcrImageArgs{
    			RepositoryName: "linear-learner",
    			ImageTag:       pulumi.StringRef("1"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Actions: []string{
    						"sts:AssumeRole",
    					},
    					Principals: []iam.GetPolicyDocumentStatementPrincipal{
    						{
    							Type: "Service",
    							Identifiers: []string{
    								fmt.Sprintf("sagemaker.%v", current.DnsSuffix),
    							},
    						},
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
    			Name:             pulumi.String("example-sagemaker-algorithm-role"),
    			AssumeRolePolicy: pulumi.String(pulumi.String(assumeRole.Json)),
    		})
    		if err != nil {
    			return err
    		}
    		exampleRolePolicyAttachment, err := iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{
    			Role:      exampleRole.Name,
    			PolicyArn: pulumi.Sprintf("arn:%v:iam::aws:policy/AmazonSageMakerFullAccess", current.Partition),
    		})
    		if err != nil {
    			return err
    		}
    		exampleBucket, err := s3.NewBucket(ctx, "example", &s3.BucketArgs{
    			Bucket:       pulumi.String("example-sagemaker-algorithm-validation-bucket"),
    			ForceDestroy: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		s3Access := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
    			Statements: iam.GetPolicyDocumentStatementArray{
    				&iam.GetPolicyDocumentStatementArgs{
    					Effect: pulumi.String("Allow"),
    					Actions: pulumi.StringArray{
    						pulumi.String("s3:GetBucketLocation"),
    						pulumi.String("s3:ListBucket"),
    						pulumi.String("s3:GetObject"),
    						pulumi.String("s3:PutObject"),
    					},
    					Resources: pulumi.StringArray{
    						exampleBucket.Arn,
    						exampleBucket.Arn.ApplyT(func(arn string) (string, error) {
    							return fmt.Sprintf("%v/*", arn), nil
    						}).(pulumi.StringOutput),
    					},
    				},
    			},
    		}, nil)
    		exampleRolePolicy, err := iam.NewRolePolicy(ctx, "example", &iam.RolePolicyArgs{
    			Role: exampleRole.Name,
    			Policy: pulumi.String(s3Access.ApplyT(func(s3Access iam.GetPolicyDocumentResult) (*string, error) {
    				return &s3Access.Json, nil
    			}).(pulumi.StringPtrOutput)),
    		})
    		if err != nil {
    			return err
    		}
    		training, err := s3.NewBucketObjectv2(ctx, "training", &s3.BucketObjectv2Args{
    			Bucket:  exampleBucket.Bucket,
    			Key:     pulumi.String("algorithm/training/data.csv"),
    			Content: pulumi.String("1,1.0,0.0\n0,0.0,1.0\n1,1.0,1.0\n0,0.0,0.0\n"),
    		})
    		if err != nil {
    			return err
    		}
    		transform, err := s3.NewBucketObjectv2(ctx, "transform", &s3.BucketObjectv2Args{
    			Bucket:  exampleBucket.Bucket,
    			Key:     pulumi.String("algorithm/transform/input.csv"),
    			Content: pulumi.String("1.0,0.0\n0.0,1.0\n"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = sagemaker.NewAlgorithm(ctx, "example", &sagemaker.AlgorithmArgs{
    			AlgorithmName: pulumi.String("example-validation-algorithm"),
    			TrainingSpecification: &sagemaker.AlgorithmTrainingSpecificationArgs{
    				TrainingImage: pulumi.String(example.RegistryPath),
    				SupportedTrainingInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    				},
    				SupportedHyperParameters: sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArray{
    					&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    						DefaultValue: pulumi.String("2"),
    						Description:  pulumi.String("Feature dimension"),
    						IsRequired:   pulumi.Bool(true),
    						IsTunable:    pulumi.Bool(false),
    						Name:         pulumi.String("feature_dim"),
    						Type:         pulumi.String("Integer"),
    						Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    							IntegerParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs{
    								MinValue: pulumi.String("2"),
    								MaxValue: pulumi.String("2"),
    							},
    						},
    					},
    					&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    						DefaultValue: pulumi.String("4"),
    						Description:  pulumi.String("Mini batch size"),
    						IsRequired:   pulumi.Bool(true),
    						IsTunable:    pulumi.Bool(false),
    						Name:         pulumi.String("mini_batch_size"),
    						Type:         pulumi.String("Integer"),
    						Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    							IntegerParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs{
    								MinValue: pulumi.String("4"),
    								MaxValue: pulumi.String("4"),
    							},
    						},
    					},
    					&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    						DefaultValue: pulumi.String("binary_classifier"),
    						Description:  pulumi.String("Predictor type"),
    						IsRequired:   pulumi.Bool(true),
    						IsTunable:    pulumi.Bool(false),
    						Name:         pulumi.String("predictor_type"),
    						Type:         pulumi.String("Categorical"),
    						Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    							CategoricalParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs{
    								Values: pulumi.StringArray{
    									pulumi.String("binary_classifier"),
    								},
    							},
    						},
    					},
    				},
    				TrainingChannels: sagemaker.AlgorithmTrainingSpecificationTrainingChannelArray{
    					&sagemaker.AlgorithmTrainingSpecificationTrainingChannelArgs{
    						Name: pulumi.String("train"),
    						SupportedContentTypes: pulumi.StringArray{
    							pulumi.String("text/csv"),
    						},
    						SupportedInputModes: pulumi.StringArray{
    							pulumi.String("File"),
    						},
    					},
    				},
    			},
    			InferenceSpecification: &sagemaker.AlgorithmInferenceSpecificationArgs{
    				SupportedContentTypes: pulumi.StringArray{
    					pulumi.String("text/csv"),
    				},
    				SupportedResponseMimeTypes: pulumi.StringArray{
    					pulumi.String("text/csv"),
    				},
    				SupportedTransformInstanceTypes: pulumi.StringArray{
    					pulumi.String("ml.m5.large"),
    				},
    				Containers: sagemaker.AlgorithmInferenceSpecificationContainerArray{
    					&sagemaker.AlgorithmInferenceSpecificationContainerArgs{
    						Image: pulumi.String(example.RegistryPath),
    					},
    				},
    			},
    			ValidationSpecification: &sagemaker.AlgorithmValidationSpecificationArgs{
    				ValidationRole: exampleRole.Arn,
    				ValidationProfiles: &sagemaker.AlgorithmValidationSpecificationValidationProfilesArgs{
    					ProfileName: pulumi.String("validation-profile"),
    					TrainingJobDefinition: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs{
    						HyperParameters: pulumi.StringMap{
    							"feature_dim":     pulumi.String("2"),
    							"mini_batch_size": pulumi.String("4"),
    							"predictor_type":  pulumi.String("binary_classifier"),
    						},
    						TrainingInputMode: pulumi.String("File"),
    						InputDataConfigs: sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArray{
    							&sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs{
    								ChannelName:       pulumi.String("train"),
    								CompressionType:   pulumi.String("None"),
    								ContentType:       pulumi.String("text/csv"),
    								InputMode:         pulumi.String("File"),
    								RecordWrapperType: pulumi.String("None"),
    								ShuffleConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs{
    									Seed: pulumi.Int(1),
    								},
    								DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs{
    									S3DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs{
    										AttributeNames: pulumi.StringArray{
    											pulumi.String("label"),
    										},
    										S3DataDistributionType: pulumi.String("ShardedByS3Key"),
    										S3DataType:             pulumi.String("S3Prefix"),
    										S3Uri: exampleBucket.Bucket.ApplyT(func(bucket string) (string, error) {
    											return fmt.Sprintf("s3://%v/algorithm/training/", bucket), nil
    										}).(pulumi.StringOutput),
    									},
    								},
    							},
    						},
    						OutputDataConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs{
    							CompressionType: pulumi.String("GZIP"),
    							S3OutputPath: exampleBucket.Bucket.ApplyT(func(bucket string) (string, error) {
    								return fmt.Sprintf("s3://%v/algorithm/output", bucket), nil
    							}).(pulumi.StringOutput),
    						},
    						ResourceConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs{
    							InstanceCount:            pulumi.Int(1),
    							InstanceType:             pulumi.String("ml.m5.large"),
    							KeepAlivePeriodInSeconds: pulumi.Int(60),
    							VolumeSizeInGb:           pulumi.Int(30),
    						},
    						StoppingCondition: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs{
    							MaxPendingTimeInSeconds: pulumi.Int(7200),
    							MaxRuntimeInSeconds:     pulumi.Int(1800),
    							MaxWaitTimeInSeconds:    pulumi.Int(3600),
    						},
    					},
    					TransformJobDefinition: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs{
    						BatchStrategy: pulumi.String("MultiRecord"),
    						Environment: pulumi.StringMap{
    							"Te": pulumi.String("enabled"),
    						},
    						MaxConcurrentTransforms: pulumi.Int(1),
    						MaxPayloadInMb:          pulumi.Int(6),
    						TransformInput: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs{
    							CompressionType: pulumi.String("None"),
    							ContentType:     pulumi.String("text/csv"),
    							SplitType:       pulumi.String("Line"),
    							DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs{
    								S3DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs{
    									S3DataType: pulumi.String("S3Prefix"),
    									S3Uri: exampleBucket.Bucket.ApplyT(func(bucket string) (string, error) {
    										return fmt.Sprintf("s3://%v/algorithm/transform/", bucket), nil
    									}).(pulumi.StringOutput),
    								},
    							},
    						},
    						TransformOutput: sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs{
    							Accept:       pulumi.String("text/csv"),
    							AssembleWith: pulumi.String("Line"),
    							S3OutputPath: exampleBucket.Bucket.ApplyT(func(bucket string) (string, error) {
    								return fmt.Sprintf("s3://%v/algorithm/transform-output", bucket), nil
    							}).(pulumi.StringOutput),
    						},
    						TransformResources: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs{
    							InstanceCount: pulumi.Int(1),
    							InstanceType:  pulumi.String("ml.m5.large"),
    						},
    					},
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			exampleRolePolicyAttachment,
    			exampleRolePolicy,
    			training,
    			transform,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var current = Aws.GetPartition.Invoke();
    
        var example = Aws.Sagemaker.GetPrebuiltEcrImage.Invoke(new()
        {
            RepositoryName = "linear-learner",
            ImageTag = "1",
        });
    
        var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                $"sagemaker.{current.Apply(getPartitionResult => getPartitionResult.DnsSuffix)}",
                            },
                        },
                    },
                },
            },
        });
    
        var exampleRole = new Aws.Iam.Role("example", new()
        {
            Name = "example-sagemaker-algorithm-role",
            AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new()
        {
            Role = exampleRole.Name,
            PolicyArn = $"arn:{current.Apply(getPartitionResult => getPartitionResult.Partition)}:iam::aws:policy/AmazonSageMakerFullAccess",
        });
    
        var exampleBucket = new Aws.S3.Bucket("example", new()
        {
            BucketName = "example-sagemaker-algorithm-validation-bucket",
            ForceDestroy = true,
        });
    
        var s3Access = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Actions = new[]
                    {
                        "s3:GetBucketLocation",
                        "s3:ListBucket",
                        "s3:GetObject",
                        "s3:PutObject",
                    },
                    Resources = new[]
                    {
                        exampleBucket.Arn,
                        $"{exampleBucket.Arn}/*",
                    },
                },
            },
        });
    
        var exampleRolePolicy = new Aws.Iam.RolePolicy("example", new()
        {
            Role = exampleRole.Name,
            Policy = s3Access.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var training = new Aws.S3.BucketObjectv2("training", new()
        {
            Bucket = exampleBucket.BucketName,
            Key = "algorithm/training/data.csv",
            Content = @"1,1.0,0.0
    0,0.0,1.0
    1,1.0,1.0
    0,0.0,0.0
    ",
        });
    
        var transform = new Aws.S3.BucketObjectv2("transform", new()
        {
            Bucket = exampleBucket.BucketName,
            Key = "algorithm/transform/input.csv",
            Content = @"1.0,0.0
    0.0,1.0
    ",
        });
    
        var exampleAlgorithm = new Aws.Sagemaker.Algorithm("example", new()
        {
            AlgorithmName = "example-validation-algorithm",
            TrainingSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationArgs
            {
                TrainingImage = example.Apply(getPrebuiltEcrImageResult => getPrebuiltEcrImageResult.RegistryPath),
                SupportedTrainingInstanceTypes = new[]
                {
                    "ml.m5.large",
                },
                SupportedHyperParameters = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                    {
                        DefaultValue = "2",
                        Description = "Feature dimension",
                        IsRequired = true,
                        IsTunable = false,
                        Name = "feature_dim",
                        Type = "Integer",
                        Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                        {
                            IntegerParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs
                            {
                                MinValue = "2",
                                MaxValue = "2",
                            },
                        },
                    },
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                    {
                        DefaultValue = "4",
                        Description = "Mini batch size",
                        IsRequired = true,
                        IsTunable = false,
                        Name = "mini_batch_size",
                        Type = "Integer",
                        Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                        {
                            IntegerParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs
                            {
                                MinValue = "4",
                                MaxValue = "4",
                            },
                        },
                    },
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                    {
                        DefaultValue = "binary_classifier",
                        Description = "Predictor type",
                        IsRequired = true,
                        IsTunable = false,
                        Name = "predictor_type",
                        Type = "Categorical",
                        Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                        {
                            CategoricalParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs
                            {
                                Values = new[]
                                {
                                    "binary_classifier",
                                },
                            },
                        },
                    },
                },
                TrainingChannels = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationTrainingChannelArgs
                    {
                        Name = "train",
                        SupportedContentTypes = new[]
                        {
                            "text/csv",
                        },
                        SupportedInputModes = new[]
                        {
                            "File",
                        },
                    },
                },
            },
            InferenceSpecification = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationArgs
            {
                SupportedContentTypes = new[]
                {
                    "text/csv",
                },
                SupportedResponseMimeTypes = new[]
                {
                    "text/csv",
                },
                SupportedTransformInstanceTypes = new[]
                {
                    "ml.m5.large",
                },
                Containers = new[]
                {
                    new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerArgs
                    {
                        Image = example.Apply(getPrebuiltEcrImageResult => getPrebuiltEcrImageResult.RegistryPath),
                    },
                },
            },
            ValidationSpecification = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationArgs
            {
                ValidationRole = exampleRole.Arn,
                ValidationProfiles = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesArgs
                {
                    ProfileName = "validation-profile",
                    TrainingJobDefinition = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs
                    {
                        HyperParameters = 
                        {
                            { "feature_dim", "2" },
                            { "mini_batch_size", "4" },
                            { "predictor_type", "binary_classifier" },
                        },
                        TrainingInputMode = "File",
                        InputDataConfigs = new[]
                        {
                            new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs
                            {
                                ChannelName = "train",
                                CompressionType = "None",
                                ContentType = "text/csv",
                                InputMode = "File",
                                RecordWrapperType = "None",
                                ShuffleConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs
                                {
                                    Seed = 1,
                                },
                                DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs
                                {
                                    S3DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs
                                    {
                                        AttributeNames = new[]
                                        {
                                            "label",
                                        },
                                        S3DataDistributionType = "ShardedByS3Key",
                                        S3DataType = "S3Prefix",
                                        S3Uri = exampleBucket.BucketName.Apply(bucket => $"s3://{bucket}/algorithm/training/"),
                                    },
                                },
                            },
                        },
                        OutputDataConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs
                        {
                            CompressionType = "GZIP",
                            S3OutputPath = exampleBucket.BucketName.Apply(bucket => $"s3://{bucket}/algorithm/output"),
                        },
                        ResourceConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs
                        {
                            InstanceCount = 1,
                            InstanceType = "ml.m5.large",
                            KeepAlivePeriodInSeconds = 60,
                            VolumeSizeInGb = 30,
                        },
                        StoppingCondition = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs
                        {
                            MaxPendingTimeInSeconds = 7200,
                            MaxRuntimeInSeconds = 1800,
                            MaxWaitTimeInSeconds = 3600,
                        },
                    },
                    TransformJobDefinition = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs
                    {
                        BatchStrategy = "MultiRecord",
                        Environment = 
                        {
                            { "Te", "enabled" },
                        },
                        MaxConcurrentTransforms = 1,
                        MaxPayloadInMb = 6,
                        TransformInput = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs
                        {
                            CompressionType = "None",
                            ContentType = "text/csv",
                            SplitType = "Line",
                            DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs
                            {
                                S3DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs
                                {
                                    S3DataType = "S3Prefix",
                                    S3Uri = exampleBucket.BucketName.Apply(bucket => $"s3://{bucket}/algorithm/transform/"),
                                },
                            },
                        },
                        TransformOutput = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs
                        {
                            Accept = "text/csv",
                            AssembleWith = "Line",
                            S3OutputPath = exampleBucket.BucketName.Apply(bucket => $"s3://{bucket}/algorithm/transform-output"),
                        },
                        TransformResources = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs
                        {
                            InstanceCount = 1,
                            InstanceType = "ml.m5.large",
                        },
                    },
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                exampleRolePolicyAttachment,
                exampleRolePolicy,
                training,
                transform,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.AwsFunctions;
    import com.pulumi.aws.inputs.GetPartitionArgs;
    import com.pulumi.aws.sagemaker.SagemakerFunctions;
    import com.pulumi.aws.sagemaker.inputs.GetPrebuiltEcrImageArgs;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.iam.RolePolicyAttachment;
    import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
    import com.pulumi.aws.s3.Bucket;
    import com.pulumi.aws.s3.BucketArgs;
    import com.pulumi.aws.iam.RolePolicy;
    import com.pulumi.aws.iam.RolePolicyArgs;
    import com.pulumi.aws.s3.BucketObjectv2;
    import com.pulumi.aws.s3.BucketObjectv2Args;
    import com.pulumi.aws.sagemaker.Algorithm;
    import com.pulumi.aws.sagemaker.AlgorithmArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmTrainingSpecificationArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmInferenceSpecificationArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs;
    import com.pulumi.aws.sagemaker.inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    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) {
            final var current = AwsFunctions.getPartition(GetPartitionArgs.builder()
                .build());
    
            final var example = SagemakerFunctions.getPrebuiltEcrImage(GetPrebuiltEcrImageArgs.builder()
                .repositoryName("linear-learner")
                .imageTag("1")
                .build());
    
            final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .actions("sts:AssumeRole")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers(String.format("sagemaker.%s", current.dnsSuffix()))
                        .build())
                    .build())
                .build());
    
            var exampleRole = new Role("exampleRole", RoleArgs.builder()
                .name("example-sagemaker-algorithm-role")
                .assumeRolePolicy(assumeRole.json())
                .build());
    
            var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
                .role(exampleRole.name())
                .policyArn(String.format("arn:%s:iam::aws:policy/AmazonSageMakerFullAccess", current.partition()))
                .build());
    
            var exampleBucket = new Bucket("exampleBucket", BucketArgs.builder()
                .bucket("example-sagemaker-algorithm-validation-bucket")
                .forceDestroy(true)
                .build());
    
            final var s3Access = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .actions(                
                        "s3:GetBucketLocation",
                        "s3:ListBucket",
                        "s3:GetObject",
                        "s3:PutObject")
                    .resources(                
                        exampleBucket.arn(),
                        exampleBucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                    .build())
                .build());
    
            var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
                .role(exampleRole.name())
                .policy(s3Access.applyValue(_s3Access -> _s3Access.json()))
                .build());
    
            var training = new BucketObjectv2("training", BucketObjectv2Args.builder()
                .bucket(exampleBucket.bucket())
                .key("algorithm/training/data.csv")
                .content("""
    1,1.0,0.0
    0,0.0,1.0
    1,1.0,1.0
    0,0.0,0.0
                """)
                .build());
    
            var transform = new BucketObjectv2("transform", BucketObjectv2Args.builder()
                .bucket(exampleBucket.bucket())
                .key("algorithm/transform/input.csv")
                .content("""
    1.0,0.0
    0.0,1.0
                """)
                .build());
    
            var exampleAlgorithm = new Algorithm("exampleAlgorithm", AlgorithmArgs.builder()
                .algorithmName("example-validation-algorithm")
                .trainingSpecification(AlgorithmTrainingSpecificationArgs.builder()
                    .trainingImage(example.registryPath())
                    .supportedTrainingInstanceTypes("ml.m5.large")
                    .supportedHyperParameters(                
                        AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                            .defaultValue("2")
                            .description("Feature dimension")
                            .isRequired(true)
                            .isTunable(false)
                            .name("feature_dim")
                            .type("Integer")
                            .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                                .integerParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs.builder()
                                    .minValue("2")
                                    .maxValue("2")
                                    .build())
                                .build())
                            .build(),
                        AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                            .defaultValue("4")
                            .description("Mini batch size")
                            .isRequired(true)
                            .isTunable(false)
                            .name("mini_batch_size")
                            .type("Integer")
                            .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                                .integerParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs.builder()
                                    .minValue("4")
                                    .maxValue("4")
                                    .build())
                                .build())
                            .build(),
                        AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                            .defaultValue("binary_classifier")
                            .description("Predictor type")
                            .isRequired(true)
                            .isTunable(false)
                            .name("predictor_type")
                            .type("Categorical")
                            .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                                .categoricalParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs.builder()
                                    .values("binary_classifier")
                                    .build())
                                .build())
                            .build())
                    .trainingChannels(AlgorithmTrainingSpecificationTrainingChannelArgs.builder()
                        .name("train")
                        .supportedContentTypes("text/csv")
                        .supportedInputModes("File")
                        .build())
                    .build())
                .inferenceSpecification(AlgorithmInferenceSpecificationArgs.builder()
                    .supportedContentTypes("text/csv")
                    .supportedResponseMimeTypes("text/csv")
                    .supportedTransformInstanceTypes("ml.m5.large")
                    .containers(AlgorithmInferenceSpecificationContainerArgs.builder()
                        .image(example.registryPath())
                        .build())
                    .build())
                .validationSpecification(AlgorithmValidationSpecificationArgs.builder()
                    .validationRole(exampleRole.arn())
                    .validationProfiles(AlgorithmValidationSpecificationValidationProfilesArgs.builder()
                        .profileName("validation-profile")
                        .trainingJobDefinition(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs.builder()
                            .hyperParameters(Map.ofEntries(
                                Map.entry("feature_dim", "2"),
                                Map.entry("mini_batch_size", "4"),
                                Map.entry("predictor_type", "binary_classifier")
                            ))
                            .trainingInputMode("File")
                            .inputDataConfigs(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs.builder()
                                .channelName("train")
                                .compressionType("None")
                                .contentType("text/csv")
                                .inputMode("File")
                                .recordWrapperType("None")
                                .shuffleConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs.builder()
                                    .seed(1)
                                    .build())
                                .dataSource(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs.builder()
                                    .s3DataSource(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs.builder()
                                        .attributeNames("label")
                                        .s3DataDistributionType("ShardedByS3Key")
                                        .s3DataType("S3Prefix")
                                        .s3Uri(exampleBucket.bucket().applyValue(_bucket -> String.format("s3://%s/algorithm/training/", _bucket)))
                                        .build())
                                    .build())
                                .build())
                            .outputDataConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs.builder()
                                .compressionType("GZIP")
                                .s3OutputPath(exampleBucket.bucket().applyValue(_bucket -> String.format("s3://%s/algorithm/output", _bucket)))
                                .build())
                            .resourceConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs.builder()
                                .instanceCount(1)
                                .instanceType("ml.m5.large")
                                .keepAlivePeriodInSeconds(60)
                                .volumeSizeInGb(30)
                                .build())
                            .stoppingCondition(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs.builder()
                                .maxPendingTimeInSeconds(7200)
                                .maxRuntimeInSeconds(1800)
                                .maxWaitTimeInSeconds(3600)
                                .build())
                            .build())
                        .transformJobDefinition(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs.builder()
                            .batchStrategy("MultiRecord")
                            .environment(Map.of("Te", "enabled"))
                            .maxConcurrentTransforms(1)
                            .maxPayloadInMb(6)
                            .transformInput(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs.builder()
                                .compressionType("None")
                                .contentType("text/csv")
                                .splitType("Line")
                                .dataSource(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs.builder()
                                    .s3DataSource(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs.builder()
                                        .s3DataType("S3Prefix")
                                        .s3Uri(exampleBucket.bucket().applyValue(_bucket -> String.format("s3://%s/algorithm/transform/", _bucket)))
                                        .build())
                                    .build())
                                .build())
                            .transformOutput(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs.builder()
                                .accept("text/csv")
                                .assembleWith("Line")
                                .s3OutputPath(exampleBucket.bucket().applyValue(_bucket -> String.format("s3://%s/algorithm/transform-output", _bucket)))
                                .build())
                            .transformResources(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs.builder()
                                .instanceCount(1)
                                .instanceType("ml.m5.large")
                                .build())
                            .build())
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        exampleRolePolicyAttachment,
                        exampleRolePolicy,
                        training,
                        transform)
                    .build());
    
        }
    }
    
    resources:
      exampleRole:
        type: aws:iam:Role
        name: example
        properties:
          name: example-sagemaker-algorithm-role
          assumeRolePolicy: ${assumeRole.json}
      exampleRolePolicyAttachment:
        type: aws:iam:RolePolicyAttachment
        name: example
        properties:
          role: ${exampleRole.name}
          policyArn: arn:${current.partition}:iam::aws:policy/AmazonSageMakerFullAccess
      exampleBucket:
        type: aws:s3:Bucket
        name: example
        properties:
          bucket: example-sagemaker-algorithm-validation-bucket
          forceDestroy: true
      exampleRolePolicy:
        type: aws:iam:RolePolicy
        name: example
        properties:
          role: ${exampleRole.name}
          policy: ${s3Access.json}
      training:
        type: aws:s3:BucketObjectv2
        properties:
          bucket: ${exampleBucket.bucket}
          key: algorithm/training/data.csv
          content: |
            1,1.0,0.0
            0,0.0,1.0
            1,1.0,1.0
            0,0.0,0.0
      transform:
        type: aws:s3:BucketObjectv2
        properties:
          bucket: ${exampleBucket.bucket}
          key: algorithm/transform/input.csv
          content: |
            1.0,0.0
            0.0,1.0
      exampleAlgorithm:
        type: aws:sagemaker:Algorithm
        name: example
        properties:
          algorithmName: example-validation-algorithm
          trainingSpecification:
            trainingImage: ${example.registryPath}
            supportedTrainingInstanceTypes:
              - ml.m5.large
            supportedHyperParameters:
              - defaultValue: '2'
                description: Feature dimension
                isRequired: true
                isTunable: false
                name: feature_dim
                type: Integer
                range:
                  integerParameterRangeSpecification:
                    minValue: '2'
                    maxValue: '2'
              - defaultValue: '4'
                description: Mini batch size
                isRequired: true
                isTunable: false
                name: mini_batch_size
                type: Integer
                range:
                  integerParameterRangeSpecification:
                    minValue: '4'
                    maxValue: '4'
              - defaultValue: binary_classifier
                description: Predictor type
                isRequired: true
                isTunable: false
                name: predictor_type
                type: Categorical
                range:
                  categoricalParameterRangeSpecification:
                    values:
                      - binary_classifier
            trainingChannels:
              - name: train
                supportedContentTypes:
                  - text/csv
                supportedInputModes:
                  - File
          inferenceSpecification:
            supportedContentTypes:
              - text/csv
            supportedResponseMimeTypes:
              - text/csv
            supportedTransformInstanceTypes:
              - ml.m5.large
            containers:
              - image: ${example.registryPath}
          validationSpecification:
            validationRole: ${exampleRole.arn}
            validationProfiles:
              profileName: validation-profile
              trainingJobDefinition:
                hyperParameters:
                  feature_dim: '2'
                  mini_batch_size: '4'
                  predictor_type: binary_classifier
                trainingInputMode: File
                inputDataConfigs:
                  - channelName: train
                    compressionType: None
                    contentType: text/csv
                    inputMode: File
                    recordWrapperType: None
                    shuffleConfig:
                      seed: 1
                    dataSource:
                      s3DataSource:
                        attributeNames:
                          - label
                        s3DataDistributionType: ShardedByS3Key
                        s3DataType: S3Prefix
                        s3Uri: s3://${exampleBucket.bucket}/algorithm/training/
                outputDataConfig:
                  compressionType: GZIP
                  s3OutputPath: s3://${exampleBucket.bucket}/algorithm/output
                resourceConfig:
                  instanceCount: 1
                  instanceType: ml.m5.large
                  keepAlivePeriodInSeconds: 60
                  volumeSizeInGb: 30
                stoppingCondition:
                  maxPendingTimeInSeconds: 7200
                  maxRuntimeInSeconds: 1800
                  maxWaitTimeInSeconds: 3600
              transformJobDefinition:
                batchStrategy: MultiRecord
                environment:
                  Te: enabled
                maxConcurrentTransforms: 1
                maxPayloadInMb: 6
                transformInput:
                  compressionType: None
                  contentType: text/csv
                  splitType: Line
                  dataSource:
                    s3DataSource:
                      s3DataType: S3Prefix
                      s3Uri: s3://${exampleBucket.bucket}/algorithm/transform/
                transformOutput:
                  accept: text/csv
                  assembleWith: Line
                  s3OutputPath: s3://${exampleBucket.bucket}/algorithm/transform-output
                transformResources:
                  instanceCount: 1
                  instanceType: ml.m5.large
        options:
          dependsOn:
            - ${exampleRolePolicyAttachment}
            - ${exampleRolePolicy}
            - ${training}
            - ${transform}
    variables:
      current:
        fn::invoke:
          function: aws:getPartition
          arguments: {}
      example:
        fn::invoke:
          function: aws:sagemaker:getPrebuiltEcrImage
          arguments:
            repositoryName: linear-learner
            imageTag: '1'
      assumeRole:
        fn::invoke:
          function: aws:iam:getPolicyDocument
          arguments:
            statements:
              - actions:
                  - sts:AssumeRole
                principals:
                  - type: Service
                    identifiers:
                      - sagemaker.${current.dnsSuffix}
      s3Access:
        fn::invoke:
          function: aws:iam:getPolicyDocument
          arguments:
            statements:
              - effect: Allow
                actions:
                  - s3:GetBucketLocation
                  - s3:ListBucket
                  - s3:GetObject
                  - s3:PutObject
                resources:
                  - ${exampleBucket.arn}
                  - ${exampleBucket.arn}/*
    

    Create Algorithm Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Algorithm(name: string, args: AlgorithmArgs, opts?: CustomResourceOptions);
    @overload
    def Algorithm(resource_name: str,
                  args: AlgorithmArgs,
                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def Algorithm(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  algorithm_name: Optional[str] = None,
                  training_specification: Optional[AlgorithmTrainingSpecificationArgs] = None,
                  algorithm_description: Optional[str] = None,
                  certify_for_marketplace: Optional[bool] = None,
                  inference_specification: Optional[AlgorithmInferenceSpecificationArgs] = None,
                  region: Optional[str] = None,
                  tags: Optional[Mapping[str, str]] = None,
                  timeouts: Optional[AlgorithmTimeoutsArgs] = None,
                  validation_specification: Optional[AlgorithmValidationSpecificationArgs] = None)
    func NewAlgorithm(ctx *Context, name string, args AlgorithmArgs, opts ...ResourceOption) (*Algorithm, error)
    public Algorithm(string name, AlgorithmArgs args, CustomResourceOptions? opts = null)
    public Algorithm(String name, AlgorithmArgs args)
    public Algorithm(String name, AlgorithmArgs args, CustomResourceOptions options)
    
    type: aws:sagemaker:Algorithm
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args AlgorithmArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args AlgorithmArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args AlgorithmArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AlgorithmArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AlgorithmArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var algorithmResource = new Aws.Sagemaker.Algorithm("algorithmResource", new()
    {
        AlgorithmName = "string",
        TrainingSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationArgs
        {
            SupportedTrainingInstanceTypes = new[]
            {
                "string",
            },
            TrainingChannels = new[]
            {
                new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationTrainingChannelArgs
                {
                    Name = "string",
                    SupportedContentTypes = new[]
                    {
                        "string",
                    },
                    SupportedInputModes = new[]
                    {
                        "string",
                    },
                    Description = "string",
                    IsRequired = false,
                    SupportedCompressionTypes = new[]
                    {
                        "string",
                    },
                },
            },
            TrainingImage = "string",
            AdditionalS3DataSource = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationAdditionalS3DataSourceArgs
            {
                S3DataType = "string",
                S3Uri = "string",
                CompressionType = "string",
                Etag = "string",
            },
            MetricDefinitions = new[]
            {
                new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationMetricDefinitionArgs
                {
                    Name = "string",
                    Regex = "string",
                },
            },
            SupportedHyperParameters = new[]
            {
                new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterArgs
                {
                    Name = "string",
                    Type = "string",
                    DefaultValue = "string",
                    Description = "string",
                    IsRequired = false,
                    IsTunable = false,
                    Range = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs
                    {
                        CategoricalParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs
                        {
                            Values = new[]
                            {
                                "string",
                            },
                        },
                        ContinuousParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs
                        {
                            MaxValue = "string",
                            MinValue = "string",
                        },
                        IntegerParameterRangeSpecification = new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs
                        {
                            MaxValue = "string",
                            MinValue = "string",
                        },
                    },
                },
            },
            SupportedTuningJobObjectiveMetrics = new[]
            {
                new Aws.Sagemaker.Inputs.AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs
                {
                    MetricName = "string",
                    Type = "string",
                },
            },
            SupportsDistributedTraining = false,
            TrainingImageDigest = "string",
        },
        AlgorithmDescription = "string",
        CertifyForMarketplace = false,
        InferenceSpecification = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationArgs
        {
            Containers = new[]
            {
                new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerArgs
                {
                    AdditionalS3DataSource = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerAdditionalS3DataSourceArgs
                    {
                        S3DataType = "string",
                        S3Uri = "string",
                        CompressionType = "string",
                        Etag = "string",
                    },
                    BaseModel = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerBaseModelArgs
                    {
                        HubContentName = "string",
                        HubContentVersion = "string",
                        RecipeName = "string",
                    },
                    ContainerHostname = "string",
                    Environment = 
                    {
                        { "string", "string" },
                    },
                    Framework = "string",
                    FrameworkVersion = "string",
                    Image = "string",
                    ImageDigest = "string",
                    IsCheckpoint = false,
                    ModelDataEtag = "string",
                    ModelDataSource = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerModelDataSourceArgs
                    {
                        S3DataSource = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceArgs
                        {
                            CompressionType = "string",
                            S3DataType = "string",
                            S3Uri = "string",
                            Etag = "string",
                            HubAccessConfig = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceHubAccessConfigArgs
                            {
                                HubContentArn = "string",
                            },
                            ManifestEtag = "string",
                            ManifestS3Uri = "string",
                            ModelAccessConfig = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceModelAccessConfigArgs
                            {
                                AcceptEula = false,
                            },
                        },
                    },
                    ModelDataUrl = "string",
                    ModelInput = new Aws.Sagemaker.Inputs.AlgorithmInferenceSpecificationContainerModelInputArgs
                    {
                        DataInputConfig = "string",
                    },
                    NearestModelName = "string",
                    ProductId = "string",
                },
            },
            SupportedContentTypes = new[]
            {
                "string",
            },
            SupportedRealtimeInferenceInstanceTypes = new[]
            {
                "string",
            },
            SupportedResponseMimeTypes = new[]
            {
                "string",
            },
            SupportedTransformInstanceTypes = new[]
            {
                "string",
            },
        },
        Region = "string",
        Tags = 
        {
            { "string", "string" },
        },
        Timeouts = new Aws.Sagemaker.Inputs.AlgorithmTimeoutsArgs
        {
            Create = "string",
            Delete = "string",
        },
        ValidationSpecification = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationArgs
        {
            ValidationProfiles = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesArgs
            {
                ProfileName = "string",
                TrainingJobDefinition = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs
                {
                    InputDataConfigs = new[]
                    {
                        new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs
                        {
                            ChannelName = "string",
                            DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs
                            {
                                FileSystemDataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceFileSystemDataSourceArgs
                                {
                                    DirectoryPath = "string",
                                    FileSystemAccessMode = "string",
                                    FileSystemId = "string",
                                    FileSystemType = "string",
                                },
                                S3DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs
                                {
                                    S3DataType = "string",
                                    S3Uri = "string",
                                    AttributeNames = new[]
                                    {
                                        "string",
                                    },
                                    HubAccessConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfigArgs
                                    {
                                        HubContentArn = "string",
                                    },
                                    InstanceGroupNames = new[]
                                    {
                                        "string",
                                    },
                                    ModelAccessConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfigArgs
                                    {
                                        AcceptEula = false,
                                    },
                                    S3DataDistributionType = "string",
                                },
                            },
                            CompressionType = "string",
                            ContentType = "string",
                            InputMode = "string",
                            RecordWrapperType = "string",
                            ShuffleConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs
                            {
                                Seed = 0,
                            },
                        },
                    },
                    OutputDataConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs
                    {
                        S3OutputPath = "string",
                        CompressionType = "string",
                        KmsKeyId = "string",
                    },
                    ResourceConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs
                    {
                        InstanceCount = 0,
                        InstanceGroups = new[]
                        {
                            new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroupArgs
                            {
                                InstanceCount = 0,
                                InstanceGroupName = "string",
                                InstanceType = "string",
                            },
                        },
                        InstancePlacementConfig = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigArgs
                        {
                            EnableMultipleJobs = false,
                            PlacementSpecifications = new[]
                            {
                                new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecificationArgs
                                {
                                    InstanceCount = 0,
                                    UltraServerId = "string",
                                },
                            },
                        },
                        InstanceType = "string",
                        KeepAlivePeriodInSeconds = 0,
                        TrainingPlanArn = "string",
                        VolumeKmsKeyId = "string",
                        VolumeSizeInGb = 0,
                    },
                    StoppingCondition = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs
                    {
                        MaxPendingTimeInSeconds = 0,
                        MaxRuntimeInSeconds = 0,
                        MaxWaitTimeInSeconds = 0,
                    },
                    TrainingInputMode = "string",
                    HyperParameters = 
                    {
                        { "string", "string" },
                    },
                },
                TransformJobDefinition = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs
                {
                    TransformInput = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs
                    {
                        DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs
                        {
                            S3DataSource = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs
                            {
                                S3DataType = "string",
                                S3Uri = "string",
                            },
                        },
                        CompressionType = "string",
                        ContentType = "string",
                        SplitType = "string",
                    },
                    TransformOutput = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs
                    {
                        S3OutputPath = "string",
                        Accept = "string",
                        AssembleWith = "string",
                        KmsKeyId = "string",
                    },
                    TransformResources = new Aws.Sagemaker.Inputs.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs
                    {
                        InstanceCount = 0,
                        InstanceType = "string",
                        TransformAmiVersion = "string",
                        VolumeKmsKeyId = "string",
                    },
                    BatchStrategy = "string",
                    Environment = 
                    {
                        { "string", "string" },
                    },
                    MaxConcurrentTransforms = 0,
                    MaxPayloadInMb = 0,
                },
            },
            ValidationRole = "string",
        },
    });
    
    example, err := sagemaker.NewAlgorithm(ctx, "algorithmResource", &sagemaker.AlgorithmArgs{
    	AlgorithmName: pulumi.String("string"),
    	TrainingSpecification: &sagemaker.AlgorithmTrainingSpecificationArgs{
    		SupportedTrainingInstanceTypes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		TrainingChannels: sagemaker.AlgorithmTrainingSpecificationTrainingChannelArray{
    			&sagemaker.AlgorithmTrainingSpecificationTrainingChannelArgs{
    				Name: pulumi.String("string"),
    				SupportedContentTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				SupportedInputModes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Description: pulumi.String("string"),
    				IsRequired:  pulumi.Bool(false),
    				SupportedCompressionTypes: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    		},
    		TrainingImage: pulumi.String("string"),
    		AdditionalS3DataSource: &sagemaker.AlgorithmTrainingSpecificationAdditionalS3DataSourceArgs{
    			S3DataType:      pulumi.String("string"),
    			S3Uri:           pulumi.String("string"),
    			CompressionType: pulumi.String("string"),
    			Etag:            pulumi.String("string"),
    		},
    		MetricDefinitions: sagemaker.AlgorithmTrainingSpecificationMetricDefinitionArray{
    			&sagemaker.AlgorithmTrainingSpecificationMetricDefinitionArgs{
    				Name:  pulumi.String("string"),
    				Regex: pulumi.String("string"),
    			},
    		},
    		SupportedHyperParameters: sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArray{
    			&sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterArgs{
    				Name:         pulumi.String("string"),
    				Type:         pulumi.String("string"),
    				DefaultValue: pulumi.String("string"),
    				Description:  pulumi.String("string"),
    				IsRequired:   pulumi.Bool(false),
    				IsTunable:    pulumi.Bool(false),
    				Range: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs{
    					CategoricalParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs{
    						Values: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					ContinuousParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs{
    						MaxValue: pulumi.String("string"),
    						MinValue: pulumi.String("string"),
    					},
    					IntegerParameterRangeSpecification: &sagemaker.AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs{
    						MaxValue: pulumi.String("string"),
    						MinValue: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		SupportedTuningJobObjectiveMetrics: sagemaker.AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArray{
    			&sagemaker.AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs{
    				MetricName: pulumi.String("string"),
    				Type:       pulumi.String("string"),
    			},
    		},
    		SupportsDistributedTraining: pulumi.Bool(false),
    		TrainingImageDigest:         pulumi.String("string"),
    	},
    	AlgorithmDescription:  pulumi.String("string"),
    	CertifyForMarketplace: pulumi.Bool(false),
    	InferenceSpecification: &sagemaker.AlgorithmInferenceSpecificationArgs{
    		Containers: sagemaker.AlgorithmInferenceSpecificationContainerArray{
    			&sagemaker.AlgorithmInferenceSpecificationContainerArgs{
    				AdditionalS3DataSource: &sagemaker.AlgorithmInferenceSpecificationContainerAdditionalS3DataSourceArgs{
    					S3DataType:      pulumi.String("string"),
    					S3Uri:           pulumi.String("string"),
    					CompressionType: pulumi.String("string"),
    					Etag:            pulumi.String("string"),
    				},
    				BaseModel: &sagemaker.AlgorithmInferenceSpecificationContainerBaseModelArgs{
    					HubContentName:    pulumi.String("string"),
    					HubContentVersion: pulumi.String("string"),
    					RecipeName:        pulumi.String("string"),
    				},
    				ContainerHostname: pulumi.String("string"),
    				Environment: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				Framework:        pulumi.String("string"),
    				FrameworkVersion: pulumi.String("string"),
    				Image:            pulumi.String("string"),
    				ImageDigest:      pulumi.String("string"),
    				IsCheckpoint:     pulumi.Bool(false),
    				ModelDataEtag:    pulumi.String("string"),
    				ModelDataSource: &sagemaker.AlgorithmInferenceSpecificationContainerModelDataSourceArgs{
    					S3DataSource: &sagemaker.AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceArgs{
    						CompressionType: pulumi.String("string"),
    						S3DataType:      pulumi.String("string"),
    						S3Uri:           pulumi.String("string"),
    						Etag:            pulumi.String("string"),
    						HubAccessConfig: &sagemaker.AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceHubAccessConfigArgs{
    							HubContentArn: pulumi.String("string"),
    						},
    						ManifestEtag:  pulumi.String("string"),
    						ManifestS3Uri: pulumi.String("string"),
    						ModelAccessConfig: &sagemaker.AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceModelAccessConfigArgs{
    							AcceptEula: pulumi.Bool(false),
    						},
    					},
    				},
    				ModelDataUrl: pulumi.String("string"),
    				ModelInput: &sagemaker.AlgorithmInferenceSpecificationContainerModelInputArgs{
    					DataInputConfig: pulumi.String("string"),
    				},
    				NearestModelName: pulumi.String("string"),
    				ProductId:        pulumi.String("string"),
    			},
    		},
    		SupportedContentTypes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		SupportedRealtimeInferenceInstanceTypes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		SupportedResponseMimeTypes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		SupportedTransformInstanceTypes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	Region: pulumi.String("string"),
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Timeouts: &sagemaker.AlgorithmTimeoutsArgs{
    		Create: pulumi.String("string"),
    		Delete: pulumi.String("string"),
    	},
    	ValidationSpecification: &sagemaker.AlgorithmValidationSpecificationArgs{
    		ValidationProfiles: &sagemaker.AlgorithmValidationSpecificationValidationProfilesArgs{
    			ProfileName: pulumi.String("string"),
    			TrainingJobDefinition: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs{
    				InputDataConfigs: sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArray{
    					&sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs{
    						ChannelName: pulumi.String("string"),
    						DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs{
    							FileSystemDataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceFileSystemDataSourceArgs{
    								DirectoryPath:        pulumi.String("string"),
    								FileSystemAccessMode: pulumi.String("string"),
    								FileSystemId:         pulumi.String("string"),
    								FileSystemType:       pulumi.String("string"),
    							},
    							S3DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs{
    								S3DataType: pulumi.String("string"),
    								S3Uri:      pulumi.String("string"),
    								AttributeNames: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								HubAccessConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfigArgs{
    									HubContentArn: pulumi.String("string"),
    								},
    								InstanceGroupNames: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								ModelAccessConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfigArgs{
    									AcceptEula: pulumi.Bool(false),
    								},
    								S3DataDistributionType: pulumi.String("string"),
    							},
    						},
    						CompressionType:   pulumi.String("string"),
    						ContentType:       pulumi.String("string"),
    						InputMode:         pulumi.String("string"),
    						RecordWrapperType: pulumi.String("string"),
    						ShuffleConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs{
    							Seed: pulumi.Int(0),
    						},
    					},
    				},
    				OutputDataConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs{
    					S3OutputPath:    pulumi.String("string"),
    					CompressionType: pulumi.String("string"),
    					KmsKeyId:        pulumi.String("string"),
    				},
    				ResourceConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs{
    					InstanceCount: pulumi.Int(0),
    					InstanceGroups: sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroupArray{
    						&sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroupArgs{
    							InstanceCount:     pulumi.Int(0),
    							InstanceGroupName: pulumi.String("string"),
    							InstanceType:      pulumi.String("string"),
    						},
    					},
    					InstancePlacementConfig: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigArgs{
    						EnableMultipleJobs: pulumi.Bool(false),
    						PlacementSpecifications: sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecificationArray{
    							&sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecificationArgs{
    								InstanceCount: pulumi.Int(0),
    								UltraServerId: pulumi.String("string"),
    							},
    						},
    					},
    					InstanceType:             pulumi.String("string"),
    					KeepAlivePeriodInSeconds: pulumi.Int(0),
    					TrainingPlanArn:          pulumi.String("string"),
    					VolumeKmsKeyId:           pulumi.String("string"),
    					VolumeSizeInGb:           pulumi.Int(0),
    				},
    				StoppingCondition: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs{
    					MaxPendingTimeInSeconds: pulumi.Int(0),
    					MaxRuntimeInSeconds:     pulumi.Int(0),
    					MaxWaitTimeInSeconds:    pulumi.Int(0),
    				},
    				TrainingInputMode: pulumi.String("string"),
    				HyperParameters: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    			},
    			TransformJobDefinition: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs{
    				TransformInput: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs{
    					DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs{
    						S3DataSource: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs{
    							S3DataType: pulumi.String("string"),
    							S3Uri:      pulumi.String("string"),
    						},
    					},
    					CompressionType: pulumi.String("string"),
    					ContentType:     pulumi.String("string"),
    					SplitType:       pulumi.String("string"),
    				},
    				TransformOutput: sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs{
    					S3OutputPath: pulumi.String("string"),
    					Accept:       pulumi.String("string"),
    					AssembleWith: pulumi.String("string"),
    					KmsKeyId:     pulumi.String("string"),
    				},
    				TransformResources: &sagemaker.AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs{
    					InstanceCount:       pulumi.Int(0),
    					InstanceType:        pulumi.String("string"),
    					TransformAmiVersion: pulumi.String("string"),
    					VolumeKmsKeyId:      pulumi.String("string"),
    				},
    				BatchStrategy: pulumi.String("string"),
    				Environment: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    				MaxConcurrentTransforms: pulumi.Int(0),
    				MaxPayloadInMb:          pulumi.Int(0),
    			},
    		},
    		ValidationRole: pulumi.String("string"),
    	},
    })
    
    var algorithmResource = new Algorithm("algorithmResource", AlgorithmArgs.builder()
        .algorithmName("string")
        .trainingSpecification(AlgorithmTrainingSpecificationArgs.builder()
            .supportedTrainingInstanceTypes("string")
            .trainingChannels(AlgorithmTrainingSpecificationTrainingChannelArgs.builder()
                .name("string")
                .supportedContentTypes("string")
                .supportedInputModes("string")
                .description("string")
                .isRequired(false)
                .supportedCompressionTypes("string")
                .build())
            .trainingImage("string")
            .additionalS3DataSource(AlgorithmTrainingSpecificationAdditionalS3DataSourceArgs.builder()
                .s3DataType("string")
                .s3Uri("string")
                .compressionType("string")
                .etag("string")
                .build())
            .metricDefinitions(AlgorithmTrainingSpecificationMetricDefinitionArgs.builder()
                .name("string")
                .regex("string")
                .build())
            .supportedHyperParameters(AlgorithmTrainingSpecificationSupportedHyperParameterArgs.builder()
                .name("string")
                .type("string")
                .defaultValue("string")
                .description("string")
                .isRequired(false)
                .isTunable(false)
                .range(AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs.builder()
                    .categoricalParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs.builder()
                        .values("string")
                        .build())
                    .continuousParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs.builder()
                        .maxValue("string")
                        .minValue("string")
                        .build())
                    .integerParameterRangeSpecification(AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs.builder()
                        .maxValue("string")
                        .minValue("string")
                        .build())
                    .build())
                .build())
            .supportedTuningJobObjectiveMetrics(AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs.builder()
                .metricName("string")
                .type("string")
                .build())
            .supportsDistributedTraining(false)
            .trainingImageDigest("string")
            .build())
        .algorithmDescription("string")
        .certifyForMarketplace(false)
        .inferenceSpecification(AlgorithmInferenceSpecificationArgs.builder()
            .containers(AlgorithmInferenceSpecificationContainerArgs.builder()
                .additionalS3DataSource(AlgorithmInferenceSpecificationContainerAdditionalS3DataSourceArgs.builder()
                    .s3DataType("string")
                    .s3Uri("string")
                    .compressionType("string")
                    .etag("string")
                    .build())
                .baseModel(AlgorithmInferenceSpecificationContainerBaseModelArgs.builder()
                    .hubContentName("string")
                    .hubContentVersion("string")
                    .recipeName("string")
                    .build())
                .containerHostname("string")
                .environment(Map.of("string", "string"))
                .framework("string")
                .frameworkVersion("string")
                .image("string")
                .imageDigest("string")
                .isCheckpoint(false)
                .modelDataEtag("string")
                .modelDataSource(AlgorithmInferenceSpecificationContainerModelDataSourceArgs.builder()
                    .s3DataSource(AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceArgs.builder()
                        .compressionType("string")
                        .s3DataType("string")
                        .s3Uri("string")
                        .etag("string")
                        .hubAccessConfig(AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceHubAccessConfigArgs.builder()
                            .hubContentArn("string")
                            .build())
                        .manifestEtag("string")
                        .manifestS3Uri("string")
                        .modelAccessConfig(AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceModelAccessConfigArgs.builder()
                            .acceptEula(false)
                            .build())
                        .build())
                    .build())
                .modelDataUrl("string")
                .modelInput(AlgorithmInferenceSpecificationContainerModelInputArgs.builder()
                    .dataInputConfig("string")
                    .build())
                .nearestModelName("string")
                .productId("string")
                .build())
            .supportedContentTypes("string")
            .supportedRealtimeInferenceInstanceTypes("string")
            .supportedResponseMimeTypes("string")
            .supportedTransformInstanceTypes("string")
            .build())
        .region("string")
        .tags(Map.of("string", "string"))
        .timeouts(AlgorithmTimeoutsArgs.builder()
            .create("string")
            .delete("string")
            .build())
        .validationSpecification(AlgorithmValidationSpecificationArgs.builder()
            .validationProfiles(AlgorithmValidationSpecificationValidationProfilesArgs.builder()
                .profileName("string")
                .trainingJobDefinition(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs.builder()
                    .inputDataConfigs(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs.builder()
                        .channelName("string")
                        .dataSource(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs.builder()
                            .fileSystemDataSource(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceFileSystemDataSourceArgs.builder()
                                .directoryPath("string")
                                .fileSystemAccessMode("string")
                                .fileSystemId("string")
                                .fileSystemType("string")
                                .build())
                            .s3DataSource(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs.builder()
                                .s3DataType("string")
                                .s3Uri("string")
                                .attributeNames("string")
                                .hubAccessConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfigArgs.builder()
                                    .hubContentArn("string")
                                    .build())
                                .instanceGroupNames("string")
                                .modelAccessConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfigArgs.builder()
                                    .acceptEula(false)
                                    .build())
                                .s3DataDistributionType("string")
                                .build())
                            .build())
                        .compressionType("string")
                        .contentType("string")
                        .inputMode("string")
                        .recordWrapperType("string")
                        .shuffleConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs.builder()
                            .seed(0)
                            .build())
                        .build())
                    .outputDataConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs.builder()
                        .s3OutputPath("string")
                        .compressionType("string")
                        .kmsKeyId("string")
                        .build())
                    .resourceConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs.builder()
                        .instanceCount(0)
                        .instanceGroups(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroupArgs.builder()
                            .instanceCount(0)
                            .instanceGroupName("string")
                            .instanceType("string")
                            .build())
                        .instancePlacementConfig(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigArgs.builder()
                            .enableMultipleJobs(false)
                            .placementSpecifications(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecificationArgs.builder()
                                .instanceCount(0)
                                .ultraServerId("string")
                                .build())
                            .build())
                        .instanceType("string")
                        .keepAlivePeriodInSeconds(0)
                        .trainingPlanArn("string")
                        .volumeKmsKeyId("string")
                        .volumeSizeInGb(0)
                        .build())
                    .stoppingCondition(AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs.builder()
                        .maxPendingTimeInSeconds(0)
                        .maxRuntimeInSeconds(0)
                        .maxWaitTimeInSeconds(0)
                        .build())
                    .trainingInputMode("string")
                    .hyperParameters(Map.of("string", "string"))
                    .build())
                .transformJobDefinition(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs.builder()
                    .transformInput(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs.builder()
                        .dataSource(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs.builder()
                            .s3DataSource(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs.builder()
                                .s3DataType("string")
                                .s3Uri("string")
                                .build())
                            .build())
                        .compressionType("string")
                        .contentType("string")
                        .splitType("string")
                        .build())
                    .transformOutput(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs.builder()
                        .s3OutputPath("string")
                        .accept("string")
                        .assembleWith("string")
                        .kmsKeyId("string")
                        .build())
                    .transformResources(AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs.builder()
                        .instanceCount(0)
                        .instanceType("string")
                        .transformAmiVersion("string")
                        .volumeKmsKeyId("string")
                        .build())
                    .batchStrategy("string")
                    .environment(Map.of("string", "string"))
                    .maxConcurrentTransforms(0)
                    .maxPayloadInMb(0)
                    .build())
                .build())
            .validationRole("string")
            .build())
        .build());
    
    algorithm_resource = aws.sagemaker.Algorithm("algorithmResource",
        algorithm_name="string",
        training_specification={
            "supported_training_instance_types": ["string"],
            "training_channels": [{
                "name": "string",
                "supported_content_types": ["string"],
                "supported_input_modes": ["string"],
                "description": "string",
                "is_required": False,
                "supported_compression_types": ["string"],
            }],
            "training_image": "string",
            "additional_s3_data_source": {
                "s3_data_type": "string",
                "s3_uri": "string",
                "compression_type": "string",
                "etag": "string",
            },
            "metric_definitions": [{
                "name": "string",
                "regex": "string",
            }],
            "supported_hyper_parameters": [{
                "name": "string",
                "type": "string",
                "default_value": "string",
                "description": "string",
                "is_required": False,
                "is_tunable": False,
                "range": {
                    "categorical_parameter_range_specification": {
                        "values": ["string"],
                    },
                    "continuous_parameter_range_specification": {
                        "max_value": "string",
                        "min_value": "string",
                    },
                    "integer_parameter_range_specification": {
                        "max_value": "string",
                        "min_value": "string",
                    },
                },
            }],
            "supported_tuning_job_objective_metrics": [{
                "metric_name": "string",
                "type": "string",
            }],
            "supports_distributed_training": False,
            "training_image_digest": "string",
        },
        algorithm_description="string",
        certify_for_marketplace=False,
        inference_specification={
            "containers": [{
                "additional_s3_data_source": {
                    "s3_data_type": "string",
                    "s3_uri": "string",
                    "compression_type": "string",
                    "etag": "string",
                },
                "base_model": {
                    "hub_content_name": "string",
                    "hub_content_version": "string",
                    "recipe_name": "string",
                },
                "container_hostname": "string",
                "environment": {
                    "string": "string",
                },
                "framework": "string",
                "framework_version": "string",
                "image": "string",
                "image_digest": "string",
                "is_checkpoint": False,
                "model_data_etag": "string",
                "model_data_source": {
                    "s3_data_source": {
                        "compression_type": "string",
                        "s3_data_type": "string",
                        "s3_uri": "string",
                        "etag": "string",
                        "hub_access_config": {
                            "hub_content_arn": "string",
                        },
                        "manifest_etag": "string",
                        "manifest_s3_uri": "string",
                        "model_access_config": {
                            "accept_eula": False,
                        },
                    },
                },
                "model_data_url": "string",
                "model_input": {
                    "data_input_config": "string",
                },
                "nearest_model_name": "string",
                "product_id": "string",
            }],
            "supported_content_types": ["string"],
            "supported_realtime_inference_instance_types": ["string"],
            "supported_response_mime_types": ["string"],
            "supported_transform_instance_types": ["string"],
        },
        region="string",
        tags={
            "string": "string",
        },
        timeouts={
            "create": "string",
            "delete": "string",
        },
        validation_specification={
            "validation_profiles": {
                "profile_name": "string",
                "training_job_definition": {
                    "input_data_configs": [{
                        "channel_name": "string",
                        "data_source": {
                            "file_system_data_source": {
                                "directory_path": "string",
                                "file_system_access_mode": "string",
                                "file_system_id": "string",
                                "file_system_type": "string",
                            },
                            "s3_data_source": {
                                "s3_data_type": "string",
                                "s3_uri": "string",
                                "attribute_names": ["string"],
                                "hub_access_config": {
                                    "hub_content_arn": "string",
                                },
                                "instance_group_names": ["string"],
                                "model_access_config": {
                                    "accept_eula": False,
                                },
                                "s3_data_distribution_type": "string",
                            },
                        },
                        "compression_type": "string",
                        "content_type": "string",
                        "input_mode": "string",
                        "record_wrapper_type": "string",
                        "shuffle_config": {
                            "seed": 0,
                        },
                    }],
                    "output_data_config": {
                        "s3_output_path": "string",
                        "compression_type": "string",
                        "kms_key_id": "string",
                    },
                    "resource_config": {
                        "instance_count": 0,
                        "instance_groups": [{
                            "instance_count": 0,
                            "instance_group_name": "string",
                            "instance_type": "string",
                        }],
                        "instance_placement_config": {
                            "enable_multiple_jobs": False,
                            "placement_specifications": [{
                                "instance_count": 0,
                                "ultra_server_id": "string",
                            }],
                        },
                        "instance_type": "string",
                        "keep_alive_period_in_seconds": 0,
                        "training_plan_arn": "string",
                        "volume_kms_key_id": "string",
                        "volume_size_in_gb": 0,
                    },
                    "stopping_condition": {
                        "max_pending_time_in_seconds": 0,
                        "max_runtime_in_seconds": 0,
                        "max_wait_time_in_seconds": 0,
                    },
                    "training_input_mode": "string",
                    "hyper_parameters": {
                        "string": "string",
                    },
                },
                "transform_job_definition": {
                    "transform_input": {
                        "data_source": {
                            "s3_data_source": {
                                "s3_data_type": "string",
                                "s3_uri": "string",
                            },
                        },
                        "compression_type": "string",
                        "content_type": "string",
                        "split_type": "string",
                    },
                    "transform_output": {
                        "s3_output_path": "string",
                        "accept": "string",
                        "assemble_with": "string",
                        "kms_key_id": "string",
                    },
                    "transform_resources": {
                        "instance_count": 0,
                        "instance_type": "string",
                        "transform_ami_version": "string",
                        "volume_kms_key_id": "string",
                    },
                    "batch_strategy": "string",
                    "environment": {
                        "string": "string",
                    },
                    "max_concurrent_transforms": 0,
                    "max_payload_in_mb": 0,
                },
            },
            "validation_role": "string",
        })
    
    const algorithmResource = new aws.sagemaker.Algorithm("algorithmResource", {
        algorithmName: "string",
        trainingSpecification: {
            supportedTrainingInstanceTypes: ["string"],
            trainingChannels: [{
                name: "string",
                supportedContentTypes: ["string"],
                supportedInputModes: ["string"],
                description: "string",
                isRequired: false,
                supportedCompressionTypes: ["string"],
            }],
            trainingImage: "string",
            additionalS3DataSource: {
                s3DataType: "string",
                s3Uri: "string",
                compressionType: "string",
                etag: "string",
            },
            metricDefinitions: [{
                name: "string",
                regex: "string",
            }],
            supportedHyperParameters: [{
                name: "string",
                type: "string",
                defaultValue: "string",
                description: "string",
                isRequired: false,
                isTunable: false,
                range: {
                    categoricalParameterRangeSpecification: {
                        values: ["string"],
                    },
                    continuousParameterRangeSpecification: {
                        maxValue: "string",
                        minValue: "string",
                    },
                    integerParameterRangeSpecification: {
                        maxValue: "string",
                        minValue: "string",
                    },
                },
            }],
            supportedTuningJobObjectiveMetrics: [{
                metricName: "string",
                type: "string",
            }],
            supportsDistributedTraining: false,
            trainingImageDigest: "string",
        },
        algorithmDescription: "string",
        certifyForMarketplace: false,
        inferenceSpecification: {
            containers: [{
                additionalS3DataSource: {
                    s3DataType: "string",
                    s3Uri: "string",
                    compressionType: "string",
                    etag: "string",
                },
                baseModel: {
                    hubContentName: "string",
                    hubContentVersion: "string",
                    recipeName: "string",
                },
                containerHostname: "string",
                environment: {
                    string: "string",
                },
                framework: "string",
                frameworkVersion: "string",
                image: "string",
                imageDigest: "string",
                isCheckpoint: false,
                modelDataEtag: "string",
                modelDataSource: {
                    s3DataSource: {
                        compressionType: "string",
                        s3DataType: "string",
                        s3Uri: "string",
                        etag: "string",
                        hubAccessConfig: {
                            hubContentArn: "string",
                        },
                        manifestEtag: "string",
                        manifestS3Uri: "string",
                        modelAccessConfig: {
                            acceptEula: false,
                        },
                    },
                },
                modelDataUrl: "string",
                modelInput: {
                    dataInputConfig: "string",
                },
                nearestModelName: "string",
                productId: "string",
            }],
            supportedContentTypes: ["string"],
            supportedRealtimeInferenceInstanceTypes: ["string"],
            supportedResponseMimeTypes: ["string"],
            supportedTransformInstanceTypes: ["string"],
        },
        region: "string",
        tags: {
            string: "string",
        },
        timeouts: {
            create: "string",
            "delete": "string",
        },
        validationSpecification: {
            validationProfiles: {
                profileName: "string",
                trainingJobDefinition: {
                    inputDataConfigs: [{
                        channelName: "string",
                        dataSource: {
                            fileSystemDataSource: {
                                directoryPath: "string",
                                fileSystemAccessMode: "string",
                                fileSystemId: "string",
                                fileSystemType: "string",
                            },
                            s3DataSource: {
                                s3DataType: "string",
                                s3Uri: "string",
                                attributeNames: ["string"],
                                hubAccessConfig: {
                                    hubContentArn: "string",
                                },
                                instanceGroupNames: ["string"],
                                modelAccessConfig: {
                                    acceptEula: false,
                                },
                                s3DataDistributionType: "string",
                            },
                        },
                        compressionType: "string",
                        contentType: "string",
                        inputMode: "string",
                        recordWrapperType: "string",
                        shuffleConfig: {
                            seed: 0,
                        },
                    }],
                    outputDataConfig: {
                        s3OutputPath: "string",
                        compressionType: "string",
                        kmsKeyId: "string",
                    },
                    resourceConfig: {
                        instanceCount: 0,
                        instanceGroups: [{
                            instanceCount: 0,
                            instanceGroupName: "string",
                            instanceType: "string",
                        }],
                        instancePlacementConfig: {
                            enableMultipleJobs: false,
                            placementSpecifications: [{
                                instanceCount: 0,
                                ultraServerId: "string",
                            }],
                        },
                        instanceType: "string",
                        keepAlivePeriodInSeconds: 0,
                        trainingPlanArn: "string",
                        volumeKmsKeyId: "string",
                        volumeSizeInGb: 0,
                    },
                    stoppingCondition: {
                        maxPendingTimeInSeconds: 0,
                        maxRuntimeInSeconds: 0,
                        maxWaitTimeInSeconds: 0,
                    },
                    trainingInputMode: "string",
                    hyperParameters: {
                        string: "string",
                    },
                },
                transformJobDefinition: {
                    transformInput: {
                        dataSource: {
                            s3DataSource: {
                                s3DataType: "string",
                                s3Uri: "string",
                            },
                        },
                        compressionType: "string",
                        contentType: "string",
                        splitType: "string",
                    },
                    transformOutput: {
                        s3OutputPath: "string",
                        accept: "string",
                        assembleWith: "string",
                        kmsKeyId: "string",
                    },
                    transformResources: {
                        instanceCount: 0,
                        instanceType: "string",
                        transformAmiVersion: "string",
                        volumeKmsKeyId: "string",
                    },
                    batchStrategy: "string",
                    environment: {
                        string: "string",
                    },
                    maxConcurrentTransforms: 0,
                    maxPayloadInMb: 0,
                },
            },
            validationRole: "string",
        },
    });
    
    type: aws:sagemaker:Algorithm
    properties:
        algorithmDescription: string
        algorithmName: string
        certifyForMarketplace: false
        inferenceSpecification:
            containers:
                - additionalS3DataSource:
                    compressionType: string
                    etag: string
                    s3DataType: string
                    s3Uri: string
                  baseModel:
                    hubContentName: string
                    hubContentVersion: string
                    recipeName: string
                  containerHostname: string
                  environment:
                    string: string
                  framework: string
                  frameworkVersion: string
                  image: string
                  imageDigest: string
                  isCheckpoint: false
                  modelDataEtag: string
                  modelDataSource:
                    s3DataSource:
                        compressionType: string
                        etag: string
                        hubAccessConfig:
                            hubContentArn: string
                        manifestEtag: string
                        manifestS3Uri: string
                        modelAccessConfig:
                            acceptEula: false
                        s3DataType: string
                        s3Uri: string
                  modelDataUrl: string
                  modelInput:
                    dataInputConfig: string
                  nearestModelName: string
                  productId: string
            supportedContentTypes:
                - string
            supportedRealtimeInferenceInstanceTypes:
                - string
            supportedResponseMimeTypes:
                - string
            supportedTransformInstanceTypes:
                - string
        region: string
        tags:
            string: string
        timeouts:
            create: string
            delete: string
        trainingSpecification:
            additionalS3DataSource:
                compressionType: string
                etag: string
                s3DataType: string
                s3Uri: string
            metricDefinitions:
                - name: string
                  regex: string
            supportedHyperParameters:
                - defaultValue: string
                  description: string
                  isRequired: false
                  isTunable: false
                  name: string
                  range:
                    categoricalParameterRangeSpecification:
                        values:
                            - string
                    continuousParameterRangeSpecification:
                        maxValue: string
                        minValue: string
                    integerParameterRangeSpecification:
                        maxValue: string
                        minValue: string
                  type: string
            supportedTrainingInstanceTypes:
                - string
            supportedTuningJobObjectiveMetrics:
                - metricName: string
                  type: string
            supportsDistributedTraining: false
            trainingChannels:
                - description: string
                  isRequired: false
                  name: string
                  supportedCompressionTypes:
                    - string
                  supportedContentTypes:
                    - string
                  supportedInputModes:
                    - string
            trainingImage: string
            trainingImageDigest: string
        validationSpecification:
            validationProfiles:
                profileName: string
                trainingJobDefinition:
                    hyperParameters:
                        string: string
                    inputDataConfigs:
                        - channelName: string
                          compressionType: string
                          contentType: string
                          dataSource:
                            fileSystemDataSource:
                                directoryPath: string
                                fileSystemAccessMode: string
                                fileSystemId: string
                                fileSystemType: string
                            s3DataSource:
                                attributeNames:
                                    - string
                                hubAccessConfig:
                                    hubContentArn: string
                                instanceGroupNames:
                                    - string
                                modelAccessConfig:
                                    acceptEula: false
                                s3DataDistributionType: string
                                s3DataType: string
                                s3Uri: string
                          inputMode: string
                          recordWrapperType: string
                          shuffleConfig:
                            seed: 0
                    outputDataConfig:
                        compressionType: string
                        kmsKeyId: string
                        s3OutputPath: string
                    resourceConfig:
                        instanceCount: 0
                        instanceGroups:
                            - instanceCount: 0
                              instanceGroupName: string
                              instanceType: string
                        instancePlacementConfig:
                            enableMultipleJobs: false
                            placementSpecifications:
                                - instanceCount: 0
                                  ultraServerId: string
                        instanceType: string
                        keepAlivePeriodInSeconds: 0
                        trainingPlanArn: string
                        volumeKmsKeyId: string
                        volumeSizeInGb: 0
                    stoppingCondition:
                        maxPendingTimeInSeconds: 0
                        maxRuntimeInSeconds: 0
                        maxWaitTimeInSeconds: 0
                    trainingInputMode: string
                transformJobDefinition:
                    batchStrategy: string
                    environment:
                        string: string
                    maxConcurrentTransforms: 0
                    maxPayloadInMb: 0
                    transformInput:
                        compressionType: string
                        contentType: string
                        dataSource:
                            s3DataSource:
                                s3DataType: string
                                s3Uri: string
                        splitType: string
                    transformOutput:
                        accept: string
                        assembleWith: string
                        kmsKeyId: string
                        s3OutputPath: string
                    transformResources:
                        instanceCount: 0
                        instanceType: string
                        transformAmiVersion: string
                        volumeKmsKeyId: string
            validationRole: string
    

    Algorithm Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Algorithm resource accepts the following input properties:

    AlgorithmName string
    Name of the algorithm.
    TrainingSpecification AlgorithmTrainingSpecification
    Configuration for training jobs that use this algorithm. See Training Specification.
    AlgorithmDescription string
    Description of the algorithm.
    CertifyForMarketplace bool
    Whether to certify the algorithm for AWS Marketplace.
    InferenceSpecification AlgorithmInferenceSpecification
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    Region string
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    Tags Dictionary<string, string>
    Map of tags to assign to the resource.
    Timeouts AlgorithmTimeouts
    ValidationSpecification AlgorithmValidationSpecification
    Configuration used to validate the algorithm. See Validation Specification.
    AlgorithmName string
    Name of the algorithm.
    TrainingSpecification AlgorithmTrainingSpecificationArgs
    Configuration for training jobs that use this algorithm. See Training Specification.
    AlgorithmDescription string
    Description of the algorithm.
    CertifyForMarketplace bool
    Whether to certify the algorithm for AWS Marketplace.
    InferenceSpecification AlgorithmInferenceSpecificationArgs
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    Region string
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    Tags map[string]string
    Map of tags to assign to the resource.
    Timeouts AlgorithmTimeoutsArgs
    ValidationSpecification AlgorithmValidationSpecificationArgs
    Configuration used to validate the algorithm. See Validation Specification.
    algorithmName String
    Name of the algorithm.
    trainingSpecification AlgorithmTrainingSpecification
    Configuration for training jobs that use this algorithm. See Training Specification.
    algorithmDescription String
    Description of the algorithm.
    certifyForMarketplace Boolean
    Whether to certify the algorithm for AWS Marketplace.
    inferenceSpecification AlgorithmInferenceSpecification
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    region String
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags Map<String,String>
    Map of tags to assign to the resource.
    timeouts AlgorithmTimeouts
    validationSpecification AlgorithmValidationSpecification
    Configuration used to validate the algorithm. See Validation Specification.
    algorithmName string
    Name of the algorithm.
    trainingSpecification AlgorithmTrainingSpecification
    Configuration for training jobs that use this algorithm. See Training Specification.
    algorithmDescription string
    Description of the algorithm.
    certifyForMarketplace boolean
    Whether to certify the algorithm for AWS Marketplace.
    inferenceSpecification AlgorithmInferenceSpecification
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    region string
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags {[key: string]: string}
    Map of tags to assign to the resource.
    timeouts AlgorithmTimeouts
    validationSpecification AlgorithmValidationSpecification
    Configuration used to validate the algorithm. See Validation Specification.
    algorithm_name str
    Name of the algorithm.
    training_specification AlgorithmTrainingSpecificationArgs
    Configuration for training jobs that use this algorithm. See Training Specification.
    algorithm_description str
    Description of the algorithm.
    certify_for_marketplace bool
    Whether to certify the algorithm for AWS Marketplace.
    inference_specification AlgorithmInferenceSpecificationArgs
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    region str
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags Mapping[str, str]
    Map of tags to assign to the resource.
    timeouts AlgorithmTimeoutsArgs
    validation_specification AlgorithmValidationSpecificationArgs
    Configuration used to validate the algorithm. See Validation Specification.
    algorithmName String
    Name of the algorithm.
    trainingSpecification Property Map
    Configuration for training jobs that use this algorithm. See Training Specification.
    algorithmDescription String
    Description of the algorithm.
    certifyForMarketplace Boolean
    Whether to certify the algorithm for AWS Marketplace.
    inferenceSpecification Property Map
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    region String
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags Map<String>
    Map of tags to assign to the resource.
    timeouts Property Map
    validationSpecification Property Map
    Configuration used to validate the algorithm. See Validation Specification.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Algorithm resource produces the following output properties:

    AlgorithmStatus string
    Status of the algorithm.
    Arn string
    ARN of the algorithm.
    CreationTime string
    Time when the algorithm was created, in RFC3339 format.
    Id string
    The provider-assigned unique ID for this managed resource.
    ProductId string
    AWS Marketplace product ID associated with the algorithm.
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    AlgorithmStatus string
    Status of the algorithm.
    Arn string
    ARN of the algorithm.
    CreationTime string
    Time when the algorithm was created, in RFC3339 format.
    Id string
    The provider-assigned unique ID for this managed resource.
    ProductId string
    AWS Marketplace product ID associated with the algorithm.
    TagsAll map[string]string
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    algorithmStatus String
    Status of the algorithm.
    arn String
    ARN of the algorithm.
    creationTime String
    Time when the algorithm was created, in RFC3339 format.
    id String
    The provider-assigned unique ID for this managed resource.
    productId String
    AWS Marketplace product ID associated with the algorithm.
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    algorithmStatus string
    Status of the algorithm.
    arn string
    ARN of the algorithm.
    creationTime string
    Time when the algorithm was created, in RFC3339 format.
    id string
    The provider-assigned unique ID for this managed resource.
    productId string
    AWS Marketplace product ID associated with the algorithm.
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    algorithm_status str
    Status of the algorithm.
    arn str
    ARN of the algorithm.
    creation_time str
    Time when the algorithm was created, in RFC3339 format.
    id str
    The provider-assigned unique ID for this managed resource.
    product_id str
    AWS Marketplace product ID associated with the algorithm.
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    algorithmStatus String
    Status of the algorithm.
    arn String
    ARN of the algorithm.
    creationTime String
    Time when the algorithm was created, in RFC3339 format.
    id String
    The provider-assigned unique ID for this managed resource.
    productId String
    AWS Marketplace product ID associated with the algorithm.
    tagsAll Map<String>
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.

    Look up Existing Algorithm Resource

    Get an existing Algorithm resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AlgorithmState, opts?: CustomResourceOptions): Algorithm
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            algorithm_description: Optional[str] = None,
            algorithm_name: Optional[str] = None,
            algorithm_status: Optional[str] = None,
            arn: Optional[str] = None,
            certify_for_marketplace: Optional[bool] = None,
            creation_time: Optional[str] = None,
            inference_specification: Optional[AlgorithmInferenceSpecificationArgs] = None,
            product_id: Optional[str] = None,
            region: Optional[str] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            timeouts: Optional[AlgorithmTimeoutsArgs] = None,
            training_specification: Optional[AlgorithmTrainingSpecificationArgs] = None,
            validation_specification: Optional[AlgorithmValidationSpecificationArgs] = None) -> Algorithm
    func GetAlgorithm(ctx *Context, name string, id IDInput, state *AlgorithmState, opts ...ResourceOption) (*Algorithm, error)
    public static Algorithm Get(string name, Input<string> id, AlgorithmState? state, CustomResourceOptions? opts = null)
    public static Algorithm get(String name, Output<String> id, AlgorithmState state, CustomResourceOptions options)
    resources:  _:    type: aws:sagemaker:Algorithm    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AlgorithmDescription string
    Description of the algorithm.
    AlgorithmName string
    Name of the algorithm.
    AlgorithmStatus string
    Status of the algorithm.
    Arn string
    ARN of the algorithm.
    CertifyForMarketplace bool
    Whether to certify the algorithm for AWS Marketplace.
    CreationTime string
    Time when the algorithm was created, in RFC3339 format.
    InferenceSpecification AlgorithmInferenceSpecification
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    ProductId string
    AWS Marketplace product ID associated with the algorithm.
    Region string
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    Tags Dictionary<string, string>
    Map of tags to assign to the resource.
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    Timeouts AlgorithmTimeouts
    TrainingSpecification AlgorithmTrainingSpecification
    Configuration for training jobs that use this algorithm. See Training Specification.
    ValidationSpecification AlgorithmValidationSpecification
    Configuration used to validate the algorithm. See Validation Specification.
    AlgorithmDescription string
    Description of the algorithm.
    AlgorithmName string
    Name of the algorithm.
    AlgorithmStatus string
    Status of the algorithm.
    Arn string
    ARN of the algorithm.
    CertifyForMarketplace bool
    Whether to certify the algorithm for AWS Marketplace.
    CreationTime string
    Time when the algorithm was created, in RFC3339 format.
    InferenceSpecification AlgorithmInferenceSpecificationArgs
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    ProductId string
    AWS Marketplace product ID associated with the algorithm.
    Region string
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    Tags map[string]string
    Map of tags to assign to the resource.
    TagsAll map[string]string
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    Timeouts AlgorithmTimeoutsArgs
    TrainingSpecification AlgorithmTrainingSpecificationArgs
    Configuration for training jobs that use this algorithm. See Training Specification.
    ValidationSpecification AlgorithmValidationSpecificationArgs
    Configuration used to validate the algorithm. See Validation Specification.
    algorithmDescription String
    Description of the algorithm.
    algorithmName String
    Name of the algorithm.
    algorithmStatus String
    Status of the algorithm.
    arn String
    ARN of the algorithm.
    certifyForMarketplace Boolean
    Whether to certify the algorithm for AWS Marketplace.
    creationTime String
    Time when the algorithm was created, in RFC3339 format.
    inferenceSpecification AlgorithmInferenceSpecification
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    productId String
    AWS Marketplace product ID associated with the algorithm.
    region String
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags Map<String,String>
    Map of tags to assign to the resource.
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    timeouts AlgorithmTimeouts
    trainingSpecification AlgorithmTrainingSpecification
    Configuration for training jobs that use this algorithm. See Training Specification.
    validationSpecification AlgorithmValidationSpecification
    Configuration used to validate the algorithm. See Validation Specification.
    algorithmDescription string
    Description of the algorithm.
    algorithmName string
    Name of the algorithm.
    algorithmStatus string
    Status of the algorithm.
    arn string
    ARN of the algorithm.
    certifyForMarketplace boolean
    Whether to certify the algorithm for AWS Marketplace.
    creationTime string
    Time when the algorithm was created, in RFC3339 format.
    inferenceSpecification AlgorithmInferenceSpecification
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    productId string
    AWS Marketplace product ID associated with the algorithm.
    region string
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags {[key: string]: string}
    Map of tags to assign to the resource.
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    timeouts AlgorithmTimeouts
    trainingSpecification AlgorithmTrainingSpecification
    Configuration for training jobs that use this algorithm. See Training Specification.
    validationSpecification AlgorithmValidationSpecification
    Configuration used to validate the algorithm. See Validation Specification.
    algorithm_description str
    Description of the algorithm.
    algorithm_name str
    Name of the algorithm.
    algorithm_status str
    Status of the algorithm.
    arn str
    ARN of the algorithm.
    certify_for_marketplace bool
    Whether to certify the algorithm for AWS Marketplace.
    creation_time str
    Time when the algorithm was created, in RFC3339 format.
    inference_specification AlgorithmInferenceSpecificationArgs
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    product_id str
    AWS Marketplace product ID associated with the algorithm.
    region str
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags Mapping[str, str]
    Map of tags to assign to the resource.
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    timeouts AlgorithmTimeoutsArgs
    training_specification AlgorithmTrainingSpecificationArgs
    Configuration for training jobs that use this algorithm. See Training Specification.
    validation_specification AlgorithmValidationSpecificationArgs
    Configuration used to validate the algorithm. See Validation Specification.
    algorithmDescription String
    Description of the algorithm.
    algorithmName String
    Name of the algorithm.
    algorithmStatus String
    Status of the algorithm.
    arn String
    ARN of the algorithm.
    certifyForMarketplace Boolean
    Whether to certify the algorithm for AWS Marketplace.
    creationTime String
    Time when the algorithm was created, in RFC3339 format.
    inferenceSpecification Property Map
    Configuration for inference jobs that use this algorithm. See Inference Specification.
    productId String
    AWS Marketplace product ID associated with the algorithm.
    region String
    Region where this resource is managed. Defaults to the Region set in the provider configuration.
    tags Map<String>
    Map of tags to assign to the resource.
    tagsAll Map<String>
    Map of tags assigned to the resource, including tags inherited from the provider defaultTags configuration block.
    timeouts Property Map
    trainingSpecification Property Map
    Configuration for training jobs that use this algorithm. See Training Specification.
    validationSpecification Property Map
    Configuration used to validate the algorithm. See Validation Specification.

    Supporting Types

    AlgorithmInferenceSpecification, AlgorithmInferenceSpecificationArgs

    Containers List<AlgorithmInferenceSpecificationContainer>
    List of container definitions for inference.
    SupportedContentTypes List<string>
    Supported MIME types for inference requests.
    SupportedRealtimeInferenceInstanceTypes List<string>
    Instance types supported for real-time inference.
    SupportedResponseMimeTypes List<string>
    Supported MIME types for inference responses.
    SupportedTransformInstanceTypes List<string>
    Instance types supported for batch transform.
    Containers []AlgorithmInferenceSpecificationContainer
    List of container definitions for inference.
    SupportedContentTypes []string
    Supported MIME types for inference requests.
    SupportedRealtimeInferenceInstanceTypes []string
    Instance types supported for real-time inference.
    SupportedResponseMimeTypes []string
    Supported MIME types for inference responses.
    SupportedTransformInstanceTypes []string
    Instance types supported for batch transform.
    containers List<AlgorithmInferenceSpecificationContainer>
    List of container definitions for inference.
    supportedContentTypes List<String>
    Supported MIME types for inference requests.
    supportedRealtimeInferenceInstanceTypes List<String>
    Instance types supported for real-time inference.
    supportedResponseMimeTypes List<String>
    Supported MIME types for inference responses.
    supportedTransformInstanceTypes List<String>
    Instance types supported for batch transform.
    containers AlgorithmInferenceSpecificationContainer[]
    List of container definitions for inference.
    supportedContentTypes string[]
    Supported MIME types for inference requests.
    supportedRealtimeInferenceInstanceTypes string[]
    Instance types supported for real-time inference.
    supportedResponseMimeTypes string[]
    Supported MIME types for inference responses.
    supportedTransformInstanceTypes string[]
    Instance types supported for batch transform.
    containers Sequence[AlgorithmInferenceSpecificationContainer]
    List of container definitions for inference.
    supported_content_types Sequence[str]
    Supported MIME types for inference requests.
    supported_realtime_inference_instance_types Sequence[str]
    Instance types supported for real-time inference.
    supported_response_mime_types Sequence[str]
    Supported MIME types for inference responses.
    supported_transform_instance_types Sequence[str]
    Instance types supported for batch transform.
    containers List<Property Map>
    List of container definitions for inference.
    supportedContentTypes List<String>
    Supported MIME types for inference requests.
    supportedRealtimeInferenceInstanceTypes List<String>
    Instance types supported for real-time inference.
    supportedResponseMimeTypes List<String>
    Supported MIME types for inference responses.
    supportedTransformInstanceTypes List<String>
    Instance types supported for batch transform.

    AlgorithmInferenceSpecificationContainer, AlgorithmInferenceSpecificationContainerArgs

    AdditionalS3DataSource AlgorithmInferenceSpecificationContainerAdditionalS3DataSource
    Additional model data to make available to the container. See Additional S3 Data Source.
    BaseModel AlgorithmInferenceSpecificationContainerBaseModel
    Base model information for the container. See Base Model.
    ContainerHostname string
    DNS host name for the container.
    Environment Dictionary<string, string>
    Environment variables to pass to the container.
    Framework string
    Machine learning framework in the container image.
    FrameworkVersion string
    Framework version in the container image.
    Image string
    Container image URI.
    ImageDigest string
    Digest of the container image.
    IsCheckpoint bool
    Whether the container is used as a checkpoint container.
    ModelDataEtag string
    ETag for modelDataUrl.
    ModelDataSource AlgorithmInferenceSpecificationContainerModelDataSource
    Source of model data for the container. See Model Data Source.
    ModelDataUrl string
    S3 or HTTPS URL of the model artifacts.
    ModelInput AlgorithmInferenceSpecificationContainerModelInput
    Additional model input configuration. See Model Input.
    NearestModelName string
    Name of a pre-existing model nearest to the one being created.
    ProductId string
    AWS Marketplace product ID.
    AdditionalS3DataSource AlgorithmInferenceSpecificationContainerAdditionalS3DataSource
    Additional model data to make available to the container. See Additional S3 Data Source.
    BaseModel AlgorithmInferenceSpecificationContainerBaseModel
    Base model information for the container. See Base Model.
    ContainerHostname string
    DNS host name for the container.
    Environment map[string]string
    Environment variables to pass to the container.
    Framework string
    Machine learning framework in the container image.
    FrameworkVersion string
    Framework version in the container image.
    Image string
    Container image URI.
    ImageDigest string
    Digest of the container image.
    IsCheckpoint bool
    Whether the container is used as a checkpoint container.
    ModelDataEtag string
    ETag for modelDataUrl.
    ModelDataSource AlgorithmInferenceSpecificationContainerModelDataSource
    Source of model data for the container. See Model Data Source.
    ModelDataUrl string
    S3 or HTTPS URL of the model artifacts.
    ModelInput AlgorithmInferenceSpecificationContainerModelInput
    Additional model input configuration. See Model Input.
    NearestModelName string
    Name of a pre-existing model nearest to the one being created.
    ProductId string
    AWS Marketplace product ID.
    additionalS3DataSource AlgorithmInferenceSpecificationContainerAdditionalS3DataSource
    Additional model data to make available to the container. See Additional S3 Data Source.
    baseModel AlgorithmInferenceSpecificationContainerBaseModel
    Base model information for the container. See Base Model.
    containerHostname String
    DNS host name for the container.
    environment Map<String,String>
    Environment variables to pass to the container.
    framework String
    Machine learning framework in the container image.
    frameworkVersion String
    Framework version in the container image.
    image String
    Container image URI.
    imageDigest String
    Digest of the container image.
    isCheckpoint Boolean
    Whether the container is used as a checkpoint container.
    modelDataEtag String
    ETag for modelDataUrl.
    modelDataSource AlgorithmInferenceSpecificationContainerModelDataSource
    Source of model data for the container. See Model Data Source.
    modelDataUrl String
    S3 or HTTPS URL of the model artifacts.
    modelInput AlgorithmInferenceSpecificationContainerModelInput
    Additional model input configuration. See Model Input.
    nearestModelName String
    Name of a pre-existing model nearest to the one being created.
    productId String
    AWS Marketplace product ID.
    additionalS3DataSource AlgorithmInferenceSpecificationContainerAdditionalS3DataSource
    Additional model data to make available to the container. See Additional S3 Data Source.
    baseModel AlgorithmInferenceSpecificationContainerBaseModel
    Base model information for the container. See Base Model.
    containerHostname string
    DNS host name for the container.
    environment {[key: string]: string}
    Environment variables to pass to the container.
    framework string
    Machine learning framework in the container image.
    frameworkVersion string
    Framework version in the container image.
    image string
    Container image URI.
    imageDigest string
    Digest of the container image.
    isCheckpoint boolean
    Whether the container is used as a checkpoint container.
    modelDataEtag string
    ETag for modelDataUrl.
    modelDataSource AlgorithmInferenceSpecificationContainerModelDataSource
    Source of model data for the container. See Model Data Source.
    modelDataUrl string
    S3 or HTTPS URL of the model artifacts.
    modelInput AlgorithmInferenceSpecificationContainerModelInput
    Additional model input configuration. See Model Input.
    nearestModelName string
    Name of a pre-existing model nearest to the one being created.
    productId string
    AWS Marketplace product ID.
    additional_s3_data_source AlgorithmInferenceSpecificationContainerAdditionalS3DataSource
    Additional model data to make available to the container. See Additional S3 Data Source.
    base_model AlgorithmInferenceSpecificationContainerBaseModel
    Base model information for the container. See Base Model.
    container_hostname str
    DNS host name for the container.
    environment Mapping[str, str]
    Environment variables to pass to the container.
    framework str
    Machine learning framework in the container image.
    framework_version str
    Framework version in the container image.
    image str
    Container image URI.
    image_digest str
    Digest of the container image.
    is_checkpoint bool
    Whether the container is used as a checkpoint container.
    model_data_etag str
    ETag for modelDataUrl.
    model_data_source AlgorithmInferenceSpecificationContainerModelDataSource
    Source of model data for the container. See Model Data Source.
    model_data_url str
    S3 or HTTPS URL of the model artifacts.
    model_input AlgorithmInferenceSpecificationContainerModelInput
    Additional model input configuration. See Model Input.
    nearest_model_name str
    Name of a pre-existing model nearest to the one being created.
    product_id str
    AWS Marketplace product ID.
    additionalS3DataSource Property Map
    Additional model data to make available to the container. See Additional S3 Data Source.
    baseModel Property Map
    Base model information for the container. See Base Model.
    containerHostname String
    DNS host name for the container.
    environment Map<String>
    Environment variables to pass to the container.
    framework String
    Machine learning framework in the container image.
    frameworkVersion String
    Framework version in the container image.
    image String
    Container image URI.
    imageDigest String
    Digest of the container image.
    isCheckpoint Boolean
    Whether the container is used as a checkpoint container.
    modelDataEtag String
    ETag for modelDataUrl.
    modelDataSource Property Map
    Source of model data for the container. See Model Data Source.
    modelDataUrl String
    S3 or HTTPS URL of the model artifacts.
    modelInput Property Map
    Additional model input configuration. See Model Input.
    nearestModelName String
    Name of a pre-existing model nearest to the one being created.
    productId String
    AWS Marketplace product ID.

    AlgorithmInferenceSpecificationContainerAdditionalS3DataSource, AlgorithmInferenceSpecificationContainerAdditionalS3DataSourceArgs

    S3DataType string
    Type of additional S3 data.
    S3Uri string
    S3 or HTTPS URI for the additional data.
    CompressionType string
    Compression type for the data. Allowed values are: None and Gzip.
    Etag string
    ETag of the S3 object.
    S3DataType string
    Type of additional S3 data.
    S3Uri string
    S3 or HTTPS URI for the additional data.
    CompressionType string
    Compression type for the data. Allowed values are: None and Gzip.
    Etag string
    ETag of the S3 object.
    s3DataType String
    Type of additional S3 data.
    s3Uri String
    S3 or HTTPS URI for the additional data.
    compressionType String
    Compression type for the data. Allowed values are: None and Gzip.
    etag String
    ETag of the S3 object.
    s3DataType string
    Type of additional S3 data.
    s3Uri string
    S3 or HTTPS URI for the additional data.
    compressionType string
    Compression type for the data. Allowed values are: None and Gzip.
    etag string
    ETag of the S3 object.
    s3_data_type str
    Type of additional S3 data.
    s3_uri str
    S3 or HTTPS URI for the additional data.
    compression_type str
    Compression type for the data. Allowed values are: None and Gzip.
    etag str
    ETag of the S3 object.
    s3DataType String
    Type of additional S3 data.
    s3Uri String
    S3 or HTTPS URI for the additional data.
    compressionType String
    Compression type for the data. Allowed values are: None and Gzip.
    etag String
    ETag of the S3 object.

    AlgorithmInferenceSpecificationContainerBaseModel, AlgorithmInferenceSpecificationContainerBaseModelArgs

    HubContentName string
    Name of the SageMaker AI Hub content.
    HubContentVersion string
    Version of the SageMaker AI Hub content.
    RecipeName string
    Recipe name associated with the base model.
    HubContentName string
    Name of the SageMaker AI Hub content.
    HubContentVersion string
    Version of the SageMaker AI Hub content.
    RecipeName string
    Recipe name associated with the base model.
    hubContentName String
    Name of the SageMaker AI Hub content.
    hubContentVersion String
    Version of the SageMaker AI Hub content.
    recipeName String
    Recipe name associated with the base model.
    hubContentName string
    Name of the SageMaker AI Hub content.
    hubContentVersion string
    Version of the SageMaker AI Hub content.
    recipeName string
    Recipe name associated with the base model.
    hub_content_name str
    Name of the SageMaker AI Hub content.
    hub_content_version str
    Version of the SageMaker AI Hub content.
    recipe_name str
    Recipe name associated with the base model.
    hubContentName String
    Name of the SageMaker AI Hub content.
    hubContentVersion String
    Version of the SageMaker AI Hub content.
    recipeName String
    Recipe name associated with the base model.

    AlgorithmInferenceSpecificationContainerModelDataSource, AlgorithmInferenceSpecificationContainerModelDataSourceArgs

    S3DataSource AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSource
    S3-backed model data source. See Model Data Source S3 Data Source.
    S3DataSource AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSource
    S3-backed model data source. See Model Data Source S3 Data Source.
    s3DataSource AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSource
    S3-backed model data source. See Model Data Source S3 Data Source.
    s3DataSource AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSource
    S3-backed model data source. See Model Data Source S3 Data Source.
    s3_data_source AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSource
    S3-backed model data source. See Model Data Source S3 Data Source.
    s3DataSource Property Map
    S3-backed model data source. See Model Data Source S3 Data Source.

    AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSource, AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceArgs

    compressionType String
    s3DataType String
    s3Uri String
    etag String
    hubAccessConfig Property Map
    manifestEtag String
    ETag of the manifest file.
    manifestS3Uri String
    S3 or HTTPS URI of the manifest file.
    modelAccessConfig Property Map

    AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceHubAccessConfig, AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceHubAccessConfigArgs

    HubContentArn string
    ARN of the SageMaker AI Hub content.
    HubContentArn string
    ARN of the SageMaker AI Hub content.
    hubContentArn String
    ARN of the SageMaker AI Hub content.
    hubContentArn string
    ARN of the SageMaker AI Hub content.
    hub_content_arn str
    ARN of the SageMaker AI Hub content.
    hubContentArn String
    ARN of the SageMaker AI Hub content.

    AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceModelAccessConfig, AlgorithmInferenceSpecificationContainerModelDataSourceS3DataSourceModelAccessConfigArgs

    AcceptEula bool
    Whether to accept the model end-user license agreement.
    AcceptEula bool
    Whether to accept the model end-user license agreement.
    acceptEula Boolean
    Whether to accept the model end-user license agreement.
    acceptEula boolean
    Whether to accept the model end-user license agreement.
    accept_eula bool
    Whether to accept the model end-user license agreement.
    acceptEula Boolean
    Whether to accept the model end-user license agreement.

    AlgorithmInferenceSpecificationContainerModelInput, AlgorithmInferenceSpecificationContainerModelInputArgs

    DataInputConfig string
    Input configuration for the model.
    DataInputConfig string
    Input configuration for the model.
    dataInputConfig String
    Input configuration for the model.
    dataInputConfig string
    Input configuration for the model.
    data_input_config str
    Input configuration for the model.
    dataInputConfig String
    Input configuration for the model.

    AlgorithmTimeouts, AlgorithmTimeoutsArgs

    Create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    Create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.

    AlgorithmTrainingSpecification, AlgorithmTrainingSpecificationArgs

    SupportedTrainingInstanceTypes List<string>
    Instance types supported for training.
    TrainingChannels List<AlgorithmTrainingSpecificationTrainingChannel>
    List of channel definitions supported for training. See Training Channels.
    TrainingImage string
    Training image URI.
    AdditionalS3DataSource AlgorithmTrainingSpecificationAdditionalS3DataSource
    Additional training data to make available to the algorithm. See Additional S3 Data Source.
    MetricDefinitions List<AlgorithmTrainingSpecificationMetricDefinition>
    List of metric definitions used to parse training logs. See Metric Definitions.
    SupportedHyperParameters List<AlgorithmTrainingSpecificationSupportedHyperParameter>
    Hyperparameter definitions supported by the algorithm. See Supported Hyper Parameters.
    SupportedTuningJobObjectiveMetrics List<AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetric>
    Objective metrics supported for hyperparameter tuning jobs. See Supported Tuning Job Objective Metrics.
    SupportsDistributedTraining bool
    Whether the algorithm supports distributed training.
    TrainingImageDigest string
    Digest of the training image.
    SupportedTrainingInstanceTypes []string
    Instance types supported for training.
    TrainingChannels []AlgorithmTrainingSpecificationTrainingChannel
    List of channel definitions supported for training. See Training Channels.
    TrainingImage string
    Training image URI.
    AdditionalS3DataSource AlgorithmTrainingSpecificationAdditionalS3DataSource
    Additional training data to make available to the algorithm. See Additional S3 Data Source.
    MetricDefinitions []AlgorithmTrainingSpecificationMetricDefinition
    List of metric definitions used to parse training logs. See Metric Definitions.
    SupportedHyperParameters []AlgorithmTrainingSpecificationSupportedHyperParameter
    Hyperparameter definitions supported by the algorithm. See Supported Hyper Parameters.
    SupportedTuningJobObjectiveMetrics []AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetric
    Objective metrics supported for hyperparameter tuning jobs. See Supported Tuning Job Objective Metrics.
    SupportsDistributedTraining bool
    Whether the algorithm supports distributed training.
    TrainingImageDigest string
    Digest of the training image.
    supportedTrainingInstanceTypes List<String>
    Instance types supported for training.
    trainingChannels List<AlgorithmTrainingSpecificationTrainingChannel>
    List of channel definitions supported for training. See Training Channels.
    trainingImage String
    Training image URI.
    additionalS3DataSource AlgorithmTrainingSpecificationAdditionalS3DataSource
    Additional training data to make available to the algorithm. See Additional S3 Data Source.
    metricDefinitions List<AlgorithmTrainingSpecificationMetricDefinition>
    List of metric definitions used to parse training logs. See Metric Definitions.
    supportedHyperParameters List<AlgorithmTrainingSpecificationSupportedHyperParameter>
    Hyperparameter definitions supported by the algorithm. See Supported Hyper Parameters.
    supportedTuningJobObjectiveMetrics List<AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetric>
    Objective metrics supported for hyperparameter tuning jobs. See Supported Tuning Job Objective Metrics.
    supportsDistributedTraining Boolean
    Whether the algorithm supports distributed training.
    trainingImageDigest String
    Digest of the training image.
    supportedTrainingInstanceTypes string[]
    Instance types supported for training.
    trainingChannels AlgorithmTrainingSpecificationTrainingChannel[]
    List of channel definitions supported for training. See Training Channels.
    trainingImage string
    Training image URI.
    additionalS3DataSource AlgorithmTrainingSpecificationAdditionalS3DataSource
    Additional training data to make available to the algorithm. See Additional S3 Data Source.
    metricDefinitions AlgorithmTrainingSpecificationMetricDefinition[]
    List of metric definitions used to parse training logs. See Metric Definitions.
    supportedHyperParameters AlgorithmTrainingSpecificationSupportedHyperParameter[]
    Hyperparameter definitions supported by the algorithm. See Supported Hyper Parameters.
    supportedTuningJobObjectiveMetrics AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetric[]
    Objective metrics supported for hyperparameter tuning jobs. See Supported Tuning Job Objective Metrics.
    supportsDistributedTraining boolean
    Whether the algorithm supports distributed training.
    trainingImageDigest string
    Digest of the training image.
    supported_training_instance_types Sequence[str]
    Instance types supported for training.
    training_channels Sequence[AlgorithmTrainingSpecificationTrainingChannel]
    List of channel definitions supported for training. See Training Channels.
    training_image str
    Training image URI.
    additional_s3_data_source AlgorithmTrainingSpecificationAdditionalS3DataSource
    Additional training data to make available to the algorithm. See Additional S3 Data Source.
    metric_definitions Sequence[AlgorithmTrainingSpecificationMetricDefinition]
    List of metric definitions used to parse training logs. See Metric Definitions.
    supported_hyper_parameters Sequence[AlgorithmTrainingSpecificationSupportedHyperParameter]
    Hyperparameter definitions supported by the algorithm. See Supported Hyper Parameters.
    supported_tuning_job_objective_metrics Sequence[AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetric]
    Objective metrics supported for hyperparameter tuning jobs. See Supported Tuning Job Objective Metrics.
    supports_distributed_training bool
    Whether the algorithm supports distributed training.
    training_image_digest str
    Digest of the training image.
    supportedTrainingInstanceTypes List<String>
    Instance types supported for training.
    trainingChannels List<Property Map>
    List of channel definitions supported for training. See Training Channels.
    trainingImage String
    Training image URI.
    additionalS3DataSource Property Map
    Additional training data to make available to the algorithm. See Additional S3 Data Source.
    metricDefinitions List<Property Map>
    List of metric definitions used to parse training logs. See Metric Definitions.
    supportedHyperParameters List<Property Map>
    Hyperparameter definitions supported by the algorithm. See Supported Hyper Parameters.
    supportedTuningJobObjectiveMetrics List<Property Map>
    Objective metrics supported for hyperparameter tuning jobs. See Supported Tuning Job Objective Metrics.
    supportsDistributedTraining Boolean
    Whether the algorithm supports distributed training.
    trainingImageDigest String
    Digest of the training image.

    AlgorithmTrainingSpecificationAdditionalS3DataSource, AlgorithmTrainingSpecificationAdditionalS3DataSourceArgs

    S3DataType string
    Type of additional S3 data.
    S3Uri string
    S3 or HTTPS URI for the additional data.
    CompressionType string
    Compression type for the data. Allowed values are: None and Gzip.
    Etag string
    ETag of the S3 object.
    S3DataType string
    Type of additional S3 data.
    S3Uri string
    S3 or HTTPS URI for the additional data.
    CompressionType string
    Compression type for the data. Allowed values are: None and Gzip.
    Etag string
    ETag of the S3 object.
    s3DataType String
    Type of additional S3 data.
    s3Uri String
    S3 or HTTPS URI for the additional data.
    compressionType String
    Compression type for the data. Allowed values are: None and Gzip.
    etag String
    ETag of the S3 object.
    s3DataType string
    Type of additional S3 data.
    s3Uri string
    S3 or HTTPS URI for the additional data.
    compressionType string
    Compression type for the data. Allowed values are: None and Gzip.
    etag string
    ETag of the S3 object.
    s3_data_type str
    Type of additional S3 data.
    s3_uri str
    S3 or HTTPS URI for the additional data.
    compression_type str
    Compression type for the data. Allowed values are: None and Gzip.
    etag str
    ETag of the S3 object.
    s3DataType String
    Type of additional S3 data.
    s3Uri String
    S3 or HTTPS URI for the additional data.
    compressionType String
    Compression type for the data. Allowed values are: None and Gzip.
    etag String
    ETag of the S3 object.

    AlgorithmTrainingSpecificationMetricDefinition, AlgorithmTrainingSpecificationMetricDefinitionArgs

    Name string
    Metric name.
    Regex string
    Regular expression used to extract the metric from logs.
    Name string
    Metric name.
    Regex string
    Regular expression used to extract the metric from logs.
    name String
    Metric name.
    regex String
    Regular expression used to extract the metric from logs.
    name string
    Metric name.
    regex string
    Regular expression used to extract the metric from logs.
    name str
    Metric name.
    regex str
    Regular expression used to extract the metric from logs.
    name String
    Metric name.
    regex String
    Regular expression used to extract the metric from logs.

    AlgorithmTrainingSpecificationSupportedHyperParameter, AlgorithmTrainingSpecificationSupportedHyperParameterArgs

    Name string
    Hyperparameter name.
    Type string
    Hyperparameter type. Allowed values are: Integer, Continuous, Categorical, and FreeText.
    DefaultValue string
    Default value for the hyperparameter.
    Description string
    Description of the hyperparameter.
    IsRequired bool
    Whether the hyperparameter is required.
    IsTunable bool
    Whether the hyperparameter can be tuned.
    Range AlgorithmTrainingSpecificationSupportedHyperParameterRange
    Allowed value range for the hyperparameter. See Parameter Range.
    Name string
    Hyperparameter name.
    Type string
    Hyperparameter type. Allowed values are: Integer, Continuous, Categorical, and FreeText.
    DefaultValue string
    Default value for the hyperparameter.
    Description string
    Description of the hyperparameter.
    IsRequired bool
    Whether the hyperparameter is required.
    IsTunable bool
    Whether the hyperparameter can be tuned.
    Range AlgorithmTrainingSpecificationSupportedHyperParameterRange
    Allowed value range for the hyperparameter. See Parameter Range.
    name String
    Hyperparameter name.
    type String
    Hyperparameter type. Allowed values are: Integer, Continuous, Categorical, and FreeText.
    defaultValue String
    Default value for the hyperparameter.
    description String
    Description of the hyperparameter.
    isRequired Boolean
    Whether the hyperparameter is required.
    isTunable Boolean
    Whether the hyperparameter can be tuned.
    range AlgorithmTrainingSpecificationSupportedHyperParameterRange
    Allowed value range for the hyperparameter. See Parameter Range.
    name string
    Hyperparameter name.
    type string
    Hyperparameter type. Allowed values are: Integer, Continuous, Categorical, and FreeText.
    defaultValue string
    Default value for the hyperparameter.
    description string
    Description of the hyperparameter.
    isRequired boolean
    Whether the hyperparameter is required.
    isTunable boolean
    Whether the hyperparameter can be tuned.
    range AlgorithmTrainingSpecificationSupportedHyperParameterRange
    Allowed value range for the hyperparameter. See Parameter Range.
    name str
    Hyperparameter name.
    type str
    Hyperparameter type. Allowed values are: Integer, Continuous, Categorical, and FreeText.
    default_value str
    Default value for the hyperparameter.
    description str
    Description of the hyperparameter.
    is_required bool
    Whether the hyperparameter is required.
    is_tunable bool
    Whether the hyperparameter can be tuned.
    range AlgorithmTrainingSpecificationSupportedHyperParameterRange
    Allowed value range for the hyperparameter. See Parameter Range.
    name String
    Hyperparameter name.
    type String
    Hyperparameter type. Allowed values are: Integer, Continuous, Categorical, and FreeText.
    defaultValue String
    Default value for the hyperparameter.
    description String
    Description of the hyperparameter.
    isRequired Boolean
    Whether the hyperparameter is required.
    isTunable Boolean
    Whether the hyperparameter can be tuned.
    range Property Map
    Allowed value range for the hyperparameter. See Parameter Range.

    AlgorithmTrainingSpecificationSupportedHyperParameterRange, AlgorithmTrainingSpecificationSupportedHyperParameterRangeArgs

    categoricalParameterRangeSpecification Property Map
    Categorical range definition. See Categorical Parameter Range Specification.
    continuousParameterRangeSpecification Property Map
    Continuous range definition. See Continuous Parameter Range Specification.
    integerParameterRangeSpecification Property Map
    Integer range definition. See Integer Parameter Range Specification.

    AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecification, AlgorithmTrainingSpecificationSupportedHyperParameterRangeCategoricalParameterRangeSpecificationArgs

    Values List<string>
    Allowed categorical values.
    Values []string
    Allowed categorical values.
    values List<String>
    Allowed categorical values.
    values string[]
    Allowed categorical values.
    values Sequence[str]
    Allowed categorical values.
    values List<String>
    Allowed categorical values.

    AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecification, AlgorithmTrainingSpecificationSupportedHyperParameterRangeContinuousParameterRangeSpecificationArgs

    MaxValue string
    Maximum allowed value.
    MinValue string
    Minimum allowed value.
    MaxValue string
    Maximum allowed value.
    MinValue string
    Minimum allowed value.
    maxValue String
    Maximum allowed value.
    minValue String
    Minimum allowed value.
    maxValue string
    Maximum allowed value.
    minValue string
    Minimum allowed value.
    max_value str
    Maximum allowed value.
    min_value str
    Minimum allowed value.
    maxValue String
    Maximum allowed value.
    minValue String
    Minimum allowed value.

    AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecification, AlgorithmTrainingSpecificationSupportedHyperParameterRangeIntegerParameterRangeSpecificationArgs

    MaxValue string
    Maximum allowed value.
    MinValue string
    Minimum allowed value.
    MaxValue string
    Maximum allowed value.
    MinValue string
    Minimum allowed value.
    maxValue String
    Maximum allowed value.
    minValue String
    Minimum allowed value.
    maxValue string
    Maximum allowed value.
    minValue string
    Minimum allowed value.
    max_value str
    Maximum allowed value.
    min_value str
    Minimum allowed value.
    maxValue String
    Maximum allowed value.
    minValue String
    Minimum allowed value.

    AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetric, AlgorithmTrainingSpecificationSupportedTuningJobObjectiveMetricArgs

    MetricName string
    Metric name.
    Type string
    Objective type. Allowed values are: Minimize and Maximize.
    MetricName string
    Metric name.
    Type string
    Objective type. Allowed values are: Minimize and Maximize.
    metricName String
    Metric name.
    type String
    Objective type. Allowed values are: Minimize and Maximize.
    metricName string
    Metric name.
    type string
    Objective type. Allowed values are: Minimize and Maximize.
    metric_name str
    Metric name.
    type str
    Objective type. Allowed values are: Minimize and Maximize.
    metricName String
    Metric name.
    type String
    Objective type. Allowed values are: Minimize and Maximize.

    AlgorithmTrainingSpecificationTrainingChannel, AlgorithmTrainingSpecificationTrainingChannelArgs

    Name string
    Channel name.
    SupportedContentTypes List<string>
    Supported input content types.
    SupportedInputModes List<string>
    Supported training input modes.
    Description string
    Description of the channel.
    IsRequired bool
    Whether the channel is required.
    SupportedCompressionTypes List<string>
    Supported compression types. Allowed values are: None and Gzip.
    Name string
    Channel name.
    SupportedContentTypes []string
    Supported input content types.
    SupportedInputModes []string
    Supported training input modes.
    Description string
    Description of the channel.
    IsRequired bool
    Whether the channel is required.
    SupportedCompressionTypes []string
    Supported compression types. Allowed values are: None and Gzip.
    name String
    Channel name.
    supportedContentTypes List<String>
    Supported input content types.
    supportedInputModes List<String>
    Supported training input modes.
    description String
    Description of the channel.
    isRequired Boolean
    Whether the channel is required.
    supportedCompressionTypes List<String>
    Supported compression types. Allowed values are: None and Gzip.
    name string
    Channel name.
    supportedContentTypes string[]
    Supported input content types.
    supportedInputModes string[]
    Supported training input modes.
    description string
    Description of the channel.
    isRequired boolean
    Whether the channel is required.
    supportedCompressionTypes string[]
    Supported compression types. Allowed values are: None and Gzip.
    name str
    Channel name.
    supported_content_types Sequence[str]
    Supported input content types.
    supported_input_modes Sequence[str]
    Supported training input modes.
    description str
    Description of the channel.
    is_required bool
    Whether the channel is required.
    supported_compression_types Sequence[str]
    Supported compression types. Allowed values are: None and Gzip.
    name String
    Channel name.
    supportedContentTypes List<String>
    Supported input content types.
    supportedInputModes List<String>
    Supported training input modes.
    description String
    Description of the channel.
    isRequired Boolean
    Whether the channel is required.
    supportedCompressionTypes List<String>
    Supported compression types. Allowed values are: None and Gzip.

    AlgorithmValidationSpecification, AlgorithmValidationSpecificationArgs

    ValidationProfiles AlgorithmValidationSpecificationValidationProfiles
    Validation profiles for the algorithm. See Validation Profiles.
    ValidationRole string
    IAM role ARN used for validation.
    ValidationProfiles AlgorithmValidationSpecificationValidationProfiles
    Validation profiles for the algorithm. See Validation Profiles.
    ValidationRole string
    IAM role ARN used for validation.
    validationProfiles AlgorithmValidationSpecificationValidationProfiles
    Validation profiles for the algorithm. See Validation Profiles.
    validationRole String
    IAM role ARN used for validation.
    validationProfiles AlgorithmValidationSpecificationValidationProfiles
    Validation profiles for the algorithm. See Validation Profiles.
    validationRole string
    IAM role ARN used for validation.
    validation_profiles AlgorithmValidationSpecificationValidationProfiles
    Validation profiles for the algorithm. See Validation Profiles.
    validation_role str
    IAM role ARN used for validation.
    validationProfiles Property Map
    Validation profiles for the algorithm. See Validation Profiles.
    validationRole String
    IAM role ARN used for validation.

    AlgorithmValidationSpecificationValidationProfiles, AlgorithmValidationSpecificationValidationProfilesArgs

    ProfileName string
    Profile name.
    TrainingJobDefinition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinition
    Training job definition used during validation. See Training Job Definition.
    TransformJobDefinition AlgorithmValidationSpecificationValidationProfilesTransformJobDefinition
    Transform job definition used during validation. See Transform Job Definition.
    ProfileName string
    Profile name.
    TrainingJobDefinition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinition
    Training job definition used during validation. See Training Job Definition.
    TransformJobDefinition AlgorithmValidationSpecificationValidationProfilesTransformJobDefinition
    Transform job definition used during validation. See Transform Job Definition.
    profileName String
    Profile name.
    trainingJobDefinition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinition
    Training job definition used during validation. See Training Job Definition.
    transformJobDefinition AlgorithmValidationSpecificationValidationProfilesTransformJobDefinition
    Transform job definition used during validation. See Transform Job Definition.
    profileName string
    Profile name.
    trainingJobDefinition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinition
    Training job definition used during validation. See Training Job Definition.
    transformJobDefinition AlgorithmValidationSpecificationValidationProfilesTransformJobDefinition
    Transform job definition used during validation. See Transform Job Definition.
    profile_name str
    Profile name.
    training_job_definition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinition
    Training job definition used during validation. See Training Job Definition.
    transform_job_definition AlgorithmValidationSpecificationValidationProfilesTransformJobDefinition
    Transform job definition used during validation. See Transform Job Definition.
    profileName String
    Profile name.
    trainingJobDefinition Property Map
    Training job definition used during validation. See Training Job Definition.
    transformJobDefinition Property Map
    Transform job definition used during validation. See Transform Job Definition.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinition, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionArgs

    InputDataConfigs List<AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfig>
    Input channel configuration for the validation training job. See Input Data Config.
    OutputDataConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfig
    Output configuration for the validation training job. See Output Data Config.
    ResourceConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfig
    Resource configuration for the validation training job. See Resource Config.
    StoppingCondition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingCondition
    Stopping condition for the validation training job. See Stopping Condition.
    TrainingInputMode string
    Input mode for the validation training job. Allowed values are: Pipe, File, and FastFile.
    HyperParameters Dictionary<string, string>
    Hyperparameters to pass to the training job.
    InputDataConfigs []AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfig
    Input channel configuration for the validation training job. See Input Data Config.
    OutputDataConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfig
    Output configuration for the validation training job. See Output Data Config.
    ResourceConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfig
    Resource configuration for the validation training job. See Resource Config.
    StoppingCondition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingCondition
    Stopping condition for the validation training job. See Stopping Condition.
    TrainingInputMode string
    Input mode for the validation training job. Allowed values are: Pipe, File, and FastFile.
    HyperParameters map[string]string
    Hyperparameters to pass to the training job.
    inputDataConfigs List<AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfig>
    Input channel configuration for the validation training job. See Input Data Config.
    outputDataConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfig
    Output configuration for the validation training job. See Output Data Config.
    resourceConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfig
    Resource configuration for the validation training job. See Resource Config.
    stoppingCondition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingCondition
    Stopping condition for the validation training job. See Stopping Condition.
    trainingInputMode String
    Input mode for the validation training job. Allowed values are: Pipe, File, and FastFile.
    hyperParameters Map<String,String>
    Hyperparameters to pass to the training job.
    inputDataConfigs AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfig[]
    Input channel configuration for the validation training job. See Input Data Config.
    outputDataConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfig
    Output configuration for the validation training job. See Output Data Config.
    resourceConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfig
    Resource configuration for the validation training job. See Resource Config.
    stoppingCondition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingCondition
    Stopping condition for the validation training job. See Stopping Condition.
    trainingInputMode string
    Input mode for the validation training job. Allowed values are: Pipe, File, and FastFile.
    hyperParameters {[key: string]: string}
    Hyperparameters to pass to the training job.
    input_data_configs Sequence[AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfig]
    Input channel configuration for the validation training job. See Input Data Config.
    output_data_config AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfig
    Output configuration for the validation training job. See Output Data Config.
    resource_config AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfig
    Resource configuration for the validation training job. See Resource Config.
    stopping_condition AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingCondition
    Stopping condition for the validation training job. See Stopping Condition.
    training_input_mode str
    Input mode for the validation training job. Allowed values are: Pipe, File, and FastFile.
    hyper_parameters Mapping[str, str]
    Hyperparameters to pass to the training job.
    inputDataConfigs List<Property Map>
    Input channel configuration for the validation training job. See Input Data Config.
    outputDataConfig Property Map
    Output configuration for the validation training job. See Output Data Config.
    resourceConfig Property Map
    Resource configuration for the validation training job. See Resource Config.
    stoppingCondition Property Map
    Stopping condition for the validation training job. See Stopping Condition.
    trainingInputMode String
    Input mode for the validation training job. Allowed values are: Pipe, File, and FastFile.
    hyperParameters Map<String>
    Hyperparameters to pass to the training job.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigArgs

    ChannelName string
    Name of the channel.
    DataSource AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSource
    Source of the input data. See Data Source.
    CompressionType string
    Compression type of the input data. Allowed values are: None and Gzip.
    ContentType string
    MIME type of the input data.
    InputMode string
    Training input mode for the channel. Allowed values are: Pipe, File, and FastFile.
    RecordWrapperType string
    Record wrapper type. Allowed values are: None and RecordIO.
    ShuffleConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfig
    Shuffle configuration for the channel. See Shuffle Config.
    ChannelName string
    Name of the channel.
    DataSource AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSource
    Source of the input data. See Data Source.
    CompressionType string
    Compression type of the input data. Allowed values are: None and Gzip.
    ContentType string
    MIME type of the input data.
    InputMode string
    Training input mode for the channel. Allowed values are: Pipe, File, and FastFile.
    RecordWrapperType string
    Record wrapper type. Allowed values are: None and RecordIO.
    ShuffleConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfig
    Shuffle configuration for the channel. See Shuffle Config.
    channelName String
    Name of the channel.
    dataSource AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSource
    Source of the input data. See Data Source.
    compressionType String
    Compression type of the input data. Allowed values are: None and Gzip.
    contentType String
    MIME type of the input data.
    inputMode String
    Training input mode for the channel. Allowed values are: Pipe, File, and FastFile.
    recordWrapperType String
    Record wrapper type. Allowed values are: None and RecordIO.
    shuffleConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfig
    Shuffle configuration for the channel. See Shuffle Config.
    channelName string
    Name of the channel.
    dataSource AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSource
    Source of the input data. See Data Source.
    compressionType string
    Compression type of the input data. Allowed values are: None and Gzip.
    contentType string
    MIME type of the input data.
    inputMode string
    Training input mode for the channel. Allowed values are: Pipe, File, and FastFile.
    recordWrapperType string
    Record wrapper type. Allowed values are: None and RecordIO.
    shuffleConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfig
    Shuffle configuration for the channel. See Shuffle Config.
    channel_name str
    Name of the channel.
    data_source AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSource
    Source of the input data. See Data Source.
    compression_type str
    Compression type of the input data. Allowed values are: None and Gzip.
    content_type str
    MIME type of the input data.
    input_mode str
    Training input mode for the channel. Allowed values are: Pipe, File, and FastFile.
    record_wrapper_type str
    Record wrapper type. Allowed values are: None and RecordIO.
    shuffle_config AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfig
    Shuffle configuration for the channel. See Shuffle Config.
    channelName String
    Name of the channel.
    dataSource Property Map
    Source of the input data. See Data Source.
    compressionType String
    Compression type of the input data. Allowed values are: None and Gzip.
    contentType String
    MIME type of the input data.
    inputMode String
    Training input mode for the channel. Allowed values are: Pipe, File, and FastFile.
    recordWrapperType String
    Record wrapper type. Allowed values are: None and RecordIO.
    shuffleConfig Property Map
    Shuffle configuration for the channel. See Shuffle Config.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSource, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceArgs

    fileSystemDataSource Property Map
    File system-backed data source. See File System Data Source.
    s3DataSource Property Map
    S3-backed training data source. See Training S3 Data Source.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceFileSystemDataSource, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceFileSystemDataSourceArgs

    DirectoryPath string
    Path to the directory in the mounted file system.
    FileSystemAccessMode string
    File system access mode.
    FileSystemId string
    ID of the file system.
    FileSystemType string
    File system type.
    DirectoryPath string
    Path to the directory in the mounted file system.
    FileSystemAccessMode string
    File system access mode.
    FileSystemId string
    ID of the file system.
    FileSystemType string
    File system type.
    directoryPath String
    Path to the directory in the mounted file system.
    fileSystemAccessMode String
    File system access mode.
    fileSystemId String
    ID of the file system.
    fileSystemType String
    File system type.
    directoryPath string
    Path to the directory in the mounted file system.
    fileSystemAccessMode string
    File system access mode.
    fileSystemId string
    ID of the file system.
    fileSystemType string
    File system type.
    directory_path str
    Path to the directory in the mounted file system.
    file_system_access_mode str
    File system access mode.
    file_system_id str
    ID of the file system.
    file_system_type str
    File system type.
    directoryPath String
    Path to the directory in the mounted file system.
    fileSystemAccessMode String
    File system access mode.
    fileSystemId String
    ID of the file system.
    fileSystemType String
    File system type.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSource, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs

    S3DataType string
    S3Uri string
    AttributeNames List<string>
    List of JSON attribute names to select from the input data.
    HubAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfig
    InstanceGroupNames List<string>
    Instance group names associated with the data source.
    ModelAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfig
    S3DataDistributionType string
    Distribution type for S3 data. Allowed values are: FullyReplicated and ShardedByS3Key.
    S3DataType string
    S3Uri string
    AttributeNames []string
    List of JSON attribute names to select from the input data.
    HubAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfig
    InstanceGroupNames []string
    Instance group names associated with the data source.
    ModelAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfig
    S3DataDistributionType string
    Distribution type for S3 data. Allowed values are: FullyReplicated and ShardedByS3Key.
    s3DataType String
    s3Uri String
    attributeNames List<String>
    List of JSON attribute names to select from the input data.
    hubAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfig
    instanceGroupNames List<String>
    Instance group names associated with the data source.
    modelAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfig
    s3DataDistributionType String
    Distribution type for S3 data. Allowed values are: FullyReplicated and ShardedByS3Key.
    s3DataType string
    s3Uri string
    attributeNames string[]
    List of JSON attribute names to select from the input data.
    hubAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfig
    instanceGroupNames string[]
    Instance group names associated with the data source.
    modelAccessConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfig
    s3DataDistributionType string
    Distribution type for S3 data. Allowed values are: FullyReplicated and ShardedByS3Key.
    s3DataType String
    s3Uri String
    attributeNames List<String>
    List of JSON attribute names to select from the input data.
    hubAccessConfig Property Map
    instanceGroupNames List<String>
    Instance group names associated with the data source.
    modelAccessConfig Property Map
    s3DataDistributionType String
    Distribution type for S3 data. Allowed values are: FullyReplicated and ShardedByS3Key.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceHubAccessConfigArgs

    HubContentArn string
    ARN of the SageMaker AI Hub content.
    HubContentArn string
    ARN of the SageMaker AI Hub content.
    hubContentArn String
    ARN of the SageMaker AI Hub content.
    hubContentArn string
    ARN of the SageMaker AI Hub content.
    hub_content_arn str
    ARN of the SageMaker AI Hub content.
    hubContentArn String
    ARN of the SageMaker AI Hub content.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceModelAccessConfigArgs

    AcceptEula bool
    Whether to accept the model end-user license agreement.
    AcceptEula bool
    Whether to accept the model end-user license agreement.
    acceptEula Boolean
    Whether to accept the model end-user license agreement.
    acceptEula boolean
    Whether to accept the model end-user license agreement.
    accept_eula bool
    Whether to accept the model end-user license agreement.
    acceptEula Boolean
    Whether to accept the model end-user license agreement.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionInputDataConfigShuffleConfigArgs

    Seed int
    Shuffle seed.
    Seed int
    Shuffle seed.
    seed Integer
    Shuffle seed.
    seed number
    Shuffle seed.
    seed int
    Shuffle seed.
    seed Number
    Shuffle seed.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionOutputDataConfigArgs

    S3OutputPath string
    S3 or HTTPS URI where output data is stored.
    CompressionType string
    Compression type for the output data. Allowed values are: None and GZIP.
    KmsKeyId string
    KMS key ID used to encrypt output data.
    S3OutputPath string
    S3 or HTTPS URI where output data is stored.
    CompressionType string
    Compression type for the output data. Allowed values are: None and GZIP.
    KmsKeyId string
    KMS key ID used to encrypt output data.
    s3OutputPath String
    S3 or HTTPS URI where output data is stored.
    compressionType String
    Compression type for the output data. Allowed values are: None and GZIP.
    kmsKeyId String
    KMS key ID used to encrypt output data.
    s3OutputPath string
    S3 or HTTPS URI where output data is stored.
    compressionType string
    Compression type for the output data. Allowed values are: None and GZIP.
    kmsKeyId string
    KMS key ID used to encrypt output data.
    s3_output_path str
    S3 or HTTPS URI where output data is stored.
    compression_type str
    Compression type for the output data. Allowed values are: None and GZIP.
    kms_key_id str
    KMS key ID used to encrypt output data.
    s3OutputPath String
    S3 or HTTPS URI where output data is stored.
    compressionType String
    Compression type for the output data. Allowed values are: None and GZIP.
    kmsKeyId String
    KMS key ID used to encrypt output data.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigArgs

    InstanceCount int
    Number of training instances.
    InstanceGroups List<AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroup>
    Instance group definitions for the training job. See Instance Groups.
    InstancePlacementConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfig
    Placement configuration for the training job. See Instance Placement Config.
    InstanceType string
    Training instance type.
    KeepAlivePeriodInSeconds int
    Warm pool keep-alive period in seconds.
    TrainingPlanArn string
    ARN of the SageMaker AI training plan.
    VolumeKmsKeyId string
    KMS key ID used to encrypt the training volume.
    VolumeSizeInGb int
    Size of the training volume in GiB.
    InstanceCount int
    Number of training instances.
    InstanceGroups []AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroup
    Instance group definitions for the training job. See Instance Groups.
    InstancePlacementConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfig
    Placement configuration for the training job. See Instance Placement Config.
    InstanceType string
    Training instance type.
    KeepAlivePeriodInSeconds int
    Warm pool keep-alive period in seconds.
    TrainingPlanArn string
    ARN of the SageMaker AI training plan.
    VolumeKmsKeyId string
    KMS key ID used to encrypt the training volume.
    VolumeSizeInGb int
    Size of the training volume in GiB.
    instanceCount Integer
    Number of training instances.
    instanceGroups List<AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroup>
    Instance group definitions for the training job. See Instance Groups.
    instancePlacementConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfig
    Placement configuration for the training job. See Instance Placement Config.
    instanceType String
    Training instance type.
    keepAlivePeriodInSeconds Integer
    Warm pool keep-alive period in seconds.
    trainingPlanArn String
    ARN of the SageMaker AI training plan.
    volumeKmsKeyId String
    KMS key ID used to encrypt the training volume.
    volumeSizeInGb Integer
    Size of the training volume in GiB.
    instanceCount number
    Number of training instances.
    instanceGroups AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroup[]
    Instance group definitions for the training job. See Instance Groups.
    instancePlacementConfig AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfig
    Placement configuration for the training job. See Instance Placement Config.
    instanceType string
    Training instance type.
    keepAlivePeriodInSeconds number
    Warm pool keep-alive period in seconds.
    trainingPlanArn string
    ARN of the SageMaker AI training plan.
    volumeKmsKeyId string
    KMS key ID used to encrypt the training volume.
    volumeSizeInGb number
    Size of the training volume in GiB.
    instance_count int
    Number of training instances.
    instance_groups Sequence[AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroup]
    Instance group definitions for the training job. See Instance Groups.
    instance_placement_config AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfig
    Placement configuration for the training job. See Instance Placement Config.
    instance_type str
    Training instance type.
    keep_alive_period_in_seconds int
    Warm pool keep-alive period in seconds.
    training_plan_arn str
    ARN of the SageMaker AI training plan.
    volume_kms_key_id str
    KMS key ID used to encrypt the training volume.
    volume_size_in_gb int
    Size of the training volume in GiB.
    instanceCount Number
    Number of training instances.
    instanceGroups List<Property Map>
    Instance group definitions for the training job. See Instance Groups.
    instancePlacementConfig Property Map
    Placement configuration for the training job. See Instance Placement Config.
    instanceType String
    Training instance type.
    keepAlivePeriodInSeconds Number
    Warm pool keep-alive period in seconds.
    trainingPlanArn String
    ARN of the SageMaker AI training plan.
    volumeKmsKeyId String
    KMS key ID used to encrypt the training volume.
    volumeSizeInGb Number
    Size of the training volume in GiB.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroup, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstanceGroupArgs

    InstanceCount int
    Number of instances in the group.
    InstanceGroupName string
    Name of the instance group.
    InstanceType string
    Instance type for the group.
    InstanceCount int
    Number of instances in the group.
    InstanceGroupName string
    Name of the instance group.
    InstanceType string
    Instance type for the group.
    instanceCount Integer
    Number of instances in the group.
    instanceGroupName String
    Name of the instance group.
    instanceType String
    Instance type for the group.
    instanceCount number
    Number of instances in the group.
    instanceGroupName string
    Name of the instance group.
    instanceType string
    Instance type for the group.
    instance_count int
    Number of instances in the group.
    instance_group_name str
    Name of the instance group.
    instance_type str
    Instance type for the group.
    instanceCount Number
    Number of instances in the group.
    instanceGroupName String
    Name of the instance group.
    instanceType String
    Instance type for the group.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfig, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigArgs

    EnableMultipleJobs bool
    Whether multiple jobs can share the placement configuration.
    PlacementSpecifications List<AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecification>
    Placement specifications for ultra servers. See Placement Specifications.
    EnableMultipleJobs bool
    Whether multiple jobs can share the placement configuration.
    PlacementSpecifications []AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecification
    Placement specifications for ultra servers. See Placement Specifications.
    enableMultipleJobs Boolean
    Whether multiple jobs can share the placement configuration.
    placementSpecifications List<AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecification>
    Placement specifications for ultra servers. See Placement Specifications.
    enableMultipleJobs boolean
    Whether multiple jobs can share the placement configuration.
    placementSpecifications AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecification[]
    Placement specifications for ultra servers. See Placement Specifications.
    enable_multiple_jobs bool
    Whether multiple jobs can share the placement configuration.
    placement_specifications Sequence[AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecification]
    Placement specifications for ultra servers. See Placement Specifications.
    enableMultipleJobs Boolean
    Whether multiple jobs can share the placement configuration.
    placementSpecifications List<Property Map>
    Placement specifications for ultra servers. See Placement Specifications.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecification, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionResourceConfigInstancePlacementConfigPlacementSpecificationArgs

    InstanceCount int
    Number of instances for the placement specification.
    UltraServerId string
    Ultra server ID.
    InstanceCount int
    Number of instances for the placement specification.
    UltraServerId string
    Ultra server ID.
    instanceCount Integer
    Number of instances for the placement specification.
    ultraServerId String
    Ultra server ID.
    instanceCount number
    Number of instances for the placement specification.
    ultraServerId string
    Ultra server ID.
    instance_count int
    Number of instances for the placement specification.
    ultra_server_id str
    Ultra server ID.
    instanceCount Number
    Number of instances for the placement specification.
    ultraServerId String
    Ultra server ID.

    AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingCondition, AlgorithmValidationSpecificationValidationProfilesTrainingJobDefinitionStoppingConditionArgs

    MaxPendingTimeInSeconds int
    Maximum time, in seconds, a job can remain pending.
    MaxRuntimeInSeconds int
    Maximum runtime, in seconds, for the training job.
    MaxWaitTimeInSeconds int
    Maximum wait time, in seconds, including spot interruptions.
    MaxPendingTimeInSeconds int
    Maximum time, in seconds, a job can remain pending.
    MaxRuntimeInSeconds int
    Maximum runtime, in seconds, for the training job.
    MaxWaitTimeInSeconds int
    Maximum wait time, in seconds, including spot interruptions.
    maxPendingTimeInSeconds Integer
    Maximum time, in seconds, a job can remain pending.
    maxRuntimeInSeconds Integer
    Maximum runtime, in seconds, for the training job.
    maxWaitTimeInSeconds Integer
    Maximum wait time, in seconds, including spot interruptions.
    maxPendingTimeInSeconds number
    Maximum time, in seconds, a job can remain pending.
    maxRuntimeInSeconds number
    Maximum runtime, in seconds, for the training job.
    maxWaitTimeInSeconds number
    Maximum wait time, in seconds, including spot interruptions.
    max_pending_time_in_seconds int
    Maximum time, in seconds, a job can remain pending.
    max_runtime_in_seconds int
    Maximum runtime, in seconds, for the training job.
    max_wait_time_in_seconds int
    Maximum wait time, in seconds, including spot interruptions.
    maxPendingTimeInSeconds Number
    Maximum time, in seconds, a job can remain pending.
    maxRuntimeInSeconds Number
    Maximum runtime, in seconds, for the training job.
    maxWaitTimeInSeconds Number
    Maximum wait time, in seconds, including spot interruptions.

    AlgorithmValidationSpecificationValidationProfilesTransformJobDefinition, AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionArgs

    TransformInput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInput
    Input configuration for the transform job. See Transform Input.
    TransformOutput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutput
    Output configuration for the transform job. See Transform Output.
    TransformResources AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResources
    Compute resources for the transform job. See Transform Resources.
    BatchStrategy string
    Batch strategy for the transform job. Allowed values are: MultiRecord and SingleRecord.
    Environment Dictionary<string, string>
    Environment variables to pass to the transform container.
    MaxConcurrentTransforms int
    Maximum number of parallel transform requests.
    MaxPayloadInMb int
    Maximum payload size, in MiB, for transform requests.
    TransformInput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInput
    Input configuration for the transform job. See Transform Input.
    TransformOutput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutput
    Output configuration for the transform job. See Transform Output.
    TransformResources AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResources
    Compute resources for the transform job. See Transform Resources.
    BatchStrategy string
    Batch strategy for the transform job. Allowed values are: MultiRecord and SingleRecord.
    Environment map[string]string
    Environment variables to pass to the transform container.
    MaxConcurrentTransforms int
    Maximum number of parallel transform requests.
    MaxPayloadInMb int
    Maximum payload size, in MiB, for transform requests.
    transformInput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInput
    Input configuration for the transform job. See Transform Input.
    transformOutput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutput
    Output configuration for the transform job. See Transform Output.
    transformResources AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResources
    Compute resources for the transform job. See Transform Resources.
    batchStrategy String
    Batch strategy for the transform job. Allowed values are: MultiRecord and SingleRecord.
    environment Map<String,String>
    Environment variables to pass to the transform container.
    maxConcurrentTransforms Integer
    Maximum number of parallel transform requests.
    maxPayloadInMb Integer
    Maximum payload size, in MiB, for transform requests.
    transformInput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInput
    Input configuration for the transform job. See Transform Input.
    transformOutput AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutput
    Output configuration for the transform job. See Transform Output.
    transformResources AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResources
    Compute resources for the transform job. See Transform Resources.
    batchStrategy string
    Batch strategy for the transform job. Allowed values are: MultiRecord and SingleRecord.
    environment {[key: string]: string}
    Environment variables to pass to the transform container.
    maxConcurrentTransforms number
    Maximum number of parallel transform requests.
    maxPayloadInMb number
    Maximum payload size, in MiB, for transform requests.
    transform_input AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInput
    Input configuration for the transform job. See Transform Input.
    transform_output AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutput
    Output configuration for the transform job. See Transform Output.
    transform_resources AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResources
    Compute resources for the transform job. See Transform Resources.
    batch_strategy str
    Batch strategy for the transform job. Allowed values are: MultiRecord and SingleRecord.
    environment Mapping[str, str]
    Environment variables to pass to the transform container.
    max_concurrent_transforms int
    Maximum number of parallel transform requests.
    max_payload_in_mb int
    Maximum payload size, in MiB, for transform requests.
    transformInput Property Map
    Input configuration for the transform job. See Transform Input.
    transformOutput Property Map
    Output configuration for the transform job. See Transform Output.
    transformResources Property Map
    Compute resources for the transform job. See Transform Resources.
    batchStrategy String
    Batch strategy for the transform job. Allowed values are: MultiRecord and SingleRecord.
    environment Map<String>
    Environment variables to pass to the transform container.
    maxConcurrentTransforms Number
    Maximum number of parallel transform requests.
    maxPayloadInMb Number
    Maximum payload size, in MiB, for transform requests.

    AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInput, AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputArgs

    DataSource AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSource
    Data source for the transform job. See Transform Job Data Source.
    CompressionType string
    Compression type of the input data. Allowed values are: None and Gzip.
    ContentType string
    MIME type of the input data.
    SplitType string
    Method used to split the transform input. Allowed values are: None, Line, RecordIO, and TFRecord.
    DataSource AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSource
    Data source for the transform job. See Transform Job Data Source.
    CompressionType string
    Compression type of the input data. Allowed values are: None and Gzip.
    ContentType string
    MIME type of the input data.
    SplitType string
    Method used to split the transform input. Allowed values are: None, Line, RecordIO, and TFRecord.
    dataSource AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSource
    Data source for the transform job. See Transform Job Data Source.
    compressionType String
    Compression type of the input data. Allowed values are: None and Gzip.
    contentType String
    MIME type of the input data.
    splitType String
    Method used to split the transform input. Allowed values are: None, Line, RecordIO, and TFRecord.
    dataSource AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSource
    Data source for the transform job. See Transform Job Data Source.
    compressionType string
    Compression type of the input data. Allowed values are: None and Gzip.
    contentType string
    MIME type of the input data.
    splitType string
    Method used to split the transform input. Allowed values are: None, Line, RecordIO, and TFRecord.
    data_source AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSource
    Data source for the transform job. See Transform Job Data Source.
    compression_type str
    Compression type of the input data. Allowed values are: None and Gzip.
    content_type str
    MIME type of the input data.
    split_type str
    Method used to split the transform input. Allowed values are: None, Line, RecordIO, and TFRecord.
    dataSource Property Map
    Data source for the transform job. See Transform Job Data Source.
    compressionType String
    Compression type of the input data. Allowed values are: None and Gzip.
    contentType String
    MIME type of the input data.
    splitType String
    Method used to split the transform input. Allowed values are: None, Line, RecordIO, and TFRecord.

    AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSource, AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceArgs

    s3DataSource Property Map
    S3-backed training data source. See Training S3 Data Source.

    AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSource, AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformInputDataSourceS3DataSourceArgs

    S3DataType string
    S3Uri string
    S3DataType string
    S3Uri string
    s3DataType String
    s3Uri String
    s3DataType string
    s3Uri string
    s3DataType String
    s3Uri String

    AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutput, AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformOutputArgs

    S3OutputPath string
    S3 or HTTPS URI where transform output is stored.
    Accept string
    MIME type of the transform output.
    AssembleWith string
    Method used to assemble the transform output. Allowed values are: None and Line.
    KmsKeyId string
    KMS key ID used to encrypt transform output.
    S3OutputPath string
    S3 or HTTPS URI where transform output is stored.
    Accept string
    MIME type of the transform output.
    AssembleWith string
    Method used to assemble the transform output. Allowed values are: None and Line.
    KmsKeyId string
    KMS key ID used to encrypt transform output.
    s3OutputPath String
    S3 or HTTPS URI where transform output is stored.
    accept String
    MIME type of the transform output.
    assembleWith String
    Method used to assemble the transform output. Allowed values are: None and Line.
    kmsKeyId String
    KMS key ID used to encrypt transform output.
    s3OutputPath string
    S3 or HTTPS URI where transform output is stored.
    accept string
    MIME type of the transform output.
    assembleWith string
    Method used to assemble the transform output. Allowed values are: None and Line.
    kmsKeyId string
    KMS key ID used to encrypt transform output.
    s3_output_path str
    S3 or HTTPS URI where transform output is stored.
    accept str
    MIME type of the transform output.
    assemble_with str
    Method used to assemble the transform output. Allowed values are: None and Line.
    kms_key_id str
    KMS key ID used to encrypt transform output.
    s3OutputPath String
    S3 or HTTPS URI where transform output is stored.
    accept String
    MIME type of the transform output.
    assembleWith String
    Method used to assemble the transform output. Allowed values are: None and Line.
    kmsKeyId String
    KMS key ID used to encrypt transform output.

    AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResources, AlgorithmValidationSpecificationValidationProfilesTransformJobDefinitionTransformResourcesArgs

    InstanceCount int
    Number of transform instances.
    InstanceType string
    Transform instance type.
    TransformAmiVersion string
    Transform AMI version.
    VolumeKmsKeyId string
    KMS key ID used to encrypt the transform volume.
    InstanceCount int
    Number of transform instances.
    InstanceType string
    Transform instance type.
    TransformAmiVersion string
    Transform AMI version.
    VolumeKmsKeyId string
    KMS key ID used to encrypt the transform volume.
    instanceCount Integer
    Number of transform instances.
    instanceType String
    Transform instance type.
    transformAmiVersion String
    Transform AMI version.
    volumeKmsKeyId String
    KMS key ID used to encrypt the transform volume.
    instanceCount number
    Number of transform instances.
    instanceType string
    Transform instance type.
    transformAmiVersion string
    Transform AMI version.
    volumeKmsKeyId string
    KMS key ID used to encrypt the transform volume.
    instance_count int
    Number of transform instances.
    instance_type str
    Transform instance type.
    transform_ami_version str
    Transform AMI version.
    volume_kms_key_id str
    KMS key ID used to encrypt the transform volume.
    instanceCount Number
    Number of transform instances.
    instanceType String
    Transform instance type.
    transformAmiVersion String
    Transform AMI version.
    volumeKmsKeyId String
    KMS key ID used to encrypt the transform volume.

    Import

    Identity Schema

    Required

    • algorithmName - (String) Name of the algorithm.

    Optional

    • accountId - (String) AWS account where this resource is managed.
    • region - (String) Region where this resource is managed.

    Using pulumi import, import SageMaker AI Algorithms using algorithmName. For example:

    $ pulumi import aws:sagemaker/algorithm:Algorithm example example-algorithm
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo
    Viewing docs for AWS v7.24.0
    published on Tuesday, Mar 31, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.