# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities

__all__ = ['LocalMavenRepositoryArgs', 'LocalMavenRepository']

@pulumi.input_type
class LocalMavenRepositoryArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 checksum_policy_type: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 handle_releases: Optional[pulumi.Input[bool]] = None,
                 handle_snapshots: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 max_unique_snapshots: Optional[pulumi.Input[int]] = None,
                 notes: 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,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 snapshot_version_behavior: Optional[pulumi.Input[str]] = None,
                 suppress_pom_consistency_checks: Optional[pulumi.Input[bool]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None):
        """
        The set of arguments for constructing a LocalMavenRepository resource.
        :param pulumi.Input[str] key: the identity key of the repo.
        :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[bool] blacked_out: When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        :param pulumi.Input[str] checksum_policy_type: Checksum policy determines how Artifactory behaves when a client checksum for a deployed
               resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
               `client-checksums` and `generated-checksums`. For more details,
               please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        :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.
        :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] handle_releases: If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        :param pulumi.Input[bool] handle_snapshots: If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        :param pulumi.Input[str] includes_pattern: List of 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[int] max_unique_snapshots: The maximum number of unique snapshots of a single artifact to store.
               Once the number of snapshots exceeds this setting, older versions are removed.
               A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        :param pulumi.Input[bool] priority_resolution: Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        :param pulumi.Input[Sequence[pulumi.Input[str]]] project_environments: Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. 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 name
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the local repository
        :param pulumi.Input[str] snapshot_version_behavior: Specifies the naming convention for Maven SNAPSHOT versions.
               The options are -
               * `unique`: Version number is based on a time-stamp (default)
               * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
               * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        :param pulumi.Input[bool] suppress_pom_consistency_checks: By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
               If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
               You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        :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)
        if archive_browsing_enabled is not None:
            pulumi.set(__self__, "archive_browsing_enabled", archive_browsing_enabled)
        if blacked_out is not None:
            pulumi.set(__self__, "blacked_out", blacked_out)
        if checksum_policy_type is not None:
            pulumi.set(__self__, "checksum_policy_type", checksum_policy_type)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if download_direct is not None:
            pulumi.set(__self__, "download_direct", download_direct)
        if excludes_pattern is not None:
            pulumi.set(__self__, "excludes_pattern", excludes_pattern)
        if handle_releases is not None:
            pulumi.set(__self__, "handle_releases", handle_releases)
        if handle_snapshots is not None:
            pulumi.set(__self__, "handle_snapshots", handle_snapshots)
        if includes_pattern is not None:
            pulumi.set(__self__, "includes_pattern", includes_pattern)
        if max_unique_snapshots is not None:
            pulumi.set(__self__, "max_unique_snapshots", max_unique_snapshots)
        if notes is not None:
            pulumi.set(__self__, "notes", notes)
        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 repo_layout_ref is not None:
            pulumi.set(__self__, "repo_layout_ref", repo_layout_ref)
        if snapshot_version_behavior is not None:
            pulumi.set(__self__, "snapshot_version_behavior", snapshot_version_behavior)
        if suppress_pom_consistency_checks is not None:
            pulumi.set(__self__, "suppress_pom_consistency_checks", suppress_pom_consistency_checks)
        if xray_index is not None:
            pulumi.set(__self__, "xray_index", xray_index)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[str]:
        """
        the identity key of the repo.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[str]):
        pulumi.set(self, "key", 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="blackedOut")
    def blacked_out(self) -> Optional[pulumi.Input[bool]]:
        """
        When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        """
        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="checksumPolicyType")
    def checksum_policy_type(self) -> Optional[pulumi.Input[str]]:
        """
        Checksum policy determines how Artifactory behaves when a client checksum for a deployed
        resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
        `client-checksums` and `generated-checksums`. For more details,
        please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        """
        return pulumi.get(self, "checksum_policy_type")

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

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

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", 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.
        """
        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="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="handleReleases")
    def handle_releases(self) -> Optional[pulumi.Input[bool]]:
        """
        If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        """
        return pulumi.get(self, "handle_releases")

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

    @property
    @pulumi.getter(name="handleSnapshots")
    def handle_snapshots(self) -> Optional[pulumi.Input[bool]]:
        """
        If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        """
        return pulumi.get(self, "handle_snapshots")

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

    @property
    @pulumi.getter(name="includesPattern")
    def includes_pattern(self) -> Optional[pulumi.Input[str]]:
        """
        List of 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="maxUniqueSnapshots")
    def max_unique_snapshots(self) -> Optional[pulumi.Input[int]]:
        """
        The maximum number of unique snapshots of a single artifact to store.
        Once the number of snapshots exceeds this setting, older versions are removed.
        A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        """
        return pulumi.get(self, "max_unique_snapshots")

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

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

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

    @property
    @pulumi.getter(name="priorityResolution")
    def priority_resolution(self) -> Optional[pulumi.Input[bool]]:
        """
        Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        """
        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]]]]:
        """
        Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        """
        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. 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 name
        """
        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(name="repoLayoutRef")
    def repo_layout_ref(self) -> Optional[pulumi.Input[str]]:
        """
        Repository layout key for the local 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="snapshotVersionBehavior")
    def snapshot_version_behavior(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the naming convention for Maven SNAPSHOT versions.
        The options are -
        * `unique`: Version number is based on a time-stamp (default)
        * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
        * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        """
        return pulumi.get(self, "snapshot_version_behavior")

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

    @property
    @pulumi.getter(name="suppressPomConsistencyChecks")
    def suppress_pom_consistency_checks(self) -> Optional[pulumi.Input[bool]]:
        """
        By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
        If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
        You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        """
        return pulumi.get(self, "suppress_pom_consistency_checks")

    @suppress_pom_consistency_checks.setter
    def suppress_pom_consistency_checks(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "suppress_pom_consistency_checks", 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 _LocalMavenRepositoryState:
    def __init__(__self__, *,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 checksum_policy_type: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 handle_releases: Optional[pulumi.Input[bool]] = None,
                 handle_snapshots: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 max_unique_snapshots: Optional[pulumi.Input[int]] = None,
                 notes: Optional[pulumi.Input[str]] = None,
                 package_type: 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,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 snapshot_version_behavior: Optional[pulumi.Input[str]] = None,
                 suppress_pom_consistency_checks: Optional[pulumi.Input[bool]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None):
        """
        Input properties used for looking up and filtering LocalMavenRepository resources.
        :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[bool] blacked_out: When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        :param pulumi.Input[str] checksum_policy_type: Checksum policy determines how Artifactory behaves when a client checksum for a deployed
               resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
               `client-checksums` and `generated-checksums`. For more details,
               please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        :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.
        :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] handle_releases: If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        :param pulumi.Input[bool] handle_snapshots: If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        :param pulumi.Input[str] includes_pattern: List of 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: the identity key of the repo.
        :param pulumi.Input[int] max_unique_snapshots: The maximum number of unique snapshots of a single artifact to store.
               Once the number of snapshots exceeds this setting, older versions are removed.
               A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        :param pulumi.Input[bool] priority_resolution: Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        :param pulumi.Input[Sequence[pulumi.Input[str]]] project_environments: Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. 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 name
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the local repository
        :param pulumi.Input[str] snapshot_version_behavior: Specifies the naming convention for Maven SNAPSHOT versions.
               The options are -
               * `unique`: Version number is based on a time-stamp (default)
               * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
               * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        :param pulumi.Input[bool] suppress_pom_consistency_checks: By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
               If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
               You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        :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 archive_browsing_enabled is not None:
            pulumi.set(__self__, "archive_browsing_enabled", archive_browsing_enabled)
        if blacked_out is not None:
            pulumi.set(__self__, "blacked_out", blacked_out)
        if checksum_policy_type is not None:
            pulumi.set(__self__, "checksum_policy_type", checksum_policy_type)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if download_direct is not None:
            pulumi.set(__self__, "download_direct", download_direct)
        if excludes_pattern is not None:
            pulumi.set(__self__, "excludes_pattern", excludes_pattern)
        if handle_releases is not None:
            pulumi.set(__self__, "handle_releases", handle_releases)
        if handle_snapshots is not None:
            pulumi.set(__self__, "handle_snapshots", handle_snapshots)
        if includes_pattern is not None:
            pulumi.set(__self__, "includes_pattern", includes_pattern)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if max_unique_snapshots is not None:
            pulumi.set(__self__, "max_unique_snapshots", max_unique_snapshots)
        if notes is not None:
            pulumi.set(__self__, "notes", notes)
        if package_type is not None:
            pulumi.set(__self__, "package_type", package_type)
        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 repo_layout_ref is not None:
            pulumi.set(__self__, "repo_layout_ref", repo_layout_ref)
        if snapshot_version_behavior is not None:
            pulumi.set(__self__, "snapshot_version_behavior", snapshot_version_behavior)
        if suppress_pom_consistency_checks is not None:
            pulumi.set(__self__, "suppress_pom_consistency_checks", suppress_pom_consistency_checks)
        if xray_index is not None:
            pulumi.set(__self__, "xray_index", xray_index)

    @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="blackedOut")
    def blacked_out(self) -> Optional[pulumi.Input[bool]]:
        """
        When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        """
        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="checksumPolicyType")
    def checksum_policy_type(self) -> Optional[pulumi.Input[str]]:
        """
        Checksum policy determines how Artifactory behaves when a client checksum for a deployed
        resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
        `client-checksums` and `generated-checksums`. For more details,
        please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        """
        return pulumi.get(self, "checksum_policy_type")

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

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

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", 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.
        """
        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="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="handleReleases")
    def handle_releases(self) -> Optional[pulumi.Input[bool]]:
        """
        If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        """
        return pulumi.get(self, "handle_releases")

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

    @property
    @pulumi.getter(name="handleSnapshots")
    def handle_snapshots(self) -> Optional[pulumi.Input[bool]]:
        """
        If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        """
        return pulumi.get(self, "handle_snapshots")

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

    @property
    @pulumi.getter(name="includesPattern")
    def includes_pattern(self) -> Optional[pulumi.Input[str]]:
        """
        List of 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]]:
        """
        the identity key of the repo.
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter(name="maxUniqueSnapshots")
    def max_unique_snapshots(self) -> Optional[pulumi.Input[int]]:
        """
        The maximum number of unique snapshots of a single artifact to store.
        Once the number of snapshots exceeds this setting, older versions are removed.
        A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        """
        return pulumi.get(self, "max_unique_snapshots")

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

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

    @notes.setter
    def notes(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "notes", 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(name="priorityResolution")
    def priority_resolution(self) -> Optional[pulumi.Input[bool]]:
        """
        Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        """
        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]]]]:
        """
        Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        """
        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. 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 name
        """
        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(name="repoLayoutRef")
    def repo_layout_ref(self) -> Optional[pulumi.Input[str]]:
        """
        Repository layout key for the local 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="snapshotVersionBehavior")
    def snapshot_version_behavior(self) -> Optional[pulumi.Input[str]]:
        """
        Specifies the naming convention for Maven SNAPSHOT versions.
        The options are -
        * `unique`: Version number is based on a time-stamp (default)
        * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
        * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        """
        return pulumi.get(self, "snapshot_version_behavior")

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

    @property
    @pulumi.getter(name="suppressPomConsistencyChecks")
    def suppress_pom_consistency_checks(self) -> Optional[pulumi.Input[bool]]:
        """
        By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
        If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
        You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        """
        return pulumi.get(self, "suppress_pom_consistency_checks")

    @suppress_pom_consistency_checks.setter
    def suppress_pom_consistency_checks(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "suppress_pom_consistency_checks", 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 LocalMavenRepository(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 checksum_policy_type: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 handle_releases: Optional[pulumi.Input[bool]] = None,
                 handle_snapshots: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 max_unique_snapshots: Optional[pulumi.Input[int]] = None,
                 notes: 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,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 snapshot_version_behavior: Optional[pulumi.Input[str]] = None,
                 suppress_pom_consistency_checks: Optional[pulumi.Input[bool]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None,
                 __props__=None):
        """
        Creates a local Maven repository.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_artifactory as artifactory

        terraform_local_test_maven_repo_basic = artifactory.LocalMavenRepository("terraform-local-test-maven-repo-basic",
            checksum_policy_type="client-checksums",
            handle_releases=True,
            handle_snapshots=True,
            key="terraform-local-test-maven-repo-basic",
            max_unique_snapshots=10,
            snapshot_version_behavior="unique",
            suppress_pom_consistency_checks=False)
        ```

        ## Import

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

        ```sh
         $ pulumi import artifactory:index/localMavenRepository:LocalMavenRepository terraform-local-test-maven-repo-basic terraform-local-test-maven-repo-basic
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :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[bool] blacked_out: When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        :param pulumi.Input[str] checksum_policy_type: Checksum policy determines how Artifactory behaves when a client checksum for a deployed
               resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
               `client-checksums` and `generated-checksums`. For more details,
               please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        :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.
        :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] handle_releases: If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        :param pulumi.Input[bool] handle_snapshots: If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        :param pulumi.Input[str] includes_pattern: List of 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: the identity key of the repo.
        :param pulumi.Input[int] max_unique_snapshots: The maximum number of unique snapshots of a single artifact to store.
               Once the number of snapshots exceeds this setting, older versions are removed.
               A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        :param pulumi.Input[bool] priority_resolution: Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        :param pulumi.Input[Sequence[pulumi.Input[str]]] project_environments: Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. 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 name
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the local repository
        :param pulumi.Input[str] snapshot_version_behavior: Specifies the naming convention for Maven SNAPSHOT versions.
               The options are -
               * `unique`: Version number is based on a time-stamp (default)
               * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
               * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        :param pulumi.Input[bool] suppress_pom_consistency_checks: By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
               If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
               You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        :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: LocalMavenRepositoryArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Creates a local Maven repository.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_artifactory as artifactory

        terraform_local_test_maven_repo_basic = artifactory.LocalMavenRepository("terraform-local-test-maven-repo-basic",
            checksum_policy_type="client-checksums",
            handle_releases=True,
            handle_snapshots=True,
            key="terraform-local-test-maven-repo-basic",
            max_unique_snapshots=10,
            snapshot_version_behavior="unique",
            suppress_pom_consistency_checks=False)
        ```

        ## Import

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

        ```sh
         $ pulumi import artifactory:index/localMavenRepository:LocalMavenRepository terraform-local-test-maven-repo-basic terraform-local-test-maven-repo-basic
        ```

        :param str resource_name: The name of the resource.
        :param LocalMavenRepositoryArgs 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(LocalMavenRepositoryArgs, 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,
                 archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
                 blacked_out: Optional[pulumi.Input[bool]] = None,
                 checksum_policy_type: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 download_direct: Optional[pulumi.Input[bool]] = None,
                 excludes_pattern: Optional[pulumi.Input[str]] = None,
                 handle_releases: Optional[pulumi.Input[bool]] = None,
                 handle_snapshots: Optional[pulumi.Input[bool]] = None,
                 includes_pattern: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 max_unique_snapshots: Optional[pulumi.Input[int]] = None,
                 notes: 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,
                 repo_layout_ref: Optional[pulumi.Input[str]] = None,
                 snapshot_version_behavior: Optional[pulumi.Input[str]] = None,
                 suppress_pom_consistency_checks: Optional[pulumi.Input[bool]] = None,
                 xray_index: Optional[pulumi.Input[bool]] = None,
                 __props__=None):
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = _utilities.get_version()
        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__ = LocalMavenRepositoryArgs.__new__(LocalMavenRepositoryArgs)

            __props__.__dict__["archive_browsing_enabled"] = archive_browsing_enabled
            __props__.__dict__["blacked_out"] = blacked_out
            __props__.__dict__["checksum_policy_type"] = checksum_policy_type
            __props__.__dict__["description"] = description
            __props__.__dict__["download_direct"] = download_direct
            __props__.__dict__["excludes_pattern"] = excludes_pattern
            __props__.__dict__["handle_releases"] = handle_releases
            __props__.__dict__["handle_snapshots"] = handle_snapshots
            __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__["max_unique_snapshots"] = max_unique_snapshots
            __props__.__dict__["notes"] = notes
            __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__["repo_layout_ref"] = repo_layout_ref
            __props__.__dict__["snapshot_version_behavior"] = snapshot_version_behavior
            __props__.__dict__["suppress_pom_consistency_checks"] = suppress_pom_consistency_checks
            __props__.__dict__["xray_index"] = xray_index
            __props__.__dict__["package_type"] = None
        super(LocalMavenRepository, __self__).__init__(
            'artifactory:index/localMavenRepository:LocalMavenRepository',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            archive_browsing_enabled: Optional[pulumi.Input[bool]] = None,
            blacked_out: Optional[pulumi.Input[bool]] = None,
            checksum_policy_type: Optional[pulumi.Input[str]] = None,
            description: Optional[pulumi.Input[str]] = None,
            download_direct: Optional[pulumi.Input[bool]] = None,
            excludes_pattern: Optional[pulumi.Input[str]] = None,
            handle_releases: Optional[pulumi.Input[bool]] = None,
            handle_snapshots: Optional[pulumi.Input[bool]] = None,
            includes_pattern: Optional[pulumi.Input[str]] = None,
            key: Optional[pulumi.Input[str]] = None,
            max_unique_snapshots: Optional[pulumi.Input[int]] = None,
            notes: Optional[pulumi.Input[str]] = None,
            package_type: 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,
            repo_layout_ref: Optional[pulumi.Input[str]] = None,
            snapshot_version_behavior: Optional[pulumi.Input[str]] = None,
            suppress_pom_consistency_checks: Optional[pulumi.Input[bool]] = None,
            xray_index: Optional[pulumi.Input[bool]] = None) -> 'LocalMavenRepository':
        """
        Get an existing LocalMavenRepository 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] 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[bool] blacked_out: When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        :param pulumi.Input[str] checksum_policy_type: Checksum policy determines how Artifactory behaves when a client checksum for a deployed
               resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
               `client-checksums` and `generated-checksums`. For more details,
               please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        :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.
        :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] handle_releases: If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        :param pulumi.Input[bool] handle_snapshots: If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        :param pulumi.Input[str] includes_pattern: List of 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: the identity key of the repo.
        :param pulumi.Input[int] max_unique_snapshots: The maximum number of unique snapshots of a single artifact to store.
               Once the number of snapshots exceeds this setting, older versions are removed.
               A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        :param pulumi.Input[bool] priority_resolution: Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        :param pulumi.Input[Sequence[pulumi.Input[str]]] project_environments: Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        :param pulumi.Input[str] project_key: Project key for assigning this repository to. 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 name
        :param pulumi.Input[str] repo_layout_ref: Repository layout key for the local repository
        :param pulumi.Input[str] snapshot_version_behavior: Specifies the naming convention for Maven SNAPSHOT versions.
               The options are -
               * `unique`: Version number is based on a time-stamp (default)
               * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
               * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        :param pulumi.Input[bool] suppress_pom_consistency_checks: By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
               If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
               You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        :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__ = _LocalMavenRepositoryState.__new__(_LocalMavenRepositoryState)

        __props__.__dict__["archive_browsing_enabled"] = archive_browsing_enabled
        __props__.__dict__["blacked_out"] = blacked_out
        __props__.__dict__["checksum_policy_type"] = checksum_policy_type
        __props__.__dict__["description"] = description
        __props__.__dict__["download_direct"] = download_direct
        __props__.__dict__["excludes_pattern"] = excludes_pattern
        __props__.__dict__["handle_releases"] = handle_releases
        __props__.__dict__["handle_snapshots"] = handle_snapshots
        __props__.__dict__["includes_pattern"] = includes_pattern
        __props__.__dict__["key"] = key
        __props__.__dict__["max_unique_snapshots"] = max_unique_snapshots
        __props__.__dict__["notes"] = notes
        __props__.__dict__["package_type"] = package_type
        __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__["repo_layout_ref"] = repo_layout_ref
        __props__.__dict__["snapshot_version_behavior"] = snapshot_version_behavior
        __props__.__dict__["suppress_pom_consistency_checks"] = suppress_pom_consistency_checks
        __props__.__dict__["xray_index"] = xray_index
        return LocalMavenRepository(resource_name, opts=opts, __props__=__props__)

    @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="blackedOut")
    def blacked_out(self) -> pulumi.Output[Optional[bool]]:
        """
        When set, the repository does not participate in artifact resolution and new artifacts cannot be deployed.
        """
        return pulumi.get(self, "blacked_out")

    @property
    @pulumi.getter(name="checksumPolicyType")
    def checksum_policy_type(self) -> pulumi.Output[Optional[str]]:
        """
        Checksum policy determines how Artifactory behaves when a client checksum for a deployed
        resource is missing or conflicts with the locally calculated checksum (bad checksum). The options are
        `client-checksums` and `generated-checksums`. For more details,
        please refer to [Checksum Policy](https://www.jfrog.com/confluence/display/JFROG/Local+Repositories#LocalRepositories-ChecksumPolicy).
        """
        return pulumi.get(self, "checksum_policy_type")

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

    @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.
        """
        return pulumi.get(self, "download_direct")

    @property
    @pulumi.getter(name="excludesPattern")
    def excludes_pattern(self) -> pulumi.Output[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="handleReleases")
    def handle_releases(self) -> pulumi.Output[Optional[bool]]:
        """
        If set, Artifactory allows you to deploy release artifacts into this repository. Default is `true`.
        """
        return pulumi.get(self, "handle_releases")

    @property
    @pulumi.getter(name="handleSnapshots")
    def handle_snapshots(self) -> pulumi.Output[Optional[bool]]:
        """
        If set, Artifactory allows you to deploy snapshot artifacts into this repository. Default is `true`.
        """
        return pulumi.get(self, "handle_snapshots")

    @property
    @pulumi.getter(name="includesPattern")
    def includes_pattern(self) -> pulumi.Output[str]:
        """
        List of 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]:
        """
        the identity key of the repo.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter(name="maxUniqueSnapshots")
    def max_unique_snapshots(self) -> pulumi.Output[Optional[int]]:
        """
        The maximum number of unique snapshots of a single artifact to store.
        Once the number of snapshots exceeds this setting, older versions are removed.
        A value of 0 (default) indicates there is no limit, and unique snapshots are not cleaned up.
        """
        return pulumi.get(self, "max_unique_snapshots")

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

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

    @property
    @pulumi.getter(name="priorityResolution")
    def priority_resolution(self) -> pulumi.Output[Optional[bool]]:
        """
        Setting repositories with priority will cause metadata to be merged only from repositories set with this field
        """
        return pulumi.get(self, "priority_resolution")

    @property
    @pulumi.getter(name="projectEnvironments")
    def project_environments(self) -> pulumi.Output[Optional[Sequence[str]]]:
        """
        Project environment for assigning this repository to. Allow values: "DEV" or "PROD"
        """
        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. 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 name
        """
        return pulumi.get(self, "property_sets")

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

    @property
    @pulumi.getter(name="snapshotVersionBehavior")
    def snapshot_version_behavior(self) -> pulumi.Output[Optional[str]]:
        """
        Specifies the naming convention for Maven SNAPSHOT versions.
        The options are -
        * `unique`: Version number is based on a time-stamp (default)
        * `non-unique`: Version number uses a self-overriding naming pattern of artifactId-version-SNAPSHOT.type
        * `deployer`: Respects the settings in the Maven client that is deploying the artifact.
        """
        return pulumi.get(self, "snapshot_version_behavior")

    @property
    @pulumi.getter(name="suppressPomConsistencyChecks")
    def suppress_pom_consistency_checks(self) -> pulumi.Output[Optional[bool]]:
        """
        By default, Artifactory keeps your repositories healthy by refusing POMs with incorrect coordinates (path).
        If the groupId:artifactId:version information inside the POM does not match the deployed path, Artifactory rejects the deployment with a "409 Conflict" error.
        You can disable this behavior by setting the Suppress POM Consistency Checks checkbox. False by default for Maven repository.
        """
        return pulumi.get(self, "suppress_pom_consistency_checks")

    @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")

