// *** 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.azure.containerservice.outputs;

import com.pulumi.core.annotations.CustomType;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class RegistryTaskFileStep {
    /**
     * @return The token (Git PAT or SAS token of storage account blob) associated with the context for this step.
     * 
     */
    private @Nullable String contextAccessToken;
    /**
     * @return The URL (absolute or relative) of the source context for this step.
     * 
     */
    private @Nullable String contextPath;
    /**
     * @return Specifies a map of secret values that can be passed when running a task.
     * 
     */
    private @Nullable Map<String,String> secretValues;
    /**
     * @return The task template file path relative to the source context.
     * 
     */
    private String taskFilePath;
    /**
     * @return The parameters file path relative to the source context.
     * 
     */
    private @Nullable String valueFilePath;
    /**
     * @return Specifies a map of values that can be passed when running a task.
     * 
     */
    private @Nullable Map<String,String> values;

    private RegistryTaskFileStep() {}
    /**
     * @return The token (Git PAT or SAS token of storage account blob) associated with the context for this step.
     * 
     */
    public Optional<String> contextAccessToken() {
        return Optional.ofNullable(this.contextAccessToken);
    }
    /**
     * @return The URL (absolute or relative) of the source context for this step.
     * 
     */
    public Optional<String> contextPath() {
        return Optional.ofNullable(this.contextPath);
    }
    /**
     * @return Specifies a map of secret values that can be passed when running a task.
     * 
     */
    public Map<String,String> secretValues() {
        return this.secretValues == null ? Map.of() : this.secretValues;
    }
    /**
     * @return The task template file path relative to the source context.
     * 
     */
    public String taskFilePath() {
        return this.taskFilePath;
    }
    /**
     * @return The parameters file path relative to the source context.
     * 
     */
    public Optional<String> valueFilePath() {
        return Optional.ofNullable(this.valueFilePath);
    }
    /**
     * @return Specifies a map of values that can be passed when running a task.
     * 
     */
    public Map<String,String> values() {
        return this.values == null ? Map.of() : this.values;
    }

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

    public static Builder builder(RegistryTaskFileStep defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable String contextAccessToken;
        private @Nullable String contextPath;
        private @Nullable Map<String,String> secretValues;
        private String taskFilePath;
        private @Nullable String valueFilePath;
        private @Nullable Map<String,String> values;
        public Builder() {}
        public Builder(RegistryTaskFileStep defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.contextAccessToken = defaults.contextAccessToken;
    	      this.contextPath = defaults.contextPath;
    	      this.secretValues = defaults.secretValues;
    	      this.taskFilePath = defaults.taskFilePath;
    	      this.valueFilePath = defaults.valueFilePath;
    	      this.values = defaults.values;
        }

        @CustomType.Setter
        public Builder contextAccessToken(@Nullable String contextAccessToken) {
            this.contextAccessToken = contextAccessToken;
            return this;
        }
        @CustomType.Setter
        public Builder contextPath(@Nullable String contextPath) {
            this.contextPath = contextPath;
            return this;
        }
        @CustomType.Setter
        public Builder secretValues(@Nullable Map<String,String> secretValues) {
            this.secretValues = secretValues;
            return this;
        }
        @CustomType.Setter
        public Builder taskFilePath(String taskFilePath) {
            this.taskFilePath = Objects.requireNonNull(taskFilePath);
            return this;
        }
        @CustomType.Setter
        public Builder valueFilePath(@Nullable String valueFilePath) {
            this.valueFilePath = valueFilePath;
            return this;
        }
        @CustomType.Setter
        public Builder values(@Nullable Map<String,String> values) {
            this.values = values;
            return this;
        }
        public RegistryTaskFileStep build() {
            final var o = new RegistryTaskFileStep();
            o.contextAccessToken = contextAccessToken;
            o.contextPath = contextPath;
            o.secretValues = secretValues;
            o.taskFilePath = taskFilePath;
            o.valueFilePath = valueFilePath;
            o.values = values;
            return o;
        }
    }
}
