class Aws::SageMaker::Types::CreateAlgorithmInput

@note When making an API call, you may pass CreateAlgorithmInput

data as a hash:

    {
      algorithm_name: "EntityName", # required
      algorithm_description: "EntityDescription",
      training_specification: { # required
        training_image: "ContainerImage", # required
        training_image_digest: "ImageDigest",
        supported_hyper_parameters: [
          {
            name: "ParameterName", # required
            description: "EntityDescription",
            type: "Integer", # required, accepts Integer, Continuous, Categorical, FreeText
            range: {
              integer_parameter_range_specification: {
                min_value: "ParameterValue", # required
                max_value: "ParameterValue", # required
              },
              continuous_parameter_range_specification: {
                min_value: "ParameterValue", # required
                max_value: "ParameterValue", # required
              },
              categorical_parameter_range_specification: {
                values: ["ParameterValue"], # required
              },
            },
            is_tunable: false,
            is_required: false,
            default_value: "HyperParameterValue",
          },
        ],
        supported_training_instance_types: ["ml.m4.xlarge"], # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.p4d.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5n.xlarge, ml.c5n.2xlarge, ml.c5n.4xlarge, ml.c5n.9xlarge, ml.c5n.18xlarge
        supports_distributed_training: false,
        metric_definitions: [
          {
            name: "MetricName", # required
            regex: "MetricRegex", # required
          },
        ],
        training_channels: [ # required
          {
            name: "ChannelName", # required
            description: "EntityDescription",
            is_required: false,
            supported_content_types: ["ContentType"], # required
            supported_compression_types: ["None"], # accepts None, Gzip
            supported_input_modes: ["Pipe"], # required, accepts Pipe, File
          },
        ],
        supported_tuning_job_objective_metrics: [
          {
            type: "Maximize", # required, accepts Maximize, Minimize
            metric_name: "MetricName", # required
          },
        ],
      },
      inference_specification: {
        containers: [ # required
          {
            container_hostname: "ContainerHostname",
            image: "ContainerImage", # required
            image_digest: "ImageDigest",
            model_data_url: "Url",
            product_id: "ProductId",
            environment: {
              "EnvironmentKey" => "EnvironmentValue",
            },
          },
        ],
        supported_transform_instance_types: ["ml.m4.xlarge"], # accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge
        supported_realtime_inference_instance_types: ["ml.t2.medium"], # accepts ml.t2.medium, ml.t2.large, ml.t2.xlarge, ml.t2.2xlarge, ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.m5d.large, ml.m5d.xlarge, ml.m5d.2xlarge, ml.m5d.4xlarge, ml.m5d.12xlarge, ml.m5d.24xlarge, ml.c4.large, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.c5.large, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5d.large, ml.c5d.xlarge, ml.c5d.2xlarge, ml.c5d.4xlarge, ml.c5d.9xlarge, ml.c5d.18xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.r5.large, ml.r5.xlarge, ml.r5.2xlarge, ml.r5.4xlarge, ml.r5.12xlarge, ml.r5.24xlarge, ml.r5d.large, ml.r5d.xlarge, ml.r5d.2xlarge, ml.r5d.4xlarge, ml.r5d.12xlarge, ml.r5d.24xlarge, ml.inf1.xlarge, ml.inf1.2xlarge, ml.inf1.6xlarge, ml.inf1.24xlarge
        supported_content_types: ["ContentType"], # required
        supported_response_mime_types: ["ResponseMIMEType"], # required
      },
      validation_specification: {
        validation_role: "RoleArn", # required
        validation_profiles: [ # required
          {
            profile_name: "EntityName", # required
            training_job_definition: { # required
              training_input_mode: "Pipe", # required, accepts Pipe, File
              hyper_parameters: {
                "HyperParameterKey" => "HyperParameterValue",
              },
              input_data_config: [ # required
                {
                  channel_name: "ChannelName", # required
                  data_source: { # required
                    s3_data_source: {
                      s3_data_type: "ManifestFile", # required, accepts ManifestFile, S3Prefix, AugmentedManifestFile
                      s3_uri: "S3Uri", # required
                      s3_data_distribution_type: "FullyReplicated", # accepts FullyReplicated, ShardedByS3Key
                      attribute_names: ["AttributeName"],
                    },
                    file_system_data_source: {
                      file_system_id: "FileSystemId", # required
                      file_system_access_mode: "rw", # required, accepts rw, ro
                      file_system_type: "EFS", # required, accepts EFS, FSxLustre
                      directory_path: "DirectoryPath", # required
                    },
                  },
                  content_type: "ContentType",
                  compression_type: "None", # accepts None, Gzip
                  record_wrapper_type: "None", # accepts None, RecordIO
                  input_mode: "Pipe", # accepts Pipe, File
                  shuffle_config: {
                    seed: 1, # required
                  },
                },
              ],
              output_data_config: { # required
                kms_key_id: "KmsKeyId",
                s3_output_path: "S3Uri", # required
              },
              resource_config: { # required
                instance_type: "ml.m4.xlarge", # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.p4d.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5n.xlarge, ml.c5n.2xlarge, ml.c5n.4xlarge, ml.c5n.9xlarge, ml.c5n.18xlarge
                instance_count: 1, # required
                volume_size_in_gb: 1, # required
                volume_kms_key_id: "KmsKeyId",
              },
              stopping_condition: { # required
                max_runtime_in_seconds: 1,
                max_wait_time_in_seconds: 1,
              },
            },
            transform_job_definition: {
              max_concurrent_transforms: 1,
              max_payload_in_mb: 1,
              batch_strategy: "MultiRecord", # accepts MultiRecord, SingleRecord
              environment: {
                "TransformEnvironmentKey" => "TransformEnvironmentValue",
              },
              transform_input: { # required
                data_source: { # required
                  s3_data_source: { # required
                    s3_data_type: "ManifestFile", # required, accepts ManifestFile, S3Prefix, AugmentedManifestFile
                    s3_uri: "S3Uri", # required
                  },
                },
                content_type: "ContentType",
                compression_type: "None", # accepts None, Gzip
                split_type: "None", # accepts None, Line, RecordIO, TFRecord
              },
              transform_output: { # required
                s3_output_path: "S3Uri", # required
                accept: "Accept",
                assemble_with: "None", # accepts None, Line
                kms_key_id: "KmsKeyId",
              },
              transform_resources: { # required
                instance_type: "ml.m4.xlarge", # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge
                instance_count: 1, # required
                volume_kms_key_id: "KmsKeyId",
              },
            },
          },
        ],
      },
      certify_for_marketplace: false,
      tags: [
        {
          key: "TagKey", # required
          value: "TagValue", # required
        },
      ],
    }

