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

com.pulumi.artifactory.inputs.RemoteHuggingfacemlRepositoryState Maven / Gradle / Ivy

There is a newer version: 7.10.0
Show newest version
// *** 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.artifactory.inputs;

import com.pulumi.artifactory.inputs.RemoteHuggingfacemlRepositoryContentSynchronisationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final RemoteHuggingfacemlRepositoryState Empty = new RemoteHuggingfacemlRepositoryState();

    /**
     * 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
     * other host.
     * 
     */
    @Import(name="allowAnyHostAuth")
    private @Nullable Output allowAnyHostAuth;

    /**
     * @return 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
     * other host.
     * 
     */
    public Optional> allowAnyHostAuth() {
        return Optional.ofNullable(this.allowAnyHostAuth);
    }

    /**
     * The number of seconds the repository stays in assumed offline state after a connection error. At the end of this time,
     * an online check is attempted in order to reset the offline status. A value of 0 means the repository is never assumed
     * offline.
     * 
     */
    @Import(name="assumedOfflinePeriodSecs")
    private @Nullable Output assumedOfflinePeriodSecs;

    /**
     * @return The number of seconds the repository stays in assumed offline state after a connection error. At the end of this time,
     * an online check is attempted in order to reset the offline status. A value of 0 means the repository is never assumed
     * offline.
     * 
     */
    public Optional> assumedOfflinePeriodSecs() {
        return Optional.ofNullable(this.assumedOfflinePeriodSecs);
    }

    /**
     * (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
     * resolution.
     * 
     */
    @Import(name="blackedOut")
    private @Nullable Output blackedOut;

    /**
     * @return (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
     * resolution.
     * 
     */
    public Optional> blackedOut() {
        return Optional.ofNullable(this.blackedOut);
    }

    /**
     * If set, artifacts will fail to download if a mismatch is detected between requested and received mimetype, according to
     * the list specified in the system properties file under blockedMismatchingMimeTypes. You can override by adding mimetypes
     * to the override list 'mismatching_mime_types_override_list'.
     * 
     */
    @Import(name="blockMismatchingMimeTypes")
    private @Nullable Output blockMismatchingMimeTypes;

    /**
     * @return If set, artifacts will fail to download if a mismatch is detected between requested and received mimetype, according to
     * the list specified in the system properties file under blockedMismatchingMimeTypes. You can override by adding mimetypes
     * to the override list 'mismatching_mime_types_override_list'.
     * 
     */
    public Optional> blockMismatchingMimeTypes() {
        return Optional.ofNullable(this.blockMismatchingMimeTypes);
    }

    /**
     * Before caching an artifact, Artifactory first sends a HEAD request to the remote resource. In some remote resources,
     * HEAD requests are disallowed and therefore rejected, even though downloading the artifact is allowed. When checked,
     * Artifactory will bypass the HEAD request and cache the artifact directly using a GET request.
     * 
     */
    @Import(name="bypassHeadRequests")
    private @Nullable Output bypassHeadRequests;

    /**
     * @return Before caching an artifact, Artifactory first sends a HEAD request to the remote resource. In some remote resources,
     * HEAD requests are disallowed and therefore rejected, even though downloading the artifact is allowed. When checked,
     * Artifactory will bypass the HEAD request and cache the artifact directly using a GET request.
     * 
     */
    public Optional> bypassHeadRequests() {
        return Optional.ofNullable(this.bypassHeadRequests);
    }

    /**
     * When set, download requests to this repository will redirect the client to download the artifact directly from AWS
     * CloudFront. Available in Enterprise+ and Edge licenses only. Default value is 'false'
     * 
     */
    @Import(name="cdnRedirect")
    private @Nullable Output cdnRedirect;

    /**
     * @return When set, download requests to this repository will redirect the client to download the artifact directly from AWS
     * CloudFront. Available in Enterprise+ and Edge licenses only. Default value is 'false'
     * 
     */
    public Optional> cdnRedirect() {
        return Optional.ofNullable(this.cdnRedirect);
    }

    /**
     * Client TLS certificate name.
     * 
     */
    @Import(name="clientTlsCertificate")
    private @Nullable Output clientTlsCertificate;

    /**
     * @return Client TLS certificate name.
     * 
     */
    public Optional> clientTlsCertificate() {
        return Optional.ofNullable(this.clientTlsCertificate);
    }

    @Import(name="contentSynchronisation")
    private @Nullable Output contentSynchronisation;

    public Optional> contentSynchronisation() {
        return Optional.ofNullable(this.contentSynchronisation);
    }

    /**
     * Public description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Public description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * When set to `true`, the proxy is disabled, and not returned in the API response body. If there is a default proxy set
     * for the Artifactory instance, it will be ignored, too. Introduced since Artifactory 7.41.7.
     * 
     */
    @Import(name="disableProxy")
    private @Nullable Output disableProxy;

    /**
     * @return When set to `true`, the proxy is disabled, and not returned in the API response body. If there is a default proxy set
     * for the Artifactory instance, it will be ignored, too. Introduced since Artifactory 7.41.7.
     * 
     */
    public Optional> disableProxy() {
        return Optional.ofNullable(this.disableProxy);
    }

    /**
     * Whether to disable URL normalization, default is `false`.
     * 
     */
    @Import(name="disableUrlNormalization")
    private @Nullable Output disableUrlNormalization;

    /**
     * @return Whether to disable URL normalization, default is `false`.
     * 
     */
    public Optional> disableUrlNormalization() {
        return Optional.ofNullable(this.disableUrlNormalization);
    }

    /**
     * When set, download requests to this repository will redirect the client to download the artifact directly from the cloud
     * storage provider. Available in Enterprise+ and Edge licenses only. Default value is 'false'.
     * 
     */
    @Import(name="downloadDirect")
    private @Nullable Output downloadDirect;

    /**
     * @return When set, download requests to this repository will redirect the client to download the artifact directly from the cloud
     * storage provider. Available in Enterprise+ and Edge licenses only. Default value is 'false'.
     * 
     */
    public Optional> downloadDirect() {
        return Optional.ofNullable(this.downloadDirect);
    }

    /**
     * Enables cookie management if the remote repository uses cookies to manage client state.
     * 
     */
    @Import(name="enableCookieManagement")
    private @Nullable Output enableCookieManagement;

    /**
     * @return Enables cookie management if the remote repository uses cookies to manage client state.
     * 
     */
    public Optional> enableCookieManagement() {
        return Optional.ofNullable(this.enableCookieManagement);
    }

    /**
     * List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**{@literal /}z/*.By default no
     * artifacts are excluded.
     * 
     */
    @Import(name="excludesPattern")
    private @Nullable Output excludesPattern;

    /**
     * @return List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**{@literal /}z/*.By default no
     * artifacts are excluded.
     * 
     */
    public Optional> excludesPattern() {
        return Optional.ofNullable(this.excludesPattern);
    }

    /**
     * When set, Artifactory will return an error to the client that causes the build to fail if there is a failure to
     * communicate with this repository.
     * 
     */
    @Import(name="hardFail")
    private @Nullable Output hardFail;

    /**
     * @return When set, Artifactory will return an error to the client that causes the build to fail if there is a failure to
     * communicate with this repository.
     * 
     */
    public Optional> hardFail() {
        return Optional.ofNullable(this.hardFail);
    }

    /**
     * List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**{@literal /}z/*. When
     * used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**{@literal /}*).
     * 
     */
    @Import(name="includesPattern")
    private @Nullable Output includesPattern;

    /**
     * @return List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**{@literal /}z/*. When
     * used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**{@literal /}*).
     * 
     */
    public Optional> includesPattern() {
        return Optional.ofNullable(this.includesPattern);
    }

    /**
     * A mandatory identifier for the repository that must be unique. It cannot begin with a number or
     * contain spaces or special characters.
     * 
     */
    @Import(name="key")
    private @Nullable Output key;

    /**
     * @return A mandatory identifier for the repository that must be unique. It cannot begin with a number or
     * contain spaces or special characters.
     * 
     */
    public Optional> key() {
        return Optional.ofNullable(this.key);
    }

    /**
     * Lists the items of remote folders in simple and list browsing. The remote content is cached according to the value of
     * the 'Retrieval Cache Period'. Default value is 'true'.
     * 
     */
    @Import(name="listRemoteFolderItems")
    private @Nullable Output listRemoteFolderItems;

    /**
     * @return Lists the items of remote folders in simple and list browsing. The remote content is cached according to the value of
     * the 'Retrieval Cache Period'. Default value is 'true'.
     * 
     */
    public Optional> listRemoteFolderItems() {
        return Optional.ofNullable(this.listRemoteFolderItems);
    }

    /**
     * The local address to be used when creating connections. Useful for specifying the interface to use on systems with
     * multiple network interfaces.
     * 
     */
    @Import(name="localAddress")
    private @Nullable Output localAddress;

    /**
     * @return The local address to be used when creating connections. Useful for specifying the interface to use on systems with
     * multiple network interfaces.
     * 
     */
    public Optional> localAddress() {
        return Optional.ofNullable(this.localAddress);
    }

    /**
     * Metadata Retrieval Cache Timeout (Sec) in the UI.This value refers to the number of seconds to wait for retrieval from
     * the remote before serving locally cached artifact or fail the request.
     * 
     */
    @Import(name="metadataRetrievalTimeoutSecs")
    private @Nullable Output metadataRetrievalTimeoutSecs;

    /**
     * @return Metadata Retrieval Cache Timeout (Sec) in the UI.This value refers to the number of seconds to wait for retrieval from
     * the remote before serving locally cached artifact or fail the request.
     * 
     */
    public Optional> metadataRetrievalTimeoutSecs() {
        return Optional.ofNullable(this.metadataRetrievalTimeoutSecs);
    }

    /**
     * The set of mime types that should override the block_mismatching_mime_types setting. Eg:
     * 'application/json,application/xml'. Default value is empty.
     * 
     */
    @Import(name="mismatchingMimeTypesOverrideList")
    private @Nullable Output mismatchingMimeTypesOverrideList;

    /**
     * @return The set of mime types that should override the block_mismatching_mime_types setting. Eg:
     * 'application/json,application/xml'. Default value is empty.
     * 
     */
    public Optional> mismatchingMimeTypesOverrideList() {
        return Optional.ofNullable(this.mismatchingMimeTypesOverrideList);
    }

    /**
     * Missed Retrieval Cache Period (Sec) in the UI. The number of seconds to cache artifact retrieval misses (artifact not
     * found). A value of 0 indicates no caching.
     * 
     */
    @Import(name="missedCachePeriodSeconds")
    private @Nullable Output missedCachePeriodSeconds;

    /**
     * @return Missed Retrieval Cache Period (Sec) in the UI. The number of seconds to cache artifact retrieval misses (artifact not
     * found). A value of 0 indicates no caching.
     * 
     */
    public Optional> missedCachePeriodSeconds() {
        return Optional.ofNullable(this.missedCachePeriodSeconds);
    }

    /**
     * Internal description.
     * 
     */
    @Import(name="notes")
    private @Nullable Output notes;

    /**
     * @return Internal description.
     * 
     */
    public Optional> notes() {
        return Optional.ofNullable(this.notes);
    }

    /**
     * If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
     * 
     */
    @Import(name="offline")
    private @Nullable Output offline;

    /**
     * @return If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
     * 
     */
    public Optional> offline() {
        return Optional.ofNullable(this.offline);
    }

    @Import(name="packageType")
    private @Nullable Output packageType;

    public Optional> packageType() {
        return Optional.ofNullable(this.packageType);
    }

    @Import(name="password")
    private @Nullable Output password;

    public Optional> password() {
        return Optional.ofNullable(this.password);
    }

    /**
     * Setting Priority Resolution takes precedence over the resolution order when resolving virtual repositories. Setting
     * repositories with priority will cause metadata to be merged only from repositories set with a priority. If a package is
     * not found in those repositories, Artifactory will merge from repositories marked as non-priority.
     * 
     */
    @Import(name="priorityResolution")
    private @Nullable Output priorityResolution;

    /**
     * @return Setting Priority Resolution takes precedence over the resolution order when resolving virtual repositories. Setting
     * repositories with priority will cause metadata to be merged only from repositories set with a priority. If a package is
     * not found in those repositories, Artifactory will merge from repositories marked as non-priority.
     * 
     */
    public Optional> priorityResolution() {
        return Optional.ofNullable(this.priorityResolution);
    }

    /**
     * Project environment for assigning this repository to. Allow values: "DEV", "PROD", or one of custom environment. Before
     * Artifactory 7.53.1, up to 2 values ("DEV" and "PROD") are allowed. From 7.53.1 onward, only one value is allowed. The
     * attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will
     * be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update.
     * 
     */
    @Import(name="projectEnvironments")
    private @Nullable Output> projectEnvironments;

    /**
     * @return Project environment for assigning this repository to. Allow values: "DEV", "PROD", or one of custom environment. Before
     * Artifactory 7.53.1, up to 2 values ("DEV" and "PROD") are allowed. From 7.53.1 onward, only one value is allowed. The
     * attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will
     * be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update.
     * 
     */
    public Optional>> projectEnvironments() {
        return Optional.ofNullable(this.projectEnvironments);
    }

    /**
     * Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When
     * assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
     * 
     */
    @Import(name="projectKey")
    private @Nullable Output projectKey;

    /**
     * @return Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When
     * assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
     * 
     */
    public Optional> projectKey() {
        return Optional.ofNullable(this.projectKey);
    }

    /**
     * List of property set names
     * 
     */
    @Import(name="propertySets")
    private @Nullable Output> propertySets;

    /**
     * @return List of property set names
     * 
     */
    public Optional>> propertySets() {
        return Optional.ofNullable(this.propertySets);
    }

    /**
     * Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
     * 
     */
    @Import(name="proxy")
    private @Nullable Output proxy;

    /**
     * @return Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
     * 
     */
    public Optional> proxy() {
        return Optional.ofNullable(this.proxy);
    }

    /**
     * Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
     * `param1=val1&param2=val2&param3=val3`
     * 
     */
    @Import(name="queryParams")
    private @Nullable Output queryParams;

    /**
     * @return Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
     * `param1=val1&param2=val2&param3=val3`
     * 
     */
    public Optional> queryParams() {
        return Optional.ofNullable(this.queryParams);
    }

    /**
     * Repository layout key for the remote layout mapping. Repository can be created without this attribute (or set to an
     * empty string). Once it's set, it can't be removed by passing an empty string or removing the attribute, that will be
     * ignored by the Artifactory API. UI shows an error message, if the user tries to remove the value.
     * 
     */
    @Import(name="remoteRepoLayoutRef")
    private @Nullable Output remoteRepoLayoutRef;

    /**
     * @return Repository layout key for the remote layout mapping. Repository can be created without this attribute (or set to an
     * empty string). Once it's set, it can't be removed by passing an empty string or removing the attribute, that will be
     * ignored by the Artifactory API. UI shows an error message, if the user tries to remove the value.
     * 
     */
    public Optional> remoteRepoLayoutRef() {
        return Optional.ofNullable(this.remoteRepoLayoutRef);
    }

    /**
     * Repository layout key for the remote repository
     * 
     */
    @Import(name="repoLayoutRef")
    private @Nullable Output repoLayoutRef;

    /**
     * @return Repository layout key for the remote repository
     * 
     */
    public Optional> repoLayoutRef() {
        return Optional.ofNullable(this.repoLayoutRef);
    }

    /**
     * Metadata Retrieval Cache Period (Sec) in the UI. This value refers to the number of seconds to cache metadata files
     * before checking for newer versions on remote server. A value of 0 indicates no caching.
     * 
     */
    @Import(name="retrievalCachePeriodSeconds")
    private @Nullable Output retrievalCachePeriodSeconds;

    /**
     * @return Metadata Retrieval Cache Period (Sec) in the UI. This value refers to the number of seconds to cache metadata files
     * before checking for newer versions on remote server. A value of 0 indicates no caching.
     * 
     */
    public Optional> retrievalCachePeriodSeconds() {
        return Optional.ofNullable(this.retrievalCachePeriodSeconds);
    }

    @Import(name="shareConfiguration")
    private @Nullable Output shareConfiguration;

    public Optional> shareConfiguration() {
        return Optional.ofNullable(this.shareConfiguration);
    }

    /**
     * Network timeout (in ms) to use when establishing a connection and for unanswered requests. Timing out on a network
     * operation is considered a retrieval failure.
     * 
     */
    @Import(name="socketTimeoutMillis")
    private @Nullable Output socketTimeoutMillis;

    /**
     * @return Network timeout (in ms) to use when establishing a connection and for unanswered requests. Timing out on a network
     * operation is considered a retrieval failure.
     * 
     */
    public Optional> socketTimeoutMillis() {
        return Optional.ofNullable(this.socketTimeoutMillis);
    }

    /**
     * When set, the repository should store cached artifacts locally. When not set, artifacts are not stored locally, and
     * direct repository-to-client streaming is used. This can be useful for multi-server setups over a high-speed LAN, with
     * one Artifactory caching certain data on central storage, and streaming it directly to satellite pass-though Artifactory
     * servers.
     * 
     */
    @Import(name="storeArtifactsLocally")
    private @Nullable Output storeArtifactsLocally;

    /**
     * @return When set, the repository should store cached artifacts locally. When not set, artifacts are not stored locally, and
     * direct repository-to-client streaming is used. This can be useful for multi-server setups over a high-speed LAN, with
     * one Artifactory caching certain data on central storage, and streaming it directly to satellite pass-though Artifactory
     * servers.
     * 
     */
    public Optional> storeArtifactsLocally() {
        return Optional.ofNullable(this.storeArtifactsLocally);
    }

    /**
     * When set, remote artifacts are fetched along with their properties.
     * 
     */
    @Import(name="synchronizeProperties")
    private @Nullable Output synchronizeProperties;

    /**
     * @return When set, remote artifacts are fetched along with their properties.
     * 
     */
    public Optional> synchronizeProperties() {
        return Optional.ofNullable(this.synchronizeProperties);
    }

    /**
     * Unused Artifacts Cleanup Period (Hr) in the UI. The number of hours to wait before an artifact is deemed 'unused' and
     * eligible for cleanup from the repository. A value of 0 means automatic cleanup of cached artifacts is disabled.
     * 
     */
    @Import(name="unusedArtifactsCleanupPeriodHours")
    private @Nullable Output unusedArtifactsCleanupPeriodHours;

    /**
     * @return Unused Artifacts Cleanup Period (Hr) in the UI. The number of hours to wait before an artifact is deemed 'unused' and
     * eligible for cleanup from the repository. A value of 0 means automatic cleanup of cached artifacts is disabled.
     * 
     */
    public Optional> unusedArtifactsCleanupPeriodHours() {
        return Optional.ofNullable(this.unusedArtifactsCleanupPeriodHours);
    }

    /**
     * The remote repo URL. Default to 'https://huggingface.co'
     * 
     */
    @Import(name="url")
    private @Nullable Output url;

    /**
     * @return The remote repo URL. Default to 'https://huggingface.co'
     * 
     */
    public Optional> url() {
        return Optional.ofNullable(this.url);
    }

    @Import(name="username")
    private @Nullable Output username;

    public Optional> username() {
        return Optional.ofNullable(this.username);
    }

    /**
     * Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
     * Xray settings.
     * 
     */
    @Import(name="xrayIndex")
    private @Nullable Output xrayIndex;

    /**
     * @return Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
     * Xray settings.
     * 
     */
    public Optional> xrayIndex() {
        return Optional.ofNullable(this.xrayIndex);
    }

    private RemoteHuggingfacemlRepositoryState() {}

    private RemoteHuggingfacemlRepositoryState(RemoteHuggingfacemlRepositoryState $) {
        this.allowAnyHostAuth = $.allowAnyHostAuth;
        this.assumedOfflinePeriodSecs = $.assumedOfflinePeriodSecs;
        this.blackedOut = $.blackedOut;
        this.blockMismatchingMimeTypes = $.blockMismatchingMimeTypes;
        this.bypassHeadRequests = $.bypassHeadRequests;
        this.cdnRedirect = $.cdnRedirect;
        this.clientTlsCertificate = $.clientTlsCertificate;
        this.contentSynchronisation = $.contentSynchronisation;
        this.description = $.description;
        this.disableProxy = $.disableProxy;
        this.disableUrlNormalization = $.disableUrlNormalization;
        this.downloadDirect = $.downloadDirect;
        this.enableCookieManagement = $.enableCookieManagement;
        this.excludesPattern = $.excludesPattern;
        this.hardFail = $.hardFail;
        this.includesPattern = $.includesPattern;
        this.key = $.key;
        this.listRemoteFolderItems = $.listRemoteFolderItems;
        this.localAddress = $.localAddress;
        this.metadataRetrievalTimeoutSecs = $.metadataRetrievalTimeoutSecs;
        this.mismatchingMimeTypesOverrideList = $.mismatchingMimeTypesOverrideList;
        this.missedCachePeriodSeconds = $.missedCachePeriodSeconds;
        this.notes = $.notes;
        this.offline = $.offline;
        this.packageType = $.packageType;
        this.password = $.password;
        this.priorityResolution = $.priorityResolution;
        this.projectEnvironments = $.projectEnvironments;
        this.projectKey = $.projectKey;
        this.propertySets = $.propertySets;
        this.proxy = $.proxy;
        this.queryParams = $.queryParams;
        this.remoteRepoLayoutRef = $.remoteRepoLayoutRef;
        this.repoLayoutRef = $.repoLayoutRef;
        this.retrievalCachePeriodSeconds = $.retrievalCachePeriodSeconds;
        this.shareConfiguration = $.shareConfiguration;
        this.socketTimeoutMillis = $.socketTimeoutMillis;
        this.storeArtifactsLocally = $.storeArtifactsLocally;
        this.synchronizeProperties = $.synchronizeProperties;
        this.unusedArtifactsCleanupPeriodHours = $.unusedArtifactsCleanupPeriodHours;
        this.url = $.url;
        this.username = $.username;
        this.xrayIndex = $.xrayIndex;
    }

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

    public static final class Builder {
        private RemoteHuggingfacemlRepositoryState $;

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

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

        /**
         * @param allowAnyHostAuth 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
         * other host.
         * 
         * @return builder
         * 
         */
        public Builder allowAnyHostAuth(@Nullable Output allowAnyHostAuth) {
            $.allowAnyHostAuth = allowAnyHostAuth;
            return this;
        }

        /**
         * @param allowAnyHostAuth 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
         * other host.
         * 
         * @return builder
         * 
         */
        public Builder allowAnyHostAuth(Boolean allowAnyHostAuth) {
            return allowAnyHostAuth(Output.of(allowAnyHostAuth));
        }

        /**
         * @param assumedOfflinePeriodSecs The number of seconds the repository stays in assumed offline state after a connection error. At the end of this time,
         * an online check is attempted in order to reset the offline status. A value of 0 means the repository is never assumed
         * offline.
         * 
         * @return builder
         * 
         */
        public Builder assumedOfflinePeriodSecs(@Nullable Output assumedOfflinePeriodSecs) {
            $.assumedOfflinePeriodSecs = assumedOfflinePeriodSecs;
            return this;
        }

        /**
         * @param assumedOfflinePeriodSecs The number of seconds the repository stays in assumed offline state after a connection error. At the end of this time,
         * an online check is attempted in order to reset the offline status. A value of 0 means the repository is never assumed
         * offline.
         * 
         * @return builder
         * 
         */
        public Builder assumedOfflinePeriodSecs(Integer assumedOfflinePeriodSecs) {
            return assumedOfflinePeriodSecs(Output.of(assumedOfflinePeriodSecs));
        }

        /**
         * @param blackedOut (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
         * resolution.
         * 
         * @return builder
         * 
         */
        public Builder blackedOut(@Nullable Output blackedOut) {
            $.blackedOut = blackedOut;
            return this;
        }

        /**
         * @param blackedOut (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
         * resolution.
         * 
         * @return builder
         * 
         */
        public Builder blackedOut(Boolean blackedOut) {
            return blackedOut(Output.of(blackedOut));
        }

        /**
         * @param blockMismatchingMimeTypes If set, artifacts will fail to download if a mismatch is detected between requested and received mimetype, according to
         * the list specified in the system properties file under blockedMismatchingMimeTypes. You can override by adding mimetypes
         * to the override list 'mismatching_mime_types_override_list'.
         * 
         * @return builder
         * 
         */
        public Builder blockMismatchingMimeTypes(@Nullable Output blockMismatchingMimeTypes) {
            $.blockMismatchingMimeTypes = blockMismatchingMimeTypes;
            return this;
        }

        /**
         * @param blockMismatchingMimeTypes If set, artifacts will fail to download if a mismatch is detected between requested and received mimetype, according to
         * the list specified in the system properties file under blockedMismatchingMimeTypes. You can override by adding mimetypes
         * to the override list 'mismatching_mime_types_override_list'.
         * 
         * @return builder
         * 
         */
        public Builder blockMismatchingMimeTypes(Boolean blockMismatchingMimeTypes) {
            return blockMismatchingMimeTypes(Output.of(blockMismatchingMimeTypes));
        }

        /**
         * @param bypassHeadRequests Before caching an artifact, Artifactory first sends a HEAD request to the remote resource. In some remote resources,
         * HEAD requests are disallowed and therefore rejected, even though downloading the artifact is allowed. When checked,
         * Artifactory will bypass the HEAD request and cache the artifact directly using a GET request.
         * 
         * @return builder
         * 
         */
        public Builder bypassHeadRequests(@Nullable Output bypassHeadRequests) {
            $.bypassHeadRequests = bypassHeadRequests;
            return this;
        }

        /**
         * @param bypassHeadRequests Before caching an artifact, Artifactory first sends a HEAD request to the remote resource. In some remote resources,
         * HEAD requests are disallowed and therefore rejected, even though downloading the artifact is allowed. When checked,
         * Artifactory will bypass the HEAD request and cache the artifact directly using a GET request.
         * 
         * @return builder
         * 
         */
        public Builder bypassHeadRequests(Boolean bypassHeadRequests) {
            return bypassHeadRequests(Output.of(bypassHeadRequests));
        }

        /**
         * @param cdnRedirect When set, download requests to this repository will redirect the client to download the artifact directly from AWS
         * CloudFront. Available in Enterprise+ and Edge licenses only. Default value is 'false'
         * 
         * @return builder
         * 
         */
        public Builder cdnRedirect(@Nullable Output cdnRedirect) {
            $.cdnRedirect = cdnRedirect;
            return this;
        }

        /**
         * @param cdnRedirect When set, download requests to this repository will redirect the client to download the artifact directly from AWS
         * CloudFront. Available in Enterprise+ and Edge licenses only. Default value is 'false'
         * 
         * @return builder
         * 
         */
        public Builder cdnRedirect(Boolean cdnRedirect) {
            return cdnRedirect(Output.of(cdnRedirect));
        }

        /**
         * @param clientTlsCertificate Client TLS certificate name.
         * 
         * @return builder
         * 
         */
        public Builder clientTlsCertificate(@Nullable Output clientTlsCertificate) {
            $.clientTlsCertificate = clientTlsCertificate;
            return this;
        }

        /**
         * @param clientTlsCertificate Client TLS certificate name.
         * 
         * @return builder
         * 
         */
        public Builder clientTlsCertificate(String clientTlsCertificate) {
            return clientTlsCertificate(Output.of(clientTlsCertificate));
        }

        public Builder contentSynchronisation(@Nullable Output contentSynchronisation) {
            $.contentSynchronisation = contentSynchronisation;
            return this;
        }

        public Builder contentSynchronisation(RemoteHuggingfacemlRepositoryContentSynchronisationArgs contentSynchronisation) {
            return contentSynchronisation(Output.of(contentSynchronisation));
        }

        /**
         * @param description Public description.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Public description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param disableProxy When set to `true`, the proxy is disabled, and not returned in the API response body. If there is a default proxy set
         * for the Artifactory instance, it will be ignored, too. Introduced since Artifactory 7.41.7.
         * 
         * @return builder
         * 
         */
        public Builder disableProxy(@Nullable Output disableProxy) {
            $.disableProxy = disableProxy;
            return this;
        }

        /**
         * @param disableProxy When set to `true`, the proxy is disabled, and not returned in the API response body. If there is a default proxy set
         * for the Artifactory instance, it will be ignored, too. Introduced since Artifactory 7.41.7.
         * 
         * @return builder
         * 
         */
        public Builder disableProxy(Boolean disableProxy) {
            return disableProxy(Output.of(disableProxy));
        }

        /**
         * @param disableUrlNormalization Whether to disable URL normalization, default is `false`.
         * 
         * @return builder
         * 
         */
        public Builder disableUrlNormalization(@Nullable Output disableUrlNormalization) {
            $.disableUrlNormalization = disableUrlNormalization;
            return this;
        }

        /**
         * @param disableUrlNormalization Whether to disable URL normalization, default is `false`.
         * 
         * @return builder
         * 
         */
        public Builder disableUrlNormalization(Boolean disableUrlNormalization) {
            return disableUrlNormalization(Output.of(disableUrlNormalization));
        }

        /**
         * @param downloadDirect When set, download requests to this repository will redirect the client to download the artifact directly from the cloud
         * storage provider. Available in Enterprise+ and Edge licenses only. Default value is 'false'.
         * 
         * @return builder
         * 
         */
        public Builder downloadDirect(@Nullable Output downloadDirect) {
            $.downloadDirect = downloadDirect;
            return this;
        }

        /**
         * @param downloadDirect When set, download requests to this repository will redirect the client to download the artifact directly from the cloud
         * storage provider. Available in Enterprise+ and Edge licenses only. Default value is 'false'.
         * 
         * @return builder
         * 
         */
        public Builder downloadDirect(Boolean downloadDirect) {
            return downloadDirect(Output.of(downloadDirect));
        }

        /**
         * @param enableCookieManagement Enables cookie management if the remote repository uses cookies to manage client state.
         * 
         * @return builder
         * 
         */
        public Builder enableCookieManagement(@Nullable Output enableCookieManagement) {
            $.enableCookieManagement = enableCookieManagement;
            return this;
        }

        /**
         * @param enableCookieManagement Enables cookie management if the remote repository uses cookies to manage client state.
         * 
         * @return builder
         * 
         */
        public Builder enableCookieManagement(Boolean enableCookieManagement) {
            return enableCookieManagement(Output.of(enableCookieManagement));
        }

        /**
         * @param excludesPattern List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**{@literal /}z/*.By default no
         * artifacts are excluded.
         * 
         * @return builder
         * 
         */
        public Builder excludesPattern(@Nullable Output excludesPattern) {
            $.excludesPattern = excludesPattern;
            return this;
        }

        /**
         * @param excludesPattern List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**{@literal /}z/*.By default no
         * artifacts are excluded.
         * 
         * @return builder
         * 
         */
        public Builder excludesPattern(String excludesPattern) {
            return excludesPattern(Output.of(excludesPattern));
        }

        /**
         * @param hardFail When set, Artifactory will return an error to the client that causes the build to fail if there is a failure to
         * communicate with this repository.
         * 
         * @return builder
         * 
         */
        public Builder hardFail(@Nullable Output hardFail) {
            $.hardFail = hardFail;
            return this;
        }

        /**
         * @param hardFail When set, Artifactory will return an error to the client that causes the build to fail if there is a failure to
         * communicate with this repository.
         * 
         * @return builder
         * 
         */
        public Builder hardFail(Boolean hardFail) {
            return hardFail(Output.of(hardFail));
        }

        /**
         * @param includesPattern List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**{@literal /}z/*. When
         * used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**{@literal /}*).
         * 
         * @return builder
         * 
         */
        public Builder includesPattern(@Nullable Output includesPattern) {
            $.includesPattern = includesPattern;
            return this;
        }

        /**
         * @param includesPattern List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**{@literal /}z/*. When
         * used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**{@literal /}*).
         * 
         * @return builder
         * 
         */
        public Builder includesPattern(String includesPattern) {
            return includesPattern(Output.of(includesPattern));
        }

        /**
         * @param key A mandatory identifier for the repository that must be unique. It cannot begin with a number or
         * contain spaces or special characters.
         * 
         * @return builder
         * 
         */
        public Builder key(@Nullable Output key) {
            $.key = key;
            return this;
        }

        /**
         * @param key A mandatory identifier for the repository that must be unique. It cannot begin with a number or
         * contain spaces or special characters.
         * 
         * @return builder
         * 
         */
        public Builder key(String key) {
            return key(Output.of(key));
        }

        /**
         * @param listRemoteFolderItems Lists the items of remote folders in simple and list browsing. The remote content is cached according to the value of
         * the 'Retrieval Cache Period'. Default value is 'true'.
         * 
         * @return builder
         * 
         */
        public Builder listRemoteFolderItems(@Nullable Output listRemoteFolderItems) {
            $.listRemoteFolderItems = listRemoteFolderItems;
            return this;
        }

        /**
         * @param listRemoteFolderItems Lists the items of remote folders in simple and list browsing. The remote content is cached according to the value of
         * the 'Retrieval Cache Period'. Default value is 'true'.
         * 
         * @return builder
         * 
         */
        public Builder listRemoteFolderItems(Boolean listRemoteFolderItems) {
            return listRemoteFolderItems(Output.of(listRemoteFolderItems));
        }

        /**
         * @param localAddress The local address to be used when creating connections. Useful for specifying the interface to use on systems with
         * multiple network interfaces.
         * 
         * @return builder
         * 
         */
        public Builder localAddress(@Nullable Output localAddress) {
            $.localAddress = localAddress;
            return this;
        }

        /**
         * @param localAddress The local address to be used when creating connections. Useful for specifying the interface to use on systems with
         * multiple network interfaces.
         * 
         * @return builder
         * 
         */
        public Builder localAddress(String localAddress) {
            return localAddress(Output.of(localAddress));
        }

        /**
         * @param metadataRetrievalTimeoutSecs Metadata Retrieval Cache Timeout (Sec) in the UI.This value refers to the number of seconds to wait for retrieval from
         * the remote before serving locally cached artifact or fail the request.
         * 
         * @return builder
         * 
         */
        public Builder metadataRetrievalTimeoutSecs(@Nullable Output metadataRetrievalTimeoutSecs) {
            $.metadataRetrievalTimeoutSecs = metadataRetrievalTimeoutSecs;
            return this;
        }

        /**
         * @param metadataRetrievalTimeoutSecs Metadata Retrieval Cache Timeout (Sec) in the UI.This value refers to the number of seconds to wait for retrieval from
         * the remote before serving locally cached artifact or fail the request.
         * 
         * @return builder
         * 
         */
        public Builder metadataRetrievalTimeoutSecs(Integer metadataRetrievalTimeoutSecs) {
            return metadataRetrievalTimeoutSecs(Output.of(metadataRetrievalTimeoutSecs));
        }

        /**
         * @param mismatchingMimeTypesOverrideList The set of mime types that should override the block_mismatching_mime_types setting. Eg:
         * 'application/json,application/xml'. Default value is empty.
         * 
         * @return builder
         * 
         */
        public Builder mismatchingMimeTypesOverrideList(@Nullable Output mismatchingMimeTypesOverrideList) {
            $.mismatchingMimeTypesOverrideList = mismatchingMimeTypesOverrideList;
            return this;
        }

        /**
         * @param mismatchingMimeTypesOverrideList The set of mime types that should override the block_mismatching_mime_types setting. Eg:
         * 'application/json,application/xml'. Default value is empty.
         * 
         * @return builder
         * 
         */
        public Builder mismatchingMimeTypesOverrideList(String mismatchingMimeTypesOverrideList) {
            return mismatchingMimeTypesOverrideList(Output.of(mismatchingMimeTypesOverrideList));
        }

        /**
         * @param missedCachePeriodSeconds Missed Retrieval Cache Period (Sec) in the UI. The number of seconds to cache artifact retrieval misses (artifact not
         * found). A value of 0 indicates no caching.
         * 
         * @return builder
         * 
         */
        public Builder missedCachePeriodSeconds(@Nullable Output missedCachePeriodSeconds) {
            $.missedCachePeriodSeconds = missedCachePeriodSeconds;
            return this;
        }

        /**
         * @param missedCachePeriodSeconds Missed Retrieval Cache Period (Sec) in the UI. The number of seconds to cache artifact retrieval misses (artifact not
         * found). A value of 0 indicates no caching.
         * 
         * @return builder
         * 
         */
        public Builder missedCachePeriodSeconds(Integer missedCachePeriodSeconds) {
            return missedCachePeriodSeconds(Output.of(missedCachePeriodSeconds));
        }

        /**
         * @param notes Internal description.
         * 
         * @return builder
         * 
         */
        public Builder notes(@Nullable Output notes) {
            $.notes = notes;
            return this;
        }

        /**
         * @param notes Internal description.
         * 
         * @return builder
         * 
         */
        public Builder notes(String notes) {
            return notes(Output.of(notes));
        }

        /**
         * @param offline If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
         * 
         * @return builder
         * 
         */
        public Builder offline(@Nullable Output offline) {
            $.offline = offline;
            return this;
        }

        /**
         * @param offline If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
         * 
         * @return builder
         * 
         */
        public Builder offline(Boolean offline) {
            return offline(Output.of(offline));
        }

        public Builder packageType(@Nullable Output packageType) {
            $.packageType = packageType;
            return this;
        }

        public Builder packageType(String packageType) {
            return packageType(Output.of(packageType));
        }

        public Builder password(@Nullable Output password) {
            $.password = password;
            return this;
        }

        public Builder password(String password) {
            return password(Output.of(password));
        }

        /**
         * @param priorityResolution Setting Priority Resolution takes precedence over the resolution order when resolving virtual repositories. Setting
         * repositories with priority will cause metadata to be merged only from repositories set with a priority. If a package is
         * not found in those repositories, Artifactory will merge from repositories marked as non-priority.
         * 
         * @return builder
         * 
         */
        public Builder priorityResolution(@Nullable Output priorityResolution) {
            $.priorityResolution = priorityResolution;
            return this;
        }

        /**
         * @param priorityResolution Setting Priority Resolution takes precedence over the resolution order when resolving virtual repositories. Setting
         * repositories with priority will cause metadata to be merged only from repositories set with a priority. If a package is
         * not found in those repositories, Artifactory will merge from repositories marked as non-priority.
         * 
         * @return builder
         * 
         */
        public Builder priorityResolution(Boolean priorityResolution) {
            return priorityResolution(Output.of(priorityResolution));
        }

        /**
         * @param projectEnvironments Project environment for assigning this repository to. Allow values: "DEV", "PROD", or one of custom environment. Before
         * Artifactory 7.53.1, up to 2 values ("DEV" and "PROD") are allowed. From 7.53.1 onward, only one value is allowed. The
         * attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will
         * be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update.
         * 
         * @return builder
         * 
         */
        public Builder projectEnvironments(@Nullable Output> projectEnvironments) {
            $.projectEnvironments = projectEnvironments;
            return this;
        }

        /**
         * @param projectEnvironments Project environment for assigning this repository to. Allow values: "DEV", "PROD", or one of custom environment. Before
         * Artifactory 7.53.1, up to 2 values ("DEV" and "PROD") are allowed. From 7.53.1 onward, only one value is allowed. The
         * attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will
         * be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update.
         * 
         * @return builder
         * 
         */
        public Builder projectEnvironments(List projectEnvironments) {
            return projectEnvironments(Output.of(projectEnvironments));
        }

        /**
         * @param projectEnvironments Project environment for assigning this repository to. Allow values: "DEV", "PROD", or one of custom environment. Before
         * Artifactory 7.53.1, up to 2 values ("DEV" and "PROD") are allowed. From 7.53.1 onward, only one value is allowed. The
         * attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will
         * be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update.
         * 
         * @return builder
         * 
         */
        public Builder projectEnvironments(String... projectEnvironments) {
            return projectEnvironments(List.of(projectEnvironments));
        }

        /**
         * @param projectKey Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When
         * assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
         * 
         * @return builder
         * 
         */
        public Builder projectKey(@Nullable Output projectKey) {
            $.projectKey = projectKey;
            return this;
        }

        /**
         * @param projectKey Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When
         * assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
         * 
         * @return builder
         * 
         */
        public Builder projectKey(String projectKey) {
            return projectKey(Output.of(projectKey));
        }

        /**
         * @param propertySets List of property set names
         * 
         * @return builder
         * 
         */
        public Builder propertySets(@Nullable Output> propertySets) {
            $.propertySets = propertySets;
            return this;
        }

        /**
         * @param propertySets List of property set names
         * 
         * @return builder
         * 
         */
        public Builder propertySets(List propertySets) {
            return propertySets(Output.of(propertySets));
        }

        /**
         * @param propertySets List of property set names
         * 
         * @return builder
         * 
         */
        public Builder propertySets(String... propertySets) {
            return propertySets(List.of(propertySets));
        }

        /**
         * @param proxy Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
         * 
         * @return builder
         * 
         */
        public Builder proxy(@Nullable Output proxy) {
            $.proxy = proxy;
            return this;
        }

        /**
         * @param proxy Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
         * 
         * @return builder
         * 
         */
        public Builder proxy(String proxy) {
            return proxy(Output.of(proxy));
        }

        /**
         * @param queryParams Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
         * `param1=val1&param2=val2&param3=val3`
         * 
         * @return builder
         * 
         */
        public Builder queryParams(@Nullable Output queryParams) {
            $.queryParams = queryParams;
            return this;
        }

        /**
         * @param queryParams Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
         * `param1=val1&param2=val2&param3=val3`
         * 
         * @return builder
         * 
         */
        public Builder queryParams(String queryParams) {
            return queryParams(Output.of(queryParams));
        }

        /**
         * @param remoteRepoLayoutRef Repository layout key for the remote layout mapping. Repository can be created without this attribute (or set to an
         * empty string). Once it's set, it can't be removed by passing an empty string or removing the attribute, that will be
         * ignored by the Artifactory API. UI shows an error message, if the user tries to remove the value.
         * 
         * @return builder
         * 
         */
        public Builder remoteRepoLayoutRef(@Nullable Output remoteRepoLayoutRef) {
            $.remoteRepoLayoutRef = remoteRepoLayoutRef;
            return this;
        }

        /**
         * @param remoteRepoLayoutRef Repository layout key for the remote layout mapping. Repository can be created without this attribute (or set to an
         * empty string). Once it's set, it can't be removed by passing an empty string or removing the attribute, that will be
         * ignored by the Artifactory API. UI shows an error message, if the user tries to remove the value.
         * 
         * @return builder
         * 
         */
        public Builder remoteRepoLayoutRef(String remoteRepoLayoutRef) {
            return remoteRepoLayoutRef(Output.of(remoteRepoLayoutRef));
        }

        /**
         * @param repoLayoutRef Repository layout key for the remote repository
         * 
         * @return builder
         * 
         */
        public Builder repoLayoutRef(@Nullable Output repoLayoutRef) {
            $.repoLayoutRef = repoLayoutRef;
            return this;
        }

        /**
         * @param repoLayoutRef Repository layout key for the remote repository
         * 
         * @return builder
         * 
         */
        public Builder repoLayoutRef(String repoLayoutRef) {
            return repoLayoutRef(Output.of(repoLayoutRef));
        }

        /**
         * @param retrievalCachePeriodSeconds Metadata Retrieval Cache Period (Sec) in the UI. This value refers to the number of seconds to cache metadata files
         * before checking for newer versions on remote server. A value of 0 indicates no caching.
         * 
         * @return builder
         * 
         */
        public Builder retrievalCachePeriodSeconds(@Nullable Output retrievalCachePeriodSeconds) {
            $.retrievalCachePeriodSeconds = retrievalCachePeriodSeconds;
            return this;
        }

        /**
         * @param retrievalCachePeriodSeconds Metadata Retrieval Cache Period (Sec) in the UI. This value refers to the number of seconds to cache metadata files
         * before checking for newer versions on remote server. A value of 0 indicates no caching.
         * 
         * @return builder
         * 
         */
        public Builder retrievalCachePeriodSeconds(Integer retrievalCachePeriodSeconds) {
            return retrievalCachePeriodSeconds(Output.of(retrievalCachePeriodSeconds));
        }

        public Builder shareConfiguration(@Nullable Output shareConfiguration) {
            $.shareConfiguration = shareConfiguration;
            return this;
        }

        public Builder shareConfiguration(Boolean shareConfiguration) {
            return shareConfiguration(Output.of(shareConfiguration));
        }

        /**
         * @param socketTimeoutMillis Network timeout (in ms) to use when establishing a connection and for unanswered requests. Timing out on a network
         * operation is considered a retrieval failure.
         * 
         * @return builder
         * 
         */
        public Builder socketTimeoutMillis(@Nullable Output socketTimeoutMillis) {
            $.socketTimeoutMillis = socketTimeoutMillis;
            return this;
        }

        /**
         * @param socketTimeoutMillis Network timeout (in ms) to use when establishing a connection and for unanswered requests. Timing out on a network
         * operation is considered a retrieval failure.
         * 
         * @return builder
         * 
         */
        public Builder socketTimeoutMillis(Integer socketTimeoutMillis) {
            return socketTimeoutMillis(Output.of(socketTimeoutMillis));
        }

        /**
         * @param storeArtifactsLocally When set, the repository should store cached artifacts locally. When not set, artifacts are not stored locally, and
         * direct repository-to-client streaming is used. This can be useful for multi-server setups over a high-speed LAN, with
         * one Artifactory caching certain data on central storage, and streaming it directly to satellite pass-though Artifactory
         * servers.
         * 
         * @return builder
         * 
         */
        public Builder storeArtifactsLocally(@Nullable Output storeArtifactsLocally) {
            $.storeArtifactsLocally = storeArtifactsLocally;
            return this;
        }

        /**
         * @param storeArtifactsLocally When set, the repository should store cached artifacts locally. When not set, artifacts are not stored locally, and
         * direct repository-to-client streaming is used. This can be useful for multi-server setups over a high-speed LAN, with
         * one Artifactory caching certain data on central storage, and streaming it directly to satellite pass-though Artifactory
         * servers.
         * 
         * @return builder
         * 
         */
        public Builder storeArtifactsLocally(Boolean storeArtifactsLocally) {
            return storeArtifactsLocally(Output.of(storeArtifactsLocally));
        }

        /**
         * @param synchronizeProperties When set, remote artifacts are fetched along with their properties.
         * 
         * @return builder
         * 
         */
        public Builder synchronizeProperties(@Nullable Output synchronizeProperties) {
            $.synchronizeProperties = synchronizeProperties;
            return this;
        }

        /**
         * @param synchronizeProperties When set, remote artifacts are fetched along with their properties.
         * 
         * @return builder
         * 
         */
        public Builder synchronizeProperties(Boolean synchronizeProperties) {
            return synchronizeProperties(Output.of(synchronizeProperties));
        }

        /**
         * @param unusedArtifactsCleanupPeriodHours Unused Artifacts Cleanup Period (Hr) in the UI. The number of hours to wait before an artifact is deemed 'unused' and
         * eligible for cleanup from the repository. A value of 0 means automatic cleanup of cached artifacts is disabled.
         * 
         * @return builder
         * 
         */
        public Builder unusedArtifactsCleanupPeriodHours(@Nullable Output unusedArtifactsCleanupPeriodHours) {
            $.unusedArtifactsCleanupPeriodHours = unusedArtifactsCleanupPeriodHours;
            return this;
        }

        /**
         * @param unusedArtifactsCleanupPeriodHours Unused Artifacts Cleanup Period (Hr) in the UI. The number of hours to wait before an artifact is deemed 'unused' and
         * eligible for cleanup from the repository. A value of 0 means automatic cleanup of cached artifacts is disabled.
         * 
         * @return builder
         * 
         */
        public Builder unusedArtifactsCleanupPeriodHours(Integer unusedArtifactsCleanupPeriodHours) {
            return unusedArtifactsCleanupPeriodHours(Output.of(unusedArtifactsCleanupPeriodHours));
        }

        /**
         * @param url The remote repo URL. Default to 'https://huggingface.co'
         * 
         * @return builder
         * 
         */
        public Builder url(@Nullable Output url) {
            $.url = url;
            return this;
        }

        /**
         * @param url The remote repo URL. Default to 'https://huggingface.co'
         * 
         * @return builder
         * 
         */
        public Builder url(String url) {
            return url(Output.of(url));
        }

        public Builder username(@Nullable Output username) {
            $.username = username;
            return this;
        }

        public Builder username(String username) {
            return username(Output.of(username));
        }

        /**
         * @param xrayIndex Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
         * Xray settings.
         * 
         * @return builder
         * 
         */
        public Builder xrayIndex(@Nullable Output xrayIndex) {
            $.xrayIndex = xrayIndex;
            return this;
        }

        /**
         * @param xrayIndex Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
         * Xray settings.
         * 
         * @return builder
         * 
         */
        public Builder xrayIndex(Boolean xrayIndex) {
            return xrayIndex(Output.of(xrayIndex));
        }

        public RemoteHuggingfacemlRepositoryState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy