Skip to content
Open
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
6d22117
r/aws_sagemaker_training_job: skaff codegen
Mar 3, 2026
d491dd1
r/aws_sagemaker_training_job: handle schema for alrorithm specificati…
Mar 4, 2026
4bd2210
r/aws_sagemaker_training_job: handle schema for mlflow config, model …
Mar 4, 2026
4b1d24a
r/aws_sagemaker_training_job: handle schema for profiler config block
Mar 4, 2026
f9108df
r/aws_sagemaker_training_job: handle schema for profiler rule config …
Mar 4, 2026
1fd8b55
r/aws_sagemaker_training_job: handle schema for remote debug and reso…
Mar 4, 2026
0561b82
r/aws_sagemaker_training_job: handle schema for retry strategy and se…
Mar 4, 2026
efac994
r/aws_sagemaker_training_job: handle schema for session chaining, sto…
Mar 4, 2026
3ceed37
r/aws_sagemaker_training_job: cleanup skaff comments and create method
Mar 4, 2026
9520e7d
r/aws_sagemaker_training_job: cleanup read method
Mar 4, 2026
1f41ebe
r/aws_sagemaker_training_job: cleanup update method
Mar 4, 2026
e02f12c
r/aws_sagemaker_training_job: Add models + add sweep function + clean…
Mar 4, 2026
d7c0d10
r/aws_sagemaker_training_job: cleanup skaff comments
Mar 4, 2026
1daf220
r/aws_sagemaker_training_job: register sweeper
Mar 4, 2026
8496b22
r/aws_sagemaker_training_job: fix map issues
Mar 5, 2026
928e867
r/aws_sagemaker_training_job: register the resource with provider wit…
Mar 5, 2026
297f96e
r/aws_sagemaker_training_job: changes to update + schema
Mar 6, 2026
6a3fdc0
r/aws_sagemaker_training_job: update schema + CRUD functions + resour…
Mar 9, 2026
e9a34bc
r/aws_sagemaker_training_job: fix dissapers acc test
Mar 9, 2026
6a128e8
r/aws_sagemaker_training_job: delete unnecessary generated file
Mar 9, 2026
965b63a
r/aws_sagemaker_training_job: add ENI cleanup helper function
Mar 9, 2026
b722cdd
r/aws_sagemaker_training_job: acc tests for testing vpc config and de…
Mar 9, 2026
0ca1540
r/aws_sagemaker_training_job: Add retry for errors
Mar 9, 2026
a1a3b53
r/aws_sagemaker_training_job: fix test cases for tensor board output,…
Mar 9, 2026
4125c9d
r/aws_sagemaker_training_job: Add support for tags with testcases + f…
Mar 10, 2026
81b308b
r/aws_sagemaker_training_job: fix tests for infra check config, remot…
Mar 10, 2026
6451322
r/aws_sagemaker_training_job: schema changes
Mar 11, 2026
81bc1a6
r/aws_sagemaker_training_job: refactor tests
Mar 11, 2026
2a59e58
r/aws_sagemaker_training_job: fix few tests
Mar 11, 2026
3035e25
r/aws_sagemaker_training_job: docs
Mar 11, 2026
9703aa9
r/aws_sagemaker_training_job: add retry
Mar 11, 2026
9867e52
r/aws_sagemaker_training_job: fix test cases
Mar 11, 2026
25c69cd
r/aws_sagemaker_training_job: implement list resource
Mar 11, 2026
6f03055
r/aws_sagemaker_training_job: fix list implementation
Mar 12, 2026
9e790fb
r/aws_sagemaker_training_job: kmsid cleanup
Mar 12, 2026
5b5cc58
r/aws_sagemaker_training_job: refactor CRUD
Mar 12, 2026
589938e
r/aws_sagemaker_training_job: doc changes
Mar 12, 2026
1223f31
r/aws_sagemaker_training_job: remove id attribute + add serverlessJob…
Mar 13, 2026
aea0aed
r/aws_sagemaker_training_job: remove importIgnore annotation
Mar 13, 2026
4fc6286
r/aws_sagemaker_training_job: add changelog
Mar 13, 2026
cbd179a
r/aws_sagemaker_training_job: fix terraform formatting
Mar 13, 2026
a146a19
r/aws_sagemaker_training_job: fix copyright headers
Mar 13, 2026
d6adeb9
r/aws_sagemaker_training_job: fix regex issues + CI findings
Mar 13, 2026
8b1918f
r/aws_sagemaker_training_job: fix CI findings
Mar 13, 2026
b97be28
r/aws_sagemaker_training_job: fix terraform fmt
Mar 13, 2026
598ce13
r/aws_sagemaker_training_job: fix tf lint in tests
Mar 13, 2026
1bd0f86
r/aws_sagemaker_training_job: use aws_sagemaker_prebuilt_ecr_image da…
Mar 13, 2026
2fe9e50
r/aws_sagemaker_training_job: fix TestAccSageMakerTrainingJob_outputD…
Mar 13, 2026
5b0ae32
r/aws_sagemaker_training_job: fix terraform formatting
Mar 13, 2026
78fc8de
r/aws_sagemaker_training_job: fix formatting
Mar 13, 2026
98573e0
r/aws_sagemaker_training_job: Refactor training job wait logic into s…
Mar 13, 2026
052b562
r/aws_sagemaker_training_job: more examples in docs + clarify require…
Mar 13, 2026
bfaa135
r/aws_sagemaker_training_job: fix terraform formatting issues in docs
Mar 14, 2026
46fc934
r/aws_sagemaker_training_job: move sweep helpers + handle terminal st…
Mar 16, 2026
7c6cadf
r/aws_sagemaker_training_job: remove id and update timeout in docs
Mar 16, 2026
91845cd
r/aws_sagemaker_training_job: increase timeout to handle serverless j…
Mar 17, 2026
8d8db85
r/aws_sagemaker_training_job: timeout changes in doc
Mar 17, 2026
e5069c8
r/aws_sagemaker_training_job: remove unwanted error string + ci fix
Mar 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changelog/46892.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
```release-note:new-resource
aws_sagemaker_training_job
```