@!attribute [rw] algorithm_name

The name of the algorithm.
@return [String]

@!attribute [rw] algorithm_description

A description of the algorithm.
@return [String]

@!attribute [rw] training_specification

Specifies details about training jobs run by this algorithm,
including the following:

* The Amazon ECR path of the container and the version digest of the
  algorithm.

* The hyperparameters that the algorithm supports.

* The instance types that the algorithm supports for training.

* Whether the algorithm supports distributed training.

* The metrics that the algorithm emits to Amazon CloudWatch.

* Which metrics that the algorithm emits can be used as the
  objective metric for hyperparameter tuning jobs.

* The input channels that the algorithm supports for training data.
  For example, an algorithm might support `train`, `validation`, and
  `test` channels.
@return [Types::TrainingSpecification]

@!attribute [rw] inference_specification

Specifies details about inference jobs that the algorithm runs,
including the following:

* The Amazon ECR paths of containers that contain the inference code
  and model artifacts.

* The instance types that the algorithm supports for transform jobs
  and real-time endpoints used for inference.

* The input and output content formats that the algorithm supports
  for inference.
@return [Types::InferenceSpecification]

@!attribute [rw] validation_specification

Specifies configurations for one or more training jobs and that
Amazon SageMaker runs to test the algorithm's training code and,
optionally, one or more batch transform jobs that Amazon SageMaker
runs to test the algorithm's inference code.
@return [Types::AlgorithmValidationSpecification]

@!attribute [rw] certify_for_marketplace

Whether to certify the algorithm so that it can be listed in Amazon
Web Services Marketplace.
@return [Boolean]

@!attribute [rw] tags

An array of key-value pairs. You can use tags to categorize your
Amazon Web Services resources in different ways, for example, by
purpose, owner, or environment. For more information, see [Tagging
Amazon Web Services Resources][1].

[1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
@return [Array<Types::Tag>]

@see docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAlgorithmInput AWS API Documentation

Constants

SENSITIVE