Skip to content
v2.277.0

CfnEndpointConfigProps Struct ​

Properties for defining a CfnEndpointConfig.

Example ​

ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_sagemaker as sagemaker } from 'aws-cdk-lib';
const cfnEndpointConfigProps: sagemaker.CfnEndpointConfigProps = {
  productionVariants: [{
    variantName: 'variantName',

    // the properties below are optional
    acceleratorType: 'acceleratorType',
    capacityReservationConfig: {
      capacityReservationPreference: 'capacityReservationPreference',
      mlReservationArn: 'mlReservationArn',
    },
    containerStartupHealthCheckTimeoutInSeconds: 123,
    coreDumpConfig: {
      destinationS3Uri: 'destinationS3Uri',

      // the properties below are optional
      kmsKeyId: 'kmsKeyId',
    },
    enableSsmAccess: false,
    inferenceAmiVersion: 'inferenceAmiVersion',
    initialInstanceCount: 123,
    initialVariantWeight: 123,
    instancePools: [{
      instanceType: 'instanceType',
      priority: 123,

      // the properties below are optional
      modelNameOverride: 'modelNameOverride',
    }],
    instanceType: 'instanceType',
    managedInstanceScaling: {
      maxInstanceCount: 123,
      minInstanceCount: 123,
      scaleInPolicy: {
        strategy: 'strategy',

        // the properties below are optional
        cooldownInMinutes: 123,
        maximumStepSize: 123,
      },
      status: 'status',
    },
    modelDataDownloadTimeoutInSeconds: 123,
    modelName: 'modelName',
    routingConfig: {
      prefixAwareRoutingConfig: {
        concurrencyThreshold: 123,
        prefixLength: 123,
      },
      routingStrategy: 'routingStrategy',
    },
    serverlessConfig: {
      maxConcurrency: 123,
      memorySizeInMb: 123,

      // the properties below are optional
      provisionedConcurrency: 123,
    },
    variantInstanceProvisionTimeoutInSeconds: 123,
    volumeSizeInGb: 123,
  }],

  // the properties below are optional
  asyncInferenceConfig: {
    outputConfig: {
      kmsKeyId: 'kmsKeyId',
      notificationConfig: {
        errorTopic: 'errorTopic',
        includeInferenceResponseIn: ['includeInferenceResponseIn'],
        successTopic: 'successTopic',
      },
      s3FailurePath: 's3FailurePath',
      s3OutputPath: 's3OutputPath',
    },

    // the properties below are optional
    clientConfig: {
      maxConcurrentInvocationsPerInstance: 123,
    },
  },
  dataCaptureConfig: {
    captureOptions: [{
      captureMode: 'captureMode',
    }],
    destinationS3Uri: 'destinationS3Uri',
    initialSamplingPercentage: 123,

    // the properties below are optional
    captureContentTypeHeader: {
      csvContentTypes: ['csvContentTypes'],
      jsonContentTypes: ['jsonContentTypes'],
    },
    enableCapture: false,
    kmsKeyId: 'kmsKeyId',
  },
  enableNetworkIsolation: false,
  endpointConfigName: 'endpointConfigName',
  executionRoleArn: 'executionRoleArn',
  explainerConfig: {
    clarifyExplainerConfig: {
      shapConfig: {
        shapBaselineConfig: {
          mimeType: 'mimeType',
          shapBaseline: 'shapBaseline',
          shapBaselineUri: 'shapBaselineUri',
        },

        // the properties below are optional
        numberOfSamples: 123,
        seed: 123,
        textConfig: {
          granularity: 'granularity',
          language: 'language',
        },
        useLogit: false,
      },

      // the properties below are optional
      enableExplanations: 'enableExplanations',
      inferenceConfig: {
        contentTemplate: 'contentTemplate',
        featureHeaders: ['featureHeaders'],
        featuresAttribute: 'featuresAttribute',
        featureTypes: ['featureTypes'],
        labelAttribute: 'labelAttribute',
        labelHeaders: ['labelHeaders'],
        labelIndex: 123,
        maxPayloadInMb: 123,
        maxRecordCount: 123,
        probabilityAttribute: 'probabilityAttribute',
        probabilityIndex: 123,
      },
    },
  },
  kmsKeyId: 'kmsKeyId',
  metricsConfig: {
    enableDetailedObservability: false,
    enableEnhancedMetrics: false,
    metricPublishFrequencyInSeconds: 123,
  },
  shadowProductionVariants: [{
    variantName: 'variantName',

    // the properties below are optional
    acceleratorType: 'acceleratorType',
    capacityReservationConfig: {
      capacityReservationPreference: 'capacityReservationPreference',
      mlReservationArn: 'mlReservationArn',
    },
    containerStartupHealthCheckTimeoutInSeconds: 123,
    coreDumpConfig: {
      destinationS3Uri: 'destinationS3Uri',

      // the properties below are optional
      kmsKeyId: 'kmsKeyId',
    },
    enableSsmAccess: false,
    inferenceAmiVersion: 'inferenceAmiVersion',
    initialInstanceCount: 123,
    initialVariantWeight: 123,
    instancePools: [{
      instanceType: 'instanceType',
      priority: 123,

      // the properties below are optional
      modelNameOverride: 'modelNameOverride',
    }],
    instanceType: 'instanceType',
    managedInstanceScaling: {
      maxInstanceCount: 123,
      minInstanceCount: 123,
      scaleInPolicy: {
        strategy: 'strategy',

        // the properties below are optional
        cooldownInMinutes: 123,
        maximumStepSize: 123,
      },
      status: 'status',
    },
    modelDataDownloadTimeoutInSeconds: 123,
    modelName: 'modelName',
    routingConfig: {
      prefixAwareRoutingConfig: {
        concurrencyThreshold: 123,
        prefixLength: 123,
      },
      routingStrategy: 'routingStrategy',
    },
    serverlessConfig: {
      maxConcurrency: 123,
      memorySizeInMb: 123,

      // the properties below are optional
      provisionedConcurrency: 123,
    },
    variantInstanceProvisionTimeoutInSeconds: 123,
    volumeSizeInGb: 123,
  }],
  tags: [{
    key: 'key',
    value: 'value',
  }],
  vpcConfig: {
    securityGroupIds: ['securityGroupIds'],
    subnets: ['subnets'],
  },
};
python
from aws_cdk import CfnTag
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
from aws_cdk import aws_sagemaker as sagemaker

