All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.machinelearningservices.inputs.OnlineEndpointArgs Maven / Gradle / Ivy

// *** 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.azurenative.machinelearningservices.inputs;

import com.pulumi.azurenative.machinelearningservices.enums.EndpointAuthMode;
import com.pulumi.azurenative.machinelearningservices.enums.PublicNetworkAccessType;
import com.pulumi.azurenative.machinelearningservices.inputs.EndpointAuthKeysArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Online endpoint configuration
 * 
 */
public final class OnlineEndpointArgs extends com.pulumi.resources.ResourceArgs {

    public static final OnlineEndpointArgs Empty = new OnlineEndpointArgs();

    /**
     * [Required] Use 'Key' for key based authentication and 'AMLToken' for Azure Machine Learning token-based authentication. 'Key' doesn't expire but 'AMLToken' does.
     * 
     */
    @Import(name="authMode", required=true)
    private Output> authMode;

    /**
     * @return [Required] Use 'Key' for key based authentication and 'AMLToken' for Azure Machine Learning token-based authentication. 'Key' doesn't expire but 'AMLToken' does.
     * 
     */
    public Output> authMode() {
        return this.authMode;
    }

    /**
     * ARM resource ID of the compute if it exists.
     * optional
     * 
     */
    @Import(name="compute")
    private @Nullable Output compute;

    /**
     * @return ARM resource ID of the compute if it exists.
     * optional
     * 
     */
    public Optional> compute() {
        return Optional.ofNullable(this.compute);
    }

    /**
     * Description of the inference endpoint.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of the inference endpoint.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * EndpointAuthKeys to set initially on an Endpoint.
     * This property will always be returned as null. AuthKey values must be retrieved using the ListKeys API.
     * 
     */
    @Import(name="keys")
    private @Nullable Output keys;

    /**
     * @return EndpointAuthKeys to set initially on an Endpoint.
     * This property will always be returned as null. AuthKey values must be retrieved using the ListKeys API.
     * 
     */
    public Optional> keys() {
        return Optional.ofNullable(this.keys);
    }

    /**
     * Percentage of traffic to be mirrored to each deployment without using returned scoring. Traffic values need to sum to utmost 50.
     * 
     */
    @Import(name="mirrorTraffic")
    private @Nullable Output> mirrorTraffic;

    /**
     * @return Percentage of traffic to be mirrored to each deployment without using returned scoring. Traffic values need to sum to utmost 50.
     * 
     */
    public Optional>> mirrorTraffic() {
        return Optional.ofNullable(this.mirrorTraffic);
    }

    /**
     * Property dictionary. Properties can be added, but not removed or altered.
     * 
     */
    @Import(name="properties")
    private @Nullable Output> properties;

    /**
     * @return Property dictionary. Properties can be added, but not removed or altered.
     * 
     */
    public Optional>> properties() {
        return Optional.ofNullable(this.properties);
    }

    /**
     * Set to "Enabled" for endpoints that should allow public access when Private Link is enabled.
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output> publicNetworkAccess;

    /**
     * @return Set to "Enabled" for endpoints that should allow public access when Private Link is enabled.
     * 
     */
    public Optional>> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

    /**
     * Percentage of traffic from endpoint to divert to each deployment. Traffic values need to sum to 100.
     * 
     */
    @Import(name="traffic")
    private @Nullable Output> traffic;

    /**
     * @return Percentage of traffic from endpoint to divert to each deployment. Traffic values need to sum to 100.
     * 
     */
    public Optional>> traffic() {
        return Optional.ofNullable(this.traffic);
    }

    private OnlineEndpointArgs() {}

    private OnlineEndpointArgs(OnlineEndpointArgs $) {
        this.authMode = $.authMode;
        this.compute = $.compute;
        this.description = $.description;
        this.keys = $.keys;
        this.mirrorTraffic = $.mirrorTraffic;
        this.properties = $.properties;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.traffic = $.traffic;
    }

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

    public static final class Builder {
        private OnlineEndpointArgs $;

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

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

        /**
         * @param authMode [Required] Use 'Key' for key based authentication and 'AMLToken' for Azure Machine Learning token-based authentication. 'Key' doesn't expire but 'AMLToken' does.
         * 
         * @return builder
         * 
         */
        public Builder authMode(Output> authMode) {
            $.authMode = authMode;
            return this;
        }

        /**
         * @param authMode [Required] Use 'Key' for key based authentication and 'AMLToken' for Azure Machine Learning token-based authentication. 'Key' doesn't expire but 'AMLToken' does.
         * 
         * @return builder
         * 
         */
        public Builder authMode(Either authMode) {
            return authMode(Output.of(authMode));
        }

