# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = ['RemoteComposerRepositoryArgs', 'RemoteComposerRepository']

@pulumi.input_type
class RemoteComposerRepositoryArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 url: pulumi.Input[str],
                 allow_any_host_auth: Optional[pulumi.Input[bool]] = None,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 assumed_offline_period_secs: Optional[pulumi.Input[int]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 block_mismatching_mime_types: Optional[pulumi.Input[bool]] = None,
                 bypass_head_requests: Optional[pulumi.Input[bool]] = None,
                 cdn_redirect: Optional[pulumi.Input[bool]] = None,
                 client_tls_certificate: Optional[pulumi.Input[str]] = None,
                 composer_registry_url: Optional[pulumi.Input[str]] = None,
                 content_synchronisation: Optional[pulumi.Input['RemoteComposerRepositoryContentSynchronisationArgs']] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 disable_proxy: Optional[pulumi.Input[bool]] = None,
                 disable_url_normalization: Optional[pulumi.Input[bool]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 enable_cookie_management: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 hard_fail: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 list_remote_folder_items: Optional[pulumi.Input[bool]] = None,
                 local_address: Optional[pulumi.Input[str]] = None,
                 metadata_retrieval_timeout_secs: Optional[pulumi.Input[int]] = None,
                 mismatching_mime_types_override_list: Optional[pulumi.Input[str]] = None,
                 missed_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 notes: Optional[pulumi.Input[str]] = None,
                 offline: Optional[pulumi.Input[bool]] = None,
                 password: Optional[pulumi.Input[str]] = None,
                 priority_resolution: Optional[pulumi.Input[bool]] = None,
                 project_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 project_key: Optional[pulumi.Input[str]] = None,
                 property_sets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 proxy: Optional[pulumi.Input[str]] = None,
                 query_params: Optional[pulumi.Input[str]] = None,
                 remote_repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 retrieval_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 share_configuration: Optional[pulumi.Input[bool]] = None,
                 socket_timeout_millis: Optional[pulumi.Input[int]] = None,
                 store_artifacts_locally: Optional[pulumi.Input[bool]] = None,
                 synchronize_properties: Optional[pulumi.Input[bool]] = None,
                 unused_artifacts_cleanup_period_hours: Optional[pulumi.Input[int]] = None,
                 username: Optional[pulumi.Input[str]] = None,
                 vcs_git_download_url: Optional[pulumi.Input[str]] = None,
                 vcs_git_provider: Optional[pulumi.Input[str]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None):
        """
        The set of arguments for constructing a RemoteComposerRepository resource.
        :param pulumi.Input[str] key: A mandatory identifier for the repository that must be unique. It cannot begin with a number or
               contain spaces or special characters.
        :param pulumi.Input[str] url: The remote repo URL.
        :param pulumi.Input[bool] allow_any_host_auth: 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
               other host.
        :param pulumi.Input[bool] archive_browsing_enabled: When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
               therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
               security (e.g., cross-site scripting attacks).
        :param pulumi.Input[int] assumed_offline_period_secs: 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.
        :param pulumi.Input[bool] blacked_out: (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
               resolution.
        :param pulumi.Input[bool] block_mismatching_mime_types: 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'.
        :param pulumi.Input[bool] bypass_head_requests: 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.
        :param pulumi.Input[bool] cdn_redirect: 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'
        :param pulumi.Input[str] client_tls_certificate: Client TLS certificate name.
        :param pulumi.Input[str] composer_registry_url: Proxy remote Composer repository. Default value is `https://packagist.org`.
        :param pulumi.Input[str] description: Public description.
        :param pulumi.Input[bool] disable_proxy: 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.
        :param pulumi.Input[bool] disable_url_normalization: Whether to disable URL normalization, default is `false`.
        :param pulumi.Input[bool] download_direct: 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'.
        :param pulumi.Input[bool] enable_cookie_management: Enables cookie management if the remote repository uses cookies to manage client state.
        :param pulumi.Input[str] excludes_pattern: List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
               artifacts are excluded.
        :param pulumi.Input[bool] hard_fail: 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.
        :param pulumi.Input[str] includes_pattern: List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
               used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        :param pulumi.Input[bool] list_remote_folder_items: 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'.
        :param pulumi.Input[str] local_address: The local address to be used when creating connections. Useful for specifying the interface to use on systems with
               multiple network interfaces.
        :param pulumi.Input[int] metadata_retrieval_timeout_secs: 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.
        :param pulumi.Input[str] mismatching_mime_types_override_list: The set of mime types that should override the block_mismatching_mime_types setting. Eg:
               'application/json,application/xml'. Default value is empty.
        :param pulumi.Input[int] missed_cache_period_seconds: 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.
        :param pulumi.Input[str] notes: Internal description.
        :param pulumi.Input[bool] offline: If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        :param pulumi.Input[bool] priority_resolution: 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.
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
               assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] property_sets: List of property set names
        :param pulumi.Input[str] proxy: Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        :param pulumi.Input[str] query_params: Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
               `param1=val1&param2=val2&param3=val3`
        :param pulumi.Input[str] remote_repo_layout_ref: 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.
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the remote repository
        :param pulumi.Input[int] retrieval_cache_period_seconds: 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.
        :param pulumi.Input[int] socket_timeout_millis: 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.
        :param pulumi.Input[bool] store_artifacts_locally: 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.
        :param pulumi.Input[bool] synchronize_properties: When set, remote artifacts are fetched along with their properties.
        :param pulumi.Input[int] unused_artifacts_cleanup_period_hours: 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.
        :param pulumi.Input[str] vcs_git_download_url: This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        :param pulumi.Input[str] vcs_git_provider: Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        :param pulumi.Input[bool] xray_index: Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
               Xray settings.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "url", url)
        if allow_any_host_auth is not None:
            pulumi.set(__self__, "allow_any_host_auth", allow_any_host_auth)
        if archive_browsing_enabled is not None:
            pulumi.set(__self__, "archive_browsing_enabled", archive_browsing_enabled)
        if assumed_offline_period_secs is not None:
            pulumi.set(__self__, "assumed_offline_period_secs", assumed_offline_period_secs)
        if blacked_out is not None:
            pulumi.set(__self__, "blacked_out", blacked_out)
        if block_mismatching_mime_types is not None:
            pulumi.set(__self__, "block_mismatching_mime_types", block_mismatching_mime_types)
        if bypass_head_requests is not None:
            pulumi.set(__self__, "bypass_head_requests", bypass_head_requests)
        if cdn_redirect is not None:
            pulumi.set(__self__, "cdn_redirect", cdn_redirect)
        if client_tls_certificate is not None:
            pulumi.set(__self__, "client_tls_certificate", client_tls_certificate)
        if composer_registry_url is not None:
            pulumi.set(__self__, "composer_registry_url", composer_registry_url)
        if content_synchronisation is not None:
            pulumi.set(__self__, "content_synchronisation", content_synchronisation)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if disable_proxy is not None:
            pulumi.set(__self__, "disable_proxy", disable_proxy)
        if disable_url_normalization is not None:
            pulumi.set(__self__, "disable_url_normalization", disable_url_normalization)
        if download_direct is not None:
            pulumi.set(__self__, "download_direct", download_direct)
        if enable_cookie_management is not None:
            pulumi.set(__self__, "enable_cookie_management", enable_cookie_management)
        if excludes_pattern is not None:
            pulumi.set(__self__, "excludes_pattern", excludes_pattern)
        if hard_fail is not None:
            pulumi.set(__self__, "hard_fail", hard_fail)
        if includes_pattern is not None:
            pulumi.set(__self__, "includes_pattern", includes_pattern)
        if list_remote_folder_items is not None:
            pulumi.set(__self__, "list_remote_folder_items", list_remote_folder_items)
        if local_address is not None:
            pulumi.set(__self__, "local_address", local_address)
        if metadata_retrieval_timeout_secs is not None:
            pulumi.set(__self__, "metadata_retrieval_timeout_secs", metadata_retrieval_timeout_secs)
        if mismatching_mime_types_override_list is not None:
            pulumi.set(__self__, "mismatching_mime_types_override_list", mismatching_mime_types_override_list)
        if missed_cache_period_seconds is not None:
            pulumi.set(__self__, "missed_cache_period_seconds", missed_cache_period_seconds)
        if notes is not None:
            pulumi.set(__self__, "notes", notes)
        if offline is not None:
            pulumi.set(__self__, "offline", offline)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if priority_resolution is not None:
            pulumi.set(__self__, "priority_resolution", priority_resolution)
        if project_environments is not None:
            pulumi.set(__self__, "project_environments", project_environments)
        if project_key is not None:
            pulumi.set(__self__, "project_key", project_key)
        if property_sets is not None:
            pulumi.set(__self__, "property_sets", property_sets)
        if proxy is not None:
            pulumi.set(__self__, "proxy", proxy)
        if query_params is not None:
            pulumi.set(__self__, "query_params", query_params)
        if remote_repo_layout_ref is not None:
            pulumi.set(__self__, "remote_repo_layout_ref", remote_repo_layout_ref)
        if repo_layout_ref is not None:
            pulumi.set(__self__, "repo_layout_ref", repo_layout_ref)
        if retrieval_cache_period_seconds is not None:
            pulumi.set(__self__, "retrieval_cache_period_seconds", retrieval_cache_period_seconds)
        if share_configuration is not None:
            pulumi.set(__self__, "share_configuration", share_configuration)
        if socket_timeout_millis is not None:
            pulumi.set(__self__, "socket_timeout_millis", socket_timeout_millis)
        if store_artifacts_locally is not None:
            pulumi.set(__self__, "store_artifacts_locally", store_artifacts_locally)
        if synchronize_properties is not None:
            pulumi.set(__self__, "synchronize_properties", synchronize_properties)
        if unused_artifacts_cleanup_period_hours is not None:
            pulumi.set(__self__, "unused_artifacts_cleanup_period_hours", unused_artifacts_cleanup_period_hours)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if vcs_git_download_url is not None:
            pulumi.set(__self__, "vcs_git_download_url", vcs_git_download_url)
        if vcs_git_provider is not None:
            pulumi.set(__self__, "vcs_git_provider", vcs_git_provider)
        if xray_index is not None:
            pulumi.set(__self__, "xray_index", xray_index)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[str]:
        """
        A mandatory identifier for the repository that must be unique. It cannot begin with a number or
        contain spaces or special characters.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[str]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def url(self) -> pulumi.Input[str]:
        """
        The remote repo URL.
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: pulumi.Input[str]):
        pulumi.set(self, "url", value)

    @property
    @pulumi.getter(name="allowAnyHostAuth")
    def allow_any_host_auth(self) -> Optional[pulumi.Input[bool]]:
        """
        'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
        other host.
        """
        return pulumi.get(self, "allow_any_host_auth")

    @allow_any_host_auth.setter
    def allow_any_host_auth(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "allow_any_host_auth", value)

    @property
    @pulumi.getter(name="archiveBrowsingEnabled")
    def archive_browsing_enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
        therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
        security (e.g., cross-site scripting attacks).
        """
        return pulumi.get(self, "archive_browsing_enabled")

    @archive_browsing_enabled.setter
    def archive_browsing_enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "archive_browsing_enabled", value)

    @property
    @pulumi.getter(name="assumedOfflinePeriodSecs")
    def assumed_offline_period_secs(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "assumed_offline_period_secs")

    @assumed_offline_period_secs.setter
    def assumed_offline_period_secs(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "assumed_offline_period_secs", value)

    @property
    @pulumi.getter(name="blackedOut")
    def blacked_out(self) -> Optional[pulumi.Input[bool]]:
        """
        (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
        resolution.
        """
        return pulumi.get(self, "blacked_out")

    @blacked_out.setter
    def blacked_out(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "blacked_out", value)

    @property
    @pulumi.getter(name="blockMismatchingMimeTypes")
    def block_mismatching_mime_types(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "block_mismatching_mime_types")

    @block_mismatching_mime_types.setter
    def block_mismatching_mime_types(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "block_mismatching_mime_types", value)

    @property
    @pulumi.getter(name="bypassHeadRequests")
    def bypass_head_requests(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "bypass_head_requests")

    @bypass_head_requests.setter
    def bypass_head_requests(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bypass_head_requests", value)

    @property
    @pulumi.getter(name="cdnRedirect")
    def cdn_redirect(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "cdn_redirect")

    @cdn_redirect.setter
    def cdn_redirect(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "cdn_redirect", value)

    @property
    @pulumi.getter(name="clientTlsCertificate")
    def client_tls_certificate(self) -> Optional[pulumi.Input[str]]:
        """
        Client TLS certificate name.
        """
        return pulumi.get(self, "client_tls_certificate")

    @client_tls_certificate.setter
    def client_tls_certificate(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_tls_certificate", value)

    @property
    @pulumi.getter(name="composerRegistryUrl")
    def composer_registry_url(self) -> Optional[pulumi.Input[str]]:
        """
        Proxy remote Composer repository. Default value is `https://packagist.org`.
        """
        return pulumi.get(self, "composer_registry_url")

    @composer_registry_url.setter
    def composer_registry_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "composer_registry_url", value)

    @property
    @pulumi.getter(name="contentSynchronisation")
    def content_synchronisation(self) -> Optional[pulumi.Input['RemoteComposerRepositoryContentSynchronisationArgs']]:
        return pulumi.get(self, "content_synchronisation")

    @content_synchronisation.setter
    def content_synchronisation(self, value: Optional[pulumi.Input['RemoteComposerRepositoryContentSynchronisationArgs']]):
        pulumi.set(self, "content_synchronisation", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Public description.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter(name="disableProxy")
    def disable_proxy(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "disable_proxy")

    @disable_proxy.setter
    def disable_proxy(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_proxy", value)

    @property
    @pulumi.getter(name="disableUrlNormalization")
    def disable_url_normalization(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether to disable URL normalization, default is `false`.
        """
        return pulumi.get(self, "disable_url_normalization")

    @disable_url_normalization.setter
    def disable_url_normalization(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_url_normalization", value)

    @property
    @pulumi.getter(name="downloadDirect")
    def download_direct(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "download_direct")

    @download_direct.setter
    def download_direct(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "download_direct", value)

    @property
    @pulumi.getter(name="enableCookieManagement")
    def enable_cookie_management(self) -> Optional[pulumi.Input[bool]]:
        """
        Enables cookie management if the remote repository uses cookies to manage client state.
        """
        return pulumi.get(self, "enable_cookie_management")

    @enable_cookie_management.setter
    def enable_cookie_management(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_cookie_management", value)

    @property
    @pulumi.getter(name="excludesPattern")
    def excludes_pattern(self) -> Optional[pulumi.Input[str]]:
        """
        List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
        artifacts are excluded.
        """
        return pulumi.get(self, "excludes_pattern")

    @excludes_pattern.setter
    def excludes_pattern(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "excludes_pattern", value)

    @property
    @pulumi.getter(name="hardFail")
    def hard_fail(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "hard_fail")

    @hard_fail.setter
    def hard_fail(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "hard_fail", value)

    @property
    @pulumi.getter(name="includesPattern")
    def includes_pattern(self) -> Optional[pulumi.Input[str]]:
        """
        List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
        used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        """
        return pulumi.get(self, "includes_pattern")

    @includes_pattern.setter
    def includes_pattern(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "includes_pattern", value)

    @property
    @pulumi.getter(name="listRemoteFolderItems")
    def list_remote_folder_items(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "list_remote_folder_items")

    @list_remote_folder_items.setter
    def list_remote_folder_items(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "list_remote_folder_items", value)

    @property
    @pulumi.getter(name="localAddress")
    def local_address(self) -> Optional[pulumi.Input[str]]:
        """
        The local address to be used when creating connections. Useful for specifying the interface to use on systems with
        multiple network interfaces.
        """
        return pulumi.get(self, "local_address")

    @local_address.setter
    def local_address(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "local_address", value)

    @property
    @pulumi.getter(name="metadataRetrievalTimeoutSecs")
    def metadata_retrieval_timeout_secs(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "metadata_retrieval_timeout_secs")

    @metadata_retrieval_timeout_secs.setter
    def metadata_retrieval_timeout_secs(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "metadata_retrieval_timeout_secs", value)

    @property
    @pulumi.getter(name="mismatchingMimeTypesOverrideList")
    def mismatching_mime_types_override_list(self) -> Optional[pulumi.Input[str]]:
        """
        The set of mime types that should override the block_mismatching_mime_types setting. Eg:
        'application/json,application/xml'. Default value is empty.
        """
        return pulumi.get(self, "mismatching_mime_types_override_list")

    @mismatching_mime_types_override_list.setter
    def mismatching_mime_types_override_list(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mismatching_mime_types_override_list", value)

    @property
    @pulumi.getter(name="missedCachePeriodSeconds")
    def missed_cache_period_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "missed_cache_period_seconds")

    @missed_cache_period_seconds.setter
    def missed_cache_period_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "missed_cache_period_seconds", value)

    @property
    @pulumi.getter
    def notes(self) -> Optional[pulumi.Input[str]]:
        """
        Internal description.
        """
        return pulumi.get(self, "notes")

    @notes.setter
    def notes(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "notes", value)

    @property
    @pulumi.getter
    def offline(self) -> Optional[pulumi.Input[bool]]:
        """
        If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        """
        return pulumi.get(self, "offline")

    @offline.setter
    def offline(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "offline", value)

    @property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "password", value)

    @property
    @pulumi.getter(name="priorityResolution")
    def priority_resolution(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "priority_resolution")

    @priority_resolution.setter
    def priority_resolution(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "priority_resolution", value)

    @property
    @pulumi.getter(name="projectEnvironments")
    def project_environments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "project_environments")

    @project_environments.setter
    def project_environments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "project_environments", value)

    @property
    @pulumi.getter(name="projectKey")
    def project_key(self) -> Optional[pulumi.Input[str]]:
        """
        Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
        assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        """
        return pulumi.get(self, "project_key")

    @project_key.setter
    def project_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "project_key", value)

    @property
    @pulumi.getter(name="propertySets")
    def property_sets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of property set names
        """
        return pulumi.get(self, "property_sets")

    @property_sets.setter
    def property_sets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "property_sets", value)

    @property
    @pulumi.getter
    def proxy(self) -> Optional[pulumi.Input[str]]:
        """
        Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        """
        return pulumi.get(self, "proxy")

    @proxy.setter
    def proxy(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "proxy", value)

    @property
    @pulumi.getter(name="queryParams")
    def query_params(self) -> Optional[pulumi.Input[str]]:
        """
        Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
        `param1=val1&param2=val2&param3=val3`
        """
        return pulumi.get(self, "query_params")

    @query_params.setter
    def query_params(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "query_params", value)

    @property
    @pulumi.getter(name="remoteRepoLayoutRef")
    def remote_repo_layout_ref(self) -> Optional[pulumi.Input[str]]:
        """
        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 pulumi.get(self, "remote_repo_layout_ref")

    @remote_repo_layout_ref.setter
    def remote_repo_layout_ref(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "remote_repo_layout_ref", value)

    @property
    @pulumi.getter(name="repoLayoutRef")
    def repo_layout_ref(self) -> Optional[pulumi.Input[str]]:
        """
        Repository layout key for the remote repository
        """
        return pulumi.get(self, "repo_layout_ref")

    @repo_layout_ref.setter
    def repo_layout_ref(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "repo_layout_ref", value)

    @property
    @pulumi.getter(name="retrievalCachePeriodSeconds")
    def retrieval_cache_period_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "retrieval_cache_period_seconds")

    @retrieval_cache_period_seconds.setter
    def retrieval_cache_period_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "retrieval_cache_period_seconds", value)

    @property
    @pulumi.getter(name="shareConfiguration")
    def share_configuration(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "share_configuration")

    @share_configuration.setter
    def share_configuration(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "share_configuration", value)

    @property
    @pulumi.getter(name="socketTimeoutMillis")
    def socket_timeout_millis(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "socket_timeout_millis")

    @socket_timeout_millis.setter
    def socket_timeout_millis(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "socket_timeout_millis", value)

    @property
    @pulumi.getter(name="storeArtifactsLocally")
    def store_artifacts_locally(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "store_artifacts_locally")

    @store_artifacts_locally.setter
    def store_artifacts_locally(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "store_artifacts_locally", value)

    @property
    @pulumi.getter(name="synchronizeProperties")
    def synchronize_properties(self) -> Optional[pulumi.Input[bool]]:
        """
        When set, remote artifacts are fetched along with their properties.
        """
        return pulumi.get(self, "synchronize_properties")

    @synchronize_properties.setter
    def synchronize_properties(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "synchronize_properties", value)

    @property
    @pulumi.getter(name="unusedArtifactsCleanupPeriodHours")
    def unused_artifacts_cleanup_period_hours(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "unused_artifacts_cleanup_period_hours")

    @unused_artifacts_cleanup_period_hours.setter
    def unused_artifacts_cleanup_period_hours(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "unused_artifacts_cleanup_period_hours", value)

    @property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "username", value)

    @property
    @pulumi.getter(name="vcsGitDownloadUrl")
    def vcs_git_download_url(self) -> Optional[pulumi.Input[str]]:
        """
        This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        """
        return pulumi.get(self, "vcs_git_download_url")

    @vcs_git_download_url.setter
    def vcs_git_download_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "vcs_git_download_url", value)

    @property
    @pulumi.getter(name="vcsGitProvider")
    def vcs_git_provider(self) -> Optional[pulumi.Input[str]]:
        """
        Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        """
        return pulumi.get(self, "vcs_git_provider")

    @vcs_git_provider.setter
    def vcs_git_provider(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "vcs_git_provider", value)

    @property
    @pulumi.getter(name="xrayIndex")
    def xray_index(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
        Xray settings.
        """
        return pulumi.get(self, "xray_index")

    @xray_index.setter
    def xray_index(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "xray_index", value)


@pulumi.input_type
class _RemoteComposerRepositoryState:
    def __init__(__self__, *,
                 allow_any_host_auth: Optional[pulumi.Input[bool]] = None,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 assumed_offline_period_secs: Optional[pulumi.Input[int]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 block_mismatching_mime_types: Optional[pulumi.Input[bool]] = None,
                 bypass_head_requests: Optional[pulumi.Input[bool]] = None,
                 cdn_redirect: Optional[pulumi.Input[bool]] = None,
                 client_tls_certificate: Optional[pulumi.Input[str]] = None,
                 composer_registry_url: Optional[pulumi.Input[str]] = None,
                 content_synchronisation: Optional[pulumi.Input['RemoteComposerRepositoryContentSynchronisationArgs']] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 disable_proxy: Optional[pulumi.Input[bool]] = None,
                 disable_url_normalization: Optional[pulumi.Input[bool]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 enable_cookie_management: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 hard_fail: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 list_remote_folder_items: Optional[pulumi.Input[bool]] = None,
                 local_address: Optional[pulumi.Input[str]] = None,
                 metadata_retrieval_timeout_secs: Optional[pulumi.Input[int]] = None,
                 mismatching_mime_types_override_list: Optional[pulumi.Input[str]] = None,
                 missed_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 notes: Optional[pulumi.Input[str]] = None,
                 offline: Optional[pulumi.Input[bool]] = None,
                 package_type: Optional[pulumi.Input[str]] = None,
                 password: Optional[pulumi.Input[str]] = None,
                 priority_resolution: Optional[pulumi.Input[bool]] = None,
                 project_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 project_key: Optional[pulumi.Input[str]] = None,
                 property_sets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 proxy: Optional[pulumi.Input[str]] = None,
                 query_params: Optional[pulumi.Input[str]] = None,
                 remote_repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 retrieval_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 share_configuration: Optional[pulumi.Input[bool]] = None,
                 socket_timeout_millis: Optional[pulumi.Input[int]] = None,
                 store_artifacts_locally: Optional[pulumi.Input[bool]] = None,
                 synchronize_properties: Optional[pulumi.Input[bool]] = None,
                 unused_artifacts_cleanup_period_hours: Optional[pulumi.Input[int]] = None,
                 url: Optional[pulumi.Input[str]] = None,
                 username: Optional[pulumi.Input[str]] = None,
                 vcs_git_download_url: Optional[pulumi.Input[str]] = None,
                 vcs_git_provider: Optional[pulumi.Input[str]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None):
        """
        Input properties used for looking up and filtering RemoteComposerRepository resources.
        :param pulumi.Input[bool] allow_any_host_auth: 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
               other host.
        :param pulumi.Input[bool] archive_browsing_enabled: When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
               therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
               security (e.g., cross-site scripting attacks).
        :param pulumi.Input[int] assumed_offline_period_secs: 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.
        :param pulumi.Input[bool] blacked_out: (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
               resolution.
        :param pulumi.Input[bool] block_mismatching_mime_types: 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'.
        :param pulumi.Input[bool] bypass_head_requests: 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.
        :param pulumi.Input[bool] cdn_redirect: 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'
        :param pulumi.Input[str] client_tls_certificate: Client TLS certificate name.
        :param pulumi.Input[str] composer_registry_url: Proxy remote Composer repository. Default value is `https://packagist.org`.
        :param pulumi.Input[str] description: Public description.
        :param pulumi.Input[bool] disable_proxy: 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.
        :param pulumi.Input[bool] disable_url_normalization: Whether to disable URL normalization, default is `false`.
        :param pulumi.Input[bool] download_direct: 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'.
        :param pulumi.Input[bool] enable_cookie_management: Enables cookie management if the remote repository uses cookies to manage client state.
        :param pulumi.Input[str] excludes_pattern: List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
               artifacts are excluded.
        :param pulumi.Input[bool] hard_fail: 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.
        :param pulumi.Input[str] includes_pattern: List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
               used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        :param pulumi.Input[str] key: A mandatory identifier for the repository that must be unique. It cannot begin with a number or
               contain spaces or special characters.
        :param pulumi.Input[bool] list_remote_folder_items: 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'.
        :param pulumi.Input[str] local_address: The local address to be used when creating connections. Useful for specifying the interface to use on systems with
               multiple network interfaces.
        :param pulumi.Input[int] metadata_retrieval_timeout_secs: 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.
        :param pulumi.Input[str] mismatching_mime_types_override_list: The set of mime types that should override the block_mismatching_mime_types setting. Eg:
               'application/json,application/xml'. Default value is empty.
        :param pulumi.Input[int] missed_cache_period_seconds: 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.
        :param pulumi.Input[str] notes: Internal description.
        :param pulumi.Input[bool] offline: If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        :param pulumi.Input[bool] priority_resolution: 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.
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
               assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] property_sets: List of property set names
        :param pulumi.Input[str] proxy: Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        :param pulumi.Input[str] query_params: Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
               `param1=val1&param2=val2&param3=val3`
        :param pulumi.Input[str] remote_repo_layout_ref: 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.
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the remote repository
        :param pulumi.Input[int] retrieval_cache_period_seconds: 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.
        :param pulumi.Input[int] socket_timeout_millis: 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.
        :param pulumi.Input[bool] store_artifacts_locally: 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.
        :param pulumi.Input[bool] synchronize_properties: When set, remote artifacts are fetched along with their properties.
        :param pulumi.Input[int] unused_artifacts_cleanup_period_hours: 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.
        :param pulumi.Input[str] url: The remote repo URL.
        :param pulumi.Input[str] vcs_git_download_url: This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        :param pulumi.Input[str] vcs_git_provider: Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        :param pulumi.Input[bool] xray_index: Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
               Xray settings.
        """
        if allow_any_host_auth is not None:
            pulumi.set(__self__, "allow_any_host_auth", allow_any_host_auth)
        if archive_browsing_enabled is not None:
            pulumi.set(__self__, "archive_browsing_enabled", archive_browsing_enabled)
        if assumed_offline_period_secs is not None:
            pulumi.set(__self__, "assumed_offline_period_secs", assumed_offline_period_secs)
        if blacked_out is not None:
            pulumi.set(__self__, "blacked_out", blacked_out)
        if block_mismatching_mime_types is not None:
            pulumi.set(__self__, "block_mismatching_mime_types", block_mismatching_mime_types)
        if bypass_head_requests is not None:
            pulumi.set(__self__, "bypass_head_requests", bypass_head_requests)
        if cdn_redirect is not None:
            pulumi.set(__self__, "cdn_redirect", cdn_redirect)
        if client_tls_certificate is not None:
            pulumi.set(__self__, "client_tls_certificate", client_tls_certificate)
        if composer_registry_url is not None:
            pulumi.set(__self__, "composer_registry_url", composer_registry_url)
        if content_synchronisation is not None:
            pulumi.set(__self__, "content_synchronisation", content_synchronisation)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if disable_proxy is not None:
            pulumi.set(__self__, "disable_proxy", disable_proxy)
        if disable_url_normalization is not None:
            pulumi.set(__self__, "disable_url_normalization", disable_url_normalization)
        if download_direct is not None:
            pulumi.set(__self__, "download_direct", download_direct)
        if enable_cookie_management is not None:
            pulumi.set(__self__, "enable_cookie_management", enable_cookie_management)
        if excludes_pattern is not None:
            pulumi.set(__self__, "excludes_pattern", excludes_pattern)
        if hard_fail is not None:
            pulumi.set(__self__, "hard_fail", hard_fail)
        if includes_pattern is not None:
            pulumi.set(__self__, "includes_pattern", includes_pattern)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if list_remote_folder_items is not None:
            pulumi.set(__self__, "list_remote_folder_items", list_remote_folder_items)
        if local_address is not None:
            pulumi.set(__self__, "local_address", local_address)
        if metadata_retrieval_timeout_secs is not None:
            pulumi.set(__self__, "metadata_retrieval_timeout_secs", metadata_retrieval_timeout_secs)
        if mismatching_mime_types_override_list is not None:
            pulumi.set(__self__, "mismatching_mime_types_override_list", mismatching_mime_types_override_list)
        if missed_cache_period_seconds is not None:
            pulumi.set(__self__, "missed_cache_period_seconds", missed_cache_period_seconds)
        if notes is not None:
            pulumi.set(__self__, "notes", notes)
        if offline is not None:
            pulumi.set(__self__, "offline", offline)
        if package_type is not None:
            pulumi.set(__self__, "package_type", package_type)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if priority_resolution is not None:
            pulumi.set(__self__, "priority_resolution", priority_resolution)
        if project_environments is not None:
            pulumi.set(__self__, "project_environments", project_environments)
        if project_key is not None:
            pulumi.set(__self__, "project_key", project_key)
        if property_sets is not None:
            pulumi.set(__self__, "property_sets", property_sets)
        if proxy is not None:
            pulumi.set(__self__, "proxy", proxy)
        if query_params is not None:
            pulumi.set(__self__, "query_params", query_params)
        if remote_repo_layout_ref is not None:
            pulumi.set(__self__, "remote_repo_layout_ref", remote_repo_layout_ref)
        if repo_layout_ref is not None:
            pulumi.set(__self__, "repo_layout_ref", repo_layout_ref)
        if retrieval_cache_period_seconds is not None:
            pulumi.set(__self__, "retrieval_cache_period_seconds", retrieval_cache_period_seconds)
        if share_configuration is not None:
            pulumi.set(__self__, "share_configuration", share_configuration)
        if socket_timeout_millis is not None:
            pulumi.set(__self__, "socket_timeout_millis", socket_timeout_millis)
        if store_artifacts_locally is not None:
            pulumi.set(__self__, "store_artifacts_locally", store_artifacts_locally)
        if synchronize_properties is not None:
            pulumi.set(__self__, "synchronize_properties", synchronize_properties)
        if unused_artifacts_cleanup_period_hours is not None:
            pulumi.set(__self__, "unused_artifacts_cleanup_period_hours", unused_artifacts_cleanup_period_hours)
        if url is not None:
            pulumi.set(__self__, "url", url)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if vcs_git_download_url is not None:
            pulumi.set(__self__, "vcs_git_download_url", vcs_git_download_url)
        if vcs_git_provider is not None:
            pulumi.set(__self__, "vcs_git_provider", vcs_git_provider)
        if xray_index is not None:
            pulumi.set(__self__, "xray_index", xray_index)

    @property
    @pulumi.getter(name="allowAnyHostAuth")
    def allow_any_host_auth(self) -> Optional[pulumi.Input[bool]]:
        """
        'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
        other host.
        """
        return pulumi.get(self, "allow_any_host_auth")

    @allow_any_host_auth.setter
    def allow_any_host_auth(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "allow_any_host_auth", value)

    @property
    @pulumi.getter(name="archiveBrowsingEnabled")
    def archive_browsing_enabled(self) -> Optional[pulumi.Input[bool]]:
        """
        When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
        therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
        security (e.g., cross-site scripting attacks).
        """
        return pulumi.get(self, "archive_browsing_enabled")

    @archive_browsing_enabled.setter
    def archive_browsing_enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "archive_browsing_enabled", value)

    @property
    @pulumi.getter(name="assumedOfflinePeriodSecs")
    def assumed_offline_period_secs(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "assumed_offline_period_secs")

    @assumed_offline_period_secs.setter
    def assumed_offline_period_secs(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "assumed_offline_period_secs", value)

    @property
    @pulumi.getter(name="blackedOut")
    def blacked_out(self) -> Optional[pulumi.Input[bool]]:
        """
        (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
        resolution.
        """
        return pulumi.get(self, "blacked_out")

    @blacked_out.setter
    def blacked_out(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "blacked_out", value)

    @property
    @pulumi.getter(name="blockMismatchingMimeTypes")
    def block_mismatching_mime_types(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "block_mismatching_mime_types")

    @block_mismatching_mime_types.setter
    def block_mismatching_mime_types(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "block_mismatching_mime_types", value)

    @property
    @pulumi.getter(name="bypassHeadRequests")
    def bypass_head_requests(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "bypass_head_requests")

    @bypass_head_requests.setter
    def bypass_head_requests(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "bypass_head_requests", value)

    @property
    @pulumi.getter(name="cdnRedirect")
    def cdn_redirect(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "cdn_redirect")

    @cdn_redirect.setter
    def cdn_redirect(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "cdn_redirect", value)

    @property
    @pulumi.getter(name="clientTlsCertificate")
    def client_tls_certificate(self) -> Optional[pulumi.Input[str]]:
        """
        Client TLS certificate name.
        """
        return pulumi.get(self, "client_tls_certificate")

    @client_tls_certificate.setter
    def client_tls_certificate(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_tls_certificate", value)

    @property
    @pulumi.getter(name="composerRegistryUrl")
    def composer_registry_url(self) -> Optional[pulumi.Input[str]]:
        """
        Proxy remote Composer repository. Default value is `https://packagist.org`.
        """
        return pulumi.get(self, "composer_registry_url")

    @composer_registry_url.setter
    def composer_registry_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "composer_registry_url", value)

    @property
    @pulumi.getter(name="contentSynchronisation")
    def content_synchronisation(self) -> Optional[pulumi.Input['RemoteComposerRepositoryContentSynchronisationArgs']]:
        return pulumi.get(self, "content_synchronisation")

    @content_synchronisation.setter
    def content_synchronisation(self, value: Optional[pulumi.Input['RemoteComposerRepositoryContentSynchronisationArgs']]):
        pulumi.set(self, "content_synchronisation", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Public description.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter(name="disableProxy")
    def disable_proxy(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "disable_proxy")

    @disable_proxy.setter
    def disable_proxy(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_proxy", value)

    @property
    @pulumi.getter(name="disableUrlNormalization")
    def disable_url_normalization(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether to disable URL normalization, default is `false`.
        """
        return pulumi.get(self, "disable_url_normalization")

    @disable_url_normalization.setter
    def disable_url_normalization(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_url_normalization", value)

    @property
    @pulumi.getter(name="downloadDirect")
    def download_direct(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "download_direct")

    @download_direct.setter
    def download_direct(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "download_direct", value)

    @property
    @pulumi.getter(name="enableCookieManagement")
    def enable_cookie_management(self) -> Optional[pulumi.Input[bool]]:
        """
        Enables cookie management if the remote repository uses cookies to manage client state.
        """
        return pulumi.get(self, "enable_cookie_management")

    @enable_cookie_management.setter
    def enable_cookie_management(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_cookie_management", value)

    @property
    @pulumi.getter(name="excludesPattern")
    def excludes_pattern(self) -> Optional[pulumi.Input[str]]:
        """
        List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
        artifacts are excluded.
        """
        return pulumi.get(self, "excludes_pattern")

    @excludes_pattern.setter
    def excludes_pattern(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "excludes_pattern", value)

    @property
    @pulumi.getter(name="hardFail")
    def hard_fail(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "hard_fail")

    @hard_fail.setter
    def hard_fail(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "hard_fail", value)

    @property
    @pulumi.getter(name="includesPattern")
    def includes_pattern(self) -> Optional[pulumi.Input[str]]:
        """
        List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
        used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        """
        return pulumi.get(self, "includes_pattern")

    @includes_pattern.setter
    def includes_pattern(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "includes_pattern", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[str]]:
        """
        A mandatory identifier for the repository that must be unique. It cannot begin with a number or
        contain spaces or special characters.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter(name="listRemoteFolderItems")
    def list_remote_folder_items(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "list_remote_folder_items")

    @list_remote_folder_items.setter
    def list_remote_folder_items(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "list_remote_folder_items", value)

    @property
    @pulumi.getter(name="localAddress")
    def local_address(self) -> Optional[pulumi.Input[str]]:
        """
        The local address to be used when creating connections. Useful for specifying the interface to use on systems with
        multiple network interfaces.
        """
        return pulumi.get(self, "local_address")

    @local_address.setter
    def local_address(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "local_address", value)

    @property
    @pulumi.getter(name="metadataRetrievalTimeoutSecs")
    def metadata_retrieval_timeout_secs(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "metadata_retrieval_timeout_secs")

    @metadata_retrieval_timeout_secs.setter
    def metadata_retrieval_timeout_secs(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "metadata_retrieval_timeout_secs", value)

    @property
    @pulumi.getter(name="mismatchingMimeTypesOverrideList")
    def mismatching_mime_types_override_list(self) -> Optional[pulumi.Input[str]]:
        """
        The set of mime types that should override the block_mismatching_mime_types setting. Eg:
        'application/json,application/xml'. Default value is empty.
        """
        return pulumi.get(self, "mismatching_mime_types_override_list")

    @mismatching_mime_types_override_list.setter
    def mismatching_mime_types_override_list(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "mismatching_mime_types_override_list", value)

    @property
    @pulumi.getter(name="missedCachePeriodSeconds")
    def missed_cache_period_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "missed_cache_period_seconds")

    @missed_cache_period_seconds.setter
    def missed_cache_period_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "missed_cache_period_seconds", value)

    @property
    @pulumi.getter
    def notes(self) -> Optional[pulumi.Input[str]]:
        """
        Internal description.
        """
        return pulumi.get(self, "notes")

    @notes.setter
    def notes(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "notes", value)

    @property
    @pulumi.getter
    def offline(self) -> Optional[pulumi.Input[bool]]:
        """
        If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        """
        return pulumi.get(self, "offline")

    @offline.setter
    def offline(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "offline", value)

    @property
    @pulumi.getter(name="packageType")
    def package_type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "package_type")

    @package_type.setter
    def package_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "package_type", value)

    @property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "password", value)

    @property
    @pulumi.getter(name="priorityResolution")
    def priority_resolution(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "priority_resolution")

    @priority_resolution.setter
    def priority_resolution(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "priority_resolution", value)

    @property
    @pulumi.getter(name="projectEnvironments")
    def project_environments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "project_environments")

    @project_environments.setter
    def project_environments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "project_environments", value)

    @property
    @pulumi.getter(name="projectKey")
    def project_key(self) -> Optional[pulumi.Input[str]]:
        """
        Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
        assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        """
        return pulumi.get(self, "project_key")

    @project_key.setter
    def project_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "project_key", value)

    @property
    @pulumi.getter(name="propertySets")
    def property_sets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of property set names
        """
        return pulumi.get(self, "property_sets")

    @property_sets.setter
    def property_sets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "property_sets", value)

    @property
    @pulumi.getter
    def proxy(self) -> Optional[pulumi.Input[str]]:
        """
        Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        """
        return pulumi.get(self, "proxy")

    @proxy.setter
    def proxy(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "proxy", value)

    @property
    @pulumi.getter(name="queryParams")
    def query_params(self) -> Optional[pulumi.Input[str]]:
        """
        Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
        `param1=val1&param2=val2&param3=val3`
        """
        return pulumi.get(self, "query_params")

    @query_params.setter
    def query_params(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "query_params", value)

    @property
    @pulumi.getter(name="remoteRepoLayoutRef")
    def remote_repo_layout_ref(self) -> Optional[pulumi.Input[str]]:
        """
        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 pulumi.get(self, "remote_repo_layout_ref")

    @remote_repo_layout_ref.setter
    def remote_repo_layout_ref(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "remote_repo_layout_ref", value)

    @property
    @pulumi.getter(name="repoLayoutRef")
    def repo_layout_ref(self) -> Optional[pulumi.Input[str]]:
        """
        Repository layout key for the remote repository
        """
        return pulumi.get(self, "repo_layout_ref")

    @repo_layout_ref.setter
    def repo_layout_ref(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "repo_layout_ref", value)

    @property
    @pulumi.getter(name="retrievalCachePeriodSeconds")
    def retrieval_cache_period_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "retrieval_cache_period_seconds")

    @retrieval_cache_period_seconds.setter
    def retrieval_cache_period_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "retrieval_cache_period_seconds", value)

    @property
    @pulumi.getter(name="shareConfiguration")
    def share_configuration(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "share_configuration")

    @share_configuration.setter
    def share_configuration(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "share_configuration", value)

    @property
    @pulumi.getter(name="socketTimeoutMillis")
    def socket_timeout_millis(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "socket_timeout_millis")

    @socket_timeout_millis.setter
    def socket_timeout_millis(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "socket_timeout_millis", value)

    @property
    @pulumi.getter(name="storeArtifactsLocally")
    def store_artifacts_locally(self) -> Optional[pulumi.Input[bool]]:
        """
        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 pulumi.get(self, "store_artifacts_locally")

    @store_artifacts_locally.setter
    def store_artifacts_locally(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "store_artifacts_locally", value)

    @property
    @pulumi.getter(name="synchronizeProperties")
    def synchronize_properties(self) -> Optional[pulumi.Input[bool]]:
        """
        When set, remote artifacts are fetched along with their properties.
        """
        return pulumi.get(self, "synchronize_properties")

    @synchronize_properties.setter
    def synchronize_properties(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "synchronize_properties", value)

    @property
    @pulumi.getter(name="unusedArtifactsCleanupPeriodHours")
    def unused_artifacts_cleanup_period_hours(self) -> Optional[pulumi.Input[int]]:
        """
        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 pulumi.get(self, "unused_artifacts_cleanup_period_hours")

    @unused_artifacts_cleanup_period_hours.setter
    def unused_artifacts_cleanup_period_hours(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "unused_artifacts_cleanup_period_hours", value)

    @property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[str]]:
        """
        The remote repo URL.
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "url", value)

    @property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "username", value)

    @property
    @pulumi.getter(name="vcsGitDownloadUrl")
    def vcs_git_download_url(self) -> Optional[pulumi.Input[str]]:
        """
        This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        """
        return pulumi.get(self, "vcs_git_download_url")

    @vcs_git_download_url.setter
    def vcs_git_download_url(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "vcs_git_download_url", value)

    @property
    @pulumi.getter(name="vcsGitProvider")
    def vcs_git_provider(self) -> Optional[pulumi.Input[str]]:
        """
        Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        """
        return pulumi.get(self, "vcs_git_provider")

    @vcs_git_provider.setter
    def vcs_git_provider(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "vcs_git_provider", value)

    @property
    @pulumi.getter(name="xrayIndex")
    def xray_index(self) -> Optional[pulumi.Input[bool]]:
        """
        Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
        Xray settings.
        """
        return pulumi.get(self, "xray_index")

    @xray_index.setter
    def xray_index(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "xray_index", value)


class RemoteComposerRepository(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 allow_any_host_auth: Optional[pulumi.Input[bool]] = None,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 assumed_offline_period_secs: Optional[pulumi.Input[int]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 block_mismatching_mime_types: Optional[pulumi.Input[bool]] = None,
                 bypass_head_requests: Optional[pulumi.Input[bool]] = None,
                 cdn_redirect: Optional[pulumi.Input[bool]] = None,
                 client_tls_certificate: Optional[pulumi.Input[str]] = None,
                 composer_registry_url: Optional[pulumi.Input[str]] = None,
                 content_synchronisation: Optional[pulumi.Input[pulumi.InputType['RemoteComposerRepositoryContentSynchronisationArgs']]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 disable_proxy: Optional[pulumi.Input[bool]] = None,
                 disable_url_normalization: Optional[pulumi.Input[bool]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 enable_cookie_management: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 hard_fail: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 list_remote_folder_items: Optional[pulumi.Input[bool]] = None,
                 local_address: Optional[pulumi.Input[str]] = None,
                 metadata_retrieval_timeout_secs: Optional[pulumi.Input[int]] = None,
                 mismatching_mime_types_override_list: Optional[pulumi.Input[str]] = None,
                 missed_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 notes: Optional[pulumi.Input[str]] = None,
                 offline: Optional[pulumi.Input[bool]] = None,
                 password: Optional[pulumi.Input[str]] = None,
                 priority_resolution: Optional[pulumi.Input[bool]] = None,
                 project_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 project_key: Optional[pulumi.Input[str]] = None,
                 property_sets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 proxy: Optional[pulumi.Input[str]] = None,
                 query_params: Optional[pulumi.Input[str]] = None,
                 remote_repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 retrieval_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 share_configuration: Optional[pulumi.Input[bool]] = None,
                 socket_timeout_millis: Optional[pulumi.Input[int]] = None,
                 store_artifacts_locally: Optional[pulumi.Input[bool]] = None,
                 synchronize_properties: Optional[pulumi.Input[bool]] = None,
                 unused_artifacts_cleanup_period_hours: Optional[pulumi.Input[int]] = None,
                 url: Optional[pulumi.Input[str]] = None,
                 username: Optional[pulumi.Input[str]] = None,
                 vcs_git_download_url: Optional[pulumi.Input[str]] = None,
                 vcs_git_provider: Optional[pulumi.Input[str]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None,
                 __props__=None):
        """
        Creates a remote PHP Composer repository.
        Official documentation can be found [here](https://www.jfrog.com/confluence/display/JFROG/PHP+Composer+Repositories).

        ## Example Usage

        ```python
        import pulumi
        import pulumi_artifactory as artifactory

        my_remote_composer = artifactory.RemoteComposerRepository("my-remote-composer",
            key="my-remote-composer",
            url="https://github.com/",
            vcs_git_provider="GITHUB")
        ```

        ## Import

        Remote repositories can be imported using their name, e.g.

        ```sh
        $ pulumi import artifactory:index/remoteComposerRepository:RemoteComposerRepository my-remote-composer my-remote-composer
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[bool] allow_any_host_auth: 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
               other host.
        :param pulumi.Input[bool] archive_browsing_enabled: When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
               therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
               security (e.g., cross-site scripting attacks).
        :param pulumi.Input[int] assumed_offline_period_secs: 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.
        :param pulumi.Input[bool] blacked_out: (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
               resolution.
        :param pulumi.Input[bool] block_mismatching_mime_types: 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'.
        :param pulumi.Input[bool] bypass_head_requests: 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.
        :param pulumi.Input[bool] cdn_redirect: 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'
        :param pulumi.Input[str] client_tls_certificate: Client TLS certificate name.
        :param pulumi.Input[str] composer_registry_url: Proxy remote Composer repository. Default value is `https://packagist.org`.
        :param pulumi.Input[str] description: Public description.
        :param pulumi.Input[bool] disable_proxy: 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.
        :param pulumi.Input[bool] disable_url_normalization: Whether to disable URL normalization, default is `false`.
        :param pulumi.Input[bool] download_direct: 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'.
        :param pulumi.Input[bool] enable_cookie_management: Enables cookie management if the remote repository uses cookies to manage client state.
        :param pulumi.Input[str] excludes_pattern: List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
               artifacts are excluded.
        :param pulumi.Input[bool] hard_fail: 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.
        :param pulumi.Input[str] includes_pattern: List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
               used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        :param pulumi.Input[str] key: A mandatory identifier for the repository that must be unique. It cannot begin with a number or
               contain spaces or special characters.
        :param pulumi.Input[bool] list_remote_folder_items: 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'.
        :param pulumi.Input[str] local_address: The local address to be used when creating connections. Useful for specifying the interface to use on systems with
               multiple network interfaces.
        :param pulumi.Input[int] metadata_retrieval_timeout_secs: 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.
        :param pulumi.Input[str] mismatching_mime_types_override_list: The set of mime types that should override the block_mismatching_mime_types setting. Eg:
               'application/json,application/xml'. Default value is empty.
        :param pulumi.Input[int] missed_cache_period_seconds: 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.
        :param pulumi.Input[str] notes: Internal description.
        :param pulumi.Input[bool] offline: If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        :param pulumi.Input[bool] priority_resolution: 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.
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
               assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] property_sets: List of property set names
        :param pulumi.Input[str] proxy: Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        :param pulumi.Input[str] query_params: Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
               `param1=val1&param2=val2&param3=val3`
        :param pulumi.Input[str] remote_repo_layout_ref: 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.
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the remote repository
        :param pulumi.Input[int] retrieval_cache_period_seconds: 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.
        :param pulumi.Input[int] socket_timeout_millis: 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.
        :param pulumi.Input[bool] store_artifacts_locally: 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.
        :param pulumi.Input[bool] synchronize_properties: When set, remote artifacts are fetched along with their properties.
        :param pulumi.Input[int] unused_artifacts_cleanup_period_hours: 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.
        :param pulumi.Input[str] url: The remote repo URL.
        :param pulumi.Input[str] vcs_git_download_url: This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        :param pulumi.Input[str] vcs_git_provider: Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        :param pulumi.Input[bool] xray_index: Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
               Xray settings.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: RemoteComposerRepositoryArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Creates a remote PHP Composer repository.
        Official documentation can be found [here](https://www.jfrog.com/confluence/display/JFROG/PHP+Composer+Repositories).

        ## Example Usage

        ```python
        import pulumi
        import pulumi_artifactory as artifactory

        my_remote_composer = artifactory.RemoteComposerRepository("my-remote-composer",
            key="my-remote-composer",
            url="https://github.com/",
            vcs_git_provider="GITHUB")
        ```

        ## Import

        Remote repositories can be imported using their name, e.g.

        ```sh
        $ pulumi import artifactory:index/remoteComposerRepository:RemoteComposerRepository my-remote-composer my-remote-composer
        ```

        :param str resource_name: The name of the resource.
        :param RemoteComposerRepositoryArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(RemoteComposerRepositoryArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 allow_any_host_auth: Optional[pulumi.Input[bool]] = None,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 assumed_offline_period_secs: Optional[pulumi.Input[int]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 block_mismatching_mime_types: Optional[pulumi.Input[bool]] = None,
                 bypass_head_requests: Optional[pulumi.Input[bool]] = None,
                 cdn_redirect: Optional[pulumi.Input[bool]] = None,
                 client_tls_certificate: Optional[pulumi.Input[str]] = None,
                 composer_registry_url: Optional[pulumi.Input[str]] = None,
                 content_synchronisation: Optional[pulumi.Input[pulumi.InputType['RemoteComposerRepositoryContentSynchronisationArgs']]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 disable_proxy: Optional[pulumi.Input[bool]] = None,
                 disable_url_normalization: Optional[pulumi.Input[bool]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 enable_cookie_management: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 hard_fail: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 list_remote_folder_items: Optional[pulumi.Input[bool]] = None,
                 local_address: Optional[pulumi.Input[str]] = None,
                 metadata_retrieval_timeout_secs: Optional[pulumi.Input[int]] = None,
                 mismatching_mime_types_override_list: Optional[pulumi.Input[str]] = None,
                 missed_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 notes: Optional[pulumi.Input[str]] = None,
                 offline: Optional[pulumi.Input[bool]] = None,
                 password: Optional[pulumi.Input[str]] = None,
                 priority_resolution: Optional[pulumi.Input[bool]] = None,
                 project_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 project_key: Optional[pulumi.Input[str]] = None,
                 property_sets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 proxy: Optional[pulumi.Input[str]] = None,
                 query_params: Optional[pulumi.Input[str]] = None,
                 remote_repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 retrieval_cache_period_seconds: Optional[pulumi.Input[int]] = None,
                 share_configuration: Optional[pulumi.Input[bool]] = None,
                 socket_timeout_millis: Optional[pulumi.Input[int]] = None,
                 store_artifacts_locally: Optional[pulumi.Input[bool]] = None,
                 synchronize_properties: Optional[pulumi.Input[bool]] = None,
                 unused_artifacts_cleanup_period_hours: Optional[pulumi.Input[int]] = None,
                 url: Optional[pulumi.Input[str]] = None,
                 username: Optional[pulumi.Input[str]] = None,
                 vcs_git_download_url: Optional[pulumi.Input[str]] = None,
                 vcs_git_provider: Optional[pulumi.Input[str]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = RemoteComposerRepositoryArgs.__new__(RemoteComposerRepositoryArgs)

            __props__.__dict__["allow_any_host_auth"] = allow_any_host_auth
            __props__.__dict__["archive_browsing_enabled"] = archive_browsing_enabled
            __props__.__dict__["assumed_offline_period_secs"] = assumed_offline_period_secs
            __props__.__dict__["blacked_out"] = blacked_out
            __props__.__dict__["block_mismatching_mime_types"] = block_mismatching_mime_types
            __props__.__dict__["bypass_head_requests"] = bypass_head_requests
            __props__.__dict__["cdn_redirect"] = cdn_redirect
            __props__.__dict__["client_tls_certificate"] = client_tls_certificate
            __props__.__dict__["composer_registry_url"] = composer_registry_url
            __props__.__dict__["content_synchronisation"] = content_synchronisation
            __props__.__dict__["description"] = description
            __props__.__dict__["disable_proxy"] = disable_proxy
            __props__.__dict__["disable_url_normalization"] = disable_url_normalization
            __props__.__dict__["download_direct"] = download_direct
            __props__.__dict__["enable_cookie_management"] = enable_cookie_management
            __props__.__dict__["excludes_pattern"] = excludes_pattern
            __props__.__dict__["hard_fail"] = hard_fail
            __props__.__dict__["includes_pattern"] = includes_pattern
            if key is None and not opts.urn:
                raise TypeError("Missing required property 'key'")
            __props__.__dict__["key"] = key
            __props__.__dict__["list_remote_folder_items"] = list_remote_folder_items
            __props__.__dict__["local_address"] = local_address
            __props__.__dict__["metadata_retrieval_timeout_secs"] = metadata_retrieval_timeout_secs
            __props__.__dict__["mismatching_mime_types_override_list"] = mismatching_mime_types_override_list
            __props__.__dict__["missed_cache_period_seconds"] = missed_cache_period_seconds
            __props__.__dict__["notes"] = notes
            __props__.__dict__["offline"] = offline
            __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password)
            __props__.__dict__["priority_resolution"] = priority_resolution
            __props__.__dict__["project_environments"] = project_environments
            __props__.__dict__["project_key"] = project_key
            __props__.__dict__["property_sets"] = property_sets
            __props__.__dict__["proxy"] = proxy
            __props__.__dict__["query_params"] = query_params
            __props__.__dict__["remote_repo_layout_ref"] = remote_repo_layout_ref
            __props__.__dict__["repo_layout_ref"] = repo_layout_ref
            __props__.__dict__["retrieval_cache_period_seconds"] = retrieval_cache_period_seconds
            __props__.__dict__["share_configuration"] = share_configuration
            __props__.__dict__["socket_timeout_millis"] = socket_timeout_millis
            __props__.__dict__["store_artifacts_locally"] = store_artifacts_locally
            __props__.__dict__["synchronize_properties"] = synchronize_properties
            __props__.__dict__["unused_artifacts_cleanup_period_hours"] = unused_artifacts_cleanup_period_hours
            if url is None and not opts.urn:
                raise TypeError("Missing required property 'url'")
            __props__.__dict__["url"] = url
            __props__.__dict__["username"] = username
            __props__.__dict__["vcs_git_download_url"] = vcs_git_download_url
            __props__.__dict__["vcs_git_provider"] = vcs_git_provider
            __props__.__dict__["xray_index"] = xray_index
            __props__.__dict__["package_type"] = None
        secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
        opts = pulumi.ResourceOptions.merge(opts, secret_opts)
        super(RemoteComposerRepository, __self__).__init__(
            'artifactory:index/remoteComposerRepository:RemoteComposerRepository',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            allow_any_host_auth: Optional[pulumi.Input[bool]] = None,
            archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
            assumed_offline_period_secs: Optional[pulumi.Input[int]] = None,
            blacked_out: Optional[pulumi.Input[bool]] = None,
            block_mismatching_mime_types: Optional[pulumi.Input[bool]] = None,
            bypass_head_requests: Optional[pulumi.Input[bool]] = None,
            cdn_redirect: Optional[pulumi.Input[bool]] = None,
            client_tls_certificate: Optional[pulumi.Input[str]] = None,
            composer_registry_url: Optional[pulumi.Input[str]] = None,
            content_synchronisation: Optional[pulumi.Input[pulumi.InputType['RemoteComposerRepositoryContentSynchronisationArgs']]] = None,
            description: Optional[pulumi.Input[str]] = None,
            disable_proxy: Optional[pulumi.Input[bool]] = None,
            disable_url_normalization: Optional[pulumi.Input[bool]] = None,
            download_direct: Optional[pulumi.Input[bool]] = None,
            enable_cookie_management: Optional[pulumi.Input[bool]] = None,
            excludes_pattern: Optional[pulumi.Input[str]] = None,
            hard_fail: Optional[pulumi.Input[bool]] = None,
            includes_pattern: Optional[pulumi.Input[str]] = None,
            key: Optional[pulumi.Input[str]] = None,
            list_remote_folder_items: Optional[pulumi.Input[bool]] = None,
            local_address: Optional[pulumi.Input[str]] = None,
            metadata_retrieval_timeout_secs: Optional[pulumi.Input[int]] = None,
            mismatching_mime_types_override_list: Optional[pulumi.Input[str]] = None,
            missed_cache_period_seconds: Optional[pulumi.Input[int]] = None,
            notes: Optional[pulumi.Input[str]] = None,
            offline: Optional[pulumi.Input[bool]] = None,
            package_type: Optional[pulumi.Input[str]] = None,
            password: Optional[pulumi.Input[str]] = None,
            priority_resolution: Optional[pulumi.Input[bool]] = None,
            project_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
            project_key: Optional[pulumi.Input[str]] = None,
            property_sets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
            proxy: Optional[pulumi.Input[str]] = None,
            query_params: Optional[pulumi.Input[str]] = None,
            remote_repo_layout_ref: Optional[pulumi.Input[str]] = None,
            repo_layout_ref: Optional[pulumi.Input[str]] = None,
            retrieval_cache_period_seconds: Optional[pulumi.Input[int]] = None,
            share_configuration: Optional[pulumi.Input[bool]] = None,
            socket_timeout_millis: Optional[pulumi.Input[int]] = None,
            store_artifacts_locally: Optional[pulumi.Input[bool]] = None,
            synchronize_properties: Optional[pulumi.Input[bool]] = None,
            unused_artifacts_cleanup_period_hours: Optional[pulumi.Input[int]] = None,
            url: Optional[pulumi.Input[str]] = None,
            username: Optional[pulumi.Input[str]] = None,
            vcs_git_download_url: Optional[pulumi.Input[str]] = None,
            vcs_git_provider: Optional[pulumi.Input[str]] = None,
            xray_index: Optional[pulumi.Input[bool]] = None) -> 'RemoteComposerRepository':
        """
        Get an existing RemoteComposerRepository resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[bool] allow_any_host_auth: 'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
               other host.
        :param pulumi.Input[bool] archive_browsing_enabled: When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
               therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
               security (e.g., cross-site scripting attacks).
        :param pulumi.Input[int] assumed_offline_period_secs: 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.
        :param pulumi.Input[bool] blacked_out: (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
               resolution.
        :param pulumi.Input[bool] block_mismatching_mime_types: 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'.
        :param pulumi.Input[bool] bypass_head_requests: 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.
        :param pulumi.Input[bool] cdn_redirect: 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'
        :param pulumi.Input[str] client_tls_certificate: Client TLS certificate name.
        :param pulumi.Input[str] composer_registry_url: Proxy remote Composer repository. Default value is `https://packagist.org`.
        :param pulumi.Input[str] description: Public description.
        :param pulumi.Input[bool] disable_proxy: 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.
        :param pulumi.Input[bool] disable_url_normalization: Whether to disable URL normalization, default is `false`.
        :param pulumi.Input[bool] download_direct: 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'.
        :param pulumi.Input[bool] enable_cookie_management: Enables cookie management if the remote repository uses cookies to manage client state.
        :param pulumi.Input[str] excludes_pattern: List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
               artifacts are excluded.
        :param pulumi.Input[bool] hard_fail: 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.
        :param pulumi.Input[str] includes_pattern: List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
               used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        :param pulumi.Input[str] key: A mandatory identifier for the repository that must be unique. It cannot begin with a number or
               contain spaces or special characters.
        :param pulumi.Input[bool] list_remote_folder_items: 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'.
        :param pulumi.Input[str] local_address: The local address to be used when creating connections. Useful for specifying the interface to use on systems with
               multiple network interfaces.
        :param pulumi.Input[int] metadata_retrieval_timeout_secs: 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.
        :param pulumi.Input[str] mismatching_mime_types_override_list: The set of mime types that should override the block_mismatching_mime_types setting. Eg:
               'application/json,application/xml'. Default value is empty.
        :param pulumi.Input[int] missed_cache_period_seconds: 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.
        :param pulumi.Input[str] notes: Internal description.
        :param pulumi.Input[bool] offline: If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        :param pulumi.Input[bool] priority_resolution: 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.
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
               assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] property_sets: List of property set names
        :param pulumi.Input[str] proxy: Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        :param pulumi.Input[str] query_params: Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
               `param1=val1&param2=val2&param3=val3`
        :param pulumi.Input[str] remote_repo_layout_ref: 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.
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the remote repository
        :param pulumi.Input[int] retrieval_cache_period_seconds: 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.
        :param pulumi.Input[int] socket_timeout_millis: 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.
        :param pulumi.Input[bool] store_artifacts_locally: 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.
        :param pulumi.Input[bool] synchronize_properties: When set, remote artifacts are fetched along with their properties.
        :param pulumi.Input[int] unused_artifacts_cleanup_period_hours: 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.
        :param pulumi.Input[str] url: The remote repo URL.
        :param pulumi.Input[str] vcs_git_download_url: This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        :param pulumi.Input[str] vcs_git_provider: Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        :param pulumi.Input[bool] xray_index: Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
               Xray settings.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _RemoteComposerRepositoryState.__new__(_RemoteComposerRepositoryState)

        __props__.__dict__["allow_any_host_auth"] = allow_any_host_auth
        __props__.__dict__["archive_browsing_enabled"] = archive_browsing_enabled
        __props__.__dict__["assumed_offline_period_secs"] = assumed_offline_period_secs
        __props__.__dict__["blacked_out"] = blacked_out
        __props__.__dict__["block_mismatching_mime_types"] = block_mismatching_mime_types
        __props__.__dict__["bypass_head_requests"] = bypass_head_requests
        __props__.__dict__["cdn_redirect"] = cdn_redirect
        __props__.__dict__["client_tls_certificate"] = client_tls_certificate
        __props__.__dict__["composer_registry_url"] = composer_registry_url
        __props__.__dict__["content_synchronisation"] = content_synchronisation
        __props__.__dict__["description"] = description
        __props__.__dict__["disable_proxy"] = disable_proxy
        __props__.__dict__["disable_url_normalization"] = disable_url_normalization
        __props__.__dict__["download_direct"] = download_direct
        __props__.__dict__["enable_cookie_management"] = enable_cookie_management
        __props__.__dict__["excludes_pattern"] = excludes_pattern
        __props__.__dict__["hard_fail"] = hard_fail
        __props__.__dict__["includes_pattern"] = includes_pattern
        __props__.__dict__["key"] = key
        __props__.__dict__["list_remote_folder_items"] = list_remote_folder_items
        __props__.__dict__["local_address"] = local_address
        __props__.__dict__["metadata_retrieval_timeout_secs"] = metadata_retrieval_timeout_secs
        __props__.__dict__["mismatching_mime_types_override_list"] = mismatching_mime_types_override_list
        __props__.__dict__["missed_cache_period_seconds"] = missed_cache_period_seconds
        __props__.__dict__["notes"] = notes
        __props__.__dict__["offline"] = offline
        __props__.__dict__["package_type"] = package_type
        __props__.__dict__["password"] = password
        __props__.__dict__["priority_resolution"] = priority_resolution
        __props__.__dict__["project_environments"] = project_environments
        __props__.__dict__["project_key"] = project_key
        __props__.__dict__["property_sets"] = property_sets
        __props__.__dict__["proxy"] = proxy
        __props__.__dict__["query_params"] = query_params
        __props__.__dict__["remote_repo_layout_ref"] = remote_repo_layout_ref
        __props__.__dict__["repo_layout_ref"] = repo_layout_ref
        __props__.__dict__["retrieval_cache_period_seconds"] = retrieval_cache_period_seconds
        __props__.__dict__["share_configuration"] = share_configuration
        __props__.__dict__["socket_timeout_millis"] = socket_timeout_millis
        __props__.__dict__["store_artifacts_locally"] = store_artifacts_locally
        __props__.__dict__["synchronize_properties"] = synchronize_properties
        __props__.__dict__["unused_artifacts_cleanup_period_hours"] = unused_artifacts_cleanup_period_hours
        __props__.__dict__["url"] = url
        __props__.__dict__["username"] = username
        __props__.__dict__["vcs_git_download_url"] = vcs_git_download_url
        __props__.__dict__["vcs_git_provider"] = vcs_git_provider
        __props__.__dict__["xray_index"] = xray_index
        return RemoteComposerRepository(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="allowAnyHostAuth")
    def allow_any_host_auth(self) -> pulumi.Output[Optional[bool]]:
        """
        'Lenient Host Authentication' in the UI. Allow credentials of this repository to be used on requests redirected to any
        other host.
        """
        return pulumi.get(self, "allow_any_host_auth")

    @property
    @pulumi.getter(name="archiveBrowsingEnabled")
    def archive_browsing_enabled(self) -> pulumi.Output[Optional[bool]]:
        """
        When set, you may view content such as HTML or Javadoc files directly from Artifactory. This may not be safe and
        therefore requires strict content moderation to prevent malicious users from uploading content that may compromise
        security (e.g., cross-site scripting attacks).
        """
        return pulumi.get(self, "archive_browsing_enabled")

    @property
    @pulumi.getter(name="assumedOfflinePeriodSecs")
    def assumed_offline_period_secs(self) -> pulumi.Output[Optional[int]]:
        """
        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 pulumi.get(self, "assumed_offline_period_secs")

    @property
    @pulumi.getter(name="blackedOut")
    def blacked_out(self) -> pulumi.Output[Optional[bool]]:
        """
        (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact
        resolution.
        """
        return pulumi.get(self, "blacked_out")

    @property
    @pulumi.getter(name="blockMismatchingMimeTypes")
    def block_mismatching_mime_types(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "block_mismatching_mime_types")

    @property
    @pulumi.getter(name="bypassHeadRequests")
    def bypass_head_requests(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "bypass_head_requests")

    @property
    @pulumi.getter(name="cdnRedirect")
    def cdn_redirect(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "cdn_redirect")

    @property
    @pulumi.getter(name="clientTlsCertificate")
    def client_tls_certificate(self) -> pulumi.Output[str]:
        """
        Client TLS certificate name.
        """
        return pulumi.get(self, "client_tls_certificate")

    @property
    @pulumi.getter(name="composerRegistryUrl")
    def composer_registry_url(self) -> pulumi.Output[Optional[str]]:
        """
        Proxy remote Composer repository. Default value is `https://packagist.org`.
        """
        return pulumi.get(self, "composer_registry_url")

    @property
    @pulumi.getter(name="contentSynchronisation")
    def content_synchronisation(self) -> pulumi.Output['outputs.RemoteComposerRepositoryContentSynchronisation']:
        return pulumi.get(self, "content_synchronisation")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[Optional[str]]:
        """
        Public description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="disableProxy")
    def disable_proxy(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "disable_proxy")

    @property
    @pulumi.getter(name="disableUrlNormalization")
    def disable_url_normalization(self) -> pulumi.Output[Optional[bool]]:
        """
        Whether to disable URL normalization, default is `false`.
        """
        return pulumi.get(self, "disable_url_normalization")

    @property
    @pulumi.getter(name="downloadDirect")
    def download_direct(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "download_direct")

    @property
    @pulumi.getter(name="enableCookieManagement")
    def enable_cookie_management(self) -> pulumi.Output[Optional[bool]]:
        """
        Enables cookie management if the remote repository uses cookies to manage client state.
        """
        return pulumi.get(self, "enable_cookie_management")

    @property
    @pulumi.getter(name="excludesPattern")
    def excludes_pattern(self) -> pulumi.Output[Optional[str]]:
        """
        List of artifact patterns to exclude when evaluating artifact requests, in the form of x/y/**/z/*.By default no
        artifacts are excluded.
        """
        return pulumi.get(self, "excludes_pattern")

    @property
    @pulumi.getter(name="hardFail")
    def hard_fail(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "hard_fail")

    @property
    @pulumi.getter(name="includesPattern")
    def includes_pattern(self) -> pulumi.Output[Optional[str]]:
        """
        List of comma-separated artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/*. When
        used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/*).
        """
        return pulumi.get(self, "includes_pattern")

    @property
    @pulumi.getter
    def key(self) -> pulumi.Output[str]:
        """
        A mandatory identifier for the repository that must be unique. It cannot begin with a number or
        contain spaces or special characters.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter(name="listRemoteFolderItems")
    def list_remote_folder_items(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "list_remote_folder_items")

    @property
    @pulumi.getter(name="localAddress")
    def local_address(self) -> pulumi.Output[Optional[str]]:
        """
        The local address to be used when creating connections. Useful for specifying the interface to use on systems with
        multiple network interfaces.
        """
        return pulumi.get(self, "local_address")

    @property
    @pulumi.getter(name="metadataRetrievalTimeoutSecs")
    def metadata_retrieval_timeout_secs(self) -> pulumi.Output[Optional[int]]:
        """
        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 pulumi.get(self, "metadata_retrieval_timeout_secs")

    @property
    @pulumi.getter(name="mismatchingMimeTypesOverrideList")
    def mismatching_mime_types_override_list(self) -> pulumi.Output[Optional[str]]:
        """
        The set of mime types that should override the block_mismatching_mime_types setting. Eg:
        'application/json,application/xml'. Default value is empty.
        """
        return pulumi.get(self, "mismatching_mime_types_override_list")

    @property
    @pulumi.getter(name="missedCachePeriodSeconds")
    def missed_cache_period_seconds(self) -> pulumi.Output[Optional[int]]:
        """
        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 pulumi.get(self, "missed_cache_period_seconds")

    @property
    @pulumi.getter
    def notes(self) -> pulumi.Output[Optional[str]]:
        """
        Internal description.
        """
        return pulumi.get(self, "notes")

    @property
    @pulumi.getter
    def offline(self) -> pulumi.Output[Optional[bool]]:
        """
        If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved.
        """
        return pulumi.get(self, "offline")

    @property
    @pulumi.getter(name="packageType")
    def package_type(self) -> pulumi.Output[str]:
        return pulumi.get(self, "package_type")

    @property
    @pulumi.getter
    def password(self) -> pulumi.Output[Optional[str]]:
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="priorityResolution")
    def priority_resolution(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "priority_resolution")

    @property
    @pulumi.getter(name="projectEnvironments")
    def project_environments(self) -> pulumi.Output[Sequence[str]]:
        return pulumi.get(self, "project_environments")

    @property
    @pulumi.getter(name="projectKey")
    def project_key(self) -> pulumi.Output[Optional[str]]:
        """
        Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When
        assigning repository to a project, repository key must be prefixed with project key, separated by a dash.
        """
        return pulumi.get(self, "project_key")

    @property
    @pulumi.getter(name="propertySets")
    def property_sets(self) -> pulumi.Output[Optional[Sequence[str]]]:
        """
        List of property set names
        """
        return pulumi.get(self, "property_sets")

    @property
    @pulumi.getter
    def proxy(self) -> pulumi.Output[Optional[str]]:
        """
        Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.
        """
        return pulumi.get(self, "proxy")

    @property
    @pulumi.getter(name="queryParams")
    def query_params(self) -> pulumi.Output[Optional[str]]:
        """
        Custom HTTP query parameters that will be automatically included in all remote resource requests. For example:
        `param1=val1&param2=val2&param3=val3`
        """
        return pulumi.get(self, "query_params")

    @property
    @pulumi.getter(name="remoteRepoLayoutRef")
    def remote_repo_layout_ref(self) -> pulumi.Output[Optional[str]]:
        """
        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 pulumi.get(self, "remote_repo_layout_ref")

    @property
    @pulumi.getter(name="repoLayoutRef")
    def repo_layout_ref(self) -> pulumi.Output[Optional[str]]:
        """
        Repository layout key for the remote repository
        """
        return pulumi.get(self, "repo_layout_ref")

    @property
    @pulumi.getter(name="retrievalCachePeriodSeconds")
    def retrieval_cache_period_seconds(self) -> pulumi.Output[Optional[int]]:
        """
        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 pulumi.get(self, "retrieval_cache_period_seconds")

    @property
    @pulumi.getter(name="shareConfiguration")
    def share_configuration(self) -> pulumi.Output[bool]:
        return pulumi.get(self, "share_configuration")

    @property
    @pulumi.getter(name="socketTimeoutMillis")
    def socket_timeout_millis(self) -> pulumi.Output[Optional[int]]:
        """
        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 pulumi.get(self, "socket_timeout_millis")

    @property
    @pulumi.getter(name="storeArtifactsLocally")
    def store_artifacts_locally(self) -> pulumi.Output[Optional[bool]]:
        """
        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 pulumi.get(self, "store_artifacts_locally")

    @property
    @pulumi.getter(name="synchronizeProperties")
    def synchronize_properties(self) -> pulumi.Output[Optional[bool]]:
        """
        When set, remote artifacts are fetched along with their properties.
        """
        return pulumi.get(self, "synchronize_properties")

    @property
    @pulumi.getter(name="unusedArtifactsCleanupPeriodHours")
    def unused_artifacts_cleanup_period_hours(self) -> pulumi.Output[Optional[int]]:
        """
        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 pulumi.get(self, "unused_artifacts_cleanup_period_hours")

    @property
    @pulumi.getter
    def url(self) -> pulumi.Output[str]:
        """
        The remote repo URL.
        """
        return pulumi.get(self, "url")

    @property
    @pulumi.getter
    def username(self) -> pulumi.Output[Optional[str]]:
        return pulumi.get(self, "username")

    @property
    @pulumi.getter(name="vcsGitDownloadUrl")
    def vcs_git_download_url(self) -> pulumi.Output[Optional[str]]:
        """
        This attribute is used when vcs_git_provider is set to `CUSTOM`. Provided URL will be used as proxy.
        """
        return pulumi.get(self, "vcs_git_download_url")

    @property
    @pulumi.getter(name="vcsGitProvider")
    def vcs_git_provider(self) -> pulumi.Output[Optional[str]]:
        """
        Artifactory supports proxying the following Git providers out-of-the-box: GitHub or a remote Artifactory instance. Default value is `GITHUB`. Possible values are: `GITHUB`, `BITBUCKET`, `OLDSTASH`, `STASH`, `ARTIFACTORY`, `CUSTOM`.
        """
        return pulumi.get(self, "vcs_git_provider")

    @property
    @pulumi.getter(name="xrayIndex")
    def xray_index(self) -> pulumi.Output[Optional[bool]]:
        """
        Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via
        Xray settings.
        """
        return pulumi.get(self, "xray_index")

