# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** 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
from . import outputs
from ._inputs import *

__all__ = ['ProjectArgs', 'Project']

@pulumi.input_type
class ProjectArgs:
    def __init__(__self__, *,
                 artifacts: pulumi.Input['ProjectArtifactsArgs'],
                 environment: pulumi.Input['ProjectEnvironmentArgs'],
                 service_role: pulumi.Input[str],
                 source: pulumi.Input['ProjectSourceArgs'],
                 badge_enabled: Optional[pulumi.Input[bool]] = None,
                 build_batch_config: Optional[pulumi.Input['ProjectProjectBuildBatchConfigArgs']] = None,
                 cache: Optional[pulumi.Input['ProjectProjectCacheArgs']] = None,
                 concurrent_build_limit: Optional[pulumi.Input[int]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 encryption_key: Optional[pulumi.Input[str]] = None,
                 file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectProjectFileSystemLocationArgs']]]] = None,
                 logs_config: Optional[pulumi.Input['ProjectLogsConfigArgs']] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 queued_timeout_in_minutes: Optional[pulumi.Input[int]] = None,
                 resource_access_role: Optional[pulumi.Input[str]] = None,
                 secondary_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectArtifactsArgs']]]] = None,
                 secondary_source_versions: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectProjectSourceVersionArgs']]]] = None,
                 secondary_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSourceArgs']]]] = None,
                 source_version: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectTagArgs']]]] = None,
                 timeout_in_minutes: Optional[pulumi.Input[int]] = None,
                 triggers: Optional[pulumi.Input['ProjectProjectTriggersArgs']] = None,
                 visibility: Optional[pulumi.Input[str]] = None,
                 vpc_config: Optional[pulumi.Input['ProjectVpcConfigArgs']] = None):
        """
        The set of arguments for constructing a Project resource.
        """
        pulumi.set(__self__, "artifacts", artifacts)
        pulumi.set(__self__, "environment", environment)
        pulumi.set(__self__, "service_role", service_role)
        pulumi.set(__self__, "source", source)
        if badge_enabled is not None:
            pulumi.set(__self__, "badge_enabled", badge_enabled)
        if build_batch_config is not None:
            pulumi.set(__self__, "build_batch_config", build_batch_config)
        if cache is not None:
            pulumi.set(__self__, "cache", cache)
        if concurrent_build_limit is not None:
            pulumi.set(__self__, "concurrent_build_limit", concurrent_build_limit)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if encryption_key is not None:
            pulumi.set(__self__, "encryption_key", encryption_key)
        if file_system_locations is not None:
            pulumi.set(__self__, "file_system_locations", file_system_locations)
        if logs_config is not None:
            pulumi.set(__self__, "logs_config", logs_config)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if queued_timeout_in_minutes is not None:
            pulumi.set(__self__, "queued_timeout_in_minutes", queued_timeout_in_minutes)
        if resource_access_role is not None:
            pulumi.set(__self__, "resource_access_role", resource_access_role)
        if secondary_artifacts is not None:
            pulumi.set(__self__, "secondary_artifacts", secondary_artifacts)
        if secondary_source_versions is not None:
            pulumi.set(__self__, "secondary_source_versions", secondary_source_versions)
        if secondary_sources is not None:
            pulumi.set(__self__, "secondary_sources", secondary_sources)
        if source_version is not None:
            pulumi.set(__self__, "source_version", source_version)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if timeout_in_minutes is not None:
            pulumi.set(__self__, "timeout_in_minutes", timeout_in_minutes)
        if triggers is not None:
            pulumi.set(__self__, "triggers", triggers)
        if visibility is not None:
            pulumi.set(__self__, "visibility", visibility)
        if vpc_config is not None:
            pulumi.set(__self__, "vpc_config", vpc_config)

    @property
    @pulumi.getter
    def artifacts(self) -> pulumi.Input['ProjectArtifactsArgs']:
        return pulumi.get(self, "artifacts")

    @artifacts.setter
    def artifacts(self, value: pulumi.Input['ProjectArtifactsArgs']):
        pulumi.set(self, "artifacts", value)

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Input['ProjectEnvironmentArgs']:
        return pulumi.get(self, "environment")

    @environment.setter
    def environment(self, value: pulumi.Input['ProjectEnvironmentArgs']):
        pulumi.set(self, "environment", value)

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

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

    @property
    @pulumi.getter
    def source(self) -> pulumi.Input['ProjectSourceArgs']:
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: pulumi.Input['ProjectSourceArgs']):
        pulumi.set(self, "source", value)

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

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

    @property
    @pulumi.getter(name="buildBatchConfig")
    def build_batch_config(self) -> Optional[pulumi.Input['ProjectProjectBuildBatchConfigArgs']]:
        return pulumi.get(self, "build_batch_config")

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

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

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

    @property
    @pulumi.getter(name="concurrentBuildLimit")
    def concurrent_build_limit(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "concurrent_build_limit")

    @concurrent_build_limit.setter
    def concurrent_build_limit(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "concurrent_build_limit", 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="encryptionKey")
    def encryption_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "encryption_key")

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

    @property
    @pulumi.getter(name="fileSystemLocations")
    def file_system_locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectProjectFileSystemLocationArgs']]]]:
        return pulumi.get(self, "file_system_locations")

    @file_system_locations.setter
    def file_system_locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectProjectFileSystemLocationArgs']]]]):
        pulumi.set(self, "file_system_locations", value)

    @property
    @pulumi.getter(name="logsConfig")
    def logs_config(self) -> Optional[pulumi.Input['ProjectLogsConfigArgs']]:
        return pulumi.get(self, "logs_config")

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

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

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

    @property
    @pulumi.getter(name="queuedTimeoutInMinutes")
    def queued_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "queued_timeout_in_minutes")

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

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

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

    @property
    @pulumi.getter(name="secondaryArtifacts")
    def secondary_artifacts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectArtifactsArgs']]]]:
        return pulumi.get(self, "secondary_artifacts")

    @secondary_artifacts.setter
    def secondary_artifacts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectArtifactsArgs']]]]):
        pulumi.set(self, "secondary_artifacts", value)

    @property
    @pulumi.getter(name="secondarySourceVersions")
    def secondary_source_versions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectProjectSourceVersionArgs']]]]:
        return pulumi.get(self, "secondary_source_versions")

    @secondary_source_versions.setter
    def secondary_source_versions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectProjectSourceVersionArgs']]]]):
        pulumi.set(self, "secondary_source_versions", value)

    @property
    @pulumi.getter(name="secondarySources")
    def secondary_sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSourceArgs']]]]:
        return pulumi.get(self, "secondary_sources")

    @secondary_sources.setter
    def secondary_sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSourceArgs']]]]):
        pulumi.set(self, "secondary_sources", value)

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

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

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectTagArgs']]]]):
        pulumi.set(self, "tags", value)

    @property
    @pulumi.getter(name="timeoutInMinutes")
    def timeout_in_minutes(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "timeout_in_minutes")

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

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

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

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

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

    @property
    @pulumi.getter(name="vpcConfig")
    def vpc_config(self) -> Optional[pulumi.Input['ProjectVpcConfigArgs']]:
        return pulumi.get(self, "vpc_config")

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


