name: SageMaker - Create Model
description: Create Models in SageMaker
inputs:
- {name: region, type: String, description: The region for the SageMaker resource.}
- {name: endpoint_url, type: String, description: The URL to use when communicating
    with the SageMaker service., default: ''}
- {name: assume_role, type: String, description: The ARN of an IAM role to assume
    when connecting to SageMaker., default: ''}
- {name: tags, type: JsonObject, description: 'An array of key-value pairs, to categorize
    AWS resources.', default: '{}'}
- {name: model_name, type: String, description: The name of the new model.}
- {name: role, type: String, description: The Amazon Resource Name (ARN) that Amazon
    SageMaker assumes to perform tasks on your behalf.}
- {name: container_host_name, type: String, description: 'When a ContainerDefinition
    is part of an inference pipeline, this value uniquely identifies the container
    for the purposes of logging and metrics.', default: ''}
- {name: image, type: String, description: The Amazon EC2 Container Registry (Amazon
    ECR) path where inference code is stored., default: ''}
- {name: model_artifact_url, type: String, description: S3 path where Amazon SageMaker
    to store the model artifacts., default: ''}
- {name: environment, type: JsonObject, description: The dictionary of the environment
    variables to set in the Docker container. Up to 16 key-value entries in the map.,
  default: '{}'}
- {name: model_package, type: String, description: The name or Amazon Resource Name
    (ARN) of the model package to use to create the model., default: ''}
- {name: secondary_containers, type: JsonArray, description: A list of dicts that
    specifies the additional containers in the inference pipeline., default: '[]'}
- {name: vpc_security_group_ids, type: String, description: 'The VPC security group
    IDs, in the form sg-xxxxxxxx.', default: ''}
- {name: vpc_subnets, type: String, description: The ID of the subnets in the VPC
    to which you want to connect your hpo job., default: ''}
- name: network_isolation
  type: Bool
  description: Isolates the training container.
  default: "True"
outputs:
- {name: model_name, description: The name of the model created by SageMaker.}
implementation:
  container:
    image: public.ecr.aws/kubeflow-on-aws/aws-sagemaker-kfp-components:1.1.2
    command: [python3]
    args:
    - model/src/sagemaker_model_component.py
    - --region
    - {inputValue: region}
    - --endpoint_url
    - {inputValue: endpoint_url}
    - --assume_role
    - {inputValue: assume_role}
    - --tags
    - {inputValue: tags}
    - --model_name
    - {inputValue: model_name}
    - --role
    - {inputValue: role}
    - --container_host_name
    - {inputValue: container_host_name}
    - --image
    - {inputValue: image}
    - --model_artifact_url
    - {inputValue: model_artifact_url}
    - --environment
    - {inputValue: environment}
    - --model_package
    - {inputValue: model_package}
    - --secondary_containers
    - {inputValue: secondary_containers}
    - --vpc_security_group_ids
    - {inputValue: vpc_security_group_ids}
    - --vpc_subnets
    - {inputValue: vpc_subnets}
    - --network_isolation
    - {inputValue: network_isolation}
    - --model_name_output_path
    - {outputPath: model_name}
