// 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" ) // Creates an SageMaker notebook instance. A notebook instance is a machine // learning (ML) compute instance running on a Jupyter notebook. In a // CreateNotebookInstance request, specify the type of ML compute instance that you // want to run. SageMaker launches the instance, installs common libraries that you // can use to explore datasets for model training, and attaches an ML storage // volume to the notebook instance. SageMaker also provides a set of example // notebooks. Each notebook demonstrates how to use SageMaker with a specific // algorithm or with a machine learning framework. After receiving the request, // SageMaker does the following: // - Creates a network interface in the SageMaker VPC. // - (Option) If you specified SubnetId , SageMaker creates a network interface // in your own VPC, which is inferred from the subnet ID that you provide in the // input. When creating this network interface, SageMaker attaches the security // group that you specified in the request to the network interface that it creates // in your VPC. // - Launches an EC2 instance of the type specified in the request in the // SageMaker VPC. If you specified SubnetId of your VPC, SageMaker specifies both // network interfaces when launching this instance. This enables inbound traffic // from your own VPC to the notebook instance, assuming that the security groups // allow it. // // After creating the notebook instance, SageMaker returns its Amazon Resource // Name (ARN). You can't change the name of a notebook instance after you create // it. After SageMaker creates the notebook instance, you can connect to the // Jupyter server and work in Jupyter notebooks. For example, you can write code to // explore a dataset that you can use for model training, train a model, host // models by creating SageMaker endpoints, and validate hosted models. For more // information, see How It Works (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html) // . func (c *Client) CreateNotebookInstance(ctx context.Context, params *CreateNotebookInstanceInput, optFns ...func(*Options)) (*CreateNotebookInstanceOutput, error) { if params == nil { params = &CreateNotebookInstanceInput{} } result, metadata, err := c.invokeOperation(ctx, "CreateNotebookInstance", params, optFns, c.addOperationCreateNotebookInstanceMiddlewares) if err != nil { return nil, err } out := result.(*CreateNotebookInstanceOutput) out.ResultMetadata = metadata return out, nil } type CreateNotebookInstanceInput struct { // The type of ML compute instance to launch for the notebook instance. // // This member is required. InstanceType types.InstanceType // The name of the new notebook instance. // // This member is required. NotebookInstanceName *string // When you send any requests to Amazon Web Services resources from the notebook // instance, SageMaker assumes this role to perform tasks on your behalf. You must // grant this role necessary permissions so SageMaker can perform these tasks. The // policy must allow the SageMaker service principal (sagemaker.amazonaws.com) // permissions to assume this role. For more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) // . To be able to pass this role to SageMaker, the caller of this API must have // the iam:PassRole permission. // // This member is required. RoleArn *string // A list of Elastic Inference (EI) instance types to associate with this notebook // instance. Currently, only one instance type can be associated with a notebook // instance. For more information, see Using Elastic Inference in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html) // . AcceleratorTypes []types.NotebookInstanceAcceleratorType // An array of up to three Git repositories to associate with the notebook // instance. These can be either the names of Git repositories stored as resources // in your account, or the URL of Git repositories in Amazon Web Services // CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) // or in any other Git repository. These repositories are cloned at the same level // as the default repository of your notebook instance. For more information, see // Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html) // . AdditionalCodeRepositories []string // A Git repository to associate with the notebook instance as its default code // repository. This can be either the name of a Git repository stored as a resource // in your account, or the URL of a Git repository in Amazon Web Services // CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) // or in any other Git repository. When you open a notebook instance, it opens in // the directory that contains this repository. For more information, see // Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html) // . DefaultCodeRepository *string // Sets whether SageMaker provides internet access to the notebook instance. If // you set this to Disabled this notebook instance is able to access resources // only in your VPC, and is not be able to connect to SageMaker training and // endpoint services unless you configure a NAT Gateway in your VPC. For more // information, see Notebook Instances Are Internet-Enabled by Default (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access) // . You can set the value of this parameter to Disabled only if you set a value // for the SubnetId parameter. DirectInternetAccess types.DirectInternetAccess // Information on the IMDS configuration of the notebook instance InstanceMetadataServiceConfiguration *types.InstanceMetadataServiceConfiguration // The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service // key that SageMaker uses to encrypt data on the storage volume attached to your // notebook instance. The KMS key you provide must be enabled. For information, see // Enabling and Disabling Keys (https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) // in the Amazon Web Services Key Management Service Developer Guide. KmsKeyId *string // The name of a lifecycle configuration to associate with the notebook instance. // For information about lifestyle configurations, see Step 2.1: (Optional) // Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html) // . LifecycleConfigName *string // The platform identifier of the notebook instance runtime environment. PlatformIdentifier *string // Whether root access is enabled or disabled for users of the notebook instance. // The default value is Enabled . Lifecycle configurations need root access to be // able to set up a notebook instance. Because of this, lifecycle configurations // associated with a notebook instance always run with root access even if you // disable root access for users. RootAccess types.RootAccess // The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must // be for the same VPC as specified in the subnet. SecurityGroupIds []string // The ID of the subnet in a VPC to which you would like to have a connectivity // from your ML compute instance. SubnetId *string // 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 (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) // . Tags []types.Tag // The size, in GB, of the ML storage volume to attach to the notebook instance. // The default value is 5 GB. VolumeSizeInGB *int32 noSmithyDocumentSerde } type CreateNotebookInstanceOutput struct { // The Amazon Resource Name (ARN) of the notebook instance. NotebookInstanceArn *string // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata noSmithyDocumentSerde } func (c *Client) addOperationCreateNotebookInstanceMiddlewares(stack *middleware.Stack, options Options) (err error) { err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateNotebookInstance{}, middleware.After) if err != nil { return err } err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateNotebookInstance{}, 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, options); err != nil { return err } if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { return err } if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { return err } if err = addOpCreateNotebookInstanceValidationMiddleware(stack); err != nil { return err } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateNotebookInstance(options.Region), middleware.Before); err != nil { return err } if err = awsmiddleware.AddRecursionDetection(stack); 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_opCreateNotebookInstance(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, ServiceID: ServiceID, SigningName: "sagemaker", OperationName: "CreateNotebookInstance", } }