warnings.warn("""Project is not yet supported by AWS Native, so its creation will currently fail. Please use the classic AWS provider, if possible.""", DeprecationWarning)


class Project(pulumi.CustomResource):
    warnings.warn("""Project is not yet supported by AWS Native, so its creation will currently fail. Please use the classic AWS provider, if possible.""", DeprecationWarning)

    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 artifacts: Optional[pulumi.Input[pulumi.InputType['ProjectArtifactsArgs']]] = None,
                 badge_enabled: Optional[pulumi.Input[bool]] = None,
                 build_batch_config: Optional[pulumi.Input[pulumi.InputType['ProjectProjectBuildBatchConfigArgs']]] = None,
                 cache: Optional[pulumi.Input[pulumi.InputType['ProjectProjectCacheArgs']]] = None,
                 concurrent_build_limit: Optional[pulumi.Input[int]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 encryption_key: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[pulumi.InputType['ProjectEnvironmentArgs']]] = None,
                 file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectProjectFileSystemLocationArgs']]]]] = None,
                 logs_config: Optional[pulumi.Input[pulumi.InputType['ProjectLogsConfigArgs']]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 queued_timeout_in_minutes: Optional[pulumi.Input[int]] = None,
                 resource_access_role: Optional[pulumi.Input[str]] = None,
                 secondary_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectArtifactsArgs']]]]] = None,
                 secondary_source_versions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectProjectSourceVersionArgs']]]]] = None,
                 secondary_sources: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectSourceArgs']]]]] = None,
                 service_role: Optional[pulumi.Input[str]] = None,
                 source: Optional[pulumi.Input[pulumi.InputType['ProjectSourceArgs']]] = None,
                 source_version: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectTagArgs']]]]] = None,
                 timeout_in_minutes: Optional[pulumi.Input[int]] = None,
                 triggers: Optional[pulumi.Input[pulumi.InputType['ProjectProjectTriggersArgs']]] = None,
                 visibility: Optional[pulumi.Input[str]] = None,
                 vpc_config: Optional[pulumi.Input[pulumi.InputType['ProjectVpcConfigArgs']]] = None,
                 __props__=None):
        """
        Resource Type definition for AWS::CodeBuild::Project

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: ProjectArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Resource Type definition for AWS::CodeBuild::Project

        :param str resource_name: The name of the resource.
        :param ProjectArgs 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(ProjectArgs, 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,
                 artifacts: Optional[pulumi.Input[pulumi.InputType['ProjectArtifactsArgs']]] = None,
                 badge_enabled: Optional[pulumi.Input[bool]] = None,
                 build_batch_config: Optional[pulumi.Input[pulumi.InputType['ProjectProjectBuildBatchConfigArgs']]] = None,
                 cache: Optional[pulumi.Input[pulumi.InputType['ProjectProjectCacheArgs']]] = None,
                 concurrent_build_limit: Optional[pulumi.Input[int]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 encryption_key: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[pulumi.InputType['ProjectEnvironmentArgs']]] = None,
                 file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectProjectFileSystemLocationArgs']]]]] = None,
                 logs_config: Optional[pulumi.Input[pulumi.InputType['ProjectLogsConfigArgs']]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 queued_timeout_in_minutes: Optional[pulumi.Input[int]] = None,
                 resource_access_role: Optional[pulumi.Input[str]] = None,
                 secondary_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectArtifactsArgs']]]]] = None,
                 secondary_source_versions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectProjectSourceVersionArgs']]]]] = None,
                 secondary_sources: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectSourceArgs']]]]] = None,
                 service_role: Optional[pulumi.Input[str]] = None,
                 source: Optional[pulumi.Input[pulumi.InputType['ProjectSourceArgs']]] = None,
                 source_version: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectTagArgs']]]]] = None,
                 timeout_in_minutes: Optional[pulumi.Input[int]] = None,
                 triggers: Optional[pulumi.Input[pulumi.InputType['ProjectProjectTriggersArgs']]] = None,
                 visibility: Optional[pulumi.Input[str]] = None,
                 vpc_config: Optional[pulumi.Input[pulumi.InputType['ProjectVpcConfigArgs']]] = None,
                 __props__=None):
        pulumi.log.warn("""Project is deprecated: Project is not yet supported by AWS Native, so its creation will currently fail. Please use the classic AWS provider, if possible.""")
        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__ = ProjectArgs.__new__(ProjectArgs)

            if artifacts is None and not opts.urn:
                raise TypeError("Missing required property 'artifacts'")
            __props__.__dict__["artifacts"] = artifacts
            __props__.__dict__["badge_enabled"] = badge_enabled
            __props__.__dict__["build_batch_config"] = build_batch_config
            __props__.__dict__["cache"] = cache
            __props__.__dict__["concurrent_build_limit"] = concurrent_build_limit
            __props__.__dict__["description"] = description
            __props__.__dict__["encryption_key"] = encryption_key
            if environment is None and not opts.urn:
                raise TypeError("Missing required property 'environment'")
            __props__.__dict__["environment"] = environment
            __props__.__dict__["file_system_locations"] = file_system_locations
            __props__.__dict__["logs_config"] = logs_config
            __props__.__dict__["name"] = name
            __props__.__dict__["queued_timeout_in_minutes"] = queued_timeout_in_minutes
            __props__.__dict__["resource_access_role"] = resource_access_role
            __props__.__dict__["secondary_artifacts"] = secondary_artifacts
            __props__.__dict__["secondary_source_versions"] = secondary_source_versions
            __props__.__dict__["secondary_sources"] = secondary_sources
            if service_role is None and not opts.urn:
                raise TypeError("Missing required property 'service_role'")
            __props__.__dict__["service_role"] = service_role
            if source is None and not opts.urn:
                raise TypeError("Missing required property 'source'")
            __props__.__dict__["source"] = source
            __props__.__dict__["source_version"] = source_version
            __props__.__dict__["tags"] = tags
            __props__.__dict__["timeout_in_minutes"] = timeout_in_minutes
            __props__.__dict__["triggers"] = triggers
            __props__.__dict__["visibility"] = visibility
            __props__.__dict__["vpc_config"] = vpc_config
            __props__.__dict__["arn"] = None
        super(Project, __self__).__init__(
            'aws-native:codebuild:Project',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None) -> 'Project':
        """
        Get an existing Project 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.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = ProjectArgs.__new__(ProjectArgs)

        __props__.__dict__["arn"] = None
        __props__.__dict__["artifacts"] = None
        __props__.__dict__["badge_enabled"] = None
        __props__.__dict__["build_batch_config"] = None
        __props__.__dict__["cache"] = None
        __props__.__dict__["concurrent_build_limit"] = None
        __props__.__dict__["description"] = None
        __props__.__dict__["encryption_key"] = None
        __props__.__dict__["environment"] = None
        __props__.__dict__["file_system_locations"] = None
        __props__.__dict__["logs_config"] = None
        __props__.__dict__["name"] = None
        __props__.__dict__["queued_timeout_in_minutes"] = None
        __props__.__dict__["resource_access_role"] = None
        __props__.__dict__["secondary_artifacts"] = None
        __props__.__dict__["secondary_source_versions"] = None
        __props__.__dict__["secondary_sources"] = None
        __props__.__dict__["service_role"] = None
        __props__.__dict__["source"] = None
        __props__.__dict__["source_version"] = None
        __props__.__dict__["tags"] = None
        __props__.__dict__["timeout_in_minutes"] = None
        __props__.__dict__["triggers"] = None
        __props__.__dict__["visibility"] = None
        __props__.__dict__["vpc_config"] = None
        return Project(resource_name, opts=opts, __props__=__props__)

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

    @property
    @pulumi.getter
    def artifacts(self) -> pulumi.Output['outputs.ProjectArtifacts']:
        return pulumi.get(self, "artifacts")

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

    @property
    @pulumi.getter(name="buildBatchConfig")
    def build_batch_config(self) -> pulumi.Output[Optional['outputs.ProjectProjectBuildBatchConfig']]:
        return pulumi.get(self, "build_batch_config")

    @property
    @pulumi.getter
    def cache(self) -> pulumi.Output[Optional['outputs.ProjectProjectCache']]:
        return pulumi.get(self, "cache")

    @property
    @pulumi.getter(name="concurrentBuildLimit")
    def concurrent_build_limit(self) -> pulumi.Output[Optional[int]]:
        return pulumi.get(self, "concurrent_build_limit")

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

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

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Output['outputs.ProjectEnvironment']:
        return pulumi.get(self, "environment")

    @property
    @pulumi.getter(name="fileSystemLocations")
    def file_system_locations(self) -> pulumi.Output[Optional[Sequence['outputs.ProjectProjectFileSystemLocation']]]:
        return pulumi.get(self, "file_system_locations")

    @property
    @pulumi.getter(name="logsConfig")
    def logs_config(self) -> pulumi.Output[Optional['outputs.ProjectLogsConfig']]:
        return pulumi.get(self, "logs_config")

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

    @property
    @pulumi.getter(name="queuedTimeoutInMinutes")
    def queued_timeout_in_minutes(self) -> pulumi.Output[Optional[int]]:
        return pulumi.get(self, "queued_timeout_in_minutes")

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

    @property
    @pulumi.getter(name="secondaryArtifacts")
    def secondary_artifacts(self) -> pulumi.Output[Optional[Sequence['outputs.ProjectArtifacts']]]:
        return pulumi.get(self, "secondary_artifacts")

    @property
    @pulumi.getter(name="secondarySourceVersions")
    def secondary_source_versions(self) -> pulumi.Output[Optional[Sequence['outputs.ProjectProjectSourceVersion']]]:
        return pulumi.get(self, "secondary_source_versions")

    @property
    @pulumi.getter(name="secondarySources")
    def secondary_sources(self) -> pulumi.Output[Optional[Sequence['outputs.ProjectSource']]]:
        return pulumi.get(self, "secondary_sources")

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

    @property
    @pulumi.getter
    def source(self) -> pulumi.Output['outputs.ProjectSource']:
        return pulumi.get(self, "source")

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

    @property
    @pulumi.getter
    def tags(self) -> pulumi.Output[Optional[Sequence['outputs.ProjectTag']]]:
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter(name="timeoutInMinutes")
    def timeout_in_minutes(self) -> pulumi.Output[Optional[int]]:
        return pulumi.get(self, "timeout_in_minutes")

    @property
    @pulumi.getter
    def triggers(self) -> pulumi.Output[Optional['outputs.ProjectProjectTriggers']]:
        return pulumi.get(self, "triggers")

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

    @property
    @pulumi.getter(name="vpcConfig")
    def vpc_config(self) -> pulumi.Output[Optional['outputs.ProjectVpcConfig']]:
        return pulumi.get(self, "vpc_config")

