import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class MultiModelConfig { ModelCacheSetting ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VpcConfig { Subnets ! : List < Value < string > > ; SecurityGroupIds ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ContainerDefinition { ImageConfig ? : ImageConfig ; ContainerHostname ? : Value < string > ; ModelPackageName ? : Value < string > ; Mode ? : Value < string > ; Environment ? : { [ key ] : any ; } ; ModelDataUrl ? : Value < string > ; Image ? : Value < string > ; MultiModelConfig ? : MultiModelConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ImageConfig { RepositoryAccessMode ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InferenceExecutionConfig { Mode ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ModelProperties { ExecutionRoleArn : Value < string > ; EnableNetworkIsolation ? : Value < boolean > ; PrimaryContainer ? : ContainerDefinition ; ModelName ? : Value < string > ; VpcConfig ? : VpcConfig ; Containers ? : List < ContainerDefinition > ; InferenceExecutionConfig ? : InferenceExecutionConfig ; Tags ? : List < ResourceTag > ; } export default class Model extends ResourceBase < ModelProperties > { static MultiModelConfig = MultiModelConfig ; static VpcConfig = VpcConfig ; static ContainerDefinition = ContainerDefinition ; static ImageConfig = ImageConfig ; static InferenceExecutionConfig = InferenceExecutionConfig ; constructor ( properties ) { super ( 'AWS::SageMaker::Model' , properties ) ; } }