```release-note:new-list-resource
aws_sagemaker_training_job
```
2 changes: 2 additions & 0 deletions internal/service/sagemaker/exports_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ var (
ResourceProject = resourceProject
ResourceSpace = resourceSpace
ResourceStudioLifecycleConfig = resourceStudioLifecycleConfig
ResourceTrainingJob = newResourceTrainingJob
ResourceUserProfile = resourceUserProfile
ResourceWorkforce = resourceWorkforce
ResourceWorkteam = resourceWorkteam
Expand Down Expand Up @@ -69,6 +70,7 @@ var (
FindServicecatalogPortfolioStatus = findServicecatalogPortfolioStatus
FindSpaceByName = findSpaceByName
FindStudioLifecycleConfigByName = findStudioLifecycleConfigByName
FindTrainingJobByName = findTrainingJobByName
FindUserProfileByName = findUserProfileByName
FindWorkforceByName = findWorkforceByName
FindWorkteamByName = findWorkteamByName
Expand Down
30 changes: 30 additions & 0 deletions internal/service/sagemaker/service_package_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/service/sagemaker/sweep.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ func RegisterSweepers() {
awsv2.Register("aws_sagemaker_pipeline", sweepPipelines)
awsv2.Register("aws_sagemaker_hub", sweepHubs)
awsv2.Register("aws_sagemaker_model_card", sweepModelCards)
awsv2.Register("aws_sagemaker_training_job", sweepTrainingJobs)
}

func sweepAppImagesConfig(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Copyright IBM Corp. 2014, 2026
# SPDX-License-Identifier: MPL-2.0

resource "aws_sagemaker_training_job" "test" {
training_job_name = var.rName
role_arn = aws_iam_role.test.arn

algorithm_specification {
training_input_mode = "File"
training_image = data.aws_sagemaker_prebuilt_ecr_image.test.registry_path
}

output_data_config {
kms_key_id = aws_kms_key.test.arn
s3_output_path = "s3://example-training-job-output/"
}

resource_config {
instance_type = "ml.m5.large"
instance_count = 1
volume_size_in_gb = 30
}

stopping_condition {
max_runtime_in_seconds = 3600
}

depends_on = [aws_iam_role_policy_attachment.test]
}

data "aws_partition" "current" {}

data "aws_sagemaker_prebuilt_ecr_image" "test" {

repository_name = "linear-learner"
image_tag = "1"
}

resource "aws_iam_role" "test" {
name = var.rName
assume_role_policy = data.aws_iam_policy_document.assume_role.json
}

data "aws_iam_policy_document" "assume_role" {
statement {
actions = ["sts:AssumeRole", "sts:SetSourceIdentity"]
principals {
type = "Service"
identifiers = ["sagemaker.amazonaws.com"]
}
}
}

resource "aws_iam_role_policy_attachment" "test" {
role = aws_iam_role.test.name
policy_arn = "arn:${data.aws_partition.current.partition}:iam::aws:policy/AmazonSageMakerFullAccess"
}

resource "aws_kms_key" "test" {
description = "KMS key for SageMaker training job"
}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Copyright IBM Corp. 2014, 2026
# SPDX-License-Identifier: MPL-2.0

resource "aws_sagemaker_training_job" "test" {
count = var.resource_count

training_job_name = "${var.rName}-${count.index}"
role_arn = aws_iam_role.test.arn

algorithm_specification {
training_input_mode = "File"
training_image = data.aws_sagemaker_prebuilt_ecr_image.test.registry_path
}

output_data_config {
s3_output_path = "s3://${aws_s3_bucket.test.bucket}/output/"
}

resource_config {
instance_type = "ml.m5.large"
instance_count = 1
volume_size_in_gb = 30
}

stopping_condition {
max_runtime_in_seconds = 3600
}

depends_on = [aws_iam_role_policy_attachment.test]
}

data "aws_iam_policy_document" "assume_role" {
statement {
actions = ["sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession"]
principals {
type = "Service"
identifiers = ["sagemaker.amazonaws.com"]
}
}
}

resource "aws_iam_role" "test" {
name = var.rName
assume_role_policy = data.aws_iam_policy_document.assume_role.json
}

resource "aws_iam_role_policy_attachment" "test" {
role = aws_iam_role.test.name
policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
}

resource "aws_s3_bucket" "test" {
bucket = var.rName
force_destroy = true
}

data "aws_sagemaker_prebuilt_ecr_image" "test" {
repository_name = "linear-learner"
image_tag = "1"
}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}

variable "resource_count" {
description = "Number of resources to create"
type = number
nullable = false
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright IBM Corp. 2014, 2026
# SPDX-License-Identifier: MPL-2.0

list "aws_sagemaker_training_job" "test" {
provider = aws
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Copyright IBM Corp. 2014, 2026
# SPDX-License-Identifier: MPL-2.0

resource "aws_sagemaker_training_job" "test" {
count = var.resource_count

training_job_name = "${var.rName}-${count.index}"
role_arn = aws_iam_role.test.arn
tags = var.resource_tags

algorithm_specification {
training_input_mode = "File"
training_image = data.aws_sagemaker_prebuilt_ecr_image.test.registry_path
}

output_data_config {
s3_output_path = "s3://${aws_s3_bucket.test.bucket}/output/"
}

resource_config {
instance_type = "ml.m5.large"
instance_count = 1
volume_size_in_gb = 30
}

stopping_condition {
max_runtime_in_seconds = 3600
}

depends_on = [aws_iam_role_policy_attachment.test]
}

data "aws_iam_policy_document" "assume_role" {
statement {
actions = ["sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession"]
principals {
type = "Service"
identifiers = ["sagemaker.amazonaws.com"]
}
}
}

resource "aws_iam_role" "test" {
name = var.rName
assume_role_policy = data.aws_iam_policy_document.assume_role.json
}

resource "aws_iam_role_policy_attachment" "test" {
role = aws_iam_role.test.name
policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
}

resource "aws_s3_bucket" "test" {
bucket = var.rName
force_destroy = true
}

data "aws_sagemaker_prebuilt_ecr_image" "test" {
repository_name = "linear-learner"
image_tag = "1"
}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}

variable "resource_count" {
description = "Number of resources to create"
type = number
nullable = false
}

variable "resource_tags" {
type = map(string)
nullable = true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright IBM Corp. 2014, 2026
# SPDX-License-Identifier: MPL-2.0

list "aws_sagemaker_training_job" "test" {
provider = aws

include_resource = true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Copyright IBM Corp. 2014, 2026
# SPDX-License-Identifier: MPL-2.0

resource "aws_sagemaker_training_job" "test" {
count = var.resource_count
region = var.region

training_job_name = "${var.rName}-${count.index}"
role_arn = aws_iam_role.test.arn

algorithm_specification {
training_input_mode = "File"
training_image = data.aws_sagemaker_prebuilt_ecr_image.test.registry_path
}

output_data_config {
s3_output_path = "s3://${aws_s3_bucket.test.bucket}/output/"
}

resource_config {
instance_type = "ml.m5.large"
instance_count = 1
volume_size_in_gb = 30
}

stopping_condition {
max_runtime_in_seconds = 3600
}

depends_on = [aws_iam_role_policy_attachment.test]
}

data "aws_iam_policy_document" "assume_role" {
statement {
actions = ["sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession"]
principals {
type = "Service"
identifiers = ["sagemaker.amazonaws.com"]
}
}
}

resource "aws_iam_role" "test" {
name = var.rName
assume_role_policy = data.aws_iam_policy_document.assume_role.json
}

resource "aws_iam_role_policy_attachment" "test" {
role = aws_iam_role.test.name
policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
}

resource "aws_s3_bucket" "test" {
region = var.region
bucket = var.rName
force_destroy = true
}

data "aws_sagemaker_prebuilt_ecr_image" "test" {
region = var.region
repository_name = "linear-learner"
image_tag = "1"
}

variable "rName" {
description = "Name for resource"
type = string
nullable = false
}

variable "resource_count" {
description = "Number of resources to create"
type = number
nullable = false
}

variable "region" {
description = "Region to deploy resource in"
type = string
nullable = false
}
Loading
Loading