cfn_endpoint_config_props = sagemaker.CfnEndpointConfigProps(
    production_variants=[sagemaker.CfnEndpointConfig.ProductionVariantProperty(
        variant_name="variantName",

        # the properties below are optional
        accelerator_type="acceleratorType",
        capacity_reservation_config=sagemaker.CfnEndpointConfig.CapacityReservationConfigProperty(
            capacity_reservation_preference="capacityReservationPreference",
            ml_reservation_arn="mlReservationArn"
        ),
        container_startup_health_check_timeout_in_seconds=123,
        core_dump_config=sagemaker.CfnEndpointConfig.CoreDumpConfigProperty(
            destination_s3_uri="destinationS3Uri",

            # the properties below are optional
            kms_key_id="kmsKeyId"
        ),
        enable_ssm_access=False,
        inference_ami_version="inferenceAmiVersion",
        initial_instance_count=123,
        initial_variant_weight=123,
        instance_pools=[sagemaker.CfnEndpointConfig.InstancePoolProperty(
            instance_type="instanceType",
            priority=123,

            # the properties below are optional
            model_name_override="modelNameOverride"
        )],
        instance_type="instanceType",
        managed_instance_scaling=sagemaker.CfnEndpointConfig.ManagedInstanceScalingProperty(
            max_instance_count=123,
            min_instance_count=123,
            scale_in_policy=sagemaker.CfnEndpointConfig.ScaleInPolicyProperty(
                strategy="strategy",

                # the properties below are optional
                cooldown_in_minutes=123,
                maximum_step_size=123
            ),
            status="status"
        ),
        model_data_download_timeout_in_seconds=123,
        model_name="modelName",
        routing_config=sagemaker.CfnEndpointConfig.RoutingConfigProperty(
            prefix_aware_routing_config=sagemaker.CfnEndpointConfig.PrefixAwareRoutingConfigProperty(
                concurrency_threshold=123,
                prefix_length=123
            ),
            routing_strategy="routingStrategy"
        ),
        serverless_config=sagemaker.CfnEndpointConfig.ServerlessConfigProperty(
            max_concurrency=123,
            memory_size_in_mb=123,

            # the properties below are optional
            provisioned_concurrency=123
        ),
        variant_instance_provision_timeout_in_seconds=123,
        volume_size_in_gb=123
    )],

    # the properties below are optional
    async_inference_config=sagemaker.CfnEndpointConfig.AsyncInferenceConfigProperty(
        output_config=sagemaker.CfnEndpointConfig.AsyncInferenceOutputConfigProperty(
            kms_key_id="kmsKeyId",
            notification_config=sagemaker.CfnEndpointConfig.AsyncInferenceNotificationConfigProperty(
                error_topic="errorTopic",
                include_inference_response_in=["includeInferenceResponseIn"],
                success_topic="successTopic"
            ),
            s3_failure_path="s3FailurePath",
            s3_output_path="s3OutputPath"
        ),

        # the properties below are optional
        client_config=sagemaker.CfnEndpointConfig.AsyncInferenceClientConfigProperty(
            max_concurrent_invocations_per_instance=123
        )
    ),
    data_capture_config=sagemaker.CfnEndpointConfig.DataCaptureConfigProperty(
        capture_options=[sagemaker.CfnEndpointConfig.CaptureOptionProperty(
            capture_mode="captureMode"
        )],
        destination_s3_uri="destinationS3Uri",
        initial_sampling_percentage=123,

        # the properties below are optional
        capture_content_type_header=sagemaker.CfnEndpointConfig.CaptureContentTypeHeaderProperty(
            csv_content_types=["csvContentTypes"],
            json_content_types=["jsonContentTypes"]
        ),
        enable_capture=False,
        kms_key_id="kmsKeyId"
    ),
    enable_network_isolation=False,
    endpoint_config_name="endpointConfigName",
    execution_role_arn="executionRoleArn",
    explainer_config=sagemaker.CfnEndpointConfig.ExplainerConfigProperty(
        clarify_explainer_config=sagemaker.CfnEndpointConfig.ClarifyExplainerConfigProperty(
            shap_config=sagemaker.CfnEndpointConfig.ClarifyShapConfigProperty(
                shap_baseline_config=sagemaker.CfnEndpointConfig.ClarifyShapBaselineConfigProperty(
                    mime_type="mimeType",
                    shap_baseline="shapBaseline",
                    shap_baseline_uri="shapBaselineUri"
                ),

                # the properties below are optional
                number_of_samples=123,
                seed=123,
                text_config=sagemaker.CfnEndpointConfig.ClarifyTextConfigProperty(
                    granularity="granularity",
                    language="language"
                ),
                use_logit=False
            ),

            # the properties below are optional
            enable_explanations="enableExplanations",
            inference_config=sagemaker.CfnEndpointConfig.ClarifyInferenceConfigProperty(
                content_template="contentTemplate",
                feature_headers=["featureHeaders"],
                features_attribute="featuresAttribute",
                feature_types=["featureTypes"],
                label_attribute="labelAttribute",
                label_headers=["labelHeaders"],
                label_index=123,
                max_payload_in_mb=123,
                max_record_count=123,
                probability_attribute="probabilityAttribute",
                probability_index=123
            )
        )
    ),
    kms_key_id="kmsKeyId",
    metrics_config=sagemaker.CfnEndpointConfig.MetricsConfigProperty(
        enable_detailed_observability=False,
        enable_enhanced_metrics=False,
        metric_publish_frequency_in_seconds=123
    ),
    shadow_production_variants=[sagemaker.CfnEndpointConfig.ProductionVariantProperty(
        variant_name="variantName",

        # the properties below are optional
        accelerator_type="acceleratorType",
        capacity_reservation_config=sagemaker.CfnEndpointConfig.CapacityReservationConfigProperty(
            capacity_reservation_preference="capacityReservationPreference",
            ml_reservation_arn="mlReservationArn"
        ),
        container_startup_health_check_timeout_in_seconds=123,
        core_dump_config=sagemaker.CfnEndpointConfig.CoreDumpConfigProperty(
            destination_s3_uri="destinationS3Uri",

            # the properties below are optional
            kms_key_id="kmsKeyId"
        ),
        enable_ssm_access=False,
        inference_ami_version="inferenceAmiVersion",
        initial_instance_count=123,
        initial_variant_weight=123,
        instance_pools=[sagemaker.CfnEndpointConfig.InstancePoolProperty(
            instance_type="instanceType",
            priority=123,

            # the properties below are optional
            model_name_override="modelNameOverride"
        )],
        instance_type="instanceType",
        managed_instance_scaling=sagemaker.CfnEndpointConfig.ManagedInstanceScalingProperty(
            max_instance_count=123,
            min_instance_count=123,
            scale_in_policy=sagemaker.CfnEndpointConfig.ScaleInPolicyProperty(
                strategy="strategy",

                # the properties below are optional
                cooldown_in_minutes=123,
                maximum_step_size=123
            ),
            status="status"
        ),
        model_data_download_timeout_in_seconds=123,
        model_name="modelName",
        routing_config=sagemaker.CfnEndpointConfig.RoutingConfigProperty(
            prefix_aware_routing_config=sagemaker.CfnEndpointConfig.PrefixAwareRoutingConfigProperty(
                concurrency_threshold=123,
                prefix_length=123
            ),
            routing_strategy="routingStrategy"
        ),
        serverless_config=sagemaker.CfnEndpointConfig.ServerlessConfigProperty(
            max_concurrency=123,
            memory_size_in_mb=123,

            # the properties below are optional
            provisioned_concurrency=123
        ),
        variant_instance_provision_timeout_in_seconds=123,
        volume_size_in_gb=123
    )],
    tags=[CfnTag(
        key="key",
        value="value"
    )],
    vpc_config=sagemaker.CfnEndpointConfig.VpcConfigProperty(
        security_group_ids=["securityGroupIds"],
        subnets=["subnets"]
    )
)
java
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.sagemaker.*;