        /**
         * @param authMode [Required] Use 'Key' for key based authentication and 'AMLToken' for Azure Machine Learning token-based authentication. 'Key' doesn't expire but 'AMLToken' does.
         * 
         * @return builder
         * 
         */
        public Builder authMode(String authMode) {
            return authMode(Either.ofLeft(authMode));
        }

        /**
         * @param authMode [Required] Use 'Key' for key based authentication and 'AMLToken' for Azure Machine Learning token-based authentication. 'Key' doesn't expire but 'AMLToken' does.
         * 
         * @return builder
         * 
         */
        public Builder authMode(EndpointAuthMode authMode) {
            return authMode(Either.ofRight(authMode));
        }

        /**
         * @param compute ARM resource ID of the compute if it exists.
         * optional
         * 
         * @return builder
         * 
         */
        public Builder compute(@Nullable Output compute) {
            $.compute = compute;
            return this;
        }

        /**
         * @param compute ARM resource ID of the compute if it exists.
         * optional
         * 
         * @return builder
         * 
         */
        public Builder compute(String compute) {
            return compute(Output.of(compute));
        }

        /**
         * @param description Description of the inference endpoint.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of the inference endpoint.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param keys EndpointAuthKeys to set initially on an Endpoint.
         * This property will always be returned as null. AuthKey values must be retrieved using the ListKeys API.
         * 
         * @return builder
         * 
         */
        public Builder keys(@Nullable Output keys) {
            $.keys = keys;
            return this;
        }

        /**
         * @param keys EndpointAuthKeys to set initially on an Endpoint.
         * This property will always be returned as null. AuthKey values must be retrieved using the ListKeys API.
         * 
         * @return builder
         * 
         */
        public Builder keys(EndpointAuthKeysArgs keys) {
            return keys(Output.of(keys));
        }

        /**
         * @param mirrorTraffic Percentage of traffic to be mirrored to each deployment without using returned scoring. Traffic values need to sum to utmost 50.
         * 
         * @return builder
         * 
         */
        public Builder mirrorTraffic(@Nullable Output> mirrorTraffic) {
            $.mirrorTraffic = mirrorTraffic;
            return this;
        }

        /**
         * @param mirrorTraffic Percentage of traffic to be mirrored to each deployment without using returned scoring. Traffic values need to sum to utmost 50.
         * 
         * @return builder
         * 
         */
        public Builder mirrorTraffic(Map mirrorTraffic) {
            return mirrorTraffic(Output.of(mirrorTraffic));
        }

        /**
         * @param properties Property dictionary. Properties can be added, but not removed or altered.
         * 
         * @return builder
         * 
         */
        public Builder properties(@Nullable Output> properties) {
            $.properties = properties;
            return this;
        }

        /**
         * @param properties Property dictionary. Properties can be added, but not removed or altered.
         * 
         * @return builder
         * 
         */
        public Builder properties(Map properties) {
            return properties(Output.of(properties));
        }

        /**
         * @param publicNetworkAccess Set to "Enabled" for endpoints that should allow public access when Private Link is enabled.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output> publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess Set to "Enabled" for endpoints that should allow public access when Private Link is enabled.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(Either publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess Set to "Enabled" for endpoints that should allow public access when Private Link is enabled.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(String publicNetworkAccess) {
            return publicNetworkAccess(Either.ofLeft(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess Set to "Enabled" for endpoints that should allow public access when Private Link is enabled.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccessType publicNetworkAccess) {
            return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
        }

        /**
         * @param traffic Percentage of traffic from endpoint to divert to each deployment. Traffic values need to sum to 100.
         * 
         * @return builder
         * 
         */
        public Builder traffic(@Nullable Output> traffic) {
            $.traffic = traffic;
            return this;
        }

        /**
         * @param traffic Percentage of traffic from endpoint to divert to each deployment. Traffic values need to sum to 100.
         * 
         * @return builder
         * 
         */
        public Builder traffic(Map traffic) {
            return traffic(Output.of(traffic));
        }

        public OnlineEndpointArgs build() {
            if ($.authMode == null) {
                throw new MissingRequiredPropertyException("OnlineEndpointArgs", "authMode");
            }
            $.publicNetworkAccess = Codegen.stringProp("publicNetworkAccess").left(PublicNetworkAccessType.class).output().arg($.publicNetworkAccess).def("Enabled").getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy