// Code generated by smithy-go-codegen DO NOT EDIT. package sagemaker import ( "context" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" ) // Create a machine learning algorithm that you can use in Amazon SageMaker and // list in the AWS Marketplace. func (c *Client) CreateAlgorithm(ctx context.Context, params *CreateAlgorithmInput, optFns ...func(*Options)) (*CreateAlgorithmOutput, error) { if params == nil { params = &CreateAlgorithmInput{} } result, metadata, err := c.invokeOperation(ctx, "CreateAlgorithm", params, optFns, addOperationCreateAlgorithmMiddlewares) if err != nil { return nil, err } out := result.(*CreateAlgorithmOutput) out.ResultMetadata = metadata return out, nil } type CreateAlgorithmInput struct { // The name of the algorithm. // // This member is required. AlgorithmName *string // 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. // // This member is required. TrainingSpecification *types.TrainingSpecification // A description of the algorithm. AlgorithmDescription *string // Whether to certify the algorithm so that it can be listed in AWS Marketplace. CertifyForMarketplace bool // 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. InferenceSpecification *types.InferenceSpecification // An array of key-value pairs. You can use tags to categorize your AWS resources // in different ways, for example, by purpose, owner, or environment. For more // information, see Tagging AWS Resources // (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). Tags []types.Tag // 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. ValidationSpecification *types.AlgorithmValidationSpecification } type CreateAlgorithmOutput struct { // The Amazon Resource Name (ARN) of the new algorithm. // // This member is required. AlgorithmArn *string // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata } func addOperationCreateAlgorithmMiddlewares(stack *middleware.Stack, options Options) (err error) { err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateAlgorithm{}, middleware.After) if err != nil { return err } err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateAlgorithm{}, middleware.After) if err != nil { return err } if err = addSetLoggerMiddleware(stack, options); err != nil { return err } if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { return err } if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { return err } if err = addResolveEndpointMiddleware(stack, options); err != nil { return err } if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { return err } if err = addRetryMiddlewares(stack, options); err != nil { return err } if err = addHTTPSignerV4Middleware(stack, options); err != nil { return err } if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { return err } if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { return err } if err = addClientUserAgent(stack); err != nil { return err } if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { return err } if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { return err } if err = addOpCreateAlgorithmValidationMiddleware(stack); err != nil { return err } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateAlgorithm(options.Region), middleware.Before); err != nil { return err } if err = addRequestIDRetrieverMiddleware(stack); err != nil { return err } if err = addResponseErrorMiddleware(stack); err != nil { return err } if err = addRequestResponseLogging(stack, options); err != nil { return err } return nil } func newServiceMetadataMiddleware_opCreateAlgorithm(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, ServiceID: ServiceID, SigningName: "sagemaker", OperationName: "CreateAlgorithm", } }