From 399caf8396a55a2868bbede792bad678c7e5a0d0 Mon Sep 17 00:00:00 2001 From: nikhil Date: Mon, 27 May 2024 21:56:17 +0100 Subject: [PATCH 1/4] aws_sagemaker_endpoint_configuration: supports inputandoutput --- .../sagemaker/endpoint_configuration_test.go | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/internal/service/sagemaker/endpoint_configuration_test.go b/internal/service/sagemaker/endpoint_configuration_test.go index 65891f987f6f..a55fa8848c1e 100644 --- a/internal/service/sagemaker/endpoint_configuration_test.go +++ b/internal/service/sagemaker/endpoint_configuration_test.go @@ -433,6 +433,39 @@ func TestAccSageMakerEndpointConfiguration_dataCapture(t *testing.T) { }) } +func TestAccSageMakerEndpointConfiguration_dataCapture_inputAndOutput(t *testing.T) { + ctx := acctest.Context(t) + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) + resourceName := "aws_sagemaker_endpoint_configuration.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(ctx, t) }, + ErrorCheck: acctest.ErrorCheck(t, names.SageMakerServiceID), + ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, + CheckDestroy: testAccCheckEndpointConfigurationDestroy(ctx), + Steps: []resource.TestStep{ + { + Config: testAccEndpointConfigurationConfig_dataCapture_inputAndOutput(rName), + Check: resource.ComposeTestCheckFunc( + testAccCheckEndpointConfigurationExists(ctx, resourceName), + resource.TestCheckResourceAttr(resourceName, "data_capture_config.#", acctest.Ct1), + resource.TestCheckResourceAttr(resourceName, "data_capture_config.0.enable_capture", acctest.CtTrue), + resource.TestCheckResourceAttr(resourceName, "data_capture_config.0.initial_sampling_percentage", "50"), + resource.TestCheckResourceAttr(resourceName, "data_capture_config.0.destination_s3_uri", fmt.Sprintf("s3://%s/", rName)), + resource.TestCheckResourceAttr(resourceName, "data_capture_config.0.capture_options.0.capture_mode", "InputAndOutput"), + resource.TestCheckResourceAttr(resourceName, "data_capture_config.0.capture_content_type_header.0.json_content_types.#", acctest.Ct1), + resource.TestCheckTypeSetElemAttr(resourceName, "data_capture_config.0.capture_content_type_header.0.json_content_types.*", "application/json"), + ), + }, + { + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + func TestAccSageMakerEndpointConfiguration_disappears(t *testing.T) { ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) @@ -1006,6 +1039,41 @@ resource "aws_sagemaker_endpoint_configuration" "test" { `, rName)) } +func testAccEndpointConfigurationConfig_dataCapture_inputAndOutput(rName string) string { + return acctest.ConfigCompose(testAccEndpointConfigurationConfig_base(rName), fmt.Sprintf(` +resource "aws_s3_bucket" "test" { + bucket = %[1]q + force_destroy = true +} + +resource "aws_sagemaker_endpoint_configuration" "test" { + name = %[1]q + + production_variants { + variant_name = "variant-1" + model_name = aws_sagemaker_model.test.name + initial_instance_count = 2 + instance_type = "ml.t2.medium" + initial_variant_weight = 1 + } + + data_capture_config { + enable_capture = true + initial_sampling_percentage = 50 + destination_s3_uri = "s3://${aws_s3_bucket.test.bucket}/" + + capture_options { + capture_mode = "InputAndOutput" + } + + capture_content_type_header { + json_content_types = ["application/json"] + } + } +} +`, rName)) +} + func testAccEndpointConfigurationConfig_asyncKMS(rName string) string { return acctest.ConfigCompose(testAccEndpointConfigurationConfig_base(rName), fmt.Sprintf(` resource "aws_s3_bucket" "test" { From 8a4a998a0a63c3fb58f0bab9b307c494a2622cca Mon Sep 17 00:00:00 2001 From: nikhil Date: Mon, 27 May 2024 21:59:00 +0100 Subject: [PATCH 2/4] InputAndOutput --- website/docs/r/sagemaker_endpoint_configuration.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/sagemaker_endpoint_configuration.html.markdown b/website/docs/r/sagemaker_endpoint_configuration.html.markdown index 75e799d31a97..4919dc2de88b 100644 --- a/website/docs/r/sagemaker_endpoint_configuration.html.markdown +++ b/website/docs/r/sagemaker_endpoint_configuration.html.markdown @@ -86,7 +86,7 @@ This resource supports the following arguments: #### capture_options -* `capture_mode` - (Required) Specifies the data to be captured. Should be one of `Input` or `Output`. +* `capture_mode` - (Required) Specifies the data to be captured. Should be one of `Input` or `Output` or `InputAndOutput`. #### capture_content_type_header From d550bc4d7cf3b451e6e1836cced5ac0cd233d754 Mon Sep 17 00:00:00 2001 From: nikhil Date: Mon, 27 May 2024 22:00:02 +0100 Subject: [PATCH 3/4] InputAndOutput --- website/docs/r/sagemaker_endpoint_configuration.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/sagemaker_endpoint_configuration.html.markdown b/website/docs/r/sagemaker_endpoint_configuration.html.markdown index 4919dc2de88b..ca15fbc94ef0 100644 --- a/website/docs/r/sagemaker_endpoint_configuration.html.markdown +++ b/website/docs/r/sagemaker_endpoint_configuration.html.markdown @@ -86,7 +86,7 @@ This resource supports the following arguments: #### capture_options -* `capture_mode` - (Required) Specifies the data to be captured. Should be one of `Input` or `Output` or `InputAndOutput`. +* `capture_mode` - (Required) Specifies the data to be captured. Should be one of `Input`, `Output` or `InputAndOutput`. #### capture_content_type_header From 8e3699b190745249d80e963e55c68880719002f7 Mon Sep 17 00:00:00 2001 From: nikhil Date: Fri, 21 Jun 2024 21:17:38 +0100 Subject: [PATCH 4/4] aws_sagemaker_endpoint_configuration: supports inputandoutput --- .changelog/37726.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/37726.txt diff --git a/.changelog/37726.txt b/.changelog/37726.txt new file mode 100644 index 000000000000..6979dc6e8a34 --- /dev/null +++ b/.changelog/37726.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/aws_sagemaker_endpoint_configuration: Add support for `InputAndOutput` in `capture_mode` +``` \ No newline at end of file