CfnEndpointConfigProps cfnEndpointConfigProps = CfnEndpointConfigProps.builder()
        .productionVariants(List.of(ProductionVariantProperty.builder()
                .variantName("variantName")

                // the properties below are optional
                .acceleratorType("acceleratorType")
                .capacityReservationConfig(CapacityReservationConfigProperty.builder()
                        .capacityReservationPreference("capacityReservationPreference")
                        .mlReservationArn("mlReservationArn")
                        .build())
                .containerStartupHealthCheckTimeoutInSeconds(123)
                .coreDumpConfig(CoreDumpConfigProperty.builder()
                        .destinationS3Uri("destinationS3Uri")

                        // the properties below are optional
                        .kmsKeyId("kmsKeyId")
                        .build())
                .enableSsmAccess(false)
                .inferenceAmiVersion("inferenceAmiVersion")
                .initialInstanceCount(123)
                .initialVariantWeight(123)
                .instancePools(List.of(InstancePoolProperty.builder()
                        .instanceType("instanceType")
                        .priority(123)

                        // the properties below are optional
                        .modelNameOverride("modelNameOverride")
                        .build()))
                .instanceType("instanceType")
                .managedInstanceScaling(ManagedInstanceScalingProperty.builder()
                        .maxInstanceCount(123)
                        .minInstanceCount(123)
                        .scaleInPolicy(ScaleInPolicyProperty.builder()
                                .strategy("strategy")

                                // the properties below are optional
                                .cooldownInMinutes(123)
                                .maximumStepSize(123)
                                .build())
                        .status("status")
                        .build())
                .modelDataDownloadTimeoutInSeconds(123)
                .modelName("modelName")
                .routingConfig(RoutingConfigProperty.builder()
                        .prefixAwareRoutingConfig(PrefixAwareRoutingConfigProperty.builder()
                                .concurrencyThreshold(123)
                                .prefixLength(123)
                                .build())
                        .routingStrategy("routingStrategy")
                        .build())
                .serverlessConfig(ServerlessConfigProperty.builder()
                        .maxConcurrency(123)
                        .memorySizeInMb(123)

                        // the properties below are optional
                        .provisionedConcurrency(123)
                        .build())
                .variantInstanceProvisionTimeoutInSeconds(123)
                .volumeSizeInGb(123)
                .build()))

        // the properties below are optional
        .asyncInferenceConfig(AsyncInferenceConfigProperty.builder()
                .outputConfig(AsyncInferenceOutputConfigProperty.builder()
                        .kmsKeyId("kmsKeyId")
                        .notificationConfig(AsyncInferenceNotificationConfigProperty.builder()
                                .errorTopic("errorTopic")
                                .includeInferenceResponseIn(List.of("includeInferenceResponseIn"))
                                .successTopic("successTopic")
                                .build())
                        .s3FailurePath("s3FailurePath")
                        .s3OutputPath("s3OutputPath")
                        .build())

                // the properties below are optional
                .clientConfig(AsyncInferenceClientConfigProperty.builder()
                        .maxConcurrentInvocationsPerInstance(123)
                        .build())
                .build())
        .dataCaptureConfig(DataCaptureConfigProperty.builder()
                .captureOptions(List.of(CaptureOptionProperty.builder()
                        .captureMode("captureMode")
                        .build()))
                .destinationS3Uri("destinationS3Uri")
                .initialSamplingPercentage(123)

                // the properties below are optional
                .captureContentTypeHeader(CaptureContentTypeHeaderProperty.builder()
                        .csvContentTypes(List.of("csvContentTypes"))
                        .jsonContentTypes(List.of("jsonContentTypes"))
                        .build())
                .enableCapture(false)
                .kmsKeyId("kmsKeyId")
                .build())
        .enableNetworkIsolation(false)
        .endpointConfigName("endpointConfigName")
        .executionRoleArn("executionRoleArn")
        .explainerConfig(ExplainerConfigProperty.builder()
                .clarifyExplainerConfig(ClarifyExplainerConfigProperty.builder()
                        .shapConfig(ClarifyShapConfigProperty.builder()
                                .shapBaselineConfig(ClarifyShapBaselineConfigProperty.builder()
                                        .mimeType("mimeType")
                                        .shapBaseline("shapBaseline")
                                        .shapBaselineUri("shapBaselineUri")
                                        .build())

                                // the properties below are optional
                                .numberOfSamples(123)
                                .seed(123)
                                .textConfig(ClarifyTextConfigProperty.builder()
                                        .granularity("granularity")
                                        .language("language")
                                        .build())
                                .useLogit(false)
                                .build())

                        // the properties below are optional
                        .enableExplanations("enableExplanations")
                        .inferenceConfig(ClarifyInferenceConfigProperty.builder()
                                .contentTemplate("contentTemplate")
                                .featureHeaders(List.of("featureHeaders"))
                                .featuresAttribute("featuresAttribute")
                                .featureTypes(List.of("featureTypes"))
                                .labelAttribute("labelAttribute")
                                .labelHeaders(List.of("labelHeaders"))
                                .labelIndex(123)
                                .maxPayloadInMb(123)
                                .maxRecordCount(123)
                                .probabilityAttribute("probabilityAttribute")
                                .probabilityIndex(123)
                                .build())
                        .build())
                .build())
        .kmsKeyId("kmsKeyId")
        .metricsConfig(MetricsConfigProperty.builder()
                .enableDetailedObservability(false)
                .enableEnhancedMetrics(false)
                .metricPublishFrequencyInSeconds(123)
                .build())
        .shadowProductionVariants(List.of(ProductionVariantProperty.builder()
                .variantName("variantName")

                // the properties below are optional
                .acceleratorType("acceleratorType")
                .capacityReservationConfig(CapacityReservationConfigProperty.builder()
                        .capacityReservationPreference("capacityReservationPreference")
                        .mlReservationArn("mlReservationArn")
                        .build())
                .containerStartupHealthCheckTimeoutInSeconds(123)
                .coreDumpConfig(CoreDumpConfigProperty.builder()
                        .destinationS3Uri("destinationS3Uri")

                        // the properties below are optional
                        .kmsKeyId("kmsKeyId")
                        .build())
                .enableSsmAccess(false)
                .inferenceAmiVersion("inferenceAmiVersion")
                .initialInstanceCount(123)
                .initialVariantWeight(123)
                .instancePools(List.of(InstancePoolProperty.builder()
                        .instanceType("instanceType")
                        .priority(123)

                        // the properties below are optional
                        .modelNameOverride("modelNameOverride")
                        .build()))
                .instanceType("instanceType")
                .managedInstanceScaling(ManagedInstanceScalingProperty.builder()
                        .maxInstanceCount(123)
                        .minInstanceCount(123)
                        .scaleInPolicy(ScaleInPolicyProperty.builder()
                                .strategy("strategy")

                                // the properties below are optional
                                .cooldownInMinutes(123)
                                .maximumStepSize(123)
                                .build())
                        .status("status")
                        .build())
                .modelDataDownloadTimeoutInSeconds(123)
                .modelName("modelName")
                .routingConfig(RoutingConfigProperty.builder()
                        .prefixAwareRoutingConfig(PrefixAwareRoutingConfigProperty.builder()
                                .concurrencyThreshold(123)
                                .prefixLength(123)
                                .build())
                        .routingStrategy("routingStrategy")
                        .build())
                .serverlessConfig(ServerlessConfigProperty.builder()
                        .maxConcurrency(123)
                        .memorySizeInMb(123)

                        // the properties below are optional
                        .provisionedConcurrency(123)
                        .build())
                .variantInstanceProvisionTimeoutInSeconds(123)
                .volumeSizeInGb(123)
                .build()))
        .tags(List.of(CfnTag.builder()
                .key("key")
                .value("value")
                .build()))
        .vpcConfig(VpcConfigProperty.builder()
                .securityGroupIds(List.of("securityGroupIds"))
                .subnets(List.of("subnets"))
                .build())
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.AWS.Sagemaker;

