import * as core from "@terrascript/core"; export interface CaptureOptionsArgs extends core.SchemaArgs { captureMode: string | core.StringOut; } export class CaptureOptions extends core.Schema { @core.attr(String) public captureMode!: string | core.StringOut; } export interface CaptureContentTypeHeaderArgs extends core.SchemaArgs { csvContentTypes?: core.Array | core.ArrayOut; jsonContentTypes?: core.Array | core.ArrayOut; } export class CaptureContentTypeHeader extends core.Schema { @core.attr(String, { kind: "array" }) public csvContentTypes?: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public jsonContentTypes?: core.Array | core.ArrayOut; } export interface DataCaptureConfigArgs extends core.SchemaArgs { captureContentTypeHeader?: CaptureContentTypeHeader; captureOptions: core.Array | core.ArrayOut; destinationS3Uri: string | core.StringOut; enableCapture?: boolean | core.BooleanOut; initialSamplingPercentage: number | core.NumberOut; kmsKeyId?: string | core.StringOut; } export class DataCaptureConfig extends core.Schema { @core.attr(CaptureContentTypeHeader) public captureContentTypeHeader?: CaptureContentTypeHeader; @core.attr(CaptureOptions, { kind: "array" }) public captureOptions!: | core.Array | core.ArrayOut; @core.attr(String) public destinationS3Uri!: string | core.StringOut; @core.attr(Boolean) public enableCapture?: boolean | core.BooleanOut; @core.attr(Number) public initialSamplingPercentage!: number | core.NumberOut; @core.attr(String) public kmsKeyId?: string | core.StringOut; } export interface ServerlessConfigArgs extends core.SchemaArgs { maxConcurrency: number | core.NumberOut; memorySizeInMb: number | core.NumberOut; } export class ServerlessConfig extends core.Schema { @core.attr(Number) public maxConcurrency!: number | core.NumberOut; @core.attr(Number) public memorySizeInMb!: number | core.NumberOut; } export interface ProductionVariantsArgs extends core.SchemaArgs { acceleratorType?: string | core.StringOut; initialInstanceCount?: number | core.NumberOut; initialVariantWeight?: number | core.NumberOut; instanceType?: string | core.StringOut; modelName: string | core.StringOut; serverlessConfig?: ServerlessConfig; variantName?: string | core.StringOut; } export class ProductionVariants extends core.Schema { @core.attr(String) public acceleratorType?: string | core.StringOut; @core.attr(Number) public initialInstanceCount?: number | core.NumberOut; @core.attr(Number) public initialVariantWeight?: number | core.NumberOut; @core.attr(String) public instanceType?: string | core.StringOut; @core.attr(String) public modelName!: string | core.StringOut; @core.attr(ServerlessConfig) public serverlessConfig?: ServerlessConfig; @core.attr(String, { computed: true }) public variantName?: string | core.StringOut; } export interface NotificationConfigArgs extends core.SchemaArgs { errorTopic?: string | core.StringOut; successTopic?: string | core.StringOut; } export class NotificationConfig extends core.Schema { @core.attr(String) public errorTopic?: string | core.StringOut; @core.attr(String) public successTopic?: string | core.StringOut; } export interface OutputConfigArgs extends core.SchemaArgs { kmsKeyId?: string | core.StringOut; notificationConfig?: NotificationConfig; s3OutputPath: string | core.StringOut; } export class OutputConfig extends core.Schema { @core.attr(String) public kmsKeyId?: string | core.StringOut; @core.attr(NotificationConfig) public notificationConfig?: NotificationConfig; @core.attr(String) public s3OutputPath!: string | core.StringOut; } export interface ClientConfigArgs extends core.SchemaArgs { maxConcurrentInvocationsPerInstance?: number | core.NumberOut; } export class ClientConfig extends core.Schema { @core.attr(Number) public maxConcurrentInvocationsPerInstance?: number | core.NumberOut; } export interface AsyncInferenceConfigArgs extends core.SchemaArgs { clientConfig?: ClientConfig; outputConfig: OutputConfig; } export class AsyncInferenceConfig extends core.Schema { @core.attr(ClientConfig) public clientConfig?: ClientConfig; @core.attr(OutputConfig) public outputConfig!: OutputConfig; } export interface EndpointConfigurationArgs extends core.ResourceArgs { /** * (Optional) Specifies configuration for how an endpoint performs asynchronous inference. */ asyncInferenceConfig?: AsyncInferenceConfig; /** * (Optional) Specifies the parameters to capture input/output of SageMaker models endpoints. Fields ar * e documented below. */ dataCaptureConfig?: DataCaptureConfig; /** * (Optional) Amazon Resource Name (ARN) of a 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. */ kmsKeyArn?: string | core.StringOut; /** * (Optional) The name of the endpoint configuration. If omitted, Terraform will assign a random, uniqu * e name. */ name?: string | core.StringOut; /** * (Required) Fields are documented below. */ productionVariants: | core.Array | core.ArrayOut; /** * (Optional) A mapping of tags to assign to the resource. If configured with a provider [`default_tags * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tag * s-configuration-block) present, tags with matching keys will overwrite those defined at the provider * level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class EndpointConfiguration extends core.Resource { /** * The Amazon Resource Name (ARN) assigned by AWS to this endpoint configuration. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Specifies configuration for how an endpoint performs asynchronous inference. */ @core.attr(AsyncInferenceConfig) public asyncInferenceConfig?: AsyncInferenceConfig; /** * (Optional) Specifies the parameters to capture input/output of SageMaker models endpoints. Fields ar * e documented below. */ @core.attr(DataCaptureConfig) public dataCaptureConfig?: DataCaptureConfig; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Amazon Resource Name (ARN) of a 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. */ @core.attr(String) public kmsKeyArn?: string | core.StringOut; /** * (Optional) The name of the endpoint configuration. If omitted, Terraform will assign a random, uniqu * e name. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * (Required) Fields are documented below. */ @core.attr(ProductionVariants, { kind: "array" }) public productionVariants!: | core.Array | core.ArrayOut; /** * (Optional) A mapping of tags to assign to the resource. If configured with a provider [`default_tags * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tag * s-configuration-block) present, tags with matching keys will overwrite those defined at the provider * level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: EndpointConfigurationArgs) { super(name, "aws_sagemaker_endpoint_configuration", args); } public override getNamespace(): string { return "aws_sagemaker"; } }