// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.sagemaker.inputs;

import com.pulumi.aws.sagemaker.inputs.ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ModelPrimaryContainerImageConfigArgs extends com.pulumi.resources.ResourceArgs {

    public static final ModelPrimaryContainerImageConfigArgs Empty = new ModelPrimaryContainerImageConfigArgs();

    /**
     * Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`.
     * 
     */
    @Import(name="repositoryAccessMode", required=true)
    private Output<String> repositoryAccessMode;

    /**
     * @return Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`.
     * 
     */
    public Output<String> repositoryAccessMode() {
        return this.repositoryAccessMode;
    }

    /**
     * Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config.
     * 
     */
    @Import(name="repositoryAuthConfig")
    private @Nullable Output<ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs> repositoryAuthConfig;

    /**
     * @return Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config.
     * 
     */
    public Optional<Output<ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs>> repositoryAuthConfig() {
        return Optional.ofNullable(this.repositoryAuthConfig);
    }

    private ModelPrimaryContainerImageConfigArgs() {}

    private ModelPrimaryContainerImageConfigArgs(ModelPrimaryContainerImageConfigArgs $) {
        this.repositoryAccessMode = $.repositoryAccessMode;
        this.repositoryAuthConfig = $.repositoryAuthConfig;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ModelPrimaryContainerImageConfigArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ModelPrimaryContainerImageConfigArgs $;

        public Builder() {
            $ = new ModelPrimaryContainerImageConfigArgs();
        }

        public Builder(ModelPrimaryContainerImageConfigArgs defaults) {
            $ = new ModelPrimaryContainerImageConfigArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param repositoryAccessMode Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`.
         * 
         * @return builder
         * 
         */
        public Builder repositoryAccessMode(Output<String> repositoryAccessMode) {
            $.repositoryAccessMode = repositoryAccessMode;
            return this;
        }

        /**
         * @param repositoryAccessMode Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`.
         * 
         * @return builder
         * 
         */
        public Builder repositoryAccessMode(String repositoryAccessMode) {
            return repositoryAccessMode(Output.of(repositoryAccessMode));
        }

        /**
         * @param repositoryAuthConfig Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config.
         * 
         * @return builder
         * 
         */
        public Builder repositoryAuthConfig(@Nullable Output<ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs> repositoryAuthConfig) {
            $.repositoryAuthConfig = repositoryAuthConfig;
            return this;
        }

        /**
         * @param repositoryAuthConfig Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config.
         * 
         * @return builder
         * 
         */
        public Builder repositoryAuthConfig(ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs repositoryAuthConfig) {
            return repositoryAuthConfig(Output.of(repositoryAuthConfig));
        }

        public ModelPrimaryContainerImageConfigArgs build() {
            $.repositoryAccessMode = Objects.requireNonNull($.repositoryAccessMode, "expected parameter 'repositoryAccessMode' to be non-null");
            return $;
        }
    }

}