var cfnEndpointConfigProps = new CfnEndpointConfigProps {
    ProductionVariants = new [] { new ProductionVariantProperty {
        VariantName = "variantName",

        // the properties below are optional
        AcceleratorType = "acceleratorType",
        CapacityReservationConfig = new CapacityReservationConfigProperty {
            CapacityReservationPreference = "capacityReservationPreference",
            MlReservationArn = "mlReservationArn"
        },
        ContainerStartupHealthCheckTimeoutInSeconds = 123,
        CoreDumpConfig = new CoreDumpConfigProperty {
            DestinationS3Uri = "destinationS3Uri",

            // the properties below are optional
            KmsKeyId = "kmsKeyId"
        },
        EnableSsmAccess = false,
        InferenceAmiVersion = "inferenceAmiVersion",
        InitialInstanceCount = 123,
        InitialVariantWeight = 123,
        InstancePools = new [] { new InstancePoolProperty {
            InstanceType = "instanceType",
            Priority = 123,

            // the properties below are optional
            ModelNameOverride = "modelNameOverride"
        } },
        InstanceType = "instanceType",
        ManagedInstanceScaling = new ManagedInstanceScalingProperty {
            MaxInstanceCount = 123,
            MinInstanceCount = 123,
            ScaleInPolicy = new ScaleInPolicyProperty {
                Strategy = "strategy",

                // the properties below are optional
                CooldownInMinutes = 123,
                MaximumStepSize = 123
            },
            Status = "status"
        },
        ModelDataDownloadTimeoutInSeconds = 123,
        ModelName = "modelName",
        RoutingConfig = new RoutingConfigProperty {
            PrefixAwareRoutingConfig = new PrefixAwareRoutingConfigProperty {
                ConcurrencyThreshold = 123,
                PrefixLength = 123
            },
            RoutingStrategy = "routingStrategy"
        },
        ServerlessConfig = new ServerlessConfigProperty {
            MaxConcurrency = 123,
            MemorySizeInMb = 123,

            // the properties below are optional
            ProvisionedConcurrency = 123
        },
        VariantInstanceProvisionTimeoutInSeconds = 123,
        VolumeSizeInGb = 123
    } },

    // the properties below are optional
    AsyncInferenceConfig = new AsyncInferenceConfigProperty {
        OutputConfig = new AsyncInferenceOutputConfigProperty {
            KmsKeyId = "kmsKeyId",
            NotificationConfig = new AsyncInferenceNotificationConfigProperty {
                ErrorTopic = "errorTopic",
                IncludeInferenceResponseIn = new [] { "includeInferenceResponseIn" },
                SuccessTopic = "successTopic"
            },
            S3FailurePath = "s3FailurePath",
            S3OutputPath = "s3OutputPath"
        },

        // the properties below are optional
        ClientConfig = new AsyncInferenceClientConfigProperty {
            MaxConcurrentInvocationsPerInstance = 123
        }
    },
    DataCaptureConfig = new DataCaptureConfigProperty {
        CaptureOptions = new [] { new CaptureOptionProperty {
            CaptureMode = "captureMode"
        } },
        DestinationS3Uri = "destinationS3Uri",
        InitialSamplingPercentage = 123,

        // the properties below are optional
        CaptureContentTypeHeader = new CaptureContentTypeHeaderProperty {
            CsvContentTypes = new [] { "csvContentTypes" },
            JsonContentTypes = new [] { "jsonContentTypes" }
        },
        EnableCapture = false,
        KmsKeyId = "kmsKeyId"
    },
    EnableNetworkIsolation = false,
    EndpointConfigName = "endpointConfigName",
    ExecutionRoleArn = "executionRoleArn",
    ExplainerConfig = new ExplainerConfigProperty {
        ClarifyExplainerConfig = new ClarifyExplainerConfigProperty {
            ShapConfig = new ClarifyShapConfigProperty {
                ShapBaselineConfig = new ClarifyShapBaselineConfigProperty {
                    MimeType = "mimeType",
                    ShapBaseline = "shapBaseline",
                    ShapBaselineUri = "shapBaselineUri"
                },

                // the properties below are optional
                NumberOfSamples = 123,
                Seed = 123,
                TextConfig = new ClarifyTextConfigProperty {
                    Granularity = "granularity",
                    Language = "language"
                },
                UseLogit = false
            },

            // the properties below are optional
            EnableExplanations = "enableExplanations",
            InferenceConfig = new ClarifyInferenceConfigProperty {
                ContentTemplate = "contentTemplate",
                FeatureHeaders = new [] { "featureHeaders" },
                FeaturesAttribute = "featuresAttribute",
                FeatureTypes = new [] { "featureTypes" },
                LabelAttribute = "labelAttribute",
                LabelHeaders = new [] { "labelHeaders" },
                LabelIndex = 123,
                MaxPayloadInMb = 123,
                MaxRecordCount = 123,
                ProbabilityAttribute = "probabilityAttribute",
                ProbabilityIndex = 123
            }
        }
    },
    KmsKeyId = "kmsKeyId",
    MetricsConfig = new MetricsConfigProperty {
        EnableDetailedObservability = false,
        EnableEnhancedMetrics = false,
        MetricPublishFrequencyInSeconds = 123
    },
    ShadowProductionVariants = new [] { new ProductionVariantProperty {
        VariantName = "variantName",

        // the properties below are optional
        AcceleratorType = "acceleratorType",
        CapacityReservationConfig = new CapacityReservationConfigProperty {
            CapacityReservationPreference = "capacityReservationPreference",
            MlReservationArn = "mlReservationArn"
        },
        ContainerStartupHealthCheckTimeoutInSeconds = 123,
        CoreDumpConfig = new CoreDumpConfigProperty {
            DestinationS3Uri = "destinationS3Uri",

            // the properties below are optional
            KmsKeyId = "kmsKeyId"
        },
        EnableSsmAccess = false,
        InferenceAmiVersion = "inferenceAmiVersion",
        InitialInstanceCount = 123,
        InitialVariantWeight = 123,
        InstancePools = new [] { new InstancePoolProperty {
            InstanceType = "instanceType",
            Priority = 123,

            // the properties below are optional
            ModelNameOverride = "modelNameOverride"
        } },
        InstanceType = "instanceType",
        ManagedInstanceScaling = new ManagedInstanceScalingProperty {
            MaxInstanceCount = 123,
            MinInstanceCount = 123,
            ScaleInPolicy = new ScaleInPolicyProperty {
                Strategy = "strategy",

                // the properties below are optional
                CooldownInMinutes = 123,
                MaximumStepSize = 123
            },
            Status = "status"
        },
        ModelDataDownloadTimeoutInSeconds = 123,
        ModelName = "modelName",
        RoutingConfig = new RoutingConfigProperty {
            PrefixAwareRoutingConfig = new PrefixAwareRoutingConfigProperty {
                ConcurrencyThreshold = 123,
                PrefixLength = 123
            },
            RoutingStrategy = "routingStrategy"
        },
        ServerlessConfig = new ServerlessConfigProperty {
            MaxConcurrency = 123,
            MemorySizeInMb = 123,

            // the properties below are optional
            ProvisionedConcurrency = 123
        },
        VariantInstanceProvisionTimeoutInSeconds = 123,
        VolumeSizeInGb = 123
    } },
    Tags = new [] { new CfnTag {
        Key = "key",
        Value = "value"
    } },
    VpcConfig = new VpcConfigProperty {
        SecurityGroupIds = new [] { "securityGroupIds" },
        Subnets = new [] { "subnets" }
    }
};
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEndpointConfigProps := &CfnEndpointConfigProps{
	ProductionVariants: []interface{}{
		&ProductionVariantProperty{
			VariantName: jsii.String("variantName"),

			// the properties below are optional
			AcceleratorType: jsii.String("acceleratorType"),
			CapacityReservationConfig: &CapacityReservationConfigProperty{
				CapacityReservationPreference: jsii.String("capacityReservationPreference"),
				MlReservationArn: jsii.String("mlReservationArn"),
			},
			ContainerStartupHealthCheckTimeoutInSeconds: jsii.Number(123),
			CoreDumpConfig: &CoreDumpConfigProperty{
				DestinationS3Uri: jsii.String("destinationS3Uri"),

				// the properties below are optional
				KmsKeyId: jsii.String("kmsKeyId"),
			},
			EnableSsmAccess: jsii.Boolean(false),
			InferenceAmiVersion: jsii.String("inferenceAmiVersion"),
			InitialInstanceCount: jsii.Number(123),
			InitialVariantWeight: jsii.Number(123),
			InstancePools: []interface{}{
				&InstancePoolProperty{
					InstanceType: jsii.String("instanceType"),
					Priority: jsii.Number(123),

					// the properties below are optional
					ModelNameOverride: jsii.String("modelNameOverride"),
				},
			},
			InstanceType: jsii.String("instanceType"),
			ManagedInstanceScaling: &ManagedInstanceScalingProperty{
				MaxInstanceCount: jsii.Number(123),
				MinInstanceCount: jsii.Number(123),
				ScaleInPolicy: &ScaleInPolicyProperty{
					Strategy: jsii.String("strategy"),

					// the properties below are optional
					CooldownInMinutes: jsii.Number(123),
					MaximumStepSize: jsii.Number(123),
				},
				Status: jsii.String("status"),
			},
			ModelDataDownloadTimeoutInSeconds: jsii.Number(123),
			ModelName: jsii.String("modelName"),
			RoutingConfig: &RoutingConfigProperty{
				PrefixAwareRoutingConfig: &PrefixAwareRoutingConfigProperty{
					ConcurrencyThreshold: jsii.Number(123),
					PrefixLength: jsii.Number(123),
				},
				RoutingStrategy: jsii.String("routingStrategy"),
			},
			ServerlessConfig: &ServerlessConfigProperty{
				MaxConcurrency: jsii.Number(123),
				MemorySizeInMb: jsii.Number(123),

				// the properties below are optional
				ProvisionedConcurrency: jsii.Number(123),
			},
			VariantInstanceProvisionTimeoutInSeconds: jsii.Number(123),
			VolumeSizeInGb: jsii.Number(123),
		},
	},

	// the properties below are optional
	AsyncInferenceConfig: &AsyncInferenceConfigProperty{
		OutputConfig: &AsyncInferenceOutputConfigProperty{
			KmsKeyId: jsii.String("kmsKeyId"),
			NotificationConfig: &AsyncInferenceNotificationConfigProperty{
				ErrorTopic: jsii.String("errorTopic"),
				IncludeInferenceResponseIn: []*string{
					jsii.String("includeInferenceResponseIn"),
				},
				SuccessTopic: jsii.String("successTopic"),
			},
			S3FailurePath: jsii.String("s3FailurePath"),
			S3OutputPath: jsii.String("s3OutputPath"),
		},

		// the properties below are optional
		ClientConfig: &AsyncInferenceClientConfigProperty{
			MaxConcurrentInvocationsPerInstance: jsii.Number(123),
		},
	},
	DataCaptureConfig: &DataCaptureConfigProperty{
		CaptureOptions: []interface{}{
			&CaptureOptionProperty{
				CaptureMode: jsii.String("captureMode"),
			},
		},
		DestinationS3Uri: jsii.String("destinationS3Uri"),
		InitialSamplingPercentage: jsii.Number(123),

		// the properties below are optional
		CaptureContentTypeHeader: &CaptureContentTypeHeaderProperty{
			CsvContentTypes: []*string{
				jsii.String("csvContentTypes"),
			},
			JsonContentTypes: []*string{
				jsii.String("jsonContentTypes"),
			},
		},
		EnableCapture: jsii.Boolean(false),
		KmsKeyId: jsii.String("kmsKeyId"),
	},
	EnableNetworkIsolation: jsii.Boolean(false),
	EndpointConfigName: jsii.String("endpointConfigName"),
	ExecutionRoleArn: jsii.String("executionRoleArn"),
	ExplainerConfig: &ExplainerConfigProperty{
		ClarifyExplainerConfig: &ClarifyExplainerConfigProperty{
			ShapConfig: &ClarifyShapConfigProperty{
				ShapBaselineConfig: &ClarifyShapBaselineConfigProperty{
					MimeType: jsii.String("mimeType"),
					ShapBaseline: jsii.String("shapBaseline"),
					ShapBaselineUri: jsii.String("shapBaselineUri"),
				},

				// the properties below are optional
				NumberOfSamples: jsii.Number(123),
				Seed: jsii.Number(123),
				TextConfig: &ClarifyTextConfigProperty{
					Granularity: jsii.String("granularity"),
					Language: jsii.String("language"),
				},
				UseLogit: jsii.Boolean(false),
			},

			// the properties below are optional
			EnableExplanations: jsii.String("enableExplanations"),
			InferenceConfig: &ClarifyInferenceConfigProperty{
				ContentTemplate: jsii.String("contentTemplate"),
				FeatureHeaders: []*string{
					jsii.String("featureHeaders"),
				},
				FeaturesAttribute: jsii.String("featuresAttribute"),
				FeatureTypes: []*string{
					jsii.String("featureTypes"),
				},
				LabelAttribute: jsii.String("labelAttribute"),
				LabelHeaders: []*string{
					jsii.String("labelHeaders"),
				},
				LabelIndex: jsii.Number(123),
				MaxPayloadInMb: jsii.Number(123),
				MaxRecordCount: jsii.Number(123),
				ProbabilityAttribute: jsii.String("probabilityAttribute"),
				ProbabilityIndex: jsii.Number(123),
			},
		},
	},
	KmsKeyId: jsii.String("kmsKeyId"),
	MetricsConfig: &MetricsConfigProperty{
		EnableDetailedObservability: jsii.Boolean(false),
		EnableEnhancedMetrics: jsii.Boolean(false),
		MetricPublishFrequencyInSeconds: jsii.Number(123),
	},
	ShadowProductionVariants: []interface{}{
		&ProductionVariantProperty{
			VariantName: jsii.String("variantName"),

			// the properties below are optional
			AcceleratorType: jsii.String("acceleratorType"),
			CapacityReservationConfig: &CapacityReservationConfigProperty{
				CapacityReservationPreference: jsii.String("capacityReservationPreference"),
				MlReservationArn: jsii.String("mlReservationArn"),
			},
			ContainerStartupHealthCheckTimeoutInSeconds: jsii.Number(123),
			CoreDumpConfig: &CoreDumpConfigProperty{
				DestinationS3Uri: jsii.String("destinationS3Uri"),

				// the properties below are optional
				KmsKeyId: jsii.String("kmsKeyId"),
			},
			EnableSsmAccess: jsii.Boolean(false),
			InferenceAmiVersion: jsii.String("inferenceAmiVersion"),
			InitialInstanceCount: jsii.Number(123),
			InitialVariantWeight: jsii.Number(123),
			InstancePools: []interface{}{
				&InstancePoolProperty{
					InstanceType: jsii.String("instanceType"),
					Priority: jsii.Number(123),

					// the properties below are optional
					ModelNameOverride: jsii.String("modelNameOverride"),
				},
			},
			InstanceType: jsii.String("instanceType"),
			ManagedInstanceScaling: &ManagedInstanceScalingProperty{
				MaxInstanceCount: jsii.Number(123),
				MinInstanceCount: jsii.Number(123),
				ScaleInPolicy: &ScaleInPolicyProperty{
					Strategy: jsii.String("strategy"),

					// the properties below are optional
					CooldownInMinutes: jsii.Number(123),
					MaximumStepSize: jsii.Number(123),
				},
				Status: jsii.String("status"),
			},
			ModelDataDownloadTimeoutInSeconds: jsii.Number(123),
			ModelName: jsii.String("modelName"),
			RoutingConfig: &RoutingConfigProperty{
				PrefixAwareRoutingConfig: &PrefixAwareRoutingConfigProperty{
					ConcurrencyThreshold: jsii.Number(123),
					PrefixLength: jsii.Number(123),
				},
				RoutingStrategy: jsii.String("routingStrategy"),
			},
			ServerlessConfig: &ServerlessConfigProperty{
				MaxConcurrency: jsii.Number(123),
				MemorySizeInMb: jsii.Number(123),

				// the properties below are optional
				ProvisionedConcurrency: jsii.Number(123),
			},
			VariantInstanceProvisionTimeoutInSeconds: jsii.Number(123),
			VolumeSizeInGb: jsii.Number(123),
		},
	},
	Tags: []CfnTag{
		&CfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
	VpcConfig: &VpcConfigProperty{
		SecurityGroupIds: []*string{
			jsii.String("securityGroupIds"),
		},
		Subnets: []*string{
			jsii.String("subnets"),
		},
	},
}

Properties ​

asyncInferenceConfigoptionalIResolvable | CfnEndpointConfig.AsyncInferenceConfigPropertyasync_inference_configoptionaltyping.Union[IResolvable, AsyncInferenceConfigProperty]asyncInferenceConfigoptionalIResolvableAsyncInferenceConfigoptionalIResolvableAsyncInferenceConfigoptionalinterface{}#
Specifies configuration for how an endpoint performs asynchronous inference.
dataCaptureConfigoptionalIResolvable | CfnEndpointConfig.DataCaptureConfigPropertydata_capture_configoptionaltyping.Union[IResolvable, DataCaptureConfigProperty]dataCaptureConfigoptionalIResolvableDataCaptureConfigoptionalIResolvableDataCaptureConfigoptionalinterface{}#
Specifies how to capture endpoint data for model monitor.

The data capture configuration applies to all production variants hosted at the endpoint.

enableNetworkIsolationoptionalboolean | IResolvableenable_network_isolationoptionaltyping.Union[bool, IResolvable]enableNetworkIsolationoptionalBooleanEnableNetworkIsolationoptionalboolEnableNetworkIsolationoptionalinterface{}#
Sets whether all model containers deployed to the endpoint are isolated.

If they are, no inbound or outbound network calls can be made to or from the model containers.

endpointConfigNameoptionalstringendpoint_config_nameoptionalstrendpointConfigNameoptionalStringEndpointConfigNameoptionalstringEndpointConfigNameoptional*string#
The name of the endpoint configuration.
executionRoleArnoptionalstringexecution_role_arnoptionalstrexecutionRoleArnoptionalStringExecutionRoleArnoptionalstringExecutionRoleArnoptional*string#
The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker AI can assume to perform actions on your behalf.
explainerConfigoptionalIResolvable | CfnEndpointConfig.ExplainerConfigPropertyexplainer_configoptionaltyping.Union[IResolvable, ExplainerConfigProperty]explainerConfigoptionalIResolvableExplainerConfigoptionalIResolvableExplainerConfigoptionalinterface{}#
A parameter to activate explainers.
kmsKeyIdoptionalstringkms_key_idoptionalstrkmsKeyIdoptionalStringKmsKeyIdoptionalstringKmsKeyIdoptional*string#
The Amazon Resource Name (ARN) of an AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint.
notes
  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
  • Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  • Alias name: alias/ExampleAlias
  • Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

The KMS key policy must grant permission to the IAM role that you specify in your CreateEndpoint , UpdateEndpoint requests. For more information, refer to the AWS Key Management Service section Using Key Policies in AWS KMS

Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a KmsKeyId when using an instance type with local storage. If any of the models that you specify in the ProductionVariants parameter use nitro-based instances with local storage, do not specify a value for the KmsKeyId parameter. If you specify a value for KmsKeyId when using any nitro-based instances with local storage, the call to CreateEndpointConfig fails.

For a list of instance types that support local instance storage, see Instance Store Volumes .

For more information about local instance storage encryption, see SSD Instance Store Volumes .

metricsConfigoptionalIResolvable | CfnEndpointConfig.MetricsConfigPropertymetrics_configoptionaltyping.Union[IResolvable, MetricsConfigProperty]metricsConfigoptionalIResolvableMetricsConfigoptionalIResolvableMetricsConfigoptionalinterface{}#
Specifies the metrics that the endpoint publishes to Amazon CloudWatch, the frequency of publication, and whether to enable enhanced or detailed observability metrics.
productionVariantsIResolvable | IResolvable | CfnEndpointConfig.ProductionVariantProperty[]production_variantstyping.Union[IResolvable, typing.List[typing.Union[IResolvable, ProductionVariantProperty]]]productionVariantsIResolvableProductionVariantsIResolvableProductionVariantsinterface{}required#
A list of `ProductionVariant` objects, one for each model that you want to host at this endpoint.
shadowProductionVariantsoptionalIResolvable | IResolvable | CfnEndpointConfig.ProductionVariantProperty[]shadow_production_variantsoptionaltyping.Union[IResolvable, typing.List[typing.Union[IResolvable, ProductionVariantProperty]]]shadowProductionVariantsoptionalIResolvableShadowProductionVariantsoptionalIResolvableShadowProductionVariantsoptionalinterface{}#
Array of `ProductionVariant` objects.
notes

There is one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants . If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants .

tagsoptionalCfnTag[]tagsoptionaltyping.List[CfnTag]tagsoptionalList<CfnTag>TagsoptionalCfnTag[]Tagsoptional*[]CfnTag#
A list of key-value pairs to apply to this resource.
notes

For more information, see Resource Tag and Using Cost Allocation Tags .

vpcConfigoptionalIResolvable | CfnEndpointConfig.VpcConfigPropertyvpc_configoptionaltyping.Union[IResolvable, VpcConfigProperty]vpcConfigoptionalIResolvableVpcConfigoptionalIResolvableVpcConfigoptionalinterface{}#
Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to.

You can control access to and from your resources by configuring a VPC.