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

import com.pulumi.core.annotations.CustomType;
import java.lang.String;
import java.util.Objects;

@CustomType
public final class GetPoolStartTaskResourceFile {
    /**
     * @return The storage container name in the auto storage account.
     * 
     */
    private String autoStorageContainerName;
    /**
     * @return The blob prefix used when downloading blobs from an Azure Storage container.
     * 
     */
    private String blobPrefix;
    /**
     * @return The file permission mode attribute represented as a string in octal format (e.g. `&#34;0644&#34;`).
     * 
     */
    private String fileMode;
    /**
     * @return The location on the compute node to which to download the file, relative to the task&#39;s working directory. If the `http_url` property is specified, the `file_path` is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the `auto_storage_container_name` or `storage_container_url` property is specified.
     * 
     */
    private String filePath;
    /**
     * @return The URL of the file to download. If the URL is Azure Blob Storage, it must be readable using anonymous access.
     * 
     */
    private String httpUrl;
    /**
     * @return The URL of the blob container within Azure Blob Storage.
     * 
     */
    private String storageContainerUrl;
    /**
     * @return The reference to the user assigned identity to use to access an Azure Container Registry instead of username and password.
     * 
     */
    private String userAssignedIdentityId;

    private GetPoolStartTaskResourceFile() {}
    /**
     * @return The storage container name in the auto storage account.
     * 
     */
    public String autoStorageContainerName() {
        return this.autoStorageContainerName;
    }
    /**
     * @return The blob prefix used when downloading blobs from an Azure Storage container.
     * 
     */
    public String blobPrefix() {
        return this.blobPrefix;
    }
    /**
     * @return The file permission mode attribute represented as a string in octal format (e.g. `&#34;0644&#34;`).
     * 
     */
    public String fileMode() {
        return this.fileMode;
    }
    /**
     * @return The location on the compute node to which to download the file, relative to the task&#39;s working directory. If the `http_url` property is specified, the `file_path` is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the `auto_storage_container_name` or `storage_container_url` property is specified.
     * 
     */
    public String filePath() {
        return this.filePath;
    }
    /**
     * @return The URL of the file to download. If the URL is Azure Blob Storage, it must be readable using anonymous access.
     * 
     */
    public String httpUrl() {
        return this.httpUrl;
    }
    /**
     * @return The URL of the blob container within Azure Blob Storage.
     * 
     */
    public String storageContainerUrl() {
        return this.storageContainerUrl;
    }
    /**
     * @return The reference to the user assigned identity to use to access an Azure Container Registry instead of username and password.
     * 
     */
    public String userAssignedIdentityId() {
        return this.userAssignedIdentityId;
    }

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

    public static Builder builder(GetPoolStartTaskResourceFile defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String autoStorageContainerName;
        private String blobPrefix;
        private String fileMode;
        private String filePath;
        private String httpUrl;
        private String storageContainerUrl;
        private String userAssignedIdentityId;
        public Builder() {}
        public Builder(GetPoolStartTaskResourceFile defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.autoStorageContainerName = defaults.autoStorageContainerName;
    	      this.blobPrefix = defaults.blobPrefix;
    	      this.fileMode = defaults.fileMode;
    	      this.filePath = defaults.filePath;
    	      this.httpUrl = defaults.httpUrl;
    	      this.storageContainerUrl = defaults.storageContainerUrl;
    	      this.userAssignedIdentityId = defaults.userAssignedIdentityId;
        }

        @CustomType.Setter
        public Builder autoStorageContainerName(String autoStorageContainerName) {
            this.autoStorageContainerName = Objects.requireNonNull(autoStorageContainerName);
            return this;
        }
        @CustomType.Setter
        public Builder blobPrefix(String blobPrefix) {
            this.blobPrefix = Objects.requireNonNull(blobPrefix);
            return this;
        }
        @CustomType.Setter
        public Builder fileMode(String fileMode) {
            this.fileMode = Objects.requireNonNull(fileMode);
            return this;
        }
        @CustomType.Setter
        public Builder filePath(String filePath) {
            this.filePath = Objects.requireNonNull(filePath);
            return this;
        }
        @CustomType.Setter
        public Builder httpUrl(String httpUrl) {
            this.httpUrl = Objects.requireNonNull(httpUrl);
            return this;
        }
        @CustomType.Setter
        public Builder storageContainerUrl(String storageContainerUrl) {
            this.storageContainerUrl = Objects.requireNonNull(storageContainerUrl);
            return this;
        }
        @CustomType.Setter
        public Builder userAssignedIdentityId(String userAssignedIdentityId) {
            this.userAssignedIdentityId = Objects.requireNonNull(userAssignedIdentityId);
            return this;
        }
        public GetPoolStartTaskResourceFile build() {
            final var o = new GetPoolStartTaskResourceFile();
            o.autoStorageContainerName = autoStorageContainerName;
            o.blobPrefix = blobPrefix;
            o.fileMode = fileMode;
            o.filePath = filePath;
            o.httpUrl = httpUrl;
            o.storageContainerUrl = storageContainerUrl;
            o.userAssignedIdentityId = userAssignedIdentityId;
            return o;
        }
    }
}
