/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */

#pragma once
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/sagemaker/SageMaker_EXPORTS.h>

namespace Aws {
namespace SageMaker {
namespace Model {
enum class ProductionVariantInstanceType {
  NOT_SET,
  ml_t2_medium,
  ml_t2_large,
  ml_t2_xlarge,
  ml_t2_2xlarge,
  ml_m4_xlarge,
  ml_m4_2xlarge,
  ml_m4_4xlarge,
  ml_m4_10xlarge,
  ml_m4_16xlarge,
  ml_m5_large,
  ml_m5_xlarge,
  ml_m5_2xlarge,
  ml_m5_4xlarge,
  ml_m5_12xlarge,
  ml_m5_24xlarge,
  ml_m5d_large,
  ml_m5d_xlarge,
  ml_m5d_2xlarge,
  ml_m5d_4xlarge,
  ml_m5d_12xlarge,
  ml_m5d_24xlarge,
  ml_c4_large,
  ml_c4_xlarge,
  ml_c4_2xlarge,
  ml_c4_4xlarge,
  ml_c4_8xlarge,
  ml_p2_xlarge,
  ml_p2_8xlarge,
  ml_p2_16xlarge,
  ml_p3_2xlarge,
  ml_p3_8xlarge,
  ml_p3_16xlarge,
  ml_c5_large,
  ml_c5_xlarge,
  ml_c5_2xlarge,
  ml_c5_4xlarge,
  ml_c5_9xlarge,
  ml_c5_18xlarge,
  ml_c5d_large,
  ml_c5d_xlarge,
  ml_c5d_2xlarge,
  ml_c5d_4xlarge,
  ml_c5d_9xlarge,
  ml_c5d_18xlarge,
  ml_g4dn_xlarge,
  ml_g4dn_2xlarge,
  ml_g4dn_4xlarge,
  ml_g4dn_8xlarge,
  ml_g4dn_12xlarge,
  ml_g4dn_16xlarge,
  ml_r5_large,
  ml_r5_xlarge,
  ml_r5_2xlarge,
  ml_r5_4xlarge,
  ml_r5_12xlarge,
  ml_r5_24xlarge,
  ml_r5d_large,
  ml_r5d_xlarge,
  ml_r5d_2xlarge,
  ml_r5d_4xlarge,
  ml_r5d_12xlarge,
  ml_r5d_24xlarge,
  ml_inf1_xlarge,
  ml_inf1_2xlarge,
  ml_inf1_6xlarge,
  ml_inf1_24xlarge,
  ml_dl1_24xlarge,
  ml_c6i_large,
  ml_c6i_xlarge,
  ml_c6i_2xlarge,
  ml_c6i_4xlarge,
  ml_c6i_8xlarge,
  ml_c6i_12xlarge,
  ml_c6i_16xlarge,
  ml_c6i_24xlarge,
  ml_c6i_32xlarge,
  ml_m6i_large,
  ml_m6i_xlarge,
  ml_m6i_2xlarge,
  ml_m6i_4xlarge,
  ml_m6i_8xlarge,
  ml_m6i_12xlarge,
  ml_m6i_16xlarge,
  ml_m6i_24xlarge,
  ml_m6i_32xlarge,
  ml_r6i_large,
  ml_r6i_xlarge,
  ml_r6i_2xlarge,
  ml_r6i_4xlarge,
  ml_r6i_8xlarge,
  ml_r6i_12xlarge,
  ml_r6i_16xlarge,
  ml_r6i_24xlarge,
  ml_r6i_32xlarge,
  ml_g5_xlarge,
  ml_g5_2xlarge,
  ml_g5_4xlarge,
  ml_g5_8xlarge,
  ml_g5_12xlarge,
  ml_g5_16xlarge,
  ml_g5_24xlarge,
  ml_g5_48xlarge,
  ml_g6_xlarge,
  ml_g6_2xlarge,
  ml_g6_4xlarge,
  ml_g6_8xlarge,
  ml_g6_12xlarge,
  ml_g6_16xlarge,
  ml_g6_24xlarge,
  ml_g6_48xlarge,
  ml_r8g_medium,
  ml_r8g_large,
  ml_r8g_xlarge,
  ml_r8g_2xlarge,
  ml_r8g_4xlarge,
  ml_r8g_8xlarge,
  ml_r8g_12xlarge,
  ml_r8g_16xlarge,
  ml_r8g_24xlarge,
  ml_r8g_48xlarge,
  ml_g6e_xlarge,
  ml_g6e_2xlarge,
  ml_g6e_4xlarge,
  ml_g6e_8xlarge,
  ml_g6e_12xlarge,
  ml_g6e_16xlarge,
  ml_g6e_24xlarge,
  ml_g6e_48xlarge,
  ml_p4d_24xlarge,
  ml_c7g_large,
  ml_c7g_xlarge,
  ml_c7g_2xlarge,
  ml_c7g_4xlarge,
  ml_c7g_8xlarge,
  ml_c7g_12xlarge,
  ml_c7g_16xlarge,
  ml_m6g_large,
  ml_m6g_xlarge,
  ml_m6g_2xlarge,
  ml_m6g_4xlarge,
  ml_m6g_8xlarge,
  ml_m6g_12xlarge,
  ml_m6g_16xlarge,
  ml_m6gd_large,
  ml_m6gd_xlarge,
  ml_m6gd_2xlarge,
  ml_m6gd_4xlarge,
  ml_m6gd_8xlarge,
  ml_m6gd_12xlarge,
  ml_m6gd_16xlarge,
  ml_c6g_large,
  ml_c6g_xlarge,
  ml_c6g_2xlarge,
  ml_c6g_4xlarge,
  ml_c6g_8xlarge,
  ml_c6g_12xlarge,
  ml_c6g_16xlarge,
  ml_c6gd_large,
  ml_c6gd_xlarge,
  ml_c6gd_2xlarge,
  ml_c6gd_4xlarge,
  ml_c6gd_8xlarge,
  ml_c6gd_12xlarge,
  ml_c6gd_16xlarge,
  ml_c6gn_large,
  ml_c6gn_xlarge,
  ml_c6gn_2xlarge,
  ml_c6gn_4xlarge,
  ml_c6gn_8xlarge,
  ml_c6gn_12xlarge,
  ml_c6gn_16xlarge,
  ml_r6g_large,
  ml_r6g_xlarge,
  ml_r6g_2xlarge,
  ml_r6g_4xlarge,
  ml_r6g_8xlarge,
  ml_r6g_12xlarge,
  ml_r6g_16xlarge,
  ml_r6gd_large,
  ml_r6gd_xlarge,
  ml_r6gd_2xlarge,
  ml_r6gd_4xlarge,
  ml_r6gd_8xlarge,
  ml_r6gd_12xlarge,
  ml_r6gd_16xlarge,
  ml_p4de_24xlarge,
  ml_trn1_2xlarge,
  ml_trn1_32xlarge,
  ml_trn1n_32xlarge,
  ml_trn2_48xlarge,
  ml_inf2_xlarge,
  ml_inf2_8xlarge,
  ml_inf2_24xlarge,
  ml_inf2_48xlarge,
  ml_p5_48xlarge,
  ml_p5e_48xlarge,
  ml_p5en_48xlarge,
  ml_m7i_large,
  ml_m7i_xlarge,
  ml_m7i_2xlarge,
  ml_m7i_4xlarge,
  ml_m7i_8xlarge,
  ml_m7i_12xlarge,
  ml_m7i_16xlarge,
  ml_m7i_24xlarge,
  ml_m7i_48xlarge,
  ml_c7i_large,
  ml_c7i_xlarge,
  ml_c7i_2xlarge,
  ml_c7i_4xlarge,
  ml_c7i_8xlarge,
  ml_c7i_12xlarge,
  ml_c7i_16xlarge,
  ml_c7i_24xlarge,
  ml_c7i_48xlarge,
  ml_r7i_large,
  ml_r7i_xlarge,
  ml_r7i_2xlarge,
  ml_r7i_4xlarge,
  ml_r7i_8xlarge,
  ml_r7i_12xlarge,
  ml_r7i_16xlarge,
  ml_r7i_24xlarge,
  ml_r7i_48xlarge,
  ml_c8g_medium,
  ml_c8g_large,
  ml_c8g_xlarge,
  ml_c8g_2xlarge,
  ml_c8g_4xlarge,
  ml_c8g_8xlarge,
  ml_c8g_12xlarge,
  ml_c8g_16xlarge,
  ml_c8g_24xlarge,
  ml_c8g_48xlarge,
  ml_r7gd_medium,
  ml_r7gd_large,
  ml_r7gd_xlarge,
  ml_r7gd_2xlarge,
  ml_r7gd_4xlarge,
  ml_r7gd_8xlarge,
  ml_r7gd_12xlarge,
  ml_r7gd_16xlarge,
  ml_m8g_medium,
  ml_m8g_large,
  ml_m8g_xlarge,
  ml_m8g_2xlarge,
  ml_m8g_4xlarge,
  ml_m8g_8xlarge,
  ml_m8g_12xlarge,
  ml_m8g_16xlarge,
  ml_m8g_24xlarge,
  ml_m8g_48xlarge,
  ml_c6in_large,
  ml_c6in_xlarge,
  ml_c6in_2xlarge,
  ml_c6in_4xlarge,
  ml_c6in_8xlarge,
  ml_c6in_12xlarge,
  ml_c6in_16xlarge,
  ml_c6in_24xlarge,
  ml_c6in_32xlarge,
  ml_p6_b200_48xlarge,
  ml_p6e_gb200_36xlarge,
  ml_p5_4xlarge
};

namespace ProductionVariantInstanceTypeMapper {
AWS_SAGEMAKER_API ProductionVariantInstanceType GetProductionVariantInstanceTypeForName(const Aws::String& name);

AWS_SAGEMAKER_API Aws::String GetNameForProductionVariantInstanceType(ProductionVariantInstanceType value);
}  // namespace ProductionVariantInstanceTypeMapper
}  // namespace Model
}  // namespace SageMaker
}  // namespace Aws
