import * as core from "@terrascript/core"; export interface RepositoryAuthConfigArgs extends core.SchemaArgs { repositoryCredentialsProviderArn: string | core.StringOut; } export class RepositoryAuthConfig extends core.Schema { @core.attr(String) public repositoryCredentialsProviderArn!: string | core.StringOut; } export interface ImageConfigArgs extends core.SchemaArgs { repositoryAccessMode: string | core.StringOut; repositoryAuthConfig?: RepositoryAuthConfig; } export class ImageConfig extends core.Schema { @core.attr(String) public repositoryAccessMode!: string | core.StringOut; @core.attr(RepositoryAuthConfig) public repositoryAuthConfig?: RepositoryAuthConfig; } export interface PrimaryContainerArgs extends core.SchemaArgs { containerHostname?: string | core.StringOut; environment?: core.Map | core.MapOut; image: string | core.StringOut; imageConfig?: ImageConfig; mode?: string | core.StringOut; modelDataUrl?: string | core.StringOut; } export class PrimaryContainer extends core.Schema { @core.attr(String) public containerHostname?: string | core.StringOut; @core.attr(String, { kind: "map" }) public environment?: core.Map | core.MapOut; @core.attr(String) public image!: string | core.StringOut; @core.attr(ImageConfig) public imageConfig?: ImageConfig; @core.attr(String) public mode?: string | core.StringOut; @core.attr(String) public modelDataUrl?: string | core.StringOut; } export interface VpcConfigArgs extends core.SchemaArgs { securityGroupIds: core.Array | core.ArrayOut; subnets: core.Array | core.ArrayOut; } export class VpcConfig extends core.Schema { @core.attr(String, { kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public subnets!: core.Array | core.ArrayOut; } export interface ContainerArgs extends core.SchemaArgs { containerHostname?: string | core.StringOut; environment?: core.Map | core.MapOut; image: string | core.StringOut; imageConfig?: ImageConfig; mode?: string | core.StringOut; modelDataUrl?: string | core.StringOut; } export class Container extends core.Schema { @core.attr(String) public containerHostname?: string | core.StringOut; @core.attr(String, { kind: "map" }) public environment?: core.Map | core.MapOut; @core.attr(String) public image!: string | core.StringOut; @core.attr(ImageConfig) public imageConfig?: ImageConfig; @core.attr(String) public mode?: string | core.StringOut; @core.attr(String) public modelDataUrl?: string | core.StringOut; } export interface InferenceExecutionConfigArgs extends core.SchemaArgs { mode: string | core.StringOut; } export class InferenceExecutionConfig extends core.Schema { @core.attr(String) public mode!: string | core.StringOut; } export interface ModelArgs extends core.ResourceArgs { container?: core.Array | core.ArrayOut; enableNetworkIsolation?: boolean | core.BooleanOut; /** * (Required) A role that SageMaker can assume to access model artifacts and docker images for deployme * nt. */ executionRoleArn: string | core.StringOut; /** * (Optional) Specifies details of how containers in a multi-container endpoint are called. see [Infere * nce Execution Config](#inference-execution-config). */ inferenceExecutionConfig?: InferenceExecutionConfig; /** * (Optional) The name of the model (must be unique). If omitted, Terraform will assign a random, uniqu * e name. */ name?: string | core.StringOut; /** * (Optional) The primary docker image containing inference code that is used when the model is deploye * d for predictions. If not specified, the `container` argument is required. Fields are documented be * low. */ primaryContainer?: PrimaryContainer; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ 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; vpcConfig?: VpcConfig; } export class Model extends core.Resource { /** * The Amazon Resource Name (ARN) assigned by AWS to this model. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(Container, { kind: "array" }) public container?: core.Array | core.ArrayOut; @core.attr(Boolean) public enableNetworkIsolation?: boolean | core.BooleanOut; /** * (Required) A role that SageMaker can assume to access model artifacts and docker images for deployme * nt. */ @core.attr(String) public executionRoleArn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Specifies details of how containers in a multi-container endpoint are called. see [Infere * nce Execution Config](#inference-execution-config). */ @core.attr(InferenceExecutionConfig, { computed: true }) public inferenceExecutionConfig?: InferenceExecutionConfig; /** * (Optional) The name of the model (must be unique). If omitted, Terraform will assign a random, uniqu * e name. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * (Optional) The primary docker image containing inference code that is used when the model is deploye * d for predictions. If not specified, the `container` argument is required. Fields are documented be * low. */ @core.attr(PrimaryContainer) public primaryContainer?: PrimaryContainer; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @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; @core.attr(VpcConfig) public vpcConfig?: VpcConfig; constructor(name: string, args?: ModelArgs) { super(name, "aws_sagemaker_model", args); } public override getNamespace(): string { return "aws_sagemaker"; } }