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

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

__all__ = [
    'BuildPipelineBuildPipelineParameters',
    'BuildPipelineBuildPipelineParametersItem',
    'BuildPipelineStageBuildPipelineStagePredecessorCollection',
    'BuildPipelineStageBuildPipelineStagePredecessorCollectionItem',
    'BuildPipelineStageBuildRunnerShapeConfig',
    'BuildPipelineStageBuildSourceCollection',
    'BuildPipelineStageBuildSourceCollectionItem',
    'BuildPipelineStageDeliverArtifactCollection',
    'BuildPipelineStageDeliverArtifactCollectionItem',
    'BuildPipelineStagePrivateAccessConfig',
    'BuildPipelineStageWaitCriteria',
    'BuildRunBuildOutput',
    'BuildRunBuildOutputArtifactOverrideParameter',
    'BuildRunBuildOutputArtifactOverrideParameterItem',
    'BuildRunBuildOutputDeliveredArtifact',
    'BuildRunBuildOutputDeliveredArtifactItem',
    'BuildRunBuildOutputExportedVariable',
    'BuildRunBuildOutputExportedVariableItem',
    'BuildRunBuildOutputVulnerabilityAuditSummaryCollection',
    'BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem',
    'BuildRunBuildRunArguments',
    'BuildRunBuildRunArgumentsItem',
    'BuildRunBuildRunProgress',
    'BuildRunBuildRunSource',
    'BuildRunBuildRunSourceTriggerInfo',
    'BuildRunBuildRunSourceTriggerInfoAction',
    'BuildRunBuildRunSourceTriggerInfoActionFilter',
    'BuildRunBuildRunSourceTriggerInfoActionFilterExclude',
    'BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter',
    'BuildRunBuildRunSourceTriggerInfoActionFilterInclude',
    'BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter',
    'BuildRunCommitInfo',
    'ConnectionLastConnectionValidationResult',
    'ConnectionTlsVerifyConfig',
    'DeployArtifactDeployArtifactSource',
    'DeployArtifactDeployArtifactSourceHelmVerificationKeySource',
    'DeployEnvironmentComputeInstanceGroupSelectors',
    'DeployEnvironmentComputeInstanceGroupSelectorsItem',
    'DeployEnvironmentNetworkChannel',
    'DeployPipelineDeployPipelineArtifact',
    'DeployPipelineDeployPipelineArtifactItem',
    'DeployPipelineDeployPipelineArtifactItemDeployPipelineStage',
    'DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem',
    'DeployPipelineDeployPipelineEnvironment',
    'DeployPipelineDeployPipelineEnvironmentItem',
    'DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStage',
    'DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem',
    'DeployPipelineDeployPipelineParameters',
    'DeployPipelineDeployPipelineParametersItem',
    'DeployStageApprovalPolicy',
    'DeployStageBlueBackendIps',
    'DeployStageBlueGreenStrategy',
    'DeployStageCanaryStrategy',
    'DeployStageContainerConfig',
    'DeployStageContainerConfigNetworkChannel',
    'DeployStageContainerConfigShapeConfig',
    'DeployStageDeployStagePredecessorCollection',
    'DeployStageDeployStagePredecessorCollectionItem',
    'DeployStageFailurePolicy',
    'DeployStageGreenBackendIps',
    'DeployStageLoadBalancerConfig',
    'DeployStageProductionLoadBalancerConfig',
    'DeployStageRollbackPolicy',
    'DeployStageRolloutPolicy',
    'DeployStageSetString',
    'DeployStageSetStringItem',
    'DeployStageSetValues',
    'DeployStageSetValuesItem',
    'DeployStageTestLoadBalancerConfig',
    'DeployStageWaitCriteria',
    'DeploymentDeployArtifactOverrideArguments',
    'DeploymentDeployArtifactOverrideArgumentsItem',
    'DeploymentDeployPipelineArtifact',
    'DeploymentDeployPipelineArtifactItem',
    'DeploymentDeployPipelineArtifactItemDeployPipelineStage',
    'DeploymentDeployPipelineArtifactItemDeployPipelineStageItem',
    'DeploymentDeployPipelineEnvironment',
    'DeploymentDeployPipelineEnvironmentItem',
    'DeploymentDeployPipelineEnvironmentItemDeployPipelineStage',
    'DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem',
    'DeploymentDeployStageOverrideArguments',
    'DeploymentDeployStageOverrideArgumentsItem',
    'DeploymentDeploymentArguments',
    'DeploymentDeploymentArgumentsItem',
    'DeploymentDeploymentExecutionProgress',
    'ProjectNotificationConfig',
    'RepositoryMirrorRepositoryConfig',
    'RepositoryMirrorRepositoryConfigTriggerSchedule',
    'TriggerAction',
    'TriggerActionFilter',
    'TriggerActionFilterExclude',
    'TriggerActionFilterExcludeFileFilter',
    'TriggerActionFilterInclude',
    'TriggerActionFilterIncludeFileFilter',
    'GetBuildPipelineBuildPipelineParameterResult',
    'GetBuildPipelineBuildPipelineParameterItemResult',
    'GetBuildPipelineStageBuildPipelineStagePredecessorCollectionResult',
    'GetBuildPipelineStageBuildPipelineStagePredecessorCollectionItemResult',
    'GetBuildPipelineStageBuildRunnerShapeConfigResult',
    'GetBuildPipelineStageBuildSourceCollectionResult',
    'GetBuildPipelineStageBuildSourceCollectionItemResult',
    'GetBuildPipelineStageDeliverArtifactCollectionResult',
    'GetBuildPipelineStageDeliverArtifactCollectionItemResult',
    'GetBuildPipelineStagePrivateAccessConfigResult',
    'GetBuildPipelineStageWaitCriteriaResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionItemResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildRunnerShapeConfigResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionItemResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionItemResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemPrivateAccessConfigResult',
    'GetBuildPipelineStagesBuildPipelineStageCollectionItemWaitCriteriaResult',
    'GetBuildPipelineStagesFilterResult',
    'GetBuildPipelinesBuildPipelineCollectionResult',
    'GetBuildPipelinesBuildPipelineCollectionItemResult',
    'GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterResult',
    'GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterItemResult',
    'GetBuildPipelinesFilterResult',
    'GetBuildRunBuildOutputResult',
    'GetBuildRunBuildOutputArtifactOverrideParameterResult',
    'GetBuildRunBuildOutputArtifactOverrideParameterItemResult',
    'GetBuildRunBuildOutputDeliveredArtifactResult',
    'GetBuildRunBuildOutputDeliveredArtifactItemResult',
    'GetBuildRunBuildOutputExportedVariableResult',
    'GetBuildRunBuildOutputExportedVariableItemResult',
    'GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionResult',
    'GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionItemResult',
    'GetBuildRunBuildRunArgumentResult',
    'GetBuildRunBuildRunArgumentItemResult',
    'GetBuildRunBuildRunProgressResult',
    'GetBuildRunBuildRunSourceResult',
    'GetBuildRunBuildRunSourceTriggerInfoResult',
    'GetBuildRunBuildRunSourceTriggerInfoActionResult',
    'GetBuildRunBuildRunSourceTriggerInfoActionFilterResult',
    'GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeResult',
    'GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilterResult',
    'GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeResult',
    'GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilterResult',
    'GetBuildRunCommitInfoResult',
    'GetBuildRunsBuildRunSummaryCollectionResult',
    'GetBuildRunsBuildRunSummaryCollectionItemResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsItemResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunProgressSummaryResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterResult',
    'GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterIncludeResult',
    'GetBuildRunsBuildRunSummaryCollectionItemCommitInfoResult',
    'GetBuildRunsFilterResult',
    'GetConnectionLastConnectionValidationResultResult',
    'GetConnectionTlsVerifyConfigResult',
    'GetConnectionsConnectionCollectionResult',
    'GetConnectionsConnectionCollectionItemResult',
    'GetConnectionsConnectionCollectionItemLastConnectionValidationResultResult',
    'GetConnectionsConnectionCollectionItemTlsVerifyConfigResult',
    'GetConnectionsFilterResult',
    'GetDeployArtifactDeployArtifactSourceResult',
    'GetDeployArtifactDeployArtifactSourceHelmVerificationKeySourceResult',
    'GetDeployArtifactsDeployArtifactCollectionResult',
    'GetDeployArtifactsDeployArtifactCollectionItemResult',
    'GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceResult',
    'GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceHelmVerificationKeySourceResult',
    'GetDeployArtifactsFilterResult',
    'GetDeployEnvironmentComputeInstanceGroupSelectorResult',
    'GetDeployEnvironmentComputeInstanceGroupSelectorItemResult',
    'GetDeployEnvironmentNetworkChannelResult',
    'GetDeployEnvironmentsDeployEnvironmentCollectionResult',
    'GetDeployEnvironmentsDeployEnvironmentCollectionItemResult',
    'GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorResult',
    'GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorItemResult',
    'GetDeployEnvironmentsDeployEnvironmentCollectionItemNetworkChannelResult',
    'GetDeployEnvironmentsFilterResult',
    'GetDeployPipelineDeployPipelineArtifactResult',
    'GetDeployPipelineDeployPipelineArtifactItemResult',
    'GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageResult',
    'GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageItemResult',
    'GetDeployPipelineDeployPipelineEnvironmentResult',
    'GetDeployPipelineDeployPipelineEnvironmentItemResult',
    'GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageResult',
    'GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItemResult',
    'GetDeployPipelineDeployPipelineParameterResult',
    'GetDeployPipelineDeployPipelineParameterItemResult',
    'GetDeployPipelinesDeployPipelineCollectionResult',
    'GetDeployPipelinesDeployPipelineCollectionItemResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterResult',
    'GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterItemResult',
    'GetDeployPipelinesFilterResult',
    'GetDeployStageApprovalPolicyResult',
    'GetDeployStageBlueBackendIpResult',
    'GetDeployStageBlueGreenStrategyResult',
    'GetDeployStageCanaryStrategyResult',
    'GetDeployStageContainerConfigResult',
    'GetDeployStageContainerConfigNetworkChannelResult',
    'GetDeployStageContainerConfigShapeConfigResult',
    'GetDeployStageDeployStagePredecessorCollectionResult',
    'GetDeployStageDeployStagePredecessorCollectionItemResult',
    'GetDeployStageFailurePolicyResult',
    'GetDeployStageGreenBackendIpResult',
    'GetDeployStageLoadBalancerConfigResult',
    'GetDeployStageProductionLoadBalancerConfigResult',
    'GetDeployStageRollbackPolicyResult',
    'GetDeployStageRolloutPolicyResult',
    'GetDeployStageSetStringResult',
    'GetDeployStageSetStringItemResult',
    'GetDeployStageSetValueResult',
    'GetDeployStageSetValueItemResult',
    'GetDeployStageTestLoadBalancerConfigResult',
    'GetDeployStageWaitCriteriaResult',
    'GetDeployStagesDeployStageCollectionResult',
    'GetDeployStagesDeployStageCollectionItemResult',
    'GetDeployStagesDeployStageCollectionItemApprovalPolicyResult',
    'GetDeployStagesDeployStageCollectionItemBlueBackendIpResult',
    'GetDeployStagesDeployStageCollectionItemBlueGreenStrategyResult',
    'GetDeployStagesDeployStageCollectionItemCanaryStrategyResult',
    'GetDeployStagesDeployStageCollectionItemContainerConfigResult',
    'GetDeployStagesDeployStageCollectionItemContainerConfigNetworkChannelResult',
    'GetDeployStagesDeployStageCollectionItemContainerConfigShapeConfigResult',
    'GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionResult',
    'GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionItemResult',
    'GetDeployStagesDeployStageCollectionItemFailurePolicyResult',
    'GetDeployStagesDeployStageCollectionItemGreenBackendIpResult',
    'GetDeployStagesDeployStageCollectionItemLoadBalancerConfigResult',
    'GetDeployStagesDeployStageCollectionItemProductionLoadBalancerConfigResult',
    'GetDeployStagesDeployStageCollectionItemRollbackPolicyResult',
    'GetDeployStagesDeployStageCollectionItemRolloutPolicyResult',
    'GetDeployStagesDeployStageCollectionItemSetStringResult',
    'GetDeployStagesDeployStageCollectionItemSetStringItemResult',
    'GetDeployStagesDeployStageCollectionItemSetValueResult',
    'GetDeployStagesDeployStageCollectionItemSetValueItemResult',
    'GetDeployStagesDeployStageCollectionItemTestLoadBalancerConfigResult',
    'GetDeployStagesDeployStageCollectionItemWaitCriteriaResult',
    'GetDeployStagesFilterResult',
    'GetDeploymentDeployArtifactOverrideArgumentResult',
    'GetDeploymentDeployArtifactOverrideArgumentItemResult',
    'GetDeploymentDeployPipelineArtifactResult',
    'GetDeploymentDeployPipelineArtifactItemResult',
    'GetDeploymentDeployPipelineArtifactItemDeployPipelineStageResult',
    'GetDeploymentDeployPipelineArtifactItemDeployPipelineStageItemResult',
    'GetDeploymentDeployPipelineEnvironmentResult',
    'GetDeploymentDeployPipelineEnvironmentItemResult',
    'GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageResult',
    'GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageItemResult',
    'GetDeploymentDeployStageOverrideArgumentResult',
    'GetDeploymentDeployStageOverrideArgumentItemResult',
    'GetDeploymentDeploymentArgumentResult',
    'GetDeploymentDeploymentArgumentItemResult',
    'GetDeploymentDeploymentExecutionProgressResult',
    'GetDeploymentsDeploymentCollectionResult',
    'GetDeploymentsDeploymentCollectionItemResult',
    'GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentResult',
    'GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentItemResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult',
    'GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult',
    'GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentResult',
    'GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentItemResult',
    'GetDeploymentsDeploymentCollectionItemDeploymentArgumentResult',
    'GetDeploymentsDeploymentCollectionItemDeploymentArgumentItemResult',
    'GetDeploymentsDeploymentCollectionItemDeploymentExecutionProgressResult',
    'GetDeploymentsFilterResult',
    'GetProjectNotificationConfigResult',
    'GetProjectsFilterResult',
    'GetProjectsProjectCollectionResult',
    'GetProjectsProjectCollectionItemResult',
    'GetProjectsProjectCollectionItemNotificationConfigResult',
    'GetRepoFileLineLineResult',
    'GetRepositoriesFilterResult',
    'GetRepositoriesRepositoryCollectionResult',
    'GetRepositoriesRepositoryCollectionItemResult',
    'GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigResult',
    'GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigTriggerScheduleResult',
    'GetRepositoryAuthorItemResult',
    'GetRepositoryAuthorsFilterResult',
    'GetRepositoryAuthorsRepositoryAuthorCollectionResult',
    'GetRepositoryAuthorsRepositoryAuthorCollectionItemResult',
    'GetRepositoryCommitsFilterResult',
    'GetRepositoryCommitsRepositoryCommitCollectionResult',
    'GetRepositoryCommitsRepositoryCommitCollectionItemResult',
    'GetRepositoryDiffChangeResult',
    'GetRepositoryDiffChangeDiffSectionResult',
    'GetRepositoryDiffChangeDiffSectionLineResult',
    'GetRepositoryDiffsDiffCollectionResult',
    'GetRepositoryDiffsDiffCollectionItemResult',
    'GetRepositoryDiffsDiffCollectionItemChangeResult',
    'GetRepositoryDiffsDiffCollectionItemChangeDiffSectionResult',
    'GetRepositoryDiffsDiffCollectionItemChangeDiffSectionLineResult',
    'GetRepositoryDiffsFilterResult',
    'GetRepositoryFileDiffChangeResult',
    'GetRepositoryFileDiffChangeDiffSectionResult',
    'GetRepositoryFileDiffChangeDiffSectionLineResult',
    'GetRepositoryFileLineLineResult',
    'GetRepositoryMirrorRecordsFilterResult',
    'GetRepositoryMirrorRecordsRepositoryMirrorRecordCollectionResult',
    'GetRepositoryMirrorRecordsRepositoryMirrorRecordCollectionItemResult',
    'GetRepositoryMirrorRepositoryConfigResult',
    'GetRepositoryMirrorRepositoryConfigTriggerScheduleResult',
    'GetRepositoryPathItemResult',
    'GetRepositoryPathsFilterResult',
    'GetRepositoryPathsRepositoryPathCollectionResult',
    'GetRepositoryPathsRepositoryPathCollectionItemResult',
    'GetRepositoryRefsFilterResult',
    'GetRepositoryRefsRepositoryRefCollectionResult',
    'GetRepositoryRefsRepositoryRefCollectionItemResult',
    'GetTriggerActionResult',
    'GetTriggerActionFilterResult',
    'GetTriggerActionFilterExcludeResult',
    'GetTriggerActionFilterExcludeFileFilterResult',
    'GetTriggerActionFilterIncludeResult',
    'GetTriggerActionFilterIncludeFileFilterResult',
    'GetTriggersFilterResult',
    'GetTriggersTriggerCollectionResult',
    'GetTriggersTriggerCollectionItemResult',
    'GetTriggersTriggerCollectionItemActionResult',
    'GetTriggersTriggerCollectionItemActionFilterResult',
    'GetTriggersTriggerCollectionItemActionFilterExcludeResult',
    'GetTriggersTriggerCollectionItemActionFilterExcludeFileFilterResult',
    'GetTriggersTriggerCollectionItemActionFilterIncludeResult',
    'GetTriggersTriggerCollectionItemActionFilterIncludeFileFilterResult',
]

@pulumi.output_type
class BuildPipelineBuildPipelineParameters(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.BuildPipelineBuildPipelineParametersItem']):
        """
        :param Sequence['BuildPipelineBuildPipelineParametersItemArgs'] items: (Updatable) List of parameters defined for a build pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.BuildPipelineBuildPipelineParametersItem']:
        """
        (Updatable) List of parameters defined for a build pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildPipelineBuildPipelineParametersItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "defaultValue":
            suggest = "default_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildPipelineBuildPipelineParametersItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildPipelineBuildPipelineParametersItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildPipelineBuildPipelineParametersItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 default_value: str,
                 name: str,
                 description: Optional[str] = None):
        """
        :param str default_value: (Updatable) Default value of the parameter.
        :param str name: (Updatable) Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        :param str description: (Updatable) Optional description about the build pipeline.
        """
        pulumi.set(__self__, "default_value", default_value)
        pulumi.set(__self__, "name", name)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> str:
        """
        (Updatable) Default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        (Updatable) Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        (Updatable) Optional description about the build pipeline.
        """
        return pulumi.get(self, "description")


@pulumi.output_type
class BuildPipelineStageBuildPipelineStagePredecessorCollection(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.BuildPipelineStageBuildPipelineStagePredecessorCollectionItem']):
        """
        :param Sequence['BuildPipelineStageBuildPipelineStagePredecessorCollectionItemArgs'] items: (Updatable) Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.BuildPipelineStageBuildPipelineStagePredecessorCollectionItem']:
        """
        (Updatable) Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildPipelineStageBuildPipelineStagePredecessorCollectionItem(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: (Updatable) The OCID of the predecessor stage. If a stage is the first stage in the pipeline, then the ID is the pipeline's OCID.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        (Updatable) The OCID of the predecessor stage. If a stage is the first stage in the pipeline, then the ID is the pipeline's OCID.
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class BuildPipelineStageBuildRunnerShapeConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "buildRunnerType":
            suggest = "build_runner_type"
        elif key == "memoryInGbs":
            suggest = "memory_in_gbs"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildPipelineStageBuildRunnerShapeConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildPipelineStageBuildRunnerShapeConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildPipelineStageBuildRunnerShapeConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 build_runner_type: str,
                 memory_in_gbs: Optional[int] = None,
                 ocpus: Optional[int] = None):
        """
        :param str build_runner_type: (Updatable) Name of the build runner shape in which the execution occurs. If not specified, the default shape is chosen.
        :param int memory_in_gbs: (Updatable) The total amount of memory set for the instance in gigabytes.
        :param int ocpus: (Updatable) The total number of OCPUs set for the instance.
        """
        pulumi.set(__self__, "build_runner_type", build_runner_type)
        if memory_in_gbs is not None:
            pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        if ocpus is not None:
            pulumi.set(__self__, "ocpus", ocpus)

    @property
    @pulumi.getter(name="buildRunnerType")
    def build_runner_type(self) -> str:
        """
        (Updatable) Name of the build runner shape in which the execution occurs. If not specified, the default shape is chosen.
        """
        return pulumi.get(self, "build_runner_type")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> Optional[int]:
        """
        (Updatable) The total amount of memory set for the instance in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> Optional[int]:
        """
        (Updatable) The total number of OCPUs set for the instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class BuildPipelineStageBuildSourceCollection(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.BuildPipelineStageBuildSourceCollectionItem']] = None):
        """
        :param Sequence['BuildPipelineStageBuildSourceCollectionItemArgs'] items: (Updatable) Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.BuildPipelineStageBuildSourceCollectionItem']]:
        """
        (Updatable) Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildPipelineStageBuildSourceCollectionItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectionType":
            suggest = "connection_type"
        elif key == "connectionId":
            suggest = "connection_id"
        elif key == "repositoryId":
            suggest = "repository_id"
        elif key == "repositoryUrl":
            suggest = "repository_url"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildPipelineStageBuildSourceCollectionItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildPipelineStageBuildSourceCollectionItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildPipelineStageBuildSourceCollectionItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connection_type: str,
                 branch: Optional[str] = None,
                 connection_id: Optional[str] = None,
                 name: Optional[str] = None,
                 repository_id: Optional[str] = None,
                 repository_url: Optional[str] = None):
        """
        :param str connection_type: (Updatable) The type of source provider.
        :param str branch: (Updatable) Branch name.
        :param str connection_id: (Updatable) Connection identifier pertinent to Bitbucket Server source provider
        :param str name: (Updatable) Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        :param str repository_id: (Updatable) The DevOps code repository ID.
        :param str repository_url: (Updatable) URL for the repository.
        """
        pulumi.set(__self__, "connection_type", connection_type)
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if connection_id is not None:
            pulumi.set(__self__, "connection_id", connection_id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if repository_id is not None:
            pulumi.set(__self__, "repository_id", repository_id)
        if repository_url is not None:
            pulumi.set(__self__, "repository_url", repository_url)

    @property
    @pulumi.getter(name="connectionType")
    def connection_type(self) -> str:
        """
        (Updatable) The type of source provider.
        """
        return pulumi.get(self, "connection_type")

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

    @property
    @pulumi.getter(name="connectionId")
    def connection_id(self) -> Optional[str]:
        """
        (Updatable) Connection identifier pertinent to Bitbucket Server source provider
        """
        return pulumi.get(self, "connection_id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        (Updatable) Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> Optional[str]:
        """
        (Updatable) The DevOps code repository ID.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> Optional[str]:
        """
        (Updatable) URL for the repository.
        """
        return pulumi.get(self, "repository_url")


@pulumi.output_type
class BuildPipelineStageDeliverArtifactCollection(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.BuildPipelineStageDeliverArtifactCollectionItem']] = None):
        """
        :param Sequence['BuildPipelineStageDeliverArtifactCollectionItemArgs'] items: (Updatable) Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.BuildPipelineStageDeliverArtifactCollectionItem']]:
        """
        (Updatable) Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildPipelineStageDeliverArtifactCollectionItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "artifactId":
            suggest = "artifact_id"
        elif key == "artifactName":
            suggest = "artifact_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildPipelineStageDeliverArtifactCollectionItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildPipelineStageDeliverArtifactCollectionItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildPipelineStageDeliverArtifactCollectionItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 artifact_id: Optional[str] = None,
                 artifact_name: Optional[str] = None):
        """
        :param str artifact_id: (Updatable) Artifact identifier that contains the artifact definition.
        :param str artifact_name: (Updatable) Name of the artifact specified in the build_spec.yaml file.
        """
        if artifact_id is not None:
            pulumi.set(__self__, "artifact_id", artifact_id)
        if artifact_name is not None:
            pulumi.set(__self__, "artifact_name", artifact_name)

    @property
    @pulumi.getter(name="artifactId")
    def artifact_id(self) -> Optional[str]:
        """
        (Updatable) Artifact identifier that contains the artifact definition.
        """
        return pulumi.get(self, "artifact_id")

    @property
    @pulumi.getter(name="artifactName")
    def artifact_name(self) -> Optional[str]:
        """
        (Updatable) Name of the artifact specified in the build_spec.yaml file.
        """
        return pulumi.get(self, "artifact_name")


@pulumi.output_type
class BuildPipelineStagePrivateAccessConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "networkChannelType":
            suggest = "network_channel_type"
        elif key == "subnetId":
            suggest = "subnet_id"
        elif key == "nsgIds":
            suggest = "nsg_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildPipelineStagePrivateAccessConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildPipelineStagePrivateAccessConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildPipelineStagePrivateAccessConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 network_channel_type: str,
                 subnet_id: str,
                 nsg_ids: Optional[Sequence[str]] = None):
        """
        :param str network_channel_type: (Updatable) Network channel type.
        :param str subnet_id: (Updatable) The OCID of the subnet where VNIC resources will be created for private endpoint.
        :param Sequence[str] nsg_ids: (Updatable) An array of network security group OCIDs.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "subnet_id", subnet_id)
        if nsg_ids is not None:
            pulumi.set(__self__, "nsg_ids", nsg_ids)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        (Updatable) Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        (Updatable) The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Optional[Sequence[str]]:
        """
        (Updatable) An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")


@pulumi.output_type
class BuildPipelineStageWaitCriteria(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "waitDuration":
            suggest = "wait_duration"
        elif key == "waitType":
            suggest = "wait_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildPipelineStageWaitCriteria. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildPipelineStageWaitCriteria.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildPipelineStageWaitCriteria.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 wait_duration: str,
                 wait_type: str):
        """
        :param str wait_duration: (Updatable) The absolute wait duration. Minimum wait duration must be 5 seconds. Maximum wait duration can be up to 2 days.
        :param str wait_type: (Updatable) Wait criteria type.
               
               
               ** IMPORTANT **
               Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        pulumi.set(__self__, "wait_duration", wait_duration)
        pulumi.set(__self__, "wait_type", wait_type)

    @property
    @pulumi.getter(name="waitDuration")
    def wait_duration(self) -> str:
        """
        (Updatable) The absolute wait duration. Minimum wait duration must be 5 seconds. Maximum wait duration can be up to 2 days.
        """
        return pulumi.get(self, "wait_duration")

    @property
    @pulumi.getter(name="waitType")
    def wait_type(self) -> str:
        """
        (Updatable) Wait criteria type.


        ** IMPORTANT **
        Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        return pulumi.get(self, "wait_type")


@pulumi.output_type
class BuildRunBuildOutput(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "artifactOverrideParameters":
            suggest = "artifact_override_parameters"
        elif key == "deliveredArtifacts":
            suggest = "delivered_artifacts"
        elif key == "exportedVariables":
            suggest = "exported_variables"
        elif key == "vulnerabilityAuditSummaryCollections":
            suggest = "vulnerability_audit_summary_collections"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildOutput. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildOutput.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildOutput.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 artifact_override_parameters: Optional[Sequence['outputs.BuildRunBuildOutputArtifactOverrideParameter']] = None,
                 delivered_artifacts: Optional[Sequence['outputs.BuildRunBuildOutputDeliveredArtifact']] = None,
                 exported_variables: Optional[Sequence['outputs.BuildRunBuildOutputExportedVariable']] = None,
                 vulnerability_audit_summary_collections: Optional[Sequence['outputs.BuildRunBuildOutputVulnerabilityAuditSummaryCollection']] = None):
        """
        :param Sequence['BuildRunBuildOutputArtifactOverrideParameterArgs'] artifact_override_parameters: Specifies the list of artifact override arguments at the time of deployment.
        :param Sequence['BuildRunBuildOutputDeliveredArtifactArgs'] delivered_artifacts: Specifies the list of artifacts delivered through the Deliver Artifacts stage.
        :param Sequence['BuildRunBuildOutputExportedVariableArgs'] exported_variables: Specifies list of exported variables.
        :param Sequence['BuildRunBuildOutputVulnerabilityAuditSummaryCollectionArgs'] vulnerability_audit_summary_collections: List of vulnerability audit summary.
        """
        if artifact_override_parameters is not None:
            pulumi.set(__self__, "artifact_override_parameters", artifact_override_parameters)
        if delivered_artifacts is not None:
            pulumi.set(__self__, "delivered_artifacts", delivered_artifacts)
        if exported_variables is not None:
            pulumi.set(__self__, "exported_variables", exported_variables)
        if vulnerability_audit_summary_collections is not None:
            pulumi.set(__self__, "vulnerability_audit_summary_collections", vulnerability_audit_summary_collections)

    @property
    @pulumi.getter(name="artifactOverrideParameters")
    def artifact_override_parameters(self) -> Optional[Sequence['outputs.BuildRunBuildOutputArtifactOverrideParameter']]:
        """
        Specifies the list of artifact override arguments at the time of deployment.
        """
        return pulumi.get(self, "artifact_override_parameters")

    @property
    @pulumi.getter(name="deliveredArtifacts")
    def delivered_artifacts(self) -> Optional[Sequence['outputs.BuildRunBuildOutputDeliveredArtifact']]:
        """
        Specifies the list of artifacts delivered through the Deliver Artifacts stage.
        """
        return pulumi.get(self, "delivered_artifacts")

    @property
    @pulumi.getter(name="exportedVariables")
    def exported_variables(self) -> Optional[Sequence['outputs.BuildRunBuildOutputExportedVariable']]:
        """
        Specifies list of exported variables.
        """
        return pulumi.get(self, "exported_variables")

    @property
    @pulumi.getter(name="vulnerabilityAuditSummaryCollections")
    def vulnerability_audit_summary_collections(self) -> Optional[Sequence['outputs.BuildRunBuildOutputVulnerabilityAuditSummaryCollection']]:
        """
        List of vulnerability audit summary.
        """
        return pulumi.get(self, "vulnerability_audit_summary_collections")


@pulumi.output_type
class BuildRunBuildOutputArtifactOverrideParameter(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.BuildRunBuildOutputArtifactOverrideParameterItem']] = None):
        """
        :param Sequence['BuildRunBuildOutputArtifactOverrideParameterItemArgs'] items: List of arguments provided at the time of running the build.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.BuildRunBuildOutputArtifactOverrideParameterItem']]:
        """
        List of arguments provided at the time of running the build.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildRunBuildOutputArtifactOverrideParameterItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployArtifactId":
            suggest = "deploy_artifact_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildOutputArtifactOverrideParameterItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildOutputArtifactOverrideParameterItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildOutputArtifactOverrideParameterItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_artifact_id: Optional[str] = None,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str deploy_artifact_id: The OCID of the deployment artifact definition.
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        :param str value: Value of the argument.
        """
        if deploy_artifact_id is not None:
            pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> Optional[str]:
        """
        The OCID of the deployment artifact definition.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class BuildRunBuildOutputDeliveredArtifact(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.BuildRunBuildOutputDeliveredArtifactItem']] = None):
        """
        :param Sequence['BuildRunBuildOutputDeliveredArtifactItemArgs'] items: List of arguments provided at the time of running the build.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.BuildRunBuildOutputDeliveredArtifactItem']]:
        """
        List of arguments provided at the time of running the build.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildRunBuildOutputDeliveredArtifactItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "artifactRepositoryId":
            suggest = "artifact_repository_id"
        elif key == "artifactType":
            suggest = "artifact_type"
        elif key == "deliveredArtifactHash":
            suggest = "delivered_artifact_hash"
        elif key == "deliveredArtifactId":
            suggest = "delivered_artifact_id"
        elif key == "deployArtifactId":
            suggest = "deploy_artifact_id"
        elif key == "imageUri":
            suggest = "image_uri"
        elif key == "outputArtifactName":
            suggest = "output_artifact_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildOutputDeliveredArtifactItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildOutputDeliveredArtifactItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildOutputDeliveredArtifactItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 artifact_repository_id: Optional[str] = None,
                 artifact_type: Optional[str] = None,
                 delivered_artifact_hash: Optional[str] = None,
                 delivered_artifact_id: Optional[str] = None,
                 deploy_artifact_id: Optional[str] = None,
                 image_uri: Optional[str] = None,
                 output_artifact_name: Optional[str] = None,
                 path: Optional[str] = None,
                 version: Optional[str] = None):
        """
        :param str artifact_repository_id: The OCID of the artifact registry repository used by the DeliverArtifactStage
        :param str artifact_type: Type of artifact delivered.
        :param str delivered_artifact_hash: The hash of the container registry artifact pushed by the Deliver Artifacts stage.
        :param str delivered_artifact_id: The OCID of the artifact pushed by the Deliver Artifacts stage.
        :param str deploy_artifact_id: The OCID of the deployment artifact definition.
        :param str image_uri: The imageUri of the OCIR artifact pushed by the DeliverArtifactStage
        :param str output_artifact_name: Name of the output artifact defined in the build specification file.
        :param str path: Path of the repository where artifact was pushed
        :param str version: Version of the artifact pushed
        """
        if artifact_repository_id is not None:
            pulumi.set(__self__, "artifact_repository_id", artifact_repository_id)
        if artifact_type is not None:
            pulumi.set(__self__, "artifact_type", artifact_type)
        if delivered_artifact_hash is not None:
            pulumi.set(__self__, "delivered_artifact_hash", delivered_artifact_hash)
        if delivered_artifact_id is not None:
            pulumi.set(__self__, "delivered_artifact_id", delivered_artifact_id)
        if deploy_artifact_id is not None:
            pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        if image_uri is not None:
            pulumi.set(__self__, "image_uri", image_uri)
        if output_artifact_name is not None:
            pulumi.set(__self__, "output_artifact_name", output_artifact_name)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter(name="artifactRepositoryId")
    def artifact_repository_id(self) -> Optional[str]:
        """
        The OCID of the artifact registry repository used by the DeliverArtifactStage
        """
        return pulumi.get(self, "artifact_repository_id")

    @property
    @pulumi.getter(name="artifactType")
    def artifact_type(self) -> Optional[str]:
        """
        Type of artifact delivered.
        """
        return pulumi.get(self, "artifact_type")

    @property
    @pulumi.getter(name="deliveredArtifactHash")
    def delivered_artifact_hash(self) -> Optional[str]:
        """
        The hash of the container registry artifact pushed by the Deliver Artifacts stage.
        """
        return pulumi.get(self, "delivered_artifact_hash")

    @property
    @pulumi.getter(name="deliveredArtifactId")
    def delivered_artifact_id(self) -> Optional[str]:
        """
        The OCID of the artifact pushed by the Deliver Artifacts stage.
        """
        return pulumi.get(self, "delivered_artifact_id")

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> Optional[str]:
        """
        The OCID of the deployment artifact definition.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="imageUri")
    def image_uri(self) -> Optional[str]:
        """
        The imageUri of the OCIR artifact pushed by the DeliverArtifactStage
        """
        return pulumi.get(self, "image_uri")

    @property
    @pulumi.getter(name="outputArtifactName")
    def output_artifact_name(self) -> Optional[str]:
        """
        Name of the output artifact defined in the build specification file.
        """
        return pulumi.get(self, "output_artifact_name")

    @property
    @pulumi.getter
    def path(self) -> Optional[str]:
        """
        Path of the repository where artifact was pushed
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def version(self) -> Optional[str]:
        """
        Version of the artifact pushed
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class BuildRunBuildOutputExportedVariable(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.BuildRunBuildOutputExportedVariableItem']] = None):
        """
        :param Sequence['BuildRunBuildOutputExportedVariableItemArgs'] items: List of arguments provided at the time of running the build.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.BuildRunBuildOutputExportedVariableItem']]:
        """
        List of arguments provided at the time of running the build.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildRunBuildOutputExportedVariableItem(dict):
    def __init__(__self__, *,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        :param str value: Value of the argument.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class BuildRunBuildOutputVulnerabilityAuditSummaryCollection(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem']] = None):
        """
        :param Sequence['BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItemArgs'] items: List of arguments provided at the time of running the build.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem']]:
        """
        List of arguments provided at the time of running the build.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "buildStageId":
            suggest = "build_stage_id"
        elif key == "commitHash":
            suggest = "commit_hash"
        elif key == "vulnerabilityAuditId":
            suggest = "vulnerability_audit_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildOutputVulnerabilityAuditSummaryCollectionItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 build_stage_id: Optional[str] = None,
                 commit_hash: Optional[str] = None,
                 vulnerability_audit_id: Optional[str] = None):
        """
        :param str build_stage_id: Build stage OCID where scan was configured.
        :param str commit_hash: Commit hash pertinent to the repository URL and the specified branch.
        :param str vulnerability_audit_id: The OCID of the vulnerability audit.
        """
        if build_stage_id is not None:
            pulumi.set(__self__, "build_stage_id", build_stage_id)
        if commit_hash is not None:
            pulumi.set(__self__, "commit_hash", commit_hash)
        if vulnerability_audit_id is not None:
            pulumi.set(__self__, "vulnerability_audit_id", vulnerability_audit_id)

    @property
    @pulumi.getter(name="buildStageId")
    def build_stage_id(self) -> Optional[str]:
        """
        Build stage OCID where scan was configured.
        """
        return pulumi.get(self, "build_stage_id")

    @property
    @pulumi.getter(name="commitHash")
    def commit_hash(self) -> Optional[str]:
        """
        Commit hash pertinent to the repository URL and the specified branch.
        """
        return pulumi.get(self, "commit_hash")

    @property
    @pulumi.getter(name="vulnerabilityAuditId")
    def vulnerability_audit_id(self) -> Optional[str]:
        """
        The OCID of the vulnerability audit.
        """
        return pulumi.get(self, "vulnerability_audit_id")


@pulumi.output_type
class BuildRunBuildRunArguments(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.BuildRunBuildRunArgumentsItem']):
        """
        :param Sequence['BuildRunBuildRunArgumentsItemArgs'] items: List of arguments provided at the time of running the build.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.BuildRunBuildRunArgumentsItem']:
        """
        List of arguments provided at the time of running the build.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class BuildRunBuildRunArgumentsItem(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        :param str value: Value of the argument.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class BuildRunBuildRunProgress(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "buildPipelineStageRunProgress":
            suggest = "build_pipeline_stage_run_progress"
        elif key == "timeFinished":
            suggest = "time_finished"
        elif key == "timeStarted":
            suggest = "time_started"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunProgress. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunProgress.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunProgress.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 build_pipeline_stage_run_progress: Optional[Mapping[str, Any]] = None,
                 time_finished: Optional[str] = None,
                 time_started: Optional[str] = None):
        """
        :param Mapping[str, Any] build_pipeline_stage_run_progress: Map of stage OCIDs to build pipeline stage run progress model.
        :param str time_finished: The time the build run finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_started: The time the build run started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        if build_pipeline_stage_run_progress is not None:
            pulumi.set(__self__, "build_pipeline_stage_run_progress", build_pipeline_stage_run_progress)
        if time_finished is not None:
            pulumi.set(__self__, "time_finished", time_finished)
        if time_started is not None:
            pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="buildPipelineStageRunProgress")
    def build_pipeline_stage_run_progress(self) -> Optional[Mapping[str, Any]]:
        """
        Map of stage OCIDs to build pipeline stage run progress model.
        """
        return pulumi.get(self, "build_pipeline_stage_run_progress")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> Optional[str]:
        """
        The time the build run finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> Optional[str]:
        """
        The time the build run started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class BuildRunBuildRunSource(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "repositoryId":
            suggest = "repository_id"
        elif key == "sourceType":
            suggest = "source_type"
        elif key == "triggerId":
            suggest = "trigger_id"
        elif key == "triggerInfos":
            suggest = "trigger_infos"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSource. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSource.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSource.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 repository_id: Optional[str] = None,
                 source_type: Optional[str] = None,
                 trigger_id: Optional[str] = None,
                 trigger_infos: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfo']] = None):
        """
        :param str repository_id: The DevOps code repository identifier that invoked the build run.
        :param str source_type: The source from which the build run is triggered.
        :param str trigger_id: The trigger that invoked the build run.
        :param Sequence['BuildRunBuildRunSourceTriggerInfoArgs'] trigger_infos: Trigger details that need to be used for the BuildRun
        """
        if repository_id is not None:
            pulumi.set(__self__, "repository_id", repository_id)
        if source_type is not None:
            pulumi.set(__self__, "source_type", source_type)
        if trigger_id is not None:
            pulumi.set(__self__, "trigger_id", trigger_id)
        if trigger_infos is not None:
            pulumi.set(__self__, "trigger_infos", trigger_infos)

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> Optional[str]:
        """
        The DevOps code repository identifier that invoked the build run.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter(name="sourceType")
    def source_type(self) -> Optional[str]:
        """
        The source from which the build run is triggered.
        """
        return pulumi.get(self, "source_type")

    @property
    @pulumi.getter(name="triggerId")
    def trigger_id(self) -> Optional[str]:
        """
        The trigger that invoked the build run.
        """
        return pulumi.get(self, "trigger_id")

    @property
    @pulumi.getter(name="triggerInfos")
    def trigger_infos(self) -> Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfo']]:
        """
        Trigger details that need to be used for the BuildRun
        """
        return pulumi.get(self, "trigger_infos")


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfo(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfo. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfo.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfo.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 actions: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoAction']] = None,
                 display_name: Optional[str] = None):
        """
        :param Sequence['BuildRunBuildRunSourceTriggerInfoActionArgs'] actions: The list of actions that are to be performed for this Trigger
        :param str display_name: (Updatable) Build run display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        if actions is not None:
            pulumi.set(__self__, "actions", actions)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter
    def actions(self) -> Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoAction']]:
        """
        The list of actions that are to be performed for this Trigger
        """
        return pulumi.get(self, "actions")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Build run display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfoAction(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "buildPipelineId":
            suggest = "build_pipeline_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfoAction. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfoAction.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfoAction.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 build_pipeline_id: Optional[str] = None,
                 filters: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilter']] = None,
                 type: Optional[str] = None):
        """
        :param str build_pipeline_id: The OCID of the build pipeline.
        :param Sequence['BuildRunBuildRunSourceTriggerInfoActionFilterArgs'] filters: The filters for the trigger.
        :param str type: The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        if build_pipeline_id is not None:
            pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> Optional[str]:
        """
        The OCID of the build pipeline.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter
    def filters(self) -> Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilter']]:
        """
        The filters for the trigger.
        """
        return pulumi.get(self, "filters")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfoActionFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "triggerSource":
            suggest = "trigger_source"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfoActionFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 events: Optional[Sequence[str]] = None,
                 excludes: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterExclude']] = None,
                 includes: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterInclude']] = None,
                 trigger_source: Optional[str] = None):
        """
        :param Sequence[str] events: The events, for example, PUSH, PULL_REQUEST_MERGE.
        :param Sequence['BuildRunBuildRunSourceTriggerInfoActionFilterIncludeArgs'] includes: Attributes to filter GitLab self-hosted server events.
        :param str trigger_source: Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        if events is not None:
            pulumi.set(__self__, "events", events)
        if excludes is not None:
            pulumi.set(__self__, "excludes", excludes)
        if includes is not None:
            pulumi.set(__self__, "includes", includes)
        if trigger_source is not None:
            pulumi.set(__self__, "trigger_source", trigger_source)

    @property
    @pulumi.getter
    def events(self) -> Optional[Sequence[str]]:
        """
        The events, for example, PUSH, PULL_REQUEST_MERGE.
        """
        return pulumi.get(self, "events")

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

    @property
    @pulumi.getter
    def includes(self) -> Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterInclude']]:
        """
        Attributes to filter GitLab self-hosted server events.
        """
        return pulumi.get(self, "includes")

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> Optional[str]:
        """
        Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        return pulumi.get(self, "trigger_source")


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfoActionFilterExclude(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileFilters":
            suggest = "file_filters"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfoActionFilterExclude. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterExclude.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterExclude.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_filters: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter']] = None):
        if file_filters is not None:
            pulumi.set(__self__, "file_filters", file_filters)

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter']]:
        return pulumi.get(self, "file_filters")


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePaths":
            suggest = "file_paths"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_paths: Optional[Sequence[str]] = None):
        if file_paths is not None:
            pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfoActionFilterInclude(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "baseRef":
            suggest = "base_ref"
        elif key == "fileFilters":
            suggest = "file_filters"
        elif key == "headRef":
            suggest = "head_ref"
        elif key == "repositoryName":
            suggest = "repository_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfoActionFilterInclude. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterInclude.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterInclude.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 base_ref: Optional[str] = None,
                 file_filters: Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter']] = None,
                 head_ref: Optional[str] = None,
                 repository_name: Optional[str] = None):
        """
        :param str base_ref: The target branch for pull requests; not applicable for push requests.
        :param str head_ref: Branch for push event; source branch for pull requests.
        :param str repository_name: The repository name for trigger events.
        """
        if base_ref is not None:
            pulumi.set(__self__, "base_ref", base_ref)
        if file_filters is not None:
            pulumi.set(__self__, "file_filters", file_filters)
        if head_ref is not None:
            pulumi.set(__self__, "head_ref", head_ref)
        if repository_name is not None:
            pulumi.set(__self__, "repository_name", repository_name)

    @property
    @pulumi.getter(name="baseRef")
    def base_ref(self) -> Optional[str]:
        """
        The target branch for pull requests; not applicable for push requests.
        """
        return pulumi.get(self, "base_ref")

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Optional[Sequence['outputs.BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter']]:
        return pulumi.get(self, "file_filters")

    @property
    @pulumi.getter(name="headRef")
    def head_ref(self) -> Optional[str]:
        """
        Branch for push event; source branch for pull requests.
        """
        return pulumi.get(self, "head_ref")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> Optional[str]:
        """
        The repository name for trigger events.
        """
        return pulumi.get(self, "repository_name")


@pulumi.output_type
class BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePaths":
            suggest = "file_paths"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_paths: Optional[Sequence[str]] = None):
        if file_paths is not None:
            pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class BuildRunCommitInfo(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commitHash":
            suggest = "commit_hash"
        elif key == "repositoryBranch":
            suggest = "repository_branch"
        elif key == "repositoryUrl":
            suggest = "repository_url"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BuildRunCommitInfo. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BuildRunCommitInfo.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BuildRunCommitInfo.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 commit_hash: str,
                 repository_branch: str,
                 repository_url: str):
        """
        :param str commit_hash: Commit hash pertinent to the repository URL and the specified branch.
        :param str repository_branch: Name of the repository branch.
        :param str repository_url: Repository URL.
        """
        pulumi.set(__self__, "commit_hash", commit_hash)
        pulumi.set(__self__, "repository_branch", repository_branch)
        pulumi.set(__self__, "repository_url", repository_url)

    @property
    @pulumi.getter(name="commitHash")
    def commit_hash(self) -> str:
        """
        Commit hash pertinent to the repository URL and the specified branch.
        """
        return pulumi.get(self, "commit_hash")

    @property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> str:
        """
        Name of the repository branch.
        """
        return pulumi.get(self, "repository_branch")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        Repository URL.
        """
        return pulumi.get(self, "repository_url")


@pulumi.output_type
class ConnectionLastConnectionValidationResult(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "timeValidated":
            suggest = "time_validated"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ConnectionLastConnectionValidationResult. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ConnectionLastConnectionValidationResult.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ConnectionLastConnectionValidationResult.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 message: Optional[str] = None,
                 result: Optional[str] = None,
                 time_validated: Optional[str] = None):
        """
        :param str message: A message describing the result of connection validation in more detail.
        :param str result: The latest result of whether the credentials pass the validation.
        :param str time_validated: The latest timestamp when the connection was validated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        if message is not None:
            pulumi.set(__self__, "message", message)
        if result is not None:
            pulumi.set(__self__, "result", result)
        if time_validated is not None:
            pulumi.set(__self__, "time_validated", time_validated)

    @property
    @pulumi.getter
    def message(self) -> Optional[str]:
        """
        A message describing the result of connection validation in more detail.
        """
        return pulumi.get(self, "message")

    @property
    @pulumi.getter
    def result(self) -> Optional[str]:
        """
        The latest result of whether the credentials pass the validation.
        """
        return pulumi.get(self, "result")

    @property
    @pulumi.getter(name="timeValidated")
    def time_validated(self) -> Optional[str]:
        """
        The latest timestamp when the connection was validated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_validated")


@pulumi.output_type
class ConnectionTlsVerifyConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "caCertificateBundleId":
            suggest = "ca_certificate_bundle_id"
        elif key == "tlsVerifyMode":
            suggest = "tls_verify_mode"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ConnectionTlsVerifyConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ConnectionTlsVerifyConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ConnectionTlsVerifyConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 ca_certificate_bundle_id: str,
                 tls_verify_mode: str):
        """
        :param str ca_certificate_bundle_id: (Updatable) The OCID of Oracle Cloud Infrastructure certificate service CA bundle.
        :param str tls_verify_mode: (Updatable) The type of TLS verification.
        """
        pulumi.set(__self__, "ca_certificate_bundle_id", ca_certificate_bundle_id)
        pulumi.set(__self__, "tls_verify_mode", tls_verify_mode)

    @property
    @pulumi.getter(name="caCertificateBundleId")
    def ca_certificate_bundle_id(self) -> str:
        """
        (Updatable) The OCID of Oracle Cloud Infrastructure certificate service CA bundle.
        """
        return pulumi.get(self, "ca_certificate_bundle_id")

    @property
    @pulumi.getter(name="tlsVerifyMode")
    def tls_verify_mode(self) -> str:
        """
        (Updatable) The type of TLS verification.
        """
        return pulumi.get(self, "tls_verify_mode")


@pulumi.output_type
class DeployArtifactDeployArtifactSource(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployArtifactSourceType":
            suggest = "deploy_artifact_source_type"
        elif key == "base64encodedContent":
            suggest = "base64encoded_content"
        elif key == "chartUrl":
            suggest = "chart_url"
        elif key == "deployArtifactPath":
            suggest = "deploy_artifact_path"
        elif key == "deployArtifactVersion":
            suggest = "deploy_artifact_version"
        elif key == "helmVerificationKeySource":
            suggest = "helm_verification_key_source"
        elif key == "imageDigest":
            suggest = "image_digest"
        elif key == "imageUri":
            suggest = "image_uri"
        elif key == "repositoryId":
            suggest = "repository_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployArtifactDeployArtifactSource. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployArtifactDeployArtifactSource.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployArtifactDeployArtifactSource.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_artifact_source_type: str,
                 base64encoded_content: Optional[str] = None,
                 chart_url: Optional[str] = None,
                 deploy_artifact_path: Optional[str] = None,
                 deploy_artifact_version: Optional[str] = None,
                 helm_verification_key_source: Optional['outputs.DeployArtifactDeployArtifactSourceHelmVerificationKeySource'] = None,
                 image_digest: Optional[str] = None,
                 image_uri: Optional[str] = None,
                 repository_id: Optional[str] = None):
        """
        :param str deploy_artifact_source_type: (Updatable) Specifies types of artifact sources.
        :param str base64encoded_content: (Updatable) Specifies content for the inline artifact.
        :param str chart_url: (Updatable) The URL of an OCIR repository.
        :param str deploy_artifact_path: (Updatable) Specifies the artifact path in the repository.
        :param str deploy_artifact_version: (Updatable) Users can set this as a placeholder value that refers to a pipeline parameter, for example, ${appVersion}.
        :param 'DeployArtifactDeployArtifactSourceHelmVerificationKeySourceArgs' helm_verification_key_source: (Updatable) The source of the verification material.
        :param str image_digest: (Updatable) Specifies image digest for the version of the image.
        :param str image_uri: (Updatable) Specifies OCIR Image Path - optionally include tag.
        :param str repository_id: (Updatable) The OCID of a repository
        """
        pulumi.set(__self__, "deploy_artifact_source_type", deploy_artifact_source_type)
        if base64encoded_content is not None:
            pulumi.set(__self__, "base64encoded_content", base64encoded_content)
        if chart_url is not None:
            pulumi.set(__self__, "chart_url", chart_url)
        if deploy_artifact_path is not None:
            pulumi.set(__self__, "deploy_artifact_path", deploy_artifact_path)
        if deploy_artifact_version is not None:
            pulumi.set(__self__, "deploy_artifact_version", deploy_artifact_version)
        if helm_verification_key_source is not None:
            pulumi.set(__self__, "helm_verification_key_source", helm_verification_key_source)
        if image_digest is not None:
            pulumi.set(__self__, "image_digest", image_digest)
        if image_uri is not None:
            pulumi.set(__self__, "image_uri", image_uri)
        if repository_id is not None:
            pulumi.set(__self__, "repository_id", repository_id)

    @property
    @pulumi.getter(name="deployArtifactSourceType")
    def deploy_artifact_source_type(self) -> str:
        """
        (Updatable) Specifies types of artifact sources.
        """
        return pulumi.get(self, "deploy_artifact_source_type")

    @property
    @pulumi.getter(name="base64encodedContent")
    def base64encoded_content(self) -> Optional[str]:
        """
        (Updatable) Specifies content for the inline artifact.
        """
        return pulumi.get(self, "base64encoded_content")

    @property
    @pulumi.getter(name="chartUrl")
    def chart_url(self) -> Optional[str]:
        """
        (Updatable) The URL of an OCIR repository.
        """
        return pulumi.get(self, "chart_url")

    @property
    @pulumi.getter(name="deployArtifactPath")
    def deploy_artifact_path(self) -> Optional[str]:
        """
        (Updatable) Specifies the artifact path in the repository.
        """
        return pulumi.get(self, "deploy_artifact_path")

    @property
    @pulumi.getter(name="deployArtifactVersion")
    def deploy_artifact_version(self) -> Optional[str]:
        """
        (Updatable) Users can set this as a placeholder value that refers to a pipeline parameter, for example, ${appVersion}.
        """
        return pulumi.get(self, "deploy_artifact_version")

    @property
    @pulumi.getter(name="helmVerificationKeySource")
    def helm_verification_key_source(self) -> Optional['outputs.DeployArtifactDeployArtifactSourceHelmVerificationKeySource']:
        """
        (Updatable) The source of the verification material.
        """
        return pulumi.get(self, "helm_verification_key_source")

    @property
    @pulumi.getter(name="imageDigest")
    def image_digest(self) -> Optional[str]:
        """
        (Updatable) Specifies image digest for the version of the image.
        """
        return pulumi.get(self, "image_digest")

    @property
    @pulumi.getter(name="imageUri")
    def image_uri(self) -> Optional[str]:
        """
        (Updatable) Specifies OCIR Image Path - optionally include tag.
        """
        return pulumi.get(self, "image_uri")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> Optional[str]:
        """
        (Updatable) The OCID of a repository
        """
        return pulumi.get(self, "repository_id")


@pulumi.output_type
class DeployArtifactDeployArtifactSourceHelmVerificationKeySource(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "verificationKeySourceType":
            suggest = "verification_key_source_type"
        elif key == "currentPublicKey":
            suggest = "current_public_key"
        elif key == "previousPublicKey":
            suggest = "previous_public_key"
        elif key == "vaultSecretId":
            suggest = "vault_secret_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployArtifactDeployArtifactSourceHelmVerificationKeySource. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployArtifactDeployArtifactSourceHelmVerificationKeySource.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployArtifactDeployArtifactSourceHelmVerificationKeySource.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 verification_key_source_type: str,
                 current_public_key: Optional[str] = None,
                 previous_public_key: Optional[str] = None,
                 vault_secret_id: Optional[str] = None):
        """
        :param str verification_key_source_type: (Updatable) Specifies type of verification material.
        :param str current_public_key: (Updatable) Current version of Base64 encoding of the public key which is in binary GPG exported format.
        :param str previous_public_key: (Updatable) Previous version of Base64 encoding of the public key which is in binary GPG exported format. This would be used for key rotation scenarios.
        :param str vault_secret_id: (Updatable) The OCID of the Vault Secret containing the verification key versions.
        """
        pulumi.set(__self__, "verification_key_source_type", verification_key_source_type)
        if current_public_key is not None:
            pulumi.set(__self__, "current_public_key", current_public_key)
        if previous_public_key is not None:
            pulumi.set(__self__, "previous_public_key", previous_public_key)
        if vault_secret_id is not None:
            pulumi.set(__self__, "vault_secret_id", vault_secret_id)

    @property
    @pulumi.getter(name="verificationKeySourceType")
    def verification_key_source_type(self) -> str:
        """
        (Updatable) Specifies type of verification material.
        """
        return pulumi.get(self, "verification_key_source_type")

    @property
    @pulumi.getter(name="currentPublicKey")
    def current_public_key(self) -> Optional[str]:
        """
        (Updatable) Current version of Base64 encoding of the public key which is in binary GPG exported format.
        """
        return pulumi.get(self, "current_public_key")

    @property
    @pulumi.getter(name="previousPublicKey")
    def previous_public_key(self) -> Optional[str]:
        """
        (Updatable) Previous version of Base64 encoding of the public key which is in binary GPG exported format. This would be used for key rotation scenarios.
        """
        return pulumi.get(self, "previous_public_key")

    @property
    @pulumi.getter(name="vaultSecretId")
    def vault_secret_id(self) -> Optional[str]:
        """
        (Updatable) The OCID of the Vault Secret containing the verification key versions.
        """
        return pulumi.get(self, "vault_secret_id")


@pulumi.output_type
class DeployEnvironmentComputeInstanceGroupSelectors(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployEnvironmentComputeInstanceGroupSelectorsItem']] = None):
        """
        :param Sequence['DeployEnvironmentComputeInstanceGroupSelectorsItemArgs'] items: (Updatable) A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployEnvironmentComputeInstanceGroupSelectorsItem']]:
        """
        (Updatable) A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployEnvironmentComputeInstanceGroupSelectorsItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "selectorType":
            suggest = "selector_type"
        elif key == "computeInstanceIds":
            suggest = "compute_instance_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployEnvironmentComputeInstanceGroupSelectorsItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployEnvironmentComputeInstanceGroupSelectorsItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployEnvironmentComputeInstanceGroupSelectorsItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 selector_type: str,
                 compute_instance_ids: Optional[Sequence[str]] = None,
                 query: Optional[str] = None,
                 region: Optional[str] = None):
        """
        :param str selector_type: (Updatable) Defines the type of the instance selector for the group.
        :param Sequence[str] compute_instance_ids: (Updatable) Compute instance OCID identifiers that are members of this group.
        :param str query: (Updatable) Query expression confirming to the Oracle Cloud Infrastructure Search Language syntax to select compute instances for the group. The language is documented at https://docs.oracle.com/en-us/iaas/Content/Search/Concepts/querysyntax.htm
        :param str region: (Updatable) Region identifier referred by the deployment environment. Region identifiers are listed at https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
        """
        pulumi.set(__self__, "selector_type", selector_type)
        if compute_instance_ids is not None:
            pulumi.set(__self__, "compute_instance_ids", compute_instance_ids)
        if query is not None:
            pulumi.set(__self__, "query", query)
        if region is not None:
            pulumi.set(__self__, "region", region)

    @property
    @pulumi.getter(name="selectorType")
    def selector_type(self) -> str:
        """
        (Updatable) Defines the type of the instance selector for the group.
        """
        return pulumi.get(self, "selector_type")

    @property
    @pulumi.getter(name="computeInstanceIds")
    def compute_instance_ids(self) -> Optional[Sequence[str]]:
        """
        (Updatable) Compute instance OCID identifiers that are members of this group.
        """
        return pulumi.get(self, "compute_instance_ids")

    @property
    @pulumi.getter
    def query(self) -> Optional[str]:
        """
        (Updatable) Query expression confirming to the Oracle Cloud Infrastructure Search Language syntax to select compute instances for the group. The language is documented at https://docs.oracle.com/en-us/iaas/Content/Search/Concepts/querysyntax.htm
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter
    def region(self) -> Optional[str]:
        """
        (Updatable) Region identifier referred by the deployment environment. Region identifiers are listed at https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
        """
        return pulumi.get(self, "region")


@pulumi.output_type
class DeployEnvironmentNetworkChannel(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "networkChannelType":
            suggest = "network_channel_type"
        elif key == "subnetId":
            suggest = "subnet_id"
        elif key == "nsgIds":
            suggest = "nsg_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployEnvironmentNetworkChannel. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployEnvironmentNetworkChannel.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployEnvironmentNetworkChannel.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 network_channel_type: str,
                 subnet_id: str,
                 nsg_ids: Optional[Sequence[str]] = None):
        """
        :param str network_channel_type: (Updatable) Network channel type.
        :param str subnet_id: (Updatable) The OCID of the subnet where VNIC resources will be created for private endpoint.
        :param Sequence[str] nsg_ids: (Updatable) An array of network security group OCIDs.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "subnet_id", subnet_id)
        if nsg_ids is not None:
            pulumi.set(__self__, "nsg_ids", nsg_ids)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        (Updatable) Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        (Updatable) The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Optional[Sequence[str]]:
        """
        (Updatable) An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")


@pulumi.output_type
class DeployPipelineDeployPipelineArtifact(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployPipelineDeployPipelineArtifactItem']] = None):
        """
        :param Sequence['DeployPipelineDeployPipelineArtifactItemArgs'] items: (Updatable) List of parameters defined for a deployment pipeline.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployPipelineDeployPipelineArtifactItem']]:
        """
        (Updatable) List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployPipelineDeployPipelineArtifactItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployArtifactId":
            suggest = "deploy_artifact_id"
        elif key == "deployPipelineStages":
            suggest = "deploy_pipeline_stages"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployPipelineDeployPipelineArtifactItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployPipelineDeployPipelineArtifactItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployPipelineDeployPipelineArtifactItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_artifact_id: Optional[str] = None,
                 deploy_pipeline_stages: Optional[Sequence['outputs.DeployPipelineDeployPipelineArtifactItemDeployPipelineStage']] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param Sequence['DeployPipelineDeployPipelineArtifactItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        if deploy_artifact_id is not None:
            pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        if deploy_pipeline_stages is not None:
            pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> Optional[str]:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Optional[Sequence['outputs.DeployPipelineDeployPipelineArtifactItemDeployPipelineStage']]:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeployPipelineDeployPipelineArtifactItemDeployPipelineStage(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem']] = None):
        """
        :param Sequence['DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItemArgs'] items: (Updatable) List of parameters defined for a deployment pipeline.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem']]:
        """
        (Updatable) List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployStageId":
            suggest = "deploy_stage_id"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployPipelineDeployPipelineArtifactItemDeployPipelineStageItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_stage_id: Optional[str] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_stage_id: The OCID of a stage
        :param str display_name: (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        if deploy_stage_id is not None:
            pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> Optional[str]:
        """
        The OCID of a stage
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeployPipelineDeployPipelineEnvironment(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployPipelineDeployPipelineEnvironmentItem']] = None):
        """
        :param Sequence['DeployPipelineDeployPipelineEnvironmentItemArgs'] items: (Updatable) List of parameters defined for a deployment pipeline.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployPipelineDeployPipelineEnvironmentItem']]:
        """
        (Updatable) List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployPipelineDeployPipelineEnvironmentItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployEnvironmentId":
            suggest = "deploy_environment_id"
        elif key == "deployPipelineStages":
            suggest = "deploy_pipeline_stages"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployPipelineDeployPipelineEnvironmentItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployPipelineDeployPipelineEnvironmentItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployPipelineDeployPipelineEnvironmentItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_environment_id: Optional[str] = None,
                 deploy_pipeline_stages: Optional[Sequence['outputs.DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStage']] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_environment_id: The OCID of an Environment
        :param Sequence['DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        if deploy_environment_id is not None:
            pulumi.set(__self__, "deploy_environment_id", deploy_environment_id)
        if deploy_pipeline_stages is not None:
            pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployEnvironmentId")
    def deploy_environment_id(self) -> Optional[str]:
        """
        The OCID of an Environment
        """
        return pulumi.get(self, "deploy_environment_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Optional[Sequence['outputs.DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStage']]:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStage(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem']] = None):
        """
        :param Sequence['DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItemArgs'] items: (Updatable) List of parameters defined for a deployment pipeline.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem']]:
        """
        (Updatable) List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployStageId":
            suggest = "deploy_stage_id"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_stage_id: Optional[str] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_stage_id: The OCID of a stage
        :param str display_name: (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        if deploy_stage_id is not None:
            pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> Optional[str]:
        """
        The OCID of a stage
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment pipeline display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeployPipelineDeployPipelineParameters(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.DeployPipelineDeployPipelineParametersItem']):
        """
        :param Sequence['DeployPipelineDeployPipelineParametersItemArgs'] items: (Updatable) List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.DeployPipelineDeployPipelineParametersItem']:
        """
        (Updatable) List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployPipelineDeployPipelineParametersItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "defaultValue":
            suggest = "default_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployPipelineDeployPipelineParametersItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployPipelineDeployPipelineParametersItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployPipelineDeployPipelineParametersItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 default_value: Optional[str] = None,
                 description: Optional[str] = None):
        """
        :param str name: (Updatable) Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        :param str default_value: (Updatable) Default value of the parameter.
        :param str description: (Updatable) Optional description about the deployment pipeline.
        """
        pulumi.set(__self__, "name", name)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        (Updatable) Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[str]:
        """
        (Updatable) Default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        (Updatable) Optional description about the deployment pipeline.
        """
        return pulumi.get(self, "description")


@pulumi.output_type
class DeployStageApprovalPolicy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "approvalPolicyType":
            suggest = "approval_policy_type"
        elif key == "numberOfApprovalsRequired":
            suggest = "number_of_approvals_required"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageApprovalPolicy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageApprovalPolicy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageApprovalPolicy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 approval_policy_type: str,
                 number_of_approvals_required: int):
        """
        :param str approval_policy_type: (Updatable) Approval policy type.
        :param int number_of_approvals_required: (Updatable) A minimum number of approvals required for stage to proceed.
        """
        pulumi.set(__self__, "approval_policy_type", approval_policy_type)
        pulumi.set(__self__, "number_of_approvals_required", number_of_approvals_required)

    @property
    @pulumi.getter(name="approvalPolicyType")
    def approval_policy_type(self) -> str:
        """
        (Updatable) Approval policy type.
        """
        return pulumi.get(self, "approval_policy_type")

    @property
    @pulumi.getter(name="numberOfApprovalsRequired")
    def number_of_approvals_required(self) -> int:
        """
        (Updatable) A minimum number of approvals required for stage to proceed.
        """
        return pulumi.get(self, "number_of_approvals_required")


@pulumi.output_type
class DeployStageBlueBackendIps(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence[str]] = None):
        """
        :param Sequence[str] items: (Updatable) List of parameters defined to set helm value.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence[str]]:
        """
        (Updatable) List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployStageBlueGreenStrategy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "ingressName":
            suggest = "ingress_name"
        elif key == "namespaceA":
            suggest = "namespace_a"
        elif key == "namespaceB":
            suggest = "namespace_b"
        elif key == "strategyType":
            suggest = "strategy_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageBlueGreenStrategy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageBlueGreenStrategy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageBlueGreenStrategy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 ingress_name: str,
                 namespace_a: str,
                 namespace_b: str,
                 strategy_type: str):
        """
        :param str ingress_name: Name of the Ingress resource.
        :param str namespace_a: First Namespace for deployment.
        :param str namespace_b: Second Namespace for deployment.
        :param str strategy_type: Canary strategy type.
        """
        pulumi.set(__self__, "ingress_name", ingress_name)
        pulumi.set(__self__, "namespace_a", namespace_a)
        pulumi.set(__self__, "namespace_b", namespace_b)
        pulumi.set(__self__, "strategy_type", strategy_type)

    @property
    @pulumi.getter(name="ingressName")
    def ingress_name(self) -> str:
        """
        Name of the Ingress resource.
        """
        return pulumi.get(self, "ingress_name")

    @property
    @pulumi.getter(name="namespaceA")
    def namespace_a(self) -> str:
        """
        First Namespace for deployment.
        """
        return pulumi.get(self, "namespace_a")

    @property
    @pulumi.getter(name="namespaceB")
    def namespace_b(self) -> str:
        """
        Second Namespace for deployment.
        """
        return pulumi.get(self, "namespace_b")

    @property
    @pulumi.getter(name="strategyType")
    def strategy_type(self) -> str:
        """
        Canary strategy type.
        """
        return pulumi.get(self, "strategy_type")


@pulumi.output_type
class DeployStageCanaryStrategy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "ingressName":
            suggest = "ingress_name"
        elif key == "strategyType":
            suggest = "strategy_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageCanaryStrategy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageCanaryStrategy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageCanaryStrategy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 ingress_name: str,
                 namespace: str,
                 strategy_type: str):
        """
        :param str ingress_name: Name of the Ingress resource.
        :param str namespace: (Updatable) Default namespace to be used for Kubernetes deployment when not specified in the manifest.
        :param str strategy_type: Canary strategy type.
        """
        pulumi.set(__self__, "ingress_name", ingress_name)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "strategy_type", strategy_type)

    @property
    @pulumi.getter(name="ingressName")
    def ingress_name(self) -> str:
        """
        Name of the Ingress resource.
        """
        return pulumi.get(self, "ingress_name")

    @property
    @pulumi.getter
    def namespace(self) -> str:
        """
        (Updatable) Default namespace to be used for Kubernetes deployment when not specified in the manifest.
        """
        return pulumi.get(self, "namespace")

    @property
    @pulumi.getter(name="strategyType")
    def strategy_type(self) -> str:
        """
        Canary strategy type.
        """
        return pulumi.get(self, "strategy_type")


@pulumi.output_type
class DeployStageContainerConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "containerConfigType":
            suggest = "container_config_type"
        elif key == "networkChannel":
            suggest = "network_channel"
        elif key == "shapeConfig":
            suggest = "shape_config"
        elif key == "shapeName":
            suggest = "shape_name"
        elif key == "availabilityDomain":
            suggest = "availability_domain"
        elif key == "compartmentId":
            suggest = "compartment_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageContainerConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageContainerConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageContainerConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 container_config_type: str,
                 network_channel: 'outputs.DeployStageContainerConfigNetworkChannel',
                 shape_config: 'outputs.DeployStageContainerConfigShapeConfig',
                 shape_name: str,
                 availability_domain: Optional[str] = None,
                 compartment_id: Optional[str] = None):
        """
        :param str container_config_type: (Updatable) Container configuration type.
        :param 'DeployStageContainerConfigNetworkChannelArgs' network_channel: (Updatable) Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        :param 'DeployStageContainerConfigShapeConfigArgs' shape_config: (Updatable) Determines the size and amount of resources available to the instance.
        :param str shape_name: (Updatable) The shape of the ContainerInstance. The shape determines the resources available to the ContainerInstance.
        :param str availability_domain: (Updatable) Availability domain where the ContainerInstance will be created.
        :param str compartment_id: (Updatable) The OCID of the compartment where the ContainerInstance will be created.
        """
        pulumi.set(__self__, "container_config_type", container_config_type)
        pulumi.set(__self__, "network_channel", network_channel)
        pulumi.set(__self__, "shape_config", shape_config)
        pulumi.set(__self__, "shape_name", shape_name)
        if availability_domain is not None:
            pulumi.set(__self__, "availability_domain", availability_domain)
        if compartment_id is not None:
            pulumi.set(__self__, "compartment_id", compartment_id)

    @property
    @pulumi.getter(name="containerConfigType")
    def container_config_type(self) -> str:
        """
        (Updatable) Container configuration type.
        """
        return pulumi.get(self, "container_config_type")

    @property
    @pulumi.getter(name="networkChannel")
    def network_channel(self) -> 'outputs.DeployStageContainerConfigNetworkChannel':
        """
        (Updatable) Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        """
        return pulumi.get(self, "network_channel")

    @property
    @pulumi.getter(name="shapeConfig")
    def shape_config(self) -> 'outputs.DeployStageContainerConfigShapeConfig':
        """
        (Updatable) Determines the size and amount of resources available to the instance.
        """
        return pulumi.get(self, "shape_config")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        (Updatable) The shape of the ContainerInstance. The shape determines the resources available to the ContainerInstance.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="availabilityDomain")
    def availability_domain(self) -> Optional[str]:
        """
        (Updatable) Availability domain where the ContainerInstance will be created.
        """
        return pulumi.get(self, "availability_domain")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> Optional[str]:
        """
        (Updatable) The OCID of the compartment where the ContainerInstance will be created.
        """
        return pulumi.get(self, "compartment_id")


@pulumi.output_type
class DeployStageContainerConfigNetworkChannel(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "networkChannelType":
            suggest = "network_channel_type"
        elif key == "subnetId":
            suggest = "subnet_id"
        elif key == "nsgIds":
            suggest = "nsg_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageContainerConfigNetworkChannel. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageContainerConfigNetworkChannel.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageContainerConfigNetworkChannel.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 network_channel_type: str,
                 subnet_id: str,
                 nsg_ids: Optional[Sequence[str]] = None):
        """
        :param str network_channel_type: (Updatable) Network channel type.
        :param str subnet_id: (Updatable) The OCID of the subnet where VNIC resources will be created for private endpoint.
        :param Sequence[str] nsg_ids: (Updatable) An array of network security group OCIDs.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "subnet_id", subnet_id)
        if nsg_ids is not None:
            pulumi.set(__self__, "nsg_ids", nsg_ids)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        (Updatable) Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        (Updatable) The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Optional[Sequence[str]]:
        """
        (Updatable) An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")


@pulumi.output_type
class DeployStageContainerConfigShapeConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "memoryInGbs":
            suggest = "memory_in_gbs"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageContainerConfigShapeConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageContainerConfigShapeConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageContainerConfigShapeConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 ocpus: float,
                 memory_in_gbs: Optional[float] = None):
        """
        :param float ocpus: (Updatable) The total number of OCPUs available to the instance.
        :param float memory_in_gbs: (Updatable) The total amount of memory available to the instance, in gigabytes.
        """
        pulumi.set(__self__, "ocpus", ocpus)
        if memory_in_gbs is not None:
            pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        (Updatable) The total number of OCPUs available to the instance.
        """
        return pulumi.get(self, "ocpus")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        (Updatable) The total amount of memory available to the instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")


@pulumi.output_type
class DeployStageDeployStagePredecessorCollection(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.DeployStageDeployStagePredecessorCollectionItem']):
        """
        :param Sequence['DeployStageDeployStagePredecessorCollectionItemArgs'] items: (Updatable) List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.DeployStageDeployStagePredecessorCollectionItem']:
        """
        (Updatable) List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployStageDeployStagePredecessorCollectionItem(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: (Updatable) The OCID of the predecessor stage. If a stage is the first stage in the pipeline, then the ID is the pipeline's OCID.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        (Updatable) The OCID of the predecessor stage. If a stage is the first stage in the pipeline, then the ID is the pipeline's OCID.
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class DeployStageFailurePolicy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "policyType":
            suggest = "policy_type"
        elif key == "failureCount":
            suggest = "failure_count"
        elif key == "failurePercentage":
            suggest = "failure_percentage"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageFailurePolicy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageFailurePolicy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageFailurePolicy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 policy_type: str,
                 failure_count: Optional[int] = None,
                 failure_percentage: Optional[int] = None):
        """
        :param str policy_type: (Updatable) The type of policy used for rolling out a deployment stage.
        :param int failure_count: (Updatable) The threshold count of failed instances in the group, which when reached or exceeded sets the stage as FAILED.
        :param int failure_percentage: (Updatable) The failure percentage threshold, which when reached or exceeded sets the stage as FAILED. Percentage is computed as the ceiling value of the number of failed instances over the total count of the instances in the group.
        """
        pulumi.set(__self__, "policy_type", policy_type)
        if failure_count is not None:
            pulumi.set(__self__, "failure_count", failure_count)
        if failure_percentage is not None:
            pulumi.set(__self__, "failure_percentage", failure_percentage)

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        (Updatable) The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")

    @property
    @pulumi.getter(name="failureCount")
    def failure_count(self) -> Optional[int]:
        """
        (Updatable) The threshold count of failed instances in the group, which when reached or exceeded sets the stage as FAILED.
        """
        return pulumi.get(self, "failure_count")

    @property
    @pulumi.getter(name="failurePercentage")
    def failure_percentage(self) -> Optional[int]:
        """
        (Updatable) The failure percentage threshold, which when reached or exceeded sets the stage as FAILED. Percentage is computed as the ceiling value of the number of failed instances over the total count of the instances in the group.
        """
        return pulumi.get(self, "failure_percentage")


@pulumi.output_type
class DeployStageGreenBackendIps(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence[str]] = None):
        """
        :param Sequence[str] items: (Updatable) List of parameters defined to set helm value.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence[str]]:
        """
        (Updatable) List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployStageLoadBalancerConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "backendPort":
            suggest = "backend_port"
        elif key == "listenerName":
            suggest = "listener_name"
        elif key == "loadBalancerId":
            suggest = "load_balancer_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageLoadBalancerConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageLoadBalancerConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageLoadBalancerConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 backend_port: Optional[int] = None,
                 listener_name: Optional[str] = None,
                 load_balancer_id: Optional[str] = None,
                 state: Optional[str] = None):
        """
        :param int backend_port: (Updatable) Listen port for the backend server.
        :param str listener_name: (Updatable) Name of the load balancer listener.
        :param str load_balancer_id: (Updatable) The OCID of the load balancer.
        :param str state: The current state of the deployment stage.
        """
        if backend_port is not None:
            pulumi.set(__self__, "backend_port", backend_port)
        if listener_name is not None:
            pulumi.set(__self__, "listener_name", listener_name)
        if load_balancer_id is not None:
            pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> Optional[int]:
        """
        (Updatable) Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> Optional[str]:
        """
        (Updatable) Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> Optional[str]:
        """
        (Updatable) The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> Optional[str]:
        """
        The current state of the deployment stage.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class DeployStageProductionLoadBalancerConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "backendPort":
            suggest = "backend_port"
        elif key == "listenerName":
            suggest = "listener_name"
        elif key == "loadBalancerId":
            suggest = "load_balancer_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageProductionLoadBalancerConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageProductionLoadBalancerConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageProductionLoadBalancerConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 backend_port: Optional[int] = None,
                 listener_name: Optional[str] = None,
                 load_balancer_id: Optional[str] = None,
                 state: Optional[str] = None):
        """
        :param int backend_port: (Updatable) Listen port for the backend server.
        :param str listener_name: (Updatable) Name of the load balancer listener.
        :param str load_balancer_id: (Updatable) The OCID of the load balancer.
        :param str state: The current state of the deployment stage.
        """
        if backend_port is not None:
            pulumi.set(__self__, "backend_port", backend_port)
        if listener_name is not None:
            pulumi.set(__self__, "listener_name", listener_name)
        if load_balancer_id is not None:
            pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> Optional[int]:
        """
        (Updatable) Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> Optional[str]:
        """
        (Updatable) Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> Optional[str]:
        """
        (Updatable) The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> Optional[str]:
        """
        The current state of the deployment stage.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class DeployStageRollbackPolicy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "policyType":
            suggest = "policy_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageRollbackPolicy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageRollbackPolicy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageRollbackPolicy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 policy_type: Optional[str] = None):
        """
        :param str policy_type: (Updatable) The type of policy used for rolling out a deployment stage.
        """
        if policy_type is not None:
            pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> Optional[str]:
        """
        (Updatable) The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class DeployStageRolloutPolicy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "batchCount":
            suggest = "batch_count"
        elif key == "batchDelayInSeconds":
            suggest = "batch_delay_in_seconds"
        elif key == "batchPercentage":
            suggest = "batch_percentage"
        elif key == "policyType":
            suggest = "policy_type"
        elif key == "rampLimitPercent":
            suggest = "ramp_limit_percent"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageRolloutPolicy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageRolloutPolicy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageRolloutPolicy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 batch_count: Optional[int] = None,
                 batch_delay_in_seconds: Optional[int] = None,
                 batch_percentage: Optional[int] = None,
                 policy_type: Optional[str] = None,
                 ramp_limit_percent: Optional[float] = None):
        """
        :param int batch_count: (Updatable) The number that will be used to determine how many instances will be deployed concurrently.
        :param int batch_delay_in_seconds: (Updatable) The duration of delay between batch rollout. The default delay is 1 minute.
        :param int batch_percentage: (Updatable) The percentage that will be used to determine how many instances will be deployed concurrently.
        :param str policy_type: (Updatable) The type of policy used for rolling out a deployment stage.
        :param float ramp_limit_percent: (Updatable) Indicates the criteria to stop.
        """
        if batch_count is not None:
            pulumi.set(__self__, "batch_count", batch_count)
        if batch_delay_in_seconds is not None:
            pulumi.set(__self__, "batch_delay_in_seconds", batch_delay_in_seconds)
        if batch_percentage is not None:
            pulumi.set(__self__, "batch_percentage", batch_percentage)
        if policy_type is not None:
            pulumi.set(__self__, "policy_type", policy_type)
        if ramp_limit_percent is not None:
            pulumi.set(__self__, "ramp_limit_percent", ramp_limit_percent)

    @property
    @pulumi.getter(name="batchCount")
    def batch_count(self) -> Optional[int]:
        """
        (Updatable) The number that will be used to determine how many instances will be deployed concurrently.
        """
        return pulumi.get(self, "batch_count")

    @property
    @pulumi.getter(name="batchDelayInSeconds")
    def batch_delay_in_seconds(self) -> Optional[int]:
        """
        (Updatable) The duration of delay between batch rollout. The default delay is 1 minute.
        """
        return pulumi.get(self, "batch_delay_in_seconds")

    @property
    @pulumi.getter(name="batchPercentage")
    def batch_percentage(self) -> Optional[int]:
        """
        (Updatable) The percentage that will be used to determine how many instances will be deployed concurrently.
        """
        return pulumi.get(self, "batch_percentage")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> Optional[str]:
        """
        (Updatable) The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")

    @property
    @pulumi.getter(name="rampLimitPercent")
    def ramp_limit_percent(self) -> Optional[float]:
        """
        (Updatable) Indicates the criteria to stop.
        """
        return pulumi.get(self, "ramp_limit_percent")


@pulumi.output_type
class DeployStageSetString(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployStageSetStringItem']] = None):
        """
        :param Sequence['DeployStageSetStringItemArgs'] items: (Updatable) List of parameters defined to set helm value.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployStageSetStringItem']]:
        """
        (Updatable) List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployStageSetStringItem(dict):
    def __init__(__self__, *,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str name: (Updatable) Name of the parameter (case-sensitive).
        :param str value: (Updatable) Value of the parameter.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        (Updatable) Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        (Updatable) Value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class DeployStageSetValues(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeployStageSetValuesItem']] = None):
        """
        :param Sequence['DeployStageSetValuesItemArgs'] items: (Updatable) List of parameters defined to set helm value.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeployStageSetValuesItem']]:
        """
        (Updatable) List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeployStageSetValuesItem(dict):
    def __init__(__self__, *,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str name: (Updatable) Name of the parameter (case-sensitive).
        :param str value: (Updatable) Value of the parameter.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        (Updatable) Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        (Updatable) Value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class DeployStageTestLoadBalancerConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "backendPort":
            suggest = "backend_port"
        elif key == "listenerName":
            suggest = "listener_name"
        elif key == "loadBalancerId":
            suggest = "load_balancer_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageTestLoadBalancerConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageTestLoadBalancerConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageTestLoadBalancerConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 backend_port: Optional[int] = None,
                 listener_name: Optional[str] = None,
                 load_balancer_id: Optional[str] = None,
                 state: Optional[str] = None):
        """
        :param int backend_port: (Updatable) Listen port for the backend server.
        :param str listener_name: (Updatable) Name of the load balancer listener.
        :param str load_balancer_id: (Updatable) The OCID of the load balancer.
        :param str state: The current state of the deployment stage.
        """
        if backend_port is not None:
            pulumi.set(__self__, "backend_port", backend_port)
        if listener_name is not None:
            pulumi.set(__self__, "listener_name", listener_name)
        if load_balancer_id is not None:
            pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> Optional[int]:
        """
        (Updatable) Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> Optional[str]:
        """
        (Updatable) Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> Optional[str]:
        """
        (Updatable) The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> Optional[str]:
        """
        The current state of the deployment stage.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class DeployStageWaitCriteria(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "waitDuration":
            suggest = "wait_duration"
        elif key == "waitType":
            suggest = "wait_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeployStageWaitCriteria. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeployStageWaitCriteria.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeployStageWaitCriteria.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 wait_duration: str,
                 wait_type: str):
        """
        :param str wait_duration: (Updatable) The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        :param str wait_type: (Updatable) Wait criteria type.
               
               
               ** IMPORTANT **
               Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        pulumi.set(__self__, "wait_duration", wait_duration)
        pulumi.set(__self__, "wait_type", wait_type)

    @property
    @pulumi.getter(name="waitDuration")
    def wait_duration(self) -> str:
        """
        (Updatable) The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        """
        return pulumi.get(self, "wait_duration")

    @property
    @pulumi.getter(name="waitType")
    def wait_type(self) -> str:
        """
        (Updatable) Wait criteria type.


        ** IMPORTANT **
        Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        return pulumi.get(self, "wait_type")


@pulumi.output_type
class DeploymentDeployArtifactOverrideArguments(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeployArtifactOverrideArgumentsItem']] = None):
        """
        :param Sequence['DeploymentDeployArtifactOverrideArgumentsItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeployArtifactOverrideArgumentsItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeployArtifactOverrideArgumentsItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployArtifactId":
            suggest = "deploy_artifact_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeployArtifactOverrideArgumentsItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeployArtifactOverrideArgumentsItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeployArtifactOverrideArgumentsItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_artifact_id: Optional[str] = None,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str deploy_artifact_id: The OCID of the artifact to which this parameter applies.
        :param str name: Name of the parameter (case-sensitive).
        :param str value: value of the argument.
               *  To retrieve Helm Diff for Helm stages in the pipeline add deployment_arguments with name=PLAN_DRY_RUN and value=true
        """
        if deploy_artifact_id is not None:
            pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> Optional[str]:
        """
        The OCID of the artifact to which this parameter applies.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        value of the argument.
        *  To retrieve Helm Diff for Helm stages in the pipeline add deployment_arguments with name=PLAN_DRY_RUN and value=true
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class DeploymentDeployPipelineArtifact(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeployPipelineArtifactItem']] = None):
        """
        :param Sequence['DeploymentDeployPipelineArtifactItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeployPipelineArtifactItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeployPipelineArtifactItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployArtifactId":
            suggest = "deploy_artifact_id"
        elif key == "deployPipelineStages":
            suggest = "deploy_pipeline_stages"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeployPipelineArtifactItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeployPipelineArtifactItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeployPipelineArtifactItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_artifact_id: Optional[str] = None,
                 deploy_pipeline_stages: Optional[Sequence['outputs.DeploymentDeployPipelineArtifactItemDeployPipelineStage']] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_artifact_id: The OCID of the artifact to which this parameter applies.
        :param Sequence['DeploymentDeployPipelineArtifactItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: (Updatable) Deployment display name. Avoid entering confidential information.
        """
        if deploy_artifact_id is not None:
            pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        if deploy_pipeline_stages is not None:
            pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> Optional[str]:
        """
        The OCID of the artifact to which this parameter applies.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Optional[Sequence['outputs.DeploymentDeployPipelineArtifactItemDeployPipelineStage']]:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeploymentDeployPipelineArtifactItemDeployPipelineStage(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeployPipelineArtifactItemDeployPipelineStageItem']] = None):
        """
        :param Sequence['DeploymentDeployPipelineArtifactItemDeployPipelineStageItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeployPipelineArtifactItemDeployPipelineStageItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeployPipelineArtifactItemDeployPipelineStageItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployStageId":
            suggest = "deploy_stage_id"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeployPipelineArtifactItemDeployPipelineStageItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeployPipelineArtifactItemDeployPipelineStageItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeployPipelineArtifactItemDeployPipelineStageItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_stage_id: Optional[str] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str display_name: (Updatable) Deployment display name. Avoid entering confidential information.
        """
        if deploy_stage_id is not None:
            pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> Optional[str]:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeploymentDeployPipelineEnvironment(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeployPipelineEnvironmentItem']] = None):
        """
        :param Sequence['DeploymentDeployPipelineEnvironmentItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeployPipelineEnvironmentItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeployPipelineEnvironmentItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployEnvironmentId":
            suggest = "deploy_environment_id"
        elif key == "deployPipelineStages":
            suggest = "deploy_pipeline_stages"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeployPipelineEnvironmentItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeployPipelineEnvironmentItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeployPipelineEnvironmentItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_environment_id: Optional[str] = None,
                 deploy_pipeline_stages: Optional[Sequence['outputs.DeploymentDeployPipelineEnvironmentItemDeployPipelineStage']] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_environment_id: The OCID of an Environment
        :param Sequence['DeploymentDeployPipelineEnvironmentItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: (Updatable) Deployment display name. Avoid entering confidential information.
        """
        if deploy_environment_id is not None:
            pulumi.set(__self__, "deploy_environment_id", deploy_environment_id)
        if deploy_pipeline_stages is not None:
            pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployEnvironmentId")
    def deploy_environment_id(self) -> Optional[str]:
        """
        The OCID of an Environment
        """
        return pulumi.get(self, "deploy_environment_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Optional[Sequence['outputs.DeploymentDeployPipelineEnvironmentItemDeployPipelineStage']]:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeploymentDeployPipelineEnvironmentItemDeployPipelineStage(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem']] = None):
        """
        :param Sequence['DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployStageId":
            suggest = "deploy_stage_id"
        elif key == "displayName":
            suggest = "display_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeployPipelineEnvironmentItemDeployPipelineStageItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_stage_id: Optional[str] = None,
                 display_name: Optional[str] = None):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str display_name: (Updatable) Deployment display name. Avoid entering confidential information.
        """
        if deploy_stage_id is not None:
            pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> Optional[str]:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        (Updatable) Deployment display name. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class DeploymentDeployStageOverrideArguments(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeployStageOverrideArgumentsItem']] = None):
        """
        :param Sequence['DeploymentDeployStageOverrideArgumentsItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeployStageOverrideArgumentsItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeployStageOverrideArgumentsItem(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployStageId":
            suggest = "deploy_stage_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeployStageOverrideArgumentsItem. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeployStageOverrideArgumentsItem.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeployStageOverrideArgumentsItem.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_stage_id: Optional[str] = None,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str name: Name of the parameter (case-sensitive).
        :param str value: value of the argument.
               *  To retrieve Helm Diff for Helm stages in the pipeline add deployment_arguments with name=PLAN_DRY_RUN and value=true
        """
        if deploy_stage_id is not None:
            pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> Optional[str]:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        value of the argument.
        *  To retrieve Helm Diff for Helm stages in the pipeline add deployment_arguments with name=PLAN_DRY_RUN and value=true
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class DeploymentDeploymentArguments(dict):
    def __init__(__self__, *,
                 items: Optional[Sequence['outputs.DeploymentDeploymentArgumentsItem']] = None):
        """
        :param Sequence['DeploymentDeploymentArgumentsItemArgs'] items: List of arguments provided at the time of deployment.
        """
        if items is not None:
            pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.DeploymentDeploymentArgumentsItem']]:
        """
        List of arguments provided at the time of deployment.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class DeploymentDeploymentArgumentsItem(dict):
    def __init__(__self__, *,
                 name: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str name: Name of the parameter (case-sensitive).
        :param str value: value of the argument.
               *  To retrieve Helm Diff for Helm stages in the pipeline add deployment_arguments with name=PLAN_DRY_RUN and value=true
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        value of the argument.
        *  To retrieve Helm Diff for Helm stages in the pipeline add deployment_arguments with name=PLAN_DRY_RUN and value=true
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class DeploymentDeploymentExecutionProgress(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deployStageExecutionProgress":
            suggest = "deploy_stage_execution_progress"
        elif key == "timeFinished":
            suggest = "time_finished"
        elif key == "timeStarted":
            suggest = "time_started"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in DeploymentDeploymentExecutionProgress. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        DeploymentDeploymentExecutionProgress.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        DeploymentDeploymentExecutionProgress.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 deploy_stage_execution_progress: Optional[Mapping[str, Any]] = None,
                 time_finished: Optional[str] = None,
                 time_started: Optional[str] = None):
        """
        :param Mapping[str, Any] deploy_stage_execution_progress: Map of stage OCIDs to deploy stage execution progress model.
        :param str time_finished: Time the deployment is finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_started: Time the deployment is started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        if deploy_stage_execution_progress is not None:
            pulumi.set(__self__, "deploy_stage_execution_progress", deploy_stage_execution_progress)
        if time_finished is not None:
            pulumi.set(__self__, "time_finished", time_finished)
        if time_started is not None:
            pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="deployStageExecutionProgress")
    def deploy_stage_execution_progress(self) -> Optional[Mapping[str, Any]]:
        """
        Map of stage OCIDs to deploy stage execution progress model.
        """
        return pulumi.get(self, "deploy_stage_execution_progress")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> Optional[str]:
        """
        Time the deployment is finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> Optional[str]:
        """
        Time the deployment is started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class ProjectNotificationConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "topicId":
            suggest = "topic_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ProjectNotificationConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ProjectNotificationConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ProjectNotificationConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 topic_id: str):
        """
        :param str topic_id: (Updatable) The topic ID for notifications.
               
               
               ** IMPORTANT **
               Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        pulumi.set(__self__, "topic_id", topic_id)

    @property
    @pulumi.getter(name="topicId")
    def topic_id(self) -> str:
        """
        (Updatable) The topic ID for notifications.


        ** IMPORTANT **
        Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        return pulumi.get(self, "topic_id")


@pulumi.output_type
class RepositoryMirrorRepositoryConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectorId":
            suggest = "connector_id"
        elif key == "repositoryUrl":
            suggest = "repository_url"
        elif key == "triggerSchedule":
            suggest = "trigger_schedule"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RepositoryMirrorRepositoryConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RepositoryMirrorRepositoryConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RepositoryMirrorRepositoryConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connector_id: Optional[str] = None,
                 repository_url: Optional[str] = None,
                 trigger_schedule: Optional['outputs.RepositoryMirrorRepositoryConfigTriggerSchedule'] = None):
        """
        :param str connector_id: (Updatable) Upstream git repository connection identifer.
        :param str repository_url: (Updatable) URL of external repository you want to mirror.
        :param 'RepositoryMirrorRepositoryConfigTriggerScheduleArgs' trigger_schedule: (Updatable) Specifies a trigger schedule. Timing information for when to initiate automated syncs.
        """
        if connector_id is not None:
            pulumi.set(__self__, "connector_id", connector_id)
        if repository_url is not None:
            pulumi.set(__self__, "repository_url", repository_url)
        if trigger_schedule is not None:
            pulumi.set(__self__, "trigger_schedule", trigger_schedule)

    @property
    @pulumi.getter(name="connectorId")
    def connector_id(self) -> Optional[str]:
        """
        (Updatable) Upstream git repository connection identifer.
        """
        return pulumi.get(self, "connector_id")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> Optional[str]:
        """
        (Updatable) URL of external repository you want to mirror.
        """
        return pulumi.get(self, "repository_url")

    @property
    @pulumi.getter(name="triggerSchedule")
    def trigger_schedule(self) -> Optional['outputs.RepositoryMirrorRepositoryConfigTriggerSchedule']:
        """
        (Updatable) Specifies a trigger schedule. Timing information for when to initiate automated syncs.
        """
        return pulumi.get(self, "trigger_schedule")


@pulumi.output_type
class RepositoryMirrorRepositoryConfigTriggerSchedule(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "scheduleType":
            suggest = "schedule_type"
        elif key == "customSchedule":
            suggest = "custom_schedule"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in RepositoryMirrorRepositoryConfigTriggerSchedule. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        RepositoryMirrorRepositoryConfigTriggerSchedule.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        RepositoryMirrorRepositoryConfigTriggerSchedule.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 schedule_type: str,
                 custom_schedule: Optional[str] = None):
        """
        :param str schedule_type: (Updatable) Different types of trigger schedule: NONE - No automated synchronization schedule. DEFAULT - Trigger schedule is every 30 minutes. CUSTOM - Custom triggering schedule.
        :param str custom_schedule: (Updatable) Valid if type is CUSTOM. Following RFC 5545 recurrence rules, we can specify starting time, occurrence frequency, and interval size. Example for frequency could be DAILY/WEEKLY/HOURLY or any RFC 5545 supported frequency, which is followed by start time of this window. You can control the start time with BYHOUR, BYMINUTE and BYSECONDS. It is followed by the interval size.
        """
        pulumi.set(__self__, "schedule_type", schedule_type)
        if custom_schedule is not None:
            pulumi.set(__self__, "custom_schedule", custom_schedule)

    @property
    @pulumi.getter(name="scheduleType")
    def schedule_type(self) -> str:
        """
        (Updatable) Different types of trigger schedule: NONE - No automated synchronization schedule. DEFAULT - Trigger schedule is every 30 minutes. CUSTOM - Custom triggering schedule.
        """
        return pulumi.get(self, "schedule_type")

    @property
    @pulumi.getter(name="customSchedule")
    def custom_schedule(self) -> Optional[str]:
        """
        (Updatable) Valid if type is CUSTOM. Following RFC 5545 recurrence rules, we can specify starting time, occurrence frequency, and interval size. Example for frequency could be DAILY/WEEKLY/HOURLY or any RFC 5545 supported frequency, which is followed by start time of this window. You can control the start time with BYHOUR, BYMINUTE and BYSECONDS. It is followed by the interval size.
        """
        return pulumi.get(self, "custom_schedule")


@pulumi.output_type
class TriggerAction(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "buildPipelineId":
            suggest = "build_pipeline_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerAction. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerAction.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerAction.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 build_pipeline_id: str,
                 type: str,
                 filter: Optional['outputs.TriggerActionFilter'] = None):
        """
        :param str build_pipeline_id: (Updatable) The OCID of the build pipeline to be triggered.
        :param str type: (Updatable) The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        :param 'TriggerActionFilterArgs' filter: (Updatable) The filters for the trigger.
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "type", type)
        if filter is not None:
            pulumi.set(__self__, "filter", filter)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        (Updatable) The OCID of the build pipeline to be triggered.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        (Updatable) The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def filter(self) -> Optional['outputs.TriggerActionFilter']:
        """
        (Updatable) The filters for the trigger.
        """
        return pulumi.get(self, "filter")


@pulumi.output_type
class TriggerActionFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "triggerSource":
            suggest = "trigger_source"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerActionFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerActionFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerActionFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 trigger_source: str,
                 events: Optional[Sequence[str]] = None,
                 exclude: Optional['outputs.TriggerActionFilterExclude'] = None,
                 include: Optional['outputs.TriggerActionFilterInclude'] = None):
        """
        :param str trigger_source: (Updatable) Source of the trigger. Allowed values are,  GITHUB, GITLAB, BITBUCKET_CLOUD, VBS and DEVOPS_CODE_REPOSITORY.
               
               
               ** IMPORTANT **
               Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        :param Sequence[str] events: (Updatable) The events, for example, PUSH, PULL_REQUEST_MERGE.
        :param 'TriggerActionFilterExcludeArgs' exclude: (Updatable) Attributes to filter GitLab self-hosted server events. File filter criteria - Changes only affecting excluded files will not invoke a build. if both include and exclude filter are used then exclusion filter will be applied on the result set of inclusion filter.
        :param 'TriggerActionFilterIncludeArgs' include: (Updatable) Attributes to filter GitLab self-hosted server events.
        """
        pulumi.set(__self__, "trigger_source", trigger_source)
        if events is not None:
            pulumi.set(__self__, "events", events)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> str:
        """
        (Updatable) Source of the trigger. Allowed values are,  GITHUB, GITLAB, BITBUCKET_CLOUD, VBS and DEVOPS_CODE_REPOSITORY.


        ** IMPORTANT **
        Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        return pulumi.get(self, "trigger_source")

    @property
    @pulumi.getter
    def events(self) -> Optional[Sequence[str]]:
        """
        (Updatable) The events, for example, PUSH, PULL_REQUEST_MERGE.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter
    def exclude(self) -> Optional['outputs.TriggerActionFilterExclude']:
        """
        (Updatable) Attributes to filter GitLab self-hosted server events. File filter criteria - Changes only affecting excluded files will not invoke a build. if both include and exclude filter are used then exclusion filter will be applied on the result set of inclusion filter.
        """
        return pulumi.get(self, "exclude")

    @property
    @pulumi.getter
    def include(self) -> Optional['outputs.TriggerActionFilterInclude']:
        """
        (Updatable) Attributes to filter GitLab self-hosted server events.
        """
        return pulumi.get(self, "include")


@pulumi.output_type
class TriggerActionFilterExclude(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "fileFilter":
            suggest = "file_filter"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerActionFilterExclude. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerActionFilterExclude.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerActionFilterExclude.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_filter: Optional['outputs.TriggerActionFilterExcludeFileFilter'] = None):
        """
        :param 'TriggerActionFilterExcludeFileFilterArgs' file_filter: (Updatable) Attributes to support include/exclude files for triggering build runs.
        """
        if file_filter is not None:
            pulumi.set(__self__, "file_filter", file_filter)

    @property
    @pulumi.getter(name="fileFilter")
    def file_filter(self) -> Optional['outputs.TriggerActionFilterExcludeFileFilter']:
        """
        (Updatable) Attributes to support include/exclude files for triggering build runs.
        """
        return pulumi.get(self, "file_filter")


@pulumi.output_type
class TriggerActionFilterExcludeFileFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePaths":
            suggest = "file_paths"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerActionFilterExcludeFileFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerActionFilterExcludeFileFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerActionFilterExcludeFileFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_paths: Optional[Sequence[str]] = None):
        """
        :param Sequence[str] file_paths: (Updatable) The file paths/glob pattern for files.
        """
        if file_paths is not None:
            pulumi.set(__self__, "file_paths", file_paths)

    @property
    @pulumi.getter(name="filePaths")
    def file_paths(self) -> Optional[Sequence[str]]:
        """
        (Updatable) The file paths/glob pattern for files.
        """
        return pulumi.get(self, "file_paths")


@pulumi.output_type
class TriggerActionFilterInclude(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "baseRef":
            suggest = "base_ref"
        elif key == "fileFilter":
            suggest = "file_filter"
        elif key == "headRef":
            suggest = "head_ref"
        elif key == "repositoryName":
            suggest = "repository_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerActionFilterInclude. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerActionFilterInclude.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerActionFilterInclude.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 base_ref: Optional[str] = None,
                 file_filter: Optional['outputs.TriggerActionFilterIncludeFileFilter'] = None,
                 head_ref: Optional[str] = None,
                 repository_name: Optional[str] = None):
        """
        :param str base_ref: (Updatable) The target branch for pull requests; not applicable for push requests.
        :param 'TriggerActionFilterIncludeFileFilterArgs' file_filter: (Updatable) Attributes to support include/exclude files for triggering build runs.
        :param str head_ref: (Updatable) Branch for push event; source branch for pull requests.
        :param str repository_name: (Updatable) The repository name for trigger events.
        """
        if base_ref is not None:
            pulumi.set(__self__, "base_ref", base_ref)
        if file_filter is not None:
            pulumi.set(__self__, "file_filter", file_filter)
        if head_ref is not None:
            pulumi.set(__self__, "head_ref", head_ref)
        if repository_name is not None:
            pulumi.set(__self__, "repository_name", repository_name)

    @property
    @pulumi.getter(name="baseRef")
    def base_ref(self) -> Optional[str]:
        """
        (Updatable) The target branch for pull requests; not applicable for push requests.
        """
        return pulumi.get(self, "base_ref")

    @property
    @pulumi.getter(name="fileFilter")
    def file_filter(self) -> Optional['outputs.TriggerActionFilterIncludeFileFilter']:
        """
        (Updatable) Attributes to support include/exclude files for triggering build runs.
        """
        return pulumi.get(self, "file_filter")

    @property
    @pulumi.getter(name="headRef")
    def head_ref(self) -> Optional[str]:
        """
        (Updatable) Branch for push event; source branch for pull requests.
        """
        return pulumi.get(self, "head_ref")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> Optional[str]:
        """
        (Updatable) The repository name for trigger events.
        """
        return pulumi.get(self, "repository_name")


@pulumi.output_type
class TriggerActionFilterIncludeFileFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filePaths":
            suggest = "file_paths"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in TriggerActionFilterIncludeFileFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        TriggerActionFilterIncludeFileFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        TriggerActionFilterIncludeFileFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 file_paths: Optional[Sequence[str]] = None):
        """
        :param Sequence[str] file_paths: (Updatable) The file paths/glob pattern for files.
        """
        if file_paths is not None:
            pulumi.set(__self__, "file_paths", file_paths)

    @property
    @pulumi.getter(name="filePaths")
    def file_paths(self) -> Optional[Sequence[str]]:
        """
        (Updatable) The file paths/glob pattern for files.
        """
        return pulumi.get(self, "file_paths")


@pulumi.output_type
class GetBuildPipelineBuildPipelineParameterResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineBuildPipelineParameterItemResult']):
        """
        :param Sequence['GetBuildPipelineBuildPipelineParameterItemArgs'] items: List of parameters defined for a build pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineBuildPipelineParameterItemResult']:
        """
        List of parameters defined for a build pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineBuildPipelineParameterItemResult(dict):
    def __init__(__self__, *,
                 default_value: str,
                 description: str,
                 name: str):
        """
        :param str default_value: Default value of the parameter.
        :param str description: Optional description about the build pipeline.
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        pulumi.set(__self__, "default_value", default_value)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> str:
        """
        Default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the build pipeline.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class GetBuildPipelineStageBuildPipelineStagePredecessorCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStageBuildPipelineStagePredecessorCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStageBuildPipelineStagePredecessorCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStageBuildPipelineStagePredecessorCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStageBuildPipelineStagePredecessorCollectionItemResult(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: Unique identifier that is immutable on creation.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier that is immutable on creation.
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class GetBuildPipelineStageBuildRunnerShapeConfigResult(dict):
    def __init__(__self__, *,
                 build_runner_type: str,
                 memory_in_gbs: int,
                 ocpus: int):
        """
        :param str build_runner_type: Name of the build runner shape in which the execution occurs. If not specified, the default shape is chosen.
        :param int memory_in_gbs: The total amount of memory set for the instance in gigabytes.
        :param int ocpus: The total number of OCPUs set for the instance.
        """
        pulumi.set(__self__, "build_runner_type", build_runner_type)
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "ocpus", ocpus)

    @property
    @pulumi.getter(name="buildRunnerType")
    def build_runner_type(self) -> str:
        """
        Name of the build runner shape in which the execution occurs. If not specified, the default shape is chosen.
        """
        return pulumi.get(self, "build_runner_type")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> int:
        """
        The total amount of memory set for the instance in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> int:
        """
        The total number of OCPUs set for the instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetBuildPipelineStageBuildSourceCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStageBuildSourceCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStageBuildSourceCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStageBuildSourceCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStageBuildSourceCollectionItemResult(dict):
    def __init__(__self__, *,
                 branch: str,
                 connection_id: str,
                 connection_type: str,
                 name: str,
                 repository_id: str,
                 repository_url: str):
        """
        :param str branch: Branch name.
        :param str connection_id: Connection identifier pertinent to Bitbucket Server source provider
        :param str connection_type: The type of source provider.
        :param str name: Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        :param str repository_id: The DevOps code repository ID.
        :param str repository_url: URL for the repository.
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "connection_id", connection_id)
        pulumi.set(__self__, "connection_type", connection_type)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "repository_id", repository_id)
        pulumi.set(__self__, "repository_url", repository_url)

    @property
    @pulumi.getter
    def branch(self) -> str:
        """
        Branch name.
        """
        return pulumi.get(self, "branch")

    @property
    @pulumi.getter(name="connectionId")
    def connection_id(self) -> str:
        """
        Connection identifier pertinent to Bitbucket Server source provider
        """
        return pulumi.get(self, "connection_id")

    @property
    @pulumi.getter(name="connectionType")
    def connection_type(self) -> str:
        """
        The type of source provider.
        """
        return pulumi.get(self, "connection_type")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The DevOps code repository ID.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        URL for the repository.
        """
        return pulumi.get(self, "repository_url")


@pulumi.output_type
class GetBuildPipelineStageDeliverArtifactCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStageDeliverArtifactCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStageDeliverArtifactCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStageDeliverArtifactCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStageDeliverArtifactCollectionItemResult(dict):
    def __init__(__self__, *,
                 artifact_id: str,
                 artifact_name: str):
        """
        :param str artifact_id: Artifact identifier that contains the artifact definition.
        :param str artifact_name: Name of the artifact specified in the build_spec.yaml file.
        """
        pulumi.set(__self__, "artifact_id", artifact_id)
        pulumi.set(__self__, "artifact_name", artifact_name)

    @property
    @pulumi.getter(name="artifactId")
    def artifact_id(self) -> str:
        """
        Artifact identifier that contains the artifact definition.
        """
        return pulumi.get(self, "artifact_id")

    @property
    @pulumi.getter(name="artifactName")
    def artifact_name(self) -> str:
        """
        Name of the artifact specified in the build_spec.yaml file.
        """
        return pulumi.get(self, "artifact_name")


@pulumi.output_type
class GetBuildPipelineStagePrivateAccessConfigResult(dict):
    def __init__(__self__, *,
                 network_channel_type: str,
                 nsg_ids: Sequence[str],
                 subnet_id: str):
        """
        :param str network_channel_type: Network channel type.
        :param Sequence[str] nsg_ids: An array of network security group OCIDs.
        :param str subnet_id: The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "nsg_ids", nsg_ids)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Sequence[str]:
        """
        An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetBuildPipelineStageWaitCriteriaResult(dict):
    def __init__(__self__, *,
                 wait_duration: str,
                 wait_type: str):
        """
        :param str wait_duration: The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        :param str wait_type: Wait criteria type.
        """
        pulumi.set(__self__, "wait_duration", wait_duration)
        pulumi.set(__self__, "wait_type", wait_type)

    @property
    @pulumi.getter(name="waitDuration")
    def wait_duration(self) -> str:
        """
        The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        """
        return pulumi.get(self, "wait_duration")

    @property
    @pulumi.getter(name="waitType")
    def wait_type(self) -> str:
        """
        Wait criteria type.
        """
        return pulumi.get(self, "wait_type")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStagesBuildPipelineStageCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemResult(dict):
    def __init__(__self__, *,
                 build_pipeline_id: str,
                 build_pipeline_stage_predecessor_collections: Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionResult'],
                 build_pipeline_stage_type: str,
                 build_runner_shape_config: 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildRunnerShapeConfigResult',
                 build_source_collection: 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionResult',
                 build_spec_file: str,
                 compartment_id: str,
                 connection_type: str,
                 defined_tags: Mapping[str, Any],
                 deliver_artifact_collection: 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionResult',
                 deploy_pipeline_id: str,
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 image: str,
                 is_pass_all_parameters_enabled: bool,
                 lifecycle_details: str,
                 primary_build_source: str,
                 private_access_config: 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemPrivateAccessConfigResult',
                 project_id: str,
                 stage_execution_timeout_in_seconds: int,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str,
                 wait_criteria: 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemWaitCriteriaResult'):
        """
        :param str build_pipeline_id: The OCID of the parent build pipeline.
        :param Sequence['GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionArgs'] build_pipeline_stage_predecessor_collections: The collection containing the predecessors of a stage.
        :param str build_pipeline_stage_type: Defines the stage type, which is one of the following: BUILD, DELIVER_ARTIFACT, WAIT, and TRIGGER_DEPLOYMENT_PIPELINE.
        :param 'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildRunnerShapeConfigArgs' build_runner_shape_config: The information about build runner.
        :param 'GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionArgs' build_source_collection: Collection of build sources.
        :param str build_spec_file: The path to the build specification file for this environment. The default location of the file if not specified is build_spec.yaml.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param str connection_type: The type of source provider.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param 'GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionArgs' deliver_artifact_collection: Specifies an array of artifacts that need to be pushed to the artifactory stores.
        :param str deploy_pipeline_id: A target deployment pipeline OCID that will run in this stage.
        :param str description: Optional description about the build stage.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str image: Image name for the build environment.
        :param bool is_pass_all_parameters_enabled: A boolean flag that specifies whether all the parameters must be passed when the deployment is triggered.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str primary_build_source: Name of the build source where the build_spec.yml file is located. If not specified, then the first entry in the build source collection is chosen as primary build source.
        :param 'GetBuildPipelineStagesBuildPipelineStageCollectionItemPrivateAccessConfigArgs' private_access_config: Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        :param str project_id: The OCID of the DevOps project.
        :param int stage_execution_timeout_in_seconds: Timeout for the build stage execution. Specify value in seconds.
        :param str state: A filter to return the stages that matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The time the stage was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: The time the stage was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param 'GetBuildPipelineStagesBuildPipelineStageCollectionItemWaitCriteriaArgs' wait_criteria: Specifies wait criteria for the Wait stage.
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "build_pipeline_stage_predecessor_collections", build_pipeline_stage_predecessor_collections)
        pulumi.set(__self__, "build_pipeline_stage_type", build_pipeline_stage_type)
        pulumi.set(__self__, "build_runner_shape_config", build_runner_shape_config)
        pulumi.set(__self__, "build_source_collection", build_source_collection)
        pulumi.set(__self__, "build_spec_file", build_spec_file)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "connection_type", connection_type)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "deliver_artifact_collection", deliver_artifact_collection)
        pulumi.set(__self__, "deploy_pipeline_id", deploy_pipeline_id)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "image", image)
        pulumi.set(__self__, "is_pass_all_parameters_enabled", is_pass_all_parameters_enabled)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "primary_build_source", primary_build_source)
        pulumi.set(__self__, "private_access_config", private_access_config)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "stage_execution_timeout_in_seconds", stage_execution_timeout_in_seconds)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)
        pulumi.set(__self__, "wait_criteria", wait_criteria)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        The OCID of the parent build pipeline.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter(name="buildPipelineStagePredecessorCollections")
    def build_pipeline_stage_predecessor_collections(self) -> Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionResult']:
        """
        The collection containing the predecessors of a stage.
        """
        return pulumi.get(self, "build_pipeline_stage_predecessor_collections")

    @property
    @pulumi.getter(name="buildPipelineStageType")
    def build_pipeline_stage_type(self) -> str:
        """
        Defines the stage type, which is one of the following: BUILD, DELIVER_ARTIFACT, WAIT, and TRIGGER_DEPLOYMENT_PIPELINE.
        """
        return pulumi.get(self, "build_pipeline_stage_type")

    @property
    @pulumi.getter(name="buildRunnerShapeConfig")
    def build_runner_shape_config(self) -> 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildRunnerShapeConfigResult':
        """
        The information about build runner.
        """
        return pulumi.get(self, "build_runner_shape_config")

    @property
    @pulumi.getter(name="buildSourceCollection")
    def build_source_collection(self) -> 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionResult':
        """
        Collection of build sources.
        """
        return pulumi.get(self, "build_source_collection")

    @property
    @pulumi.getter(name="buildSpecFile")
    def build_spec_file(self) -> str:
        """
        The path to the build specification file for this environment. The default location of the file if not specified is build_spec.yaml.
        """
        return pulumi.get(self, "build_spec_file")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="connectionType")
    def connection_type(self) -> str:
        """
        The type of source provider.
        """
        return pulumi.get(self, "connection_type")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deliverArtifactCollection")
    def deliver_artifact_collection(self) -> 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionResult':
        """
        Specifies an array of artifacts that need to be pushed to the artifactory stores.
        """
        return pulumi.get(self, "deliver_artifact_collection")

    @property
    @pulumi.getter(name="deployPipelineId")
    def deploy_pipeline_id(self) -> str:
        """
        A target deployment pipeline OCID that will run in this stage.
        """
        return pulumi.get(self, "deploy_pipeline_id")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the build stage.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def image(self) -> str:
        """
        Image name for the build environment.
        """
        return pulumi.get(self, "image")

    @property
    @pulumi.getter(name="isPassAllParametersEnabled")
    def is_pass_all_parameters_enabled(self) -> bool:
        """
        A boolean flag that specifies whether all the parameters must be passed when the deployment is triggered.
        """
        return pulumi.get(self, "is_pass_all_parameters_enabled")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="primaryBuildSource")
    def primary_build_source(self) -> str:
        """
        Name of the build source where the build_spec.yml file is located. If not specified, then the first entry in the build source collection is chosen as primary build source.
        """
        return pulumi.get(self, "primary_build_source")

    @property
    @pulumi.getter(name="privateAccessConfig")
    def private_access_config(self) -> 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemPrivateAccessConfigResult':
        """
        Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        """
        return pulumi.get(self, "private_access_config")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        The OCID of the DevOps project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter(name="stageExecutionTimeoutInSeconds")
    def stage_execution_timeout_in_seconds(self) -> int:
        """
        Timeout for the build stage execution. Specify value in seconds.
        """
        return pulumi.get(self, "stage_execution_timeout_in_seconds")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return the stages that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time the stage was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The time the stage was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="waitCriteria")
    def wait_criteria(self) -> 'outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemWaitCriteriaResult':
        """
        Specifies wait criteria for the Wait stage.
        """
        return pulumi.get(self, "wait_criteria")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildPipelineStagePredecessorCollectionItemResult(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildRunnerShapeConfigResult(dict):
    def __init__(__self__, *,
                 build_runner_type: str,
                 memory_in_gbs: int,
                 ocpus: int):
        """
        :param str build_runner_type: Name of the build runner shape in which the execution occurs. If not specified, the default shape is chosen.
        :param int memory_in_gbs: The total amount of memory set for the instance in gigabytes.
        :param int ocpus: The total number of OCPUs set for the instance.
        """
        pulumi.set(__self__, "build_runner_type", build_runner_type)
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "ocpus", ocpus)

    @property
    @pulumi.getter(name="buildRunnerType")
    def build_runner_type(self) -> str:
        """
        Name of the build runner shape in which the execution occurs. If not specified, the default shape is chosen.
        """
        return pulumi.get(self, "build_runner_type")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> int:
        """
        The total amount of memory set for the instance in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> int:
        """
        The total number of OCPUs set for the instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemBuildSourceCollectionItemResult(dict):
    def __init__(__self__, *,
                 branch: str,
                 connection_id: str,
                 connection_type: str,
                 name: str,
                 repository_id: str,
                 repository_url: str):
        """
        :param str branch: Branch name.
        :param str connection_id: Connection identifier pertinent to Bitbucket Server source provider
        :param str connection_type: The type of source provider.
        :param str name: Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        :param str repository_id: The DevOps code repository ID.
        :param str repository_url: URL for the repository.
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "connection_id", connection_id)
        pulumi.set(__self__, "connection_type", connection_type)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "repository_id", repository_id)
        pulumi.set(__self__, "repository_url", repository_url)

    @property
    @pulumi.getter
    def branch(self) -> str:
        """
        Branch name.
        """
        return pulumi.get(self, "branch")

    @property
    @pulumi.getter(name="connectionId")
    def connection_id(self) -> str:
        """
        Connection identifier pertinent to Bitbucket Server source provider
        """
        return pulumi.get(self, "connection_id")

    @property
    @pulumi.getter(name="connectionType")
    def connection_type(self) -> str:
        """
        The type of source provider.
        """
        return pulumi.get(self, "connection_type")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The DevOps code repository ID.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        URL for the repository.
        """
        return pulumi.get(self, "repository_url")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionItemArgs'] items: Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionItemResult']:
        """
        Collection of artifacts that were generated in the Build stage and need to be pushed to the artifactory stores. In case of UPDATE operation, replaces existing artifacts list. Merging with existing artifacts is not supported.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemDeliverArtifactCollectionItemResult(dict):
    def __init__(__self__, *,
                 artifact_id: str,
                 artifact_name: str):
        """
        :param str artifact_id: Artifact identifier that contains the artifact definition.
        :param str artifact_name: Name of the artifact specified in the build_spec.yaml file.
        """
        pulumi.set(__self__, "artifact_id", artifact_id)
        pulumi.set(__self__, "artifact_name", artifact_name)

    @property
    @pulumi.getter(name="artifactId")
    def artifact_id(self) -> str:
        """
        Artifact identifier that contains the artifact definition.
        """
        return pulumi.get(self, "artifact_id")

    @property
    @pulumi.getter(name="artifactName")
    def artifact_name(self) -> str:
        """
        Name of the artifact specified in the build_spec.yaml file.
        """
        return pulumi.get(self, "artifact_name")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemPrivateAccessConfigResult(dict):
    def __init__(__self__, *,
                 network_channel_type: str,
                 nsg_ids: Sequence[str],
                 subnet_id: str):
        """
        :param str network_channel_type: Network channel type.
        :param Sequence[str] nsg_ids: An array of network security group OCIDs.
        :param str subnet_id: The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "nsg_ids", nsg_ids)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Sequence[str]:
        """
        An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetBuildPipelineStagesBuildPipelineStageCollectionItemWaitCriteriaResult(dict):
    def __init__(__self__, *,
                 wait_duration: str,
                 wait_type: str):
        """
        :param str wait_duration: The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        :param str wait_type: Wait criteria type.
        """
        pulumi.set(__self__, "wait_duration", wait_duration)
        pulumi.set(__self__, "wait_type", wait_type)

    @property
    @pulumi.getter(name="waitDuration")
    def wait_duration(self) -> str:
        """
        The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        """
        return pulumi.get(self, "wait_duration")

    @property
    @pulumi.getter(name="waitType")
    def wait_type(self) -> str:
        """
        Wait criteria type.
        """
        return pulumi.get(self, "wait_type")


@pulumi.output_type
class GetBuildPipelineStagesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the build source. This must be unique within a build source collection. The name can be used by customers to locate the working directory pertinent to this repository.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetBuildPipelinesBuildPipelineCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelinesBuildPipelineCollectionItemResult']):
        """
        :param Sequence['GetBuildPipelinesBuildPipelineCollectionItemArgs'] items: List of parameters defined for a build pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelinesBuildPipelineCollectionItemResult']:
        """
        List of parameters defined for a build pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelinesBuildPipelineCollectionItemResult(dict):
    def __init__(__self__, *,
                 build_pipeline_parameters: Sequence['outputs.GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterResult'],
                 compartment_id: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param Sequence['GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterArgs'] build_pipeline_parameters: Specifies list of parameters present in a build pipeline. An UPDATE operation replaces the existing parameters list entirely.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str description: Optional description about the build pipeline.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str project_id: unique project identifier
        :param str state: A filter to return only build pipelines that matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The time the build pipeline was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: The time the build pipeline was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "build_pipeline_parameters", build_pipeline_parameters)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="buildPipelineParameters")
    def build_pipeline_parameters(self) -> Sequence['outputs.GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterResult']:
        """
        Specifies list of parameters present in a build pipeline. An UPDATE operation replaces the existing parameters list entirely.
        """
        return pulumi.get(self, "build_pipeline_parameters")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the build pipeline.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only build pipelines that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time the build pipeline was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The time the build pipeline was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterItemResult']):
        """
        :param Sequence['GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterItemArgs'] items: List of parameters defined for a build pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterItemResult']:
        """
        List of parameters defined for a build pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildPipelinesBuildPipelineCollectionItemBuildPipelineParameterItemResult(dict):
    def __init__(__self__, *,
                 default_value: str,
                 description: str,
                 name: str):
        """
        :param str default_value: Default value of the parameter.
        :param str description: Optional description about the build pipeline.
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        pulumi.set(__self__, "default_value", default_value)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> str:
        """
        Default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the build pipeline.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class GetBuildPipelinesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$. Example: 'Build_Pipeline_param' is not same as 'build_pipeline_Param'
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetBuildRunBuildOutputResult(dict):
    def __init__(__self__, *,
                 artifact_override_parameters: Sequence['outputs.GetBuildRunBuildOutputArtifactOverrideParameterResult'],
                 delivered_artifacts: Sequence['outputs.GetBuildRunBuildOutputDeliveredArtifactResult'],
                 exported_variables: Sequence['outputs.GetBuildRunBuildOutputExportedVariableResult'],
                 vulnerability_audit_summary_collections: Sequence['outputs.GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionResult']):
        """
        :param Sequence['GetBuildRunBuildOutputArtifactOverrideParameterArgs'] artifact_override_parameters: Specifies the list of artifact override arguments at the time of deployment.
        :param Sequence['GetBuildRunBuildOutputDeliveredArtifactArgs'] delivered_artifacts: Specifies the list of artifacts delivered through the Deliver Artifacts stage.
        :param Sequence['GetBuildRunBuildOutputExportedVariableArgs'] exported_variables: Specifies list of exported variables.
        :param Sequence['GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionArgs'] vulnerability_audit_summary_collections: List of vulnerability audit summary.
        """
        pulumi.set(__self__, "artifact_override_parameters", artifact_override_parameters)
        pulumi.set(__self__, "delivered_artifacts", delivered_artifacts)
        pulumi.set(__self__, "exported_variables", exported_variables)
        pulumi.set(__self__, "vulnerability_audit_summary_collections", vulnerability_audit_summary_collections)

    @property
    @pulumi.getter(name="artifactOverrideParameters")
    def artifact_override_parameters(self) -> Sequence['outputs.GetBuildRunBuildOutputArtifactOverrideParameterResult']:
        """
        Specifies the list of artifact override arguments at the time of deployment.
        """
        return pulumi.get(self, "artifact_override_parameters")

    @property
    @pulumi.getter(name="deliveredArtifacts")
    def delivered_artifacts(self) -> Sequence['outputs.GetBuildRunBuildOutputDeliveredArtifactResult']:
        """
        Specifies the list of artifacts delivered through the Deliver Artifacts stage.
        """
        return pulumi.get(self, "delivered_artifacts")

    @property
    @pulumi.getter(name="exportedVariables")
    def exported_variables(self) -> Sequence['outputs.GetBuildRunBuildOutputExportedVariableResult']:
        """
        Specifies list of exported variables.
        """
        return pulumi.get(self, "exported_variables")

    @property
    @pulumi.getter(name="vulnerabilityAuditSummaryCollections")
    def vulnerability_audit_summary_collections(self) -> Sequence['outputs.GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionResult']:
        """
        List of vulnerability audit summary.
        """
        return pulumi.get(self, "vulnerability_audit_summary_collections")


@pulumi.output_type
class GetBuildRunBuildOutputArtifactOverrideParameterResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunBuildOutputArtifactOverrideParameterItemResult']):
        """
        :param Sequence['GetBuildRunBuildOutputArtifactOverrideParameterItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunBuildOutputArtifactOverrideParameterItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunBuildOutputArtifactOverrideParameterItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 name: str,
                 value: str):
        """
        :param str deploy_artifact_id: The OCID of the deployment artifact definition.
        :param str name: Name of the step.
        :param str value: Value of the argument.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of the deployment artifact definition.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetBuildRunBuildOutputDeliveredArtifactResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunBuildOutputDeliveredArtifactItemResult']):
        """
        :param Sequence['GetBuildRunBuildOutputDeliveredArtifactItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunBuildOutputDeliveredArtifactItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunBuildOutputDeliveredArtifactItemResult(dict):
    def __init__(__self__, *,
                 artifact_repository_id: str,
                 artifact_type: str,
                 delivered_artifact_hash: str,
                 delivered_artifact_id: str,
                 deploy_artifact_id: str,
                 image_uri: str,
                 output_artifact_name: str,
                 path: str,
                 version: str):
        """
        :param str artifact_repository_id: The OCID of the artifact registry repository used by the DeliverArtifactStage
        :param str artifact_type: Type of artifact delivered.
        :param str delivered_artifact_hash: The hash of the container registry artifact pushed by the Deliver Artifacts stage.
        :param str delivered_artifact_id: The OCID of the artifact pushed by the Deliver Artifacts stage.
        :param str deploy_artifact_id: The OCID of the deployment artifact definition.
        :param str image_uri: The imageUri of the OCIR artifact pushed by the DeliverArtifactStage
        :param str output_artifact_name: Name of the output artifact defined in the build specification file.
        :param str path: Path of the repository where artifact was pushed
        :param str version: Version of the artifact pushed
        """
        pulumi.set(__self__, "artifact_repository_id", artifact_repository_id)
        pulumi.set(__self__, "artifact_type", artifact_type)
        pulumi.set(__self__, "delivered_artifact_hash", delivered_artifact_hash)
        pulumi.set(__self__, "delivered_artifact_id", delivered_artifact_id)
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "image_uri", image_uri)
        pulumi.set(__self__, "output_artifact_name", output_artifact_name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter(name="artifactRepositoryId")
    def artifact_repository_id(self) -> str:
        """
        The OCID of the artifact registry repository used by the DeliverArtifactStage
        """
        return pulumi.get(self, "artifact_repository_id")

    @property
    @pulumi.getter(name="artifactType")
    def artifact_type(self) -> str:
        """
        Type of artifact delivered.
        """
        return pulumi.get(self, "artifact_type")

    @property
    @pulumi.getter(name="deliveredArtifactHash")
    def delivered_artifact_hash(self) -> str:
        """
        The hash of the container registry artifact pushed by the Deliver Artifacts stage.
        """
        return pulumi.get(self, "delivered_artifact_hash")

    @property
    @pulumi.getter(name="deliveredArtifactId")
    def delivered_artifact_id(self) -> str:
        """
        The OCID of the artifact pushed by the Deliver Artifacts stage.
        """
        return pulumi.get(self, "delivered_artifact_id")

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of the deployment artifact definition.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="imageUri")
    def image_uri(self) -> str:
        """
        The imageUri of the OCIR artifact pushed by the DeliverArtifactStage
        """
        return pulumi.get(self, "image_uri")

    @property
    @pulumi.getter(name="outputArtifactName")
    def output_artifact_name(self) -> str:
        """
        Name of the output artifact defined in the build specification file.
        """
        return pulumi.get(self, "output_artifact_name")

    @property
    @pulumi.getter
    def path(self) -> str:
        """
        Path of the repository where artifact was pushed
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def version(self) -> str:
        """
        Version of the artifact pushed
        """
        return pulumi.get(self, "version")


@pulumi.output_type
class GetBuildRunBuildOutputExportedVariableResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunBuildOutputExportedVariableItemResult']):
        """
        :param Sequence['GetBuildRunBuildOutputExportedVariableItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunBuildOutputExportedVariableItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunBuildOutputExportedVariableItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the step.
        :param str value: Value of the argument.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionItemResult']):
        """
        :param Sequence['GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunBuildOutputVulnerabilityAuditSummaryCollectionItemResult(dict):
    def __init__(__self__, *,
                 build_stage_id: str,
                 commit_hash: str,
                 vulnerability_audit_id: str):
        """
        :param str build_stage_id: Build stage OCID where scan was configured.
        :param str commit_hash: Commit hash pertinent to the repository URL and the specified branch.
        :param str vulnerability_audit_id: The OCID of the vulnerability audit.
        """
        pulumi.set(__self__, "build_stage_id", build_stage_id)
        pulumi.set(__self__, "commit_hash", commit_hash)
        pulumi.set(__self__, "vulnerability_audit_id", vulnerability_audit_id)

    @property
    @pulumi.getter(name="buildStageId")
    def build_stage_id(self) -> str:
        """
        Build stage OCID where scan was configured.
        """
        return pulumi.get(self, "build_stage_id")

    @property
    @pulumi.getter(name="commitHash")
    def commit_hash(self) -> str:
        """
        Commit hash pertinent to the repository URL and the specified branch.
        """
        return pulumi.get(self, "commit_hash")

    @property
    @pulumi.getter(name="vulnerabilityAuditId")
    def vulnerability_audit_id(self) -> str:
        """
        The OCID of the vulnerability audit.
        """
        return pulumi.get(self, "vulnerability_audit_id")


@pulumi.output_type
class GetBuildRunBuildRunArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunBuildRunArgumentItemResult']):
        """
        :param Sequence['GetBuildRunBuildRunArgumentItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunBuildRunArgumentItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunBuildRunArgumentItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the step.
        :param str value: Value of the argument.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetBuildRunBuildRunProgressResult(dict):
    def __init__(__self__, *,
                 build_pipeline_stage_run_progress: Mapping[str, Any],
                 time_finished: str,
                 time_started: str):
        """
        :param Mapping[str, Any] build_pipeline_stage_run_progress: Map of stage OCIDs to build pipeline stage run progress model.
        :param str time_finished: The time the build run finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_started: The time the build run started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "build_pipeline_stage_run_progress", build_pipeline_stage_run_progress)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="buildPipelineStageRunProgress")
    def build_pipeline_stage_run_progress(self) -> Mapping[str, Any]:
        """
        Map of stage OCIDs to build pipeline stage run progress model.
        """
        return pulumi.get(self, "build_pipeline_stage_run_progress")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        The time the build run finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The time the build run started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetBuildRunBuildRunSourceResult(dict):
    def __init__(__self__, *,
                 repository_id: str,
                 source_type: str,
                 trigger_id: str,
                 trigger_infos: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoResult']):
        """
        :param str repository_id: The DevOps code repository identifier that invoked the build run.
        :param str source_type: The source from which the build run is triggered.
        :param str trigger_id: The trigger that invoked the build run.
        :param Sequence['GetBuildRunBuildRunSourceTriggerInfoArgs'] trigger_infos: Trigger details that need to be used for the BuildRun
        """
        pulumi.set(__self__, "repository_id", repository_id)
        pulumi.set(__self__, "source_type", source_type)
        pulumi.set(__self__, "trigger_id", trigger_id)
        pulumi.set(__self__, "trigger_infos", trigger_infos)

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The DevOps code repository identifier that invoked the build run.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter(name="sourceType")
    def source_type(self) -> str:
        """
        The source from which the build run is triggered.
        """
        return pulumi.get(self, "source_type")

    @property
    @pulumi.getter(name="triggerId")
    def trigger_id(self) -> str:
        """
        The trigger that invoked the build run.
        """
        return pulumi.get(self, "trigger_id")

    @property
    @pulumi.getter(name="triggerInfos")
    def trigger_infos(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoResult']:
        """
        Trigger details that need to be used for the BuildRun
        """
        return pulumi.get(self, "trigger_infos")


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoResult(dict):
    def __init__(__self__, *,
                 actions: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionResult'],
                 display_name: str):
        """
        :param Sequence['GetBuildRunBuildRunSourceTriggerInfoActionArgs'] actions: The list of actions that are to be performed for this Trigger
        :param str display_name: Build run display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "actions", actions)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter
    def actions(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionResult']:
        """
        The list of actions that are to be performed for this Trigger
        """
        return pulumi.get(self, "actions")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Build run display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoActionResult(dict):
    def __init__(__self__, *,
                 build_pipeline_id: str,
                 filters: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterResult'],
                 type: str):
        """
        :param str build_pipeline_id: The OCID of the build pipeline to be triggered.
        :param Sequence['GetBuildRunBuildRunSourceTriggerInfoActionFilterArgs'] filters: The filters for the trigger.
        :param str type: The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "filters", filters)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        The OCID of the build pipeline to be triggered.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter
    def filters(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterResult']:
        """
        The filters for the trigger.
        """
        return pulumi.get(self, "filters")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoActionFilterResult(dict):
    def __init__(__self__, *,
                 events: Sequence[str],
                 excludes: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeResult'],
                 includes: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeResult'],
                 trigger_source: str):
        """
        :param Sequence[str] events: The events, for example, PUSH, PULL_REQUEST_MERGE.
        :param Sequence['GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeArgs'] includes: Attributes to filter GitLab self-hosted server events.
        :param str trigger_source: Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        pulumi.set(__self__, "events", events)
        pulumi.set(__self__, "excludes", excludes)
        pulumi.set(__self__, "includes", includes)
        pulumi.set(__self__, "trigger_source", trigger_source)

    @property
    @pulumi.getter
    def events(self) -> Sequence[str]:
        """
        The events, for example, PUSH, PULL_REQUEST_MERGE.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter
    def excludes(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeResult']:
        return pulumi.get(self, "excludes")

    @property
    @pulumi.getter
    def includes(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeResult']:
        """
        Attributes to filter GitLab self-hosted server events.
        """
        return pulumi.get(self, "includes")

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> str:
        """
        Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        return pulumi.get(self, "trigger_source")


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeResult(dict):
    def __init__(__self__, *,
                 file_filters: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilterResult']):
        pulumi.set(__self__, "file_filters", file_filters)

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilterResult']:
        return pulumi.get(self, "file_filters")


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoActionFilterExcludeFileFilterResult(dict):
    def __init__(__self__, *,
                 file_paths: Sequence[str]):
        pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeResult(dict):
    def __init__(__self__, *,
                 base_ref: str,
                 file_filters: Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilterResult'],
                 head_ref: str,
                 repository_name: str):
        """
        :param str base_ref: The target branch for pull requests; not applicable for push requests.
        :param str head_ref: Branch for push event; source branch for pull requests.
        :param str repository_name: The repository name for trigger events.
        """
        pulumi.set(__self__, "base_ref", base_ref)
        pulumi.set(__self__, "file_filters", file_filters)
        pulumi.set(__self__, "head_ref", head_ref)
        pulumi.set(__self__, "repository_name", repository_name)

    @property
    @pulumi.getter(name="baseRef")
    def base_ref(self) -> str:
        """
        The target branch for pull requests; not applicable for push requests.
        """
        return pulumi.get(self, "base_ref")

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Sequence['outputs.GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilterResult']:
        return pulumi.get(self, "file_filters")

    @property
    @pulumi.getter(name="headRef")
    def head_ref(self) -> str:
        """
        Branch for push event; source branch for pull requests.
        """
        return pulumi.get(self, "head_ref")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> str:
        """
        The repository name for trigger events.
        """
        return pulumi.get(self, "repository_name")


@pulumi.output_type
class GetBuildRunBuildRunSourceTriggerInfoActionFilterIncludeFileFilterResult(dict):
    def __init__(__self__, *,
                 file_paths: Sequence[str]):
        pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class GetBuildRunCommitInfoResult(dict):
    def __init__(__self__, *,
                 commit_hash: str,
                 repository_branch: str,
                 repository_url: str):
        """
        :param str commit_hash: Commit hash pertinent to the repository URL and the specified branch.
        :param str repository_branch: Name of the repository branch.
        :param str repository_url: Repository URL.
        """
        pulumi.set(__self__, "commit_hash", commit_hash)
        pulumi.set(__self__, "repository_branch", repository_branch)
        pulumi.set(__self__, "repository_url", repository_url)

    @property
    @pulumi.getter(name="commitHash")
    def commit_hash(self) -> str:
        """
        Commit hash pertinent to the repository URL and the specified branch.
        """
        return pulumi.get(self, "commit_hash")

    @property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> str:
        """
        Name of the repository branch.
        """
        return pulumi.get(self, "repository_branch")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        Repository URL.
        """
        return pulumi.get(self, "repository_url")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemResult']):
        """
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemResult(dict):
    def __init__(__self__, *,
                 build_pipeline_id: str,
                 build_run_arguments: 'outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsResult',
                 build_run_progress_summaries: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunProgressSummaryResult'],
                 build_run_sources: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceResult'],
                 commit_info: 'outputs.GetBuildRunsBuildRunSummaryCollectionItemCommitInfoResult',
                 compartment_id: str,
                 defined_tags: Mapping[str, Any],
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param str build_pipeline_id: Unique build pipeline identifier.
        :param 'GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsArgs' build_run_arguments: Specifies list of arguments passed along with the build run.
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceArgs'] build_run_sources: The source from which the build run is triggered.
        :param 'GetBuildRunsBuildRunSummaryCollectionItemCommitInfoArgs' commit_info: Commit details that need to be used for the build run.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str project_id: unique project identifier
        :param str state: A filter to return only build runs that matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The time the build run was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: The time the build run was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "build_run_arguments", build_run_arguments)
        pulumi.set(__self__, "build_run_progress_summaries", build_run_progress_summaries)
        pulumi.set(__self__, "build_run_sources", build_run_sources)
        pulumi.set(__self__, "commit_info", commit_info)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        Unique build pipeline identifier.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter(name="buildRunArguments")
    def build_run_arguments(self) -> 'outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsResult':
        """
        Specifies list of arguments passed along with the build run.
        """
        return pulumi.get(self, "build_run_arguments")

    @property
    @pulumi.getter(name="buildRunProgressSummaries")
    def build_run_progress_summaries(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunProgressSummaryResult']:
        return pulumi.get(self, "build_run_progress_summaries")

    @property
    @pulumi.getter(name="buildRunSources")
    def build_run_sources(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceResult']:
        """
        The source from which the build run is triggered.
        """
        return pulumi.get(self, "build_run_sources")

    @property
    @pulumi.getter(name="commitInfo")
    def commit_info(self) -> 'outputs.GetBuildRunsBuildRunSummaryCollectionItemCommitInfoResult':
        """
        Commit details that need to be used for the build run.
        """
        return pulumi.get(self, "commit_info")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only build runs that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time the build run was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The time the build run was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsItemResult']):
        """
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsItemArgs'] items: List of exported variables.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsItemResult']:
        """
        List of exported variables.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunArgumentsItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the step.
        :param str value: Value of the argument.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunProgressSummaryResult(dict):
    def __init__(__self__, *,
                 time_finished: str,
                 time_started: str):
        """
        :param str time_finished: The time the build run finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_started: The time the build run started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        The time the build run finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The time the build run started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceResult(dict):
    def __init__(__self__, *,
                 repository_id: str,
                 source_type: str,
                 trigger_infos: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoResult']):
        """
        :param str repository_id: The DevOps code repository identifier that invoked the build run.
        :param str source_type: The source from which the build run is triggered.
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoArgs'] trigger_infos: Trigger details that need to be used for the BuildRun
        """
        pulumi.set(__self__, "repository_id", repository_id)
        pulumi.set(__self__, "source_type", source_type)
        pulumi.set(__self__, "trigger_infos", trigger_infos)

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The DevOps code repository identifier that invoked the build run.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter(name="sourceType")
    def source_type(self) -> str:
        """
        The source from which the build run is triggered.
        """
        return pulumi.get(self, "source_type")

    @property
    @pulumi.getter(name="triggerInfos")
    def trigger_infos(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoResult']:
        """
        Trigger details that need to be used for the BuildRun
        """
        return pulumi.get(self, "trigger_infos")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoResult(dict):
    def __init__(__self__, *,
                 actions: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionResult'],
                 display_name: str,
                 trigger_id: str):
        """
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionArgs'] actions: The list of actions that are to be performed for this Trigger
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param str trigger_id: The trigger that invoked the build run.
        """
        pulumi.set(__self__, "actions", actions)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "trigger_id", trigger_id)

    @property
    @pulumi.getter
    def actions(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionResult']:
        """
        The list of actions that are to be performed for this Trigger
        """
        return pulumi.get(self, "actions")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="triggerId")
    def trigger_id(self) -> str:
        """
        The trigger that invoked the build run.
        """
        return pulumi.get(self, "trigger_id")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionResult(dict):
    def __init__(__self__, *,
                 build_pipeline_id: str,
                 filters: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterResult'],
                 type: str):
        """
        :param str build_pipeline_id: Unique build pipeline identifier.
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterArgs'] filters: The filters for the trigger.
        :param str type: The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "filters", filters)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        Unique build pipeline identifier.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter
    def filters(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterResult']:
        """
        The filters for the trigger.
        """
        return pulumi.get(self, "filters")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterResult(dict):
    def __init__(__self__, *,
                 events: Sequence[str],
                 includes: Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterIncludeResult'],
                 trigger_source: str):
        """
        :param Sequence[str] events: The events, for example, PUSH, PULL_REQUEST_MERGE.
        :param Sequence['GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterIncludeArgs'] includes: Attributes to filter GitLab self-hosted server events.
        :param str trigger_source: Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        pulumi.set(__self__, "events", events)
        pulumi.set(__self__, "includes", includes)
        pulumi.set(__self__, "trigger_source", trigger_source)

    @property
    @pulumi.getter
    def events(self) -> Sequence[str]:
        """
        The events, for example, PUSH, PULL_REQUEST_MERGE.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter
    def includes(self) -> Sequence['outputs.GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterIncludeResult']:
        """
        Attributes to filter GitLab self-hosted server events.
        """
        return pulumi.get(self, "includes")

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> str:
        """
        Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        return pulumi.get(self, "trigger_source")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemBuildRunSourceTriggerInfoActionFilterIncludeResult(dict):
    def __init__(__self__, *,
                 base_ref: str,
                 head_ref: str):
        """
        :param str base_ref: The target branch for pull requests; not applicable for push requests.
        :param str head_ref: Branch for push event; source branch for pull requests.
        """
        pulumi.set(__self__, "base_ref", base_ref)
        pulumi.set(__self__, "head_ref", head_ref)

    @property
    @pulumi.getter(name="baseRef")
    def base_ref(self) -> str:
        """
        The target branch for pull requests; not applicable for push requests.
        """
        return pulumi.get(self, "base_ref")

    @property
    @pulumi.getter(name="headRef")
    def head_ref(self) -> str:
        """
        Branch for push event; source branch for pull requests.
        """
        return pulumi.get(self, "head_ref")


@pulumi.output_type
class GetBuildRunsBuildRunSummaryCollectionItemCommitInfoResult(dict):
    def __init__(__self__, *,
                 commit_hash: str,
                 repository_branch: str,
                 repository_url: str):
        """
        :param str commit_hash: Commit hash pertinent to the repository URL and the specified branch.
        :param str repository_branch: Name of the repository branch.
        :param str repository_url: Repository URL.
        """
        pulumi.set(__self__, "commit_hash", commit_hash)
        pulumi.set(__self__, "repository_branch", repository_branch)
        pulumi.set(__self__, "repository_url", repository_url)

    @property
    @pulumi.getter(name="commitHash")
    def commit_hash(self) -> str:
        """
        Commit hash pertinent to the repository URL and the specified branch.
        """
        return pulumi.get(self, "commit_hash")

    @property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> str:
        """
        Name of the repository branch.
        """
        return pulumi.get(self, "repository_branch")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        Repository URL.
        """
        return pulumi.get(self, "repository_url")


@pulumi.output_type
class GetBuildRunsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of the step.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetConnectionLastConnectionValidationResultResult(dict):
    def __init__(__self__, *,
                 message: str,
                 result: str,
                 time_validated: str):
        """
        :param str message: A message describing the result of connection validation in more detail.
        :param str result: The latest result of whether the credentials pass the validation.
        :param str time_validated: The latest timestamp when the connection was validated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "message", message)
        pulumi.set(__self__, "result", result)
        pulumi.set(__self__, "time_validated", time_validated)

    @property
    @pulumi.getter
    def message(self) -> str:
        """
        A message describing the result of connection validation in more detail.
        """
        return pulumi.get(self, "message")

    @property
    @pulumi.getter
    def result(self) -> str:
        """
        The latest result of whether the credentials pass the validation.
        """
        return pulumi.get(self, "result")

    @property
    @pulumi.getter(name="timeValidated")
    def time_validated(self) -> str:
        """
        The latest timestamp when the connection was validated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_validated")


@pulumi.output_type
class GetConnectionTlsVerifyConfigResult(dict):
    def __init__(__self__, *,
                 ca_certificate_bundle_id: str,
                 tls_verify_mode: str):
        """
        :param str ca_certificate_bundle_id: The OCID of Oracle Cloud Infrastructure certificate service CA bundle.
        :param str tls_verify_mode: The type of TLS verification.
        """
        pulumi.set(__self__, "ca_certificate_bundle_id", ca_certificate_bundle_id)
        pulumi.set(__self__, "tls_verify_mode", tls_verify_mode)

    @property
    @pulumi.getter(name="caCertificateBundleId")
    def ca_certificate_bundle_id(self) -> str:
        """
        The OCID of Oracle Cloud Infrastructure certificate service CA bundle.
        """
        return pulumi.get(self, "ca_certificate_bundle_id")

    @property
    @pulumi.getter(name="tlsVerifyMode")
    def tls_verify_mode(self) -> str:
        """
        The type of TLS verification.
        """
        return pulumi.get(self, "tls_verify_mode")


@pulumi.output_type
class GetConnectionsConnectionCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetConnectionsConnectionCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetConnectionsConnectionCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetConnectionsConnectionCollectionItemResult(dict):
    def __init__(__self__, *,
                 access_token: str,
                 app_password: str,
                 base_url: str,
                 compartment_id: str,
                 connection_type: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 last_connection_validation_results: Sequence['outputs.GetConnectionsConnectionCollectionItemLastConnectionValidationResultResult'],
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str,
                 tls_verify_configs: Sequence['outputs.GetConnectionsConnectionCollectionItemTlsVerifyConfigResult'],
                 username: str):
        """
        :param str access_token: The OCID of personal access token saved in secret store.
        :param str app_password: OCID of personal Bitbucket Cloud AppPassword saved in secret store
        :param str base_url: The Base URL of the hosted BitbucketServer/Visual Builder Studio server.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param str connection_type: A filter to return only resources that match the given connection type.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str description: Optional description about the connection.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param Sequence['GetConnectionsConnectionCollectionItemLastConnectionValidationResultArgs'] last_connection_validation_results: The result of validating the credentials of a connection.
        :param str project_id: unique project identifier
        :param str state: A filter to return only connections that matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The time the connection was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: The time the connection was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param Sequence['GetConnectionsConnectionCollectionItemTlsVerifyConfigArgs'] tls_verify_configs: TLS configuration used by build service to verify TLS connection.
        :param str username: Public Bitbucket Cloud Username in plain text
        """
        pulumi.set(__self__, "access_token", access_token)
        pulumi.set(__self__, "app_password", app_password)
        pulumi.set(__self__, "base_url", base_url)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "connection_type", connection_type)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "last_connection_validation_results", last_connection_validation_results)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)
        pulumi.set(__self__, "tls_verify_configs", tls_verify_configs)
        pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> str:
        """
        The OCID of personal access token saved in secret store.
        """
        return pulumi.get(self, "access_token")

    @property
    @pulumi.getter(name="appPassword")
    def app_password(self) -> str:
        """
        OCID of personal Bitbucket Cloud AppPassword saved in secret store
        """
        return pulumi.get(self, "app_password")

    @property
    @pulumi.getter(name="baseUrl")
    def base_url(self) -> str:
        """
        The Base URL of the hosted BitbucketServer/Visual Builder Studio server.
        """
        return pulumi.get(self, "base_url")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="connectionType")
    def connection_type(self) -> str:
        """
        A filter to return only resources that match the given connection type.
        """
        return pulumi.get(self, "connection_type")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the connection.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lastConnectionValidationResults")
    def last_connection_validation_results(self) -> Sequence['outputs.GetConnectionsConnectionCollectionItemLastConnectionValidationResultResult']:
        """
        The result of validating the credentials of a connection.
        """
        return pulumi.get(self, "last_connection_validation_results")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only connections that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time the connection was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The time the connection was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="tlsVerifyConfigs")
    def tls_verify_configs(self) -> Sequence['outputs.GetConnectionsConnectionCollectionItemTlsVerifyConfigResult']:
        """
        TLS configuration used by build service to verify TLS connection.
        """
        return pulumi.get(self, "tls_verify_configs")

    @property
    @pulumi.getter
    def username(self) -> str:
        """
        Public Bitbucket Cloud Username in plain text
        """
        return pulumi.get(self, "username")


@pulumi.output_type
class GetConnectionsConnectionCollectionItemLastConnectionValidationResultResult(dict):
    def __init__(__self__, *,
                 message: str,
                 result: str,
                 time_validated: str):
        """
        :param str message: A message describing the result of connection validation in more detail.
        :param str result: The latest result of whether the credentials pass the validation.
        :param str time_validated: The latest timestamp when the connection was validated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "message", message)
        pulumi.set(__self__, "result", result)
        pulumi.set(__self__, "time_validated", time_validated)

    @property
    @pulumi.getter
    def message(self) -> str:
        """
        A message describing the result of connection validation in more detail.
        """
        return pulumi.get(self, "message")

    @property
    @pulumi.getter
    def result(self) -> str:
        """
        The latest result of whether the credentials pass the validation.
        """
        return pulumi.get(self, "result")

    @property
    @pulumi.getter(name="timeValidated")
    def time_validated(self) -> str:
        """
        The latest timestamp when the connection was validated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_validated")


@pulumi.output_type
class GetConnectionsConnectionCollectionItemTlsVerifyConfigResult(dict):
    def __init__(__self__, *,
                 ca_certificate_bundle_id: str,
                 tls_verify_mode: str):
        """
        :param str ca_certificate_bundle_id: The OCID of Oracle Cloud Infrastructure certificate service CA bundle.
        :param str tls_verify_mode: The type of TLS verification.
        """
        pulumi.set(__self__, "ca_certificate_bundle_id", ca_certificate_bundle_id)
        pulumi.set(__self__, "tls_verify_mode", tls_verify_mode)

    @property
    @pulumi.getter(name="caCertificateBundleId")
    def ca_certificate_bundle_id(self) -> str:
        """
        The OCID of Oracle Cloud Infrastructure certificate service CA bundle.
        """
        return pulumi.get(self, "ca_certificate_bundle_id")

    @property
    @pulumi.getter(name="tlsVerifyMode")
    def tls_verify_mode(self) -> str:
        """
        The type of TLS verification.
        """
        return pulumi.get(self, "tls_verify_mode")


@pulumi.output_type
class GetConnectionsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetDeployArtifactDeployArtifactSourceResult(dict):
    def __init__(__self__, *,
                 base64encoded_content: str,
                 chart_url: str,
                 deploy_artifact_path: str,
                 deploy_artifact_source_type: str,
                 deploy_artifact_version: str,
                 helm_verification_key_sources: Sequence['outputs.GetDeployArtifactDeployArtifactSourceHelmVerificationKeySourceResult'],
                 image_digest: str,
                 image_uri: str,
                 repository_id: str):
        """
        :param str base64encoded_content: Specifies content for the inline artifact.
        :param str chart_url: The URL of an OCIR repository.
        :param str deploy_artifact_path: Specifies the artifact path in the repository.
        :param str deploy_artifact_source_type: Specifies types of artifact sources.
        :param str deploy_artifact_version: Users can set this as a placeholder value that refers to a pipeline parameter, for example, ${appVersion}.
        :param Sequence['GetDeployArtifactDeployArtifactSourceHelmVerificationKeySourceArgs'] helm_verification_key_sources: The source of the verification material.
        :param str image_digest: Specifies image digest for the version of the image.
        :param str image_uri: Specifies OCIR Image Path - optionally include tag.
        :param str repository_id: The OCID of a repository
        """
        pulumi.set(__self__, "base64encoded_content", base64encoded_content)
        pulumi.set(__self__, "chart_url", chart_url)
        pulumi.set(__self__, "deploy_artifact_path", deploy_artifact_path)
        pulumi.set(__self__, "deploy_artifact_source_type", deploy_artifact_source_type)
        pulumi.set(__self__, "deploy_artifact_version", deploy_artifact_version)
        pulumi.set(__self__, "helm_verification_key_sources", helm_verification_key_sources)
        pulumi.set(__self__, "image_digest", image_digest)
        pulumi.set(__self__, "image_uri", image_uri)
        pulumi.set(__self__, "repository_id", repository_id)

    @property
    @pulumi.getter(name="base64encodedContent")
    def base64encoded_content(self) -> str:
        """
        Specifies content for the inline artifact.
        """
        return pulumi.get(self, "base64encoded_content")

    @property
    @pulumi.getter(name="chartUrl")
    def chart_url(self) -> str:
        """
        The URL of an OCIR repository.
        """
        return pulumi.get(self, "chart_url")

    @property
    @pulumi.getter(name="deployArtifactPath")
    def deploy_artifact_path(self) -> str:
        """
        Specifies the artifact path in the repository.
        """
        return pulumi.get(self, "deploy_artifact_path")

    @property
    @pulumi.getter(name="deployArtifactSourceType")
    def deploy_artifact_source_type(self) -> str:
        """
        Specifies types of artifact sources.
        """
        return pulumi.get(self, "deploy_artifact_source_type")

    @property
    @pulumi.getter(name="deployArtifactVersion")
    def deploy_artifact_version(self) -> str:
        """
        Users can set this as a placeholder value that refers to a pipeline parameter, for example, ${appVersion}.
        """
        return pulumi.get(self, "deploy_artifact_version")

    @property
    @pulumi.getter(name="helmVerificationKeySources")
    def helm_verification_key_sources(self) -> Sequence['outputs.GetDeployArtifactDeployArtifactSourceHelmVerificationKeySourceResult']:
        """
        The source of the verification material.
        """
        return pulumi.get(self, "helm_verification_key_sources")

    @property
    @pulumi.getter(name="imageDigest")
    def image_digest(self) -> str:
        """
        Specifies image digest for the version of the image.
        """
        return pulumi.get(self, "image_digest")

    @property
    @pulumi.getter(name="imageUri")
    def image_uri(self) -> str:
        """
        Specifies OCIR Image Path - optionally include tag.
        """
        return pulumi.get(self, "image_uri")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The OCID of a repository
        """
        return pulumi.get(self, "repository_id")


@pulumi.output_type
class GetDeployArtifactDeployArtifactSourceHelmVerificationKeySourceResult(dict):
    def __init__(__self__, *,
                 current_public_key: str,
                 previous_public_key: str,
                 vault_secret_id: str,
                 verification_key_source_type: str):
        """
        :param str current_public_key: Current version of Base64 encoding of the public key which is in binary GPG exported format.
        :param str previous_public_key: Previous version of Base64 encoding of the public key which is in binary GPG exported format. This would be used for key rotation scenarios.
        :param str vault_secret_id: The OCID of the Vault Secret containing the verification key versions.
        :param str verification_key_source_type: Specifies type of verification material.
        """
        pulumi.set(__self__, "current_public_key", current_public_key)
        pulumi.set(__self__, "previous_public_key", previous_public_key)
        pulumi.set(__self__, "vault_secret_id", vault_secret_id)
        pulumi.set(__self__, "verification_key_source_type", verification_key_source_type)

    @property
    @pulumi.getter(name="currentPublicKey")
    def current_public_key(self) -> str:
        """
        Current version of Base64 encoding of the public key which is in binary GPG exported format.
        """
        return pulumi.get(self, "current_public_key")

    @property
    @pulumi.getter(name="previousPublicKey")
    def previous_public_key(self) -> str:
        """
        Previous version of Base64 encoding of the public key which is in binary GPG exported format. This would be used for key rotation scenarios.
        """
        return pulumi.get(self, "previous_public_key")

    @property
    @pulumi.getter(name="vaultSecretId")
    def vault_secret_id(self) -> str:
        """
        The OCID of the Vault Secret containing the verification key versions.
        """
        return pulumi.get(self, "vault_secret_id")

    @property
    @pulumi.getter(name="verificationKeySourceType")
    def verification_key_source_type(self) -> str:
        """
        Specifies type of verification material.
        """
        return pulumi.get(self, "verification_key_source_type")


@pulumi.output_type
class GetDeployArtifactsDeployArtifactCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployArtifactsDeployArtifactCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployArtifactsDeployArtifactCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployArtifactsDeployArtifactCollectionItemResult(dict):
    def __init__(__self__, *,
                 argument_substitution_mode: str,
                 compartment_id: str,
                 defined_tags: Mapping[str, Any],
                 deploy_artifact_sources: Sequence['outputs.GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceResult'],
                 deploy_artifact_type: str,
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param str argument_substitution_mode: Mode for artifact parameter substitution.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Sequence['GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceArgs'] deploy_artifact_sources: Specifies source of an artifact.
        :param str deploy_artifact_type: Type of the deployment artifact.
        :param str description: Optional description about the artifact to be deployed.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A detailed message describing the current state. For example, can be used to provide actionable information for a resource in Failed state.
        :param str project_id: unique project identifier
        :param str state: A filter to return only DeployArtifacts that matches the given lifecycleState.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: Time the deployment artifact was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: Time the deployment artifact was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "argument_substitution_mode", argument_substitution_mode)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "deploy_artifact_sources", deploy_artifact_sources)
        pulumi.set(__self__, "deploy_artifact_type", deploy_artifact_type)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="argumentSubstitutionMode")
    def argument_substitution_mode(self) -> str:
        """
        Mode for artifact parameter substitution.
        """
        return pulumi.get(self, "argument_substitution_mode")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deployArtifactSources")
    def deploy_artifact_sources(self) -> Sequence['outputs.GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceResult']:
        """
        Specifies source of an artifact.
        """
        return pulumi.get(self, "deploy_artifact_sources")

    @property
    @pulumi.getter(name="deployArtifactType")
    def deploy_artifact_type(self) -> str:
        """
        Type of the deployment artifact.
        """
        return pulumi.get(self, "deploy_artifact_type")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the artifact to be deployed.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A detailed message describing the current state. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only DeployArtifacts that matches the given lifecycleState.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Time the deployment artifact was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Time the deployment artifact was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceResult(dict):
    def __init__(__self__, *,
                 base64encoded_content: str,
                 chart_url: str,
                 deploy_artifact_path: str,
                 deploy_artifact_source_type: str,
                 deploy_artifact_version: str,
                 helm_verification_key_sources: Sequence['outputs.GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceHelmVerificationKeySourceResult'],
                 image_digest: str,
                 image_uri: str,
                 repository_id: str):
        """
        :param str base64encoded_content: Specifies content for the inline artifact.
        :param str chart_url: The URL of an OCIR repository.
        :param str deploy_artifact_path: Specifies the artifact path in the repository.
        :param str deploy_artifact_source_type: Specifies types of artifact sources.
        :param str deploy_artifact_version: Users can set this as a placeholder value that refers to a pipeline parameter, for example, ${appVersion}.
        :param Sequence['GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceHelmVerificationKeySourceArgs'] helm_verification_key_sources: The source of the verification material.
        :param str image_digest: Specifies image digest for the version of the image.
        :param str image_uri: Specifies OCIR Image Path - optionally include tag.
        :param str repository_id: The OCID of a repository
        """
        pulumi.set(__self__, "base64encoded_content", base64encoded_content)
        pulumi.set(__self__, "chart_url", chart_url)
        pulumi.set(__self__, "deploy_artifact_path", deploy_artifact_path)
        pulumi.set(__self__, "deploy_artifact_source_type", deploy_artifact_source_type)
        pulumi.set(__self__, "deploy_artifact_version", deploy_artifact_version)
        pulumi.set(__self__, "helm_verification_key_sources", helm_verification_key_sources)
        pulumi.set(__self__, "image_digest", image_digest)
        pulumi.set(__self__, "image_uri", image_uri)
        pulumi.set(__self__, "repository_id", repository_id)

    @property
    @pulumi.getter(name="base64encodedContent")
    def base64encoded_content(self) -> str:
        """
        Specifies content for the inline artifact.
        """
        return pulumi.get(self, "base64encoded_content")

    @property
    @pulumi.getter(name="chartUrl")
    def chart_url(self) -> str:
        """
        The URL of an OCIR repository.
        """
        return pulumi.get(self, "chart_url")

    @property
    @pulumi.getter(name="deployArtifactPath")
    def deploy_artifact_path(self) -> str:
        """
        Specifies the artifact path in the repository.
        """
        return pulumi.get(self, "deploy_artifact_path")

    @property
    @pulumi.getter(name="deployArtifactSourceType")
    def deploy_artifact_source_type(self) -> str:
        """
        Specifies types of artifact sources.
        """
        return pulumi.get(self, "deploy_artifact_source_type")

    @property
    @pulumi.getter(name="deployArtifactVersion")
    def deploy_artifact_version(self) -> str:
        """
        Users can set this as a placeholder value that refers to a pipeline parameter, for example, ${appVersion}.
        """
        return pulumi.get(self, "deploy_artifact_version")

    @property
    @pulumi.getter(name="helmVerificationKeySources")
    def helm_verification_key_sources(self) -> Sequence['outputs.GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceHelmVerificationKeySourceResult']:
        """
        The source of the verification material.
        """
        return pulumi.get(self, "helm_verification_key_sources")

    @property
    @pulumi.getter(name="imageDigest")
    def image_digest(self) -> str:
        """
        Specifies image digest for the version of the image.
        """
        return pulumi.get(self, "image_digest")

    @property
    @pulumi.getter(name="imageUri")
    def image_uri(self) -> str:
        """
        Specifies OCIR Image Path - optionally include tag.
        """
        return pulumi.get(self, "image_uri")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The OCID of a repository
        """
        return pulumi.get(self, "repository_id")


@pulumi.output_type
class GetDeployArtifactsDeployArtifactCollectionItemDeployArtifactSourceHelmVerificationKeySourceResult(dict):
    def __init__(__self__, *,
                 current_public_key: str,
                 previous_public_key: str,
                 vault_secret_id: str,
                 verification_key_source_type: str):
        """
        :param str current_public_key: Current version of Base64 encoding of the public key which is in binary GPG exported format.
        :param str previous_public_key: Previous version of Base64 encoding of the public key which is in binary GPG exported format. This would be used for key rotation scenarios.
        :param str vault_secret_id: The OCID of the Vault Secret containing the verification key versions.
        :param str verification_key_source_type: Specifies type of verification material.
        """
        pulumi.set(__self__, "current_public_key", current_public_key)
        pulumi.set(__self__, "previous_public_key", previous_public_key)
        pulumi.set(__self__, "vault_secret_id", vault_secret_id)
        pulumi.set(__self__, "verification_key_source_type", verification_key_source_type)

    @property
    @pulumi.getter(name="currentPublicKey")
    def current_public_key(self) -> str:
        """
        Current version of Base64 encoding of the public key which is in binary GPG exported format.
        """
        return pulumi.get(self, "current_public_key")

    @property
    @pulumi.getter(name="previousPublicKey")
    def previous_public_key(self) -> str:
        """
        Previous version of Base64 encoding of the public key which is in binary GPG exported format. This would be used for key rotation scenarios.
        """
        return pulumi.get(self, "previous_public_key")

    @property
    @pulumi.getter(name="vaultSecretId")
    def vault_secret_id(self) -> str:
        """
        The OCID of the Vault Secret containing the verification key versions.
        """
        return pulumi.get(self, "vault_secret_id")

    @property
    @pulumi.getter(name="verificationKeySourceType")
    def verification_key_source_type(self) -> str:
        """
        Specifies type of verification material.
        """
        return pulumi.get(self, "verification_key_source_type")


@pulumi.output_type
class GetDeployArtifactsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetDeployEnvironmentComputeInstanceGroupSelectorResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployEnvironmentComputeInstanceGroupSelectorItemResult']):
        """
        :param Sequence['GetDeployEnvironmentComputeInstanceGroupSelectorItemArgs'] items: A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployEnvironmentComputeInstanceGroupSelectorItemResult']:
        """
        A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployEnvironmentComputeInstanceGroupSelectorItemResult(dict):
    def __init__(__self__, *,
                 compute_instance_ids: Sequence[str],
                 query: str,
                 region: str,
                 selector_type: str):
        """
        :param Sequence[str] compute_instance_ids: Compute instance OCID identifiers that are members of this group.
        :param str query: Query expression confirming to the Oracle Cloud Infrastructure Search Language syntax to select compute instances for the group. The language is documented at https://docs.oracle.com/en-us/iaas/Content/Search/Concepts/querysyntax.htm
        :param str region: Region identifier referred by the deployment environment. Region identifiers are listed at https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
        :param str selector_type: Defines the type of the instance selector for the group.
        """
        pulumi.set(__self__, "compute_instance_ids", compute_instance_ids)
        pulumi.set(__self__, "query", query)
        pulumi.set(__self__, "region", region)
        pulumi.set(__self__, "selector_type", selector_type)

    @property
    @pulumi.getter(name="computeInstanceIds")
    def compute_instance_ids(self) -> Sequence[str]:
        """
        Compute instance OCID identifiers that are members of this group.
        """
        return pulumi.get(self, "compute_instance_ids")

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        Query expression confirming to the Oracle Cloud Infrastructure Search Language syntax to select compute instances for the group. The language is documented at https://docs.oracle.com/en-us/iaas/Content/Search/Concepts/querysyntax.htm
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter
    def region(self) -> str:
        """
        Region identifier referred by the deployment environment. Region identifiers are listed at https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
        """
        return pulumi.get(self, "region")

    @property
    @pulumi.getter(name="selectorType")
    def selector_type(self) -> str:
        """
        Defines the type of the instance selector for the group.
        """
        return pulumi.get(self, "selector_type")


@pulumi.output_type
class GetDeployEnvironmentNetworkChannelResult(dict):
    def __init__(__self__, *,
                 network_channel_type: str,
                 nsg_ids: Sequence[str],
                 subnet_id: str):
        """
        :param str network_channel_type: Network channel type.
        :param Sequence[str] nsg_ids: An array of network security group OCIDs.
        :param str subnet_id: The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "nsg_ids", nsg_ids)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Sequence[str]:
        """
        An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetDeployEnvironmentsDeployEnvironmentCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemResult']):
        """
        :param Sequence['GetDeployEnvironmentsDeployEnvironmentCollectionItemArgs'] items: A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemResult']:
        """
        A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployEnvironmentsDeployEnvironmentCollectionItemResult(dict):
    def __init__(__self__, *,
                 cluster_id: str,
                 compartment_id: str,
                 compute_instance_group_selectors: Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorResult'],
                 defined_tags: Mapping[str, Any],
                 deploy_environment_type: str,
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 function_id: str,
                 id: str,
                 lifecycle_details: str,
                 network_channels: Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemNetworkChannelResult'],
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param str cluster_id: The OCID of the Kubernetes cluster.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Sequence['GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorArgs'] compute_instance_group_selectors: A collection of selectors. The combination of instances matching the selectors are included in the instance group.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str deploy_environment_type: Deployment environment type.
        :param str description: Optional description about the deployment environment.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str function_id: The OCID of the Function.
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param Sequence['GetDeployEnvironmentsDeployEnvironmentCollectionItemNetworkChannelArgs'] network_channels: Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        :param str project_id: unique project identifier
        :param str state: A filter to return only DeployEnvironments that matches the given lifecycleState.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: Time the deployment environment was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: Time the deployment environment was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "cluster_id", cluster_id)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "compute_instance_group_selectors", compute_instance_group_selectors)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "deploy_environment_type", deploy_environment_type)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "function_id", function_id)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "network_channels", network_channels)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="clusterId")
    def cluster_id(self) -> str:
        """
        The OCID of the Kubernetes cluster.
        """
        return pulumi.get(self, "cluster_id")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="computeInstanceGroupSelectors")
    def compute_instance_group_selectors(self) -> Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorResult']:
        """
        A collection of selectors. The combination of instances matching the selectors are included in the instance group.
        """
        return pulumi.get(self, "compute_instance_group_selectors")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deployEnvironmentType")
    def deploy_environment_type(self) -> str:
        """
        Deployment environment type.
        """
        return pulumi.get(self, "deploy_environment_type")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the deployment environment.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="functionId")
    def function_id(self) -> str:
        """
        The OCID of the Function.
        """
        return pulumi.get(self, "function_id")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="networkChannels")
    def network_channels(self) -> Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemNetworkChannelResult']:
        """
        Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        """
        return pulumi.get(self, "network_channels")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only DeployEnvironments that matches the given lifecycleState.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Time the deployment environment was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Time the deployment environment was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorItemResult']):
        """
        :param Sequence['GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorItemArgs'] items: A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorItemResult']:
        """
        A list of selectors for the instance group. UNION operator is used for combining the instances selected by each selector.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployEnvironmentsDeployEnvironmentCollectionItemComputeInstanceGroupSelectorItemResult(dict):
    def __init__(__self__, *,
                 compute_instance_ids: Sequence[str],
                 query: str,
                 region: str,
                 selector_type: str):
        """
        :param Sequence[str] compute_instance_ids: Compute instance OCID identifiers that are members of this group.
        :param str query: Query expression confirming to the Oracle Cloud Infrastructure Search Language syntax to select compute instances for the group. The language is documented at https://docs.oracle.com/en-us/iaas/Content/Search/Concepts/querysyntax.htm
        :param str region: Region identifier referred by the deployment environment. Region identifiers are listed at https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
        :param str selector_type: Defines the type of the instance selector for the group.
        """
        pulumi.set(__self__, "compute_instance_ids", compute_instance_ids)
        pulumi.set(__self__, "query", query)
        pulumi.set(__self__, "region", region)
        pulumi.set(__self__, "selector_type", selector_type)

    @property
    @pulumi.getter(name="computeInstanceIds")
    def compute_instance_ids(self) -> Sequence[str]:
        """
        Compute instance OCID identifiers that are members of this group.
        """
        return pulumi.get(self, "compute_instance_ids")

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        Query expression confirming to the Oracle Cloud Infrastructure Search Language syntax to select compute instances for the group. The language is documented at https://docs.oracle.com/en-us/iaas/Content/Search/Concepts/querysyntax.htm
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter
    def region(self) -> str:
        """
        Region identifier referred by the deployment environment. Region identifiers are listed at https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
        """
        return pulumi.get(self, "region")

    @property
    @pulumi.getter(name="selectorType")
    def selector_type(self) -> str:
        """
        Defines the type of the instance selector for the group.
        """
        return pulumi.get(self, "selector_type")


@pulumi.output_type
class GetDeployEnvironmentsDeployEnvironmentCollectionItemNetworkChannelResult(dict):
    def __init__(__self__, *,
                 network_channel_type: str,
                 nsg_ids: Sequence[str],
                 subnet_id: str):
        """
        :param str network_channel_type: Network channel type.
        :param Sequence[str] nsg_ids: An array of network security group OCIDs.
        :param str subnet_id: The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "nsg_ids", nsg_ids)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Sequence[str]:
        """
        An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetDeployEnvironmentsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetDeployPipelineDeployPipelineArtifactResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelineDeployPipelineArtifactItemResult']):
        """
        :param Sequence['GetDeployPipelineDeployPipelineArtifactItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineArtifactItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelineDeployPipelineArtifactItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param Sequence['GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelineDeployPipelineArtifactItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of a stage
        :param str display_name: Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of a stage
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelineDeployPipelineEnvironmentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelineDeployPipelineEnvironmentItemResult']):
        """
        :param Sequence['GetDeployPipelineDeployPipelineEnvironmentItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineEnvironmentItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelineDeployPipelineEnvironmentItemResult(dict):
    def __init__(__self__, *,
                 deploy_environment_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_environment_id: The OCID of an Environment
        :param Sequence['GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_environment_id", deploy_environment_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployEnvironmentId")
    def deploy_environment_id(self) -> str:
        """
        The OCID of an Environment
        """
        return pulumi.get(self, "deploy_environment_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelineDeployPipelineEnvironmentItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of a stage
        :param str display_name: Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of a stage
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment pipeline display name, which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelineDeployPipelineParameterResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelineDeployPipelineParameterItemResult']):
        """
        :param Sequence['GetDeployPipelineDeployPipelineParameterItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelineDeployPipelineParameterItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelineDeployPipelineParameterItemResult(dict):
    def __init__(__self__, *,
                 default_value: str,
                 description: str,
                 name: str):
        """
        :param str default_value: Default value of the parameter.
        :param str description: Optional description about the deployment pipeline.
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        pulumi.set(__self__, "default_value", default_value)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> str:
        """
        Default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the deployment pipeline.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemResult']):
        """
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 defined_tags: Mapping[str, Any],
                 deploy_pipeline_artifacts: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactResult'],
                 deploy_pipeline_environments: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentResult'],
                 deploy_pipeline_parameters: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterResult'],
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactArgs'] deploy_pipeline_artifacts: List of all artifacts used in the pipeline.
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentArgs'] deploy_pipeline_environments: List of all environments used in the pipeline.
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterArgs'] deploy_pipeline_parameters: Specifies list of parameters present in the deployment pipeline. In case of Update operation, replaces existing parameters list. Merging with existing parameters is not supported.
        :param str description: Optional description about the deployment pipeline.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str project_id: unique project identifier
        :param str state: A filter to return only DeployPipelines that matches the given lifecycleState.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: Time the deployment pipeline was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: Time the deployment pipeline was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "deploy_pipeline_artifacts", deploy_pipeline_artifacts)
        pulumi.set(__self__, "deploy_pipeline_environments", deploy_pipeline_environments)
        pulumi.set(__self__, "deploy_pipeline_parameters", deploy_pipeline_parameters)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deployPipelineArtifacts")
    def deploy_pipeline_artifacts(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactResult']:
        """
        List of all artifacts used in the pipeline.
        """
        return pulumi.get(self, "deploy_pipeline_artifacts")

    @property
    @pulumi.getter(name="deployPipelineEnvironments")
    def deploy_pipeline_environments(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentResult']:
        """
        List of all environments used in the pipeline.
        """
        return pulumi.get(self, "deploy_pipeline_environments")

    @property
    @pulumi.getter(name="deployPipelineParameters")
    def deploy_pipeline_parameters(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterResult']:
        """
        Specifies list of parameters present in the deployment pipeline. In case of Update operation, replaces existing parameters list. Merging with existing parameters is not supported.
        """
        return pulumi.get(self, "deploy_pipeline_parameters")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the deployment pipeline.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only DeployPipelines that matches the given lifecycleState.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Time the deployment pipeline was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Time the deployment pipeline was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemResult']):
        """
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of a stage
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of a stage
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemResult']):
        """
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemResult(dict):
    def __init__(__self__, *,
                 deploy_environment_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_environment_id: The OCID of an Environment
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_environment_id", deploy_environment_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployEnvironmentId")
    def deploy_environment_id(self) -> str:
        """
        The OCID of an Environment
        """
        return pulumi.get(self, "deploy_environment_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of a stage
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of a stage
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterItemResult']):
        """
        :param Sequence['GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterItemArgs'] items: List of parameters defined for a deployment pipeline.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterItemResult']:
        """
        List of parameters defined for a deployment pipeline.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployPipelinesDeployPipelineCollectionItemDeployPipelineParameterItemResult(dict):
    def __init__(__self__, *,
                 default_value: str,
                 description: str,
                 name: str):
        """
        :param str default_value: Default value of the parameter.
        :param str description: Optional description about the deployment pipeline.
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        pulumi.set(__self__, "default_value", default_value)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> str:
        """
        Default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the deployment pipeline.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class GetDeployPipelinesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive). Parameter name must be ^[a-zA-Z][a-zA-Z_0-9]*$.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetDeployStageApprovalPolicyResult(dict):
    def __init__(__self__, *,
                 approval_policy_type: str,
                 number_of_approvals_required: int):
        """
        :param str approval_policy_type: Approval policy type.
        :param int number_of_approvals_required: A minimum number of approvals required for stage to proceed.
        """
        pulumi.set(__self__, "approval_policy_type", approval_policy_type)
        pulumi.set(__self__, "number_of_approvals_required", number_of_approvals_required)

    @property
    @pulumi.getter(name="approvalPolicyType")
    def approval_policy_type(self) -> str:
        """
        Approval policy type.
        """
        return pulumi.get(self, "approval_policy_type")

    @property
    @pulumi.getter(name="numberOfApprovalsRequired")
    def number_of_approvals_required(self) -> int:
        """
        A minimum number of approvals required for stage to proceed.
        """
        return pulumi.get(self, "number_of_approvals_required")


@pulumi.output_type
class GetDeployStageBlueBackendIpResult(dict):
    def __init__(__self__, *,
                 items: Sequence[str]):
        """
        :param Sequence[str] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence[str]:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStageBlueGreenStrategyResult(dict):
    def __init__(__self__, *,
                 ingress_name: str,
                 namespace_a: str,
                 namespace_b: str,
                 strategy_type: str):
        """
        :param str ingress_name: Name of the Ingress resource.
        :param str namespace_a: First Namespace for deployment.
        :param str namespace_b: Second Namespace for deployment.
        :param str strategy_type: Canary strategy type.
        """
        pulumi.set(__self__, "ingress_name", ingress_name)
        pulumi.set(__self__, "namespace_a", namespace_a)
        pulumi.set(__self__, "namespace_b", namespace_b)
        pulumi.set(__self__, "strategy_type", strategy_type)

    @property
    @pulumi.getter(name="ingressName")
    def ingress_name(self) -> str:
        """
        Name of the Ingress resource.
        """
        return pulumi.get(self, "ingress_name")

    @property
    @pulumi.getter(name="namespaceA")
    def namespace_a(self) -> str:
        """
        First Namespace for deployment.
        """
        return pulumi.get(self, "namespace_a")

    @property
    @pulumi.getter(name="namespaceB")
    def namespace_b(self) -> str:
        """
        Second Namespace for deployment.
        """
        return pulumi.get(self, "namespace_b")

    @property
    @pulumi.getter(name="strategyType")
    def strategy_type(self) -> str:
        """
        Canary strategy type.
        """
        return pulumi.get(self, "strategy_type")


@pulumi.output_type
class GetDeployStageCanaryStrategyResult(dict):
    def __init__(__self__, *,
                 ingress_name: str,
                 namespace: str,
                 strategy_type: str):
        """
        :param str ingress_name: Name of the Ingress resource.
        :param str namespace: Default Namespace to be used for Kubernetes deployment when not specified in the manifest.
        :param str strategy_type: Canary strategy type.
        """
        pulumi.set(__self__, "ingress_name", ingress_name)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "strategy_type", strategy_type)

    @property
    @pulumi.getter(name="ingressName")
    def ingress_name(self) -> str:
        """
        Name of the Ingress resource.
        """
        return pulumi.get(self, "ingress_name")

    @property
    @pulumi.getter
    def namespace(self) -> str:
        """
        Default Namespace to be used for Kubernetes deployment when not specified in the manifest.
        """
        return pulumi.get(self, "namespace")

    @property
    @pulumi.getter(name="strategyType")
    def strategy_type(self) -> str:
        """
        Canary strategy type.
        """
        return pulumi.get(self, "strategy_type")


@pulumi.output_type
class GetDeployStageContainerConfigResult(dict):
    def __init__(__self__, *,
                 availability_domain: str,
                 compartment_id: str,
                 container_config_type: str,
                 network_channels: Sequence['outputs.GetDeployStageContainerConfigNetworkChannelResult'],
                 shape_configs: Sequence['outputs.GetDeployStageContainerConfigShapeConfigResult'],
                 shape_name: str):
        """
        :param str availability_domain: Availability domain where the ContainerInstance will be created.
        :param str compartment_id: The OCID of the compartment where the ContainerInstance will be created.
        :param str container_config_type: Container configuration type.
        :param Sequence['GetDeployStageContainerConfigNetworkChannelArgs'] network_channels: Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        :param Sequence['GetDeployStageContainerConfigShapeConfigArgs'] shape_configs: Determines the size and amount of resources available to the instance.
        :param str shape_name: The shape of the ContainerInstance. The shape determines the resources available to the ContainerInstance.
        """
        pulumi.set(__self__, "availability_domain", availability_domain)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "container_config_type", container_config_type)
        pulumi.set(__self__, "network_channels", network_channels)
        pulumi.set(__self__, "shape_configs", shape_configs)
        pulumi.set(__self__, "shape_name", shape_name)

    @property
    @pulumi.getter(name="availabilityDomain")
    def availability_domain(self) -> str:
        """
        Availability domain where the ContainerInstance will be created.
        """
        return pulumi.get(self, "availability_domain")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment where the ContainerInstance will be created.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="containerConfigType")
    def container_config_type(self) -> str:
        """
        Container configuration type.
        """
        return pulumi.get(self, "container_config_type")

    @property
    @pulumi.getter(name="networkChannels")
    def network_channels(self) -> Sequence['outputs.GetDeployStageContainerConfigNetworkChannelResult']:
        """
        Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        """
        return pulumi.get(self, "network_channels")

    @property
    @pulumi.getter(name="shapeConfigs")
    def shape_configs(self) -> Sequence['outputs.GetDeployStageContainerConfigShapeConfigResult']:
        """
        Determines the size and amount of resources available to the instance.
        """
        return pulumi.get(self, "shape_configs")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape of the ContainerInstance. The shape determines the resources available to the ContainerInstance.
        """
        return pulumi.get(self, "shape_name")


@pulumi.output_type
class GetDeployStageContainerConfigNetworkChannelResult(dict):
    def __init__(__self__, *,
                 network_channel_type: str,
                 nsg_ids: Sequence[str],
                 subnet_id: str):
        """
        :param str network_channel_type: Network channel type.
        :param Sequence[str] nsg_ids: An array of network security group OCIDs.
        :param str subnet_id: The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "nsg_ids", nsg_ids)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Sequence[str]:
        """
        An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetDeployStageContainerConfigShapeConfigResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the instance.
        """
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "ocpus", ocpus)

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> float:
        """
        The total amount of memory available to the instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        The total number of OCPUs available to the instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetDeployStageDeployStagePredecessorCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStageDeployStagePredecessorCollectionItemResult']):
        """
        :param Sequence['GetDeployStageDeployStagePredecessorCollectionItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStageDeployStagePredecessorCollectionItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStageDeployStagePredecessorCollectionItemResult(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: Unique identifier that is immutable on creation.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier that is immutable on creation.
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class GetDeployStageFailurePolicyResult(dict):
    def __init__(__self__, *,
                 failure_count: int,
                 failure_percentage: int,
                 policy_type: str):
        """
        :param int failure_count: The threshold count of failed instances in the group, which when reached or exceeded sets the stage as FAILED.
        :param int failure_percentage: The failure percentage threshold, which when reached or exceeded sets the stage as FAILED. Percentage is computed as the ceiling value of the number of failed instances over the total count of the instances in the group.
        :param str policy_type: The type of policy used for rolling out a deployment stage.
        """
        pulumi.set(__self__, "failure_count", failure_count)
        pulumi.set(__self__, "failure_percentage", failure_percentage)
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="failureCount")
    def failure_count(self) -> int:
        """
        The threshold count of failed instances in the group, which when reached or exceeded sets the stage as FAILED.
        """
        return pulumi.get(self, "failure_count")

    @property
    @pulumi.getter(name="failurePercentage")
    def failure_percentage(self) -> int:
        """
        The failure percentage threshold, which when reached or exceeded sets the stage as FAILED. Percentage is computed as the ceiling value of the number of failed instances over the total count of the instances in the group.
        """
        return pulumi.get(self, "failure_percentage")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class GetDeployStageGreenBackendIpResult(dict):
    def __init__(__self__, *,
                 items: Sequence[str]):
        """
        :param Sequence[str] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence[str]:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStageLoadBalancerConfigResult(dict):
    def __init__(__self__, *,
                 backend_port: int,
                 listener_name: str,
                 load_balancer_id: str,
                 state: str):
        """
        :param int backend_port: Listen port for the backend server.
        :param str listener_name: Name of the load balancer listener.
        :param str load_balancer_id: The OCID of the load balancer.
        :param str state: The current state of the deployment stage.
        """
        pulumi.set(__self__, "backend_port", backend_port)
        pulumi.set(__self__, "listener_name", listener_name)
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> int:
        """
        Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> str:
        """
        Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> str:
        """
        The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The current state of the deployment stage.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class GetDeployStageProductionLoadBalancerConfigResult(dict):
    def __init__(__self__, *,
                 backend_port: int,
                 listener_name: str,
                 load_balancer_id: str,
                 state: str):
        """
        :param int backend_port: Listen port for the backend server.
        :param str listener_name: Name of the load balancer listener.
        :param str load_balancer_id: The OCID of the load balancer.
        :param str state: The current state of the deployment stage.
        """
        pulumi.set(__self__, "backend_port", backend_port)
        pulumi.set(__self__, "listener_name", listener_name)
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> int:
        """
        Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> str:
        """
        Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> str:
        """
        The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The current state of the deployment stage.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class GetDeployStageRollbackPolicyResult(dict):
    def __init__(__self__, *,
                 policy_type: str):
        """
        :param str policy_type: The type of policy used for rolling out a deployment stage.
        """
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class GetDeployStageRolloutPolicyResult(dict):
    def __init__(__self__, *,
                 batch_count: int,
                 batch_delay_in_seconds: int,
                 batch_percentage: int,
                 policy_type: str,
                 ramp_limit_percent: float):
        """
        :param int batch_count: The number that will be used to determine how many instances will be deployed concurrently.
        :param int batch_delay_in_seconds: The duration of delay between batch rollout. The default delay is 1 minute.
        :param int batch_percentage: The percentage that will be used to determine how many instances will be deployed concurrently.
        :param str policy_type: The type of policy used for rolling out a deployment stage.
        :param float ramp_limit_percent: Indicates the criteria to stop.
        """
        pulumi.set(__self__, "batch_count", batch_count)
        pulumi.set(__self__, "batch_delay_in_seconds", batch_delay_in_seconds)
        pulumi.set(__self__, "batch_percentage", batch_percentage)
        pulumi.set(__self__, "policy_type", policy_type)
        pulumi.set(__self__, "ramp_limit_percent", ramp_limit_percent)

    @property
    @pulumi.getter(name="batchCount")
    def batch_count(self) -> int:
        """
        The number that will be used to determine how many instances will be deployed concurrently.
        """
        return pulumi.get(self, "batch_count")

    @property
    @pulumi.getter(name="batchDelayInSeconds")
    def batch_delay_in_seconds(self) -> int:
        """
        The duration of delay between batch rollout. The default delay is 1 minute.
        """
        return pulumi.get(self, "batch_delay_in_seconds")

    @property
    @pulumi.getter(name="batchPercentage")
    def batch_percentage(self) -> int:
        """
        The percentage that will be used to determine how many instances will be deployed concurrently.
        """
        return pulumi.get(self, "batch_percentage")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")

    @property
    @pulumi.getter(name="rampLimitPercent")
    def ramp_limit_percent(self) -> float:
        """
        Indicates the criteria to stop.
        """
        return pulumi.get(self, "ramp_limit_percent")


@pulumi.output_type
class GetDeployStageSetStringResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStageSetStringItemResult']):
        """
        :param Sequence['GetDeployStageSetStringItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStageSetStringItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStageSetStringItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the parameter (case-sensitive).
        :param str value: Value of the parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeployStageSetValueResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStageSetValueItemResult']):
        """
        :param Sequence['GetDeployStageSetValueItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStageSetValueItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStageSetValueItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the parameter (case-sensitive).
        :param str value: Value of the parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeployStageTestLoadBalancerConfigResult(dict):
    def __init__(__self__, *,
                 backend_port: int,
                 listener_name: str,
                 load_balancer_id: str,
                 state: str):
        """
        :param int backend_port: Listen port for the backend server.
        :param str listener_name: Name of the load balancer listener.
        :param str load_balancer_id: The OCID of the load balancer.
        :param str state: The current state of the deployment stage.
        """
        pulumi.set(__self__, "backend_port", backend_port)
        pulumi.set(__self__, "listener_name", listener_name)
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> int:
        """
        Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> str:
        """
        Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> str:
        """
        The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The current state of the deployment stage.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class GetDeployStageWaitCriteriaResult(dict):
    def __init__(__self__, *,
                 wait_duration: str,
                 wait_type: str):
        """
        :param str wait_duration: The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        :param str wait_type: Wait criteria type.
        """
        pulumi.set(__self__, "wait_duration", wait_duration)
        pulumi.set(__self__, "wait_type", wait_type)

    @property
    @pulumi.getter(name="waitDuration")
    def wait_duration(self) -> str:
        """
        The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        """
        return pulumi.get(self, "wait_duration")

    @property
    @pulumi.getter(name="waitType")
    def wait_type(self) -> str:
        """
        Wait criteria type.
        """
        return pulumi.get(self, "wait_type")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStagesDeployStageCollectionItemResult']):
        """
        :param Sequence['GetDeployStagesDeployStageCollectionItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemResult(dict):
    def __init__(__self__, *,
                 approval_policies: Sequence['outputs.GetDeployStagesDeployStageCollectionItemApprovalPolicyResult'],
                 are_hooks_enabled: bool,
                 blue_backend_ips: Sequence['outputs.GetDeployStagesDeployStageCollectionItemBlueBackendIpResult'],
                 blue_green_strategies: Sequence['outputs.GetDeployStagesDeployStageCollectionItemBlueGreenStrategyResult'],
                 canary_strategies: Sequence['outputs.GetDeployStagesDeployStageCollectionItemCanaryStrategyResult'],
                 command_spec_deploy_artifact_id: str,
                 compartment_id: str,
                 compute_instance_group_blue_green_deployment_deploy_stage_id: str,
                 compute_instance_group_canary_deploy_stage_id: str,
                 compute_instance_group_canary_traffic_shift_deploy_stage_id: str,
                 compute_instance_group_deploy_environment_id: str,
                 config: Mapping[str, Any],
                 container_configs: Sequence['outputs.GetDeployStagesDeployStageCollectionItemContainerConfigResult'],
                 defined_tags: Mapping[str, Any],
                 deploy_artifact_id: str,
                 deploy_artifact_ids: Sequence[str],
                 deploy_environment_id_a: str,
                 deploy_environment_id_b: str,
                 deploy_pipeline_id: str,
                 deploy_stage_predecessor_collections: Sequence['outputs.GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionResult'],
                 deploy_stage_type: str,
                 deployment_spec_deploy_artifact_id: str,
                 description: str,
                 display_name: str,
                 docker_image_deploy_artifact_id: str,
                 failure_policies: Sequence['outputs.GetDeployStagesDeployStageCollectionItemFailurePolicyResult'],
                 freeform_tags: Mapping[str, Any],
                 function_deploy_environment_id: str,
                 function_timeout_in_seconds: int,
                 green_backend_ips: Sequence['outputs.GetDeployStagesDeployStageCollectionItemGreenBackendIpResult'],
                 helm_chart_deploy_artifact_id: str,
                 id: str,
                 is_async: bool,
                 is_debug_enabled: bool,
                 is_force_enabled: bool,
                 is_validation_enabled: bool,
                 kubernetes_manifest_deploy_artifact_ids: Sequence[str],
                 lifecycle_details: str,
                 load_balancer_configs: Sequence['outputs.GetDeployStagesDeployStageCollectionItemLoadBalancerConfigResult'],
                 max_history: int,
                 max_memory_in_mbs: str,
                 namespace: str,
                 oke_blue_green_deploy_stage_id: str,
                 oke_canary_deploy_stage_id: str,
                 oke_canary_traffic_shift_deploy_stage_id: str,
                 oke_cluster_deploy_environment_id: str,
                 production_load_balancer_configs: Sequence['outputs.GetDeployStagesDeployStageCollectionItemProductionLoadBalancerConfigResult'],
                 project_id: str,
                 release_name: str,
                 rollback_policies: Sequence['outputs.GetDeployStagesDeployStageCollectionItemRollbackPolicyResult'],
                 rollout_policies: Sequence['outputs.GetDeployStagesDeployStageCollectionItemRolloutPolicyResult'],
                 set_strings: Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetStringResult'],
                 set_values: Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetValueResult'],
                 should_cleanup_on_fail: bool,
                 should_not_wait: bool,
                 should_reset_values: bool,
                 should_reuse_values: bool,
                 should_skip_crds: bool,
                 should_skip_render_subchart_notes: bool,
                 state: str,
                 system_tags: Mapping[str, Any],
                 test_load_balancer_configs: Sequence['outputs.GetDeployStagesDeployStageCollectionItemTestLoadBalancerConfigResult'],
                 time_created: str,
                 time_updated: str,
                 timeout_in_seconds: int,
                 traffic_shift_target: str,
                 values_artifact_ids: Sequence[str],
                 wait_criterias: Sequence['outputs.GetDeployStagesDeployStageCollectionItemWaitCriteriaResult']):
        """
        :param Sequence['GetDeployStagesDeployStageCollectionItemApprovalPolicyArgs'] approval_policies: Specifies the approval policy.
        :param bool are_hooks_enabled: Disable pre/post upgrade hooks. Set to false by default.
        :param Sequence['GetDeployStagesDeployStageCollectionItemBlueBackendIpArgs'] blue_backend_ips: Collection of backend environment IP addresses.
        :param Sequence['GetDeployStagesDeployStageCollectionItemBlueGreenStrategyArgs'] blue_green_strategies: Specifies the required blue green release strategy for OKE deployment.
        :param Sequence['GetDeployStagesDeployStageCollectionItemCanaryStrategyArgs'] canary_strategies: Specifies the required canary release strategy for OKE deployment.
        :param str command_spec_deploy_artifact_id: The OCID of the artifact that contains the command specification.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param str compute_instance_group_blue_green_deployment_deploy_stage_id: The OCID of the upstream compute instance group blue-green deployment stage in this pipeline.
        :param str compute_instance_group_canary_deploy_stage_id: The OCID of an upstream compute instance group canary deployment stage ID in this pipeline.
        :param str compute_instance_group_canary_traffic_shift_deploy_stage_id: A compute instance group canary traffic shift stage OCID for load balancer.
        :param str compute_instance_group_deploy_environment_id: A compute instance group environment OCID for rolling deployment.
        :param Mapping[str, Any] config: User provided key and value pair configuration, which is assigned through constants or parameter.
        :param Sequence['GetDeployStagesDeployStageCollectionItemContainerConfigArgs'] container_configs: Specifies the container configuration.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str deploy_artifact_id: Optional artifact OCID. The artifact will be included in the body for the function invocation during the stage's execution. If the DeployArtifact.argumentSubstituitionMode is set to SUBSTITUTE_PLACEHOLDERS, then the pipeline parameter values will be used to replace the placeholders in the artifact content.
        :param Sequence[str] deploy_artifact_ids: The list of file artifact OCIDs to deploy.
        :param str deploy_environment_id_a: First compute instance group environment OCID for deployment.
        :param str deploy_environment_id_b: Second compute instance group environment OCID for deployment.
        :param str deploy_pipeline_id: The ID of the parent pipeline.
        :param Sequence['GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionArgs'] deploy_stage_predecessor_collections: Collection containing the predecessors of a stage.
        :param str deploy_stage_type: Deployment stage type.
        :param str deployment_spec_deploy_artifact_id: The OCID of the artifact that contains the deployment specification.
        :param str description: Optional description about the deployment stage.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param str docker_image_deploy_artifact_id: A Docker image artifact OCID.
        :param Sequence['GetDeployStagesDeployStageCollectionItemFailurePolicyArgs'] failure_policies: Specifies a failure policy for a compute instance group rolling deployment stage.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str function_deploy_environment_id: Function environment OCID.
        :param int function_timeout_in_seconds: Timeout for execution of the Function. Value in seconds.
        :param Sequence['GetDeployStagesDeployStageCollectionItemGreenBackendIpArgs'] green_backend_ips: Collection of backend environment IP addresses.
        :param str helm_chart_deploy_artifact_id: Helm chart artifact OCID.
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param bool is_async: A boolean flag specifies whether this stage executes asynchronously.
        :param bool is_debug_enabled: Enables helm --debug option to stream output to tf stdout. Set to false by default.
        :param bool is_force_enabled: Force resource update through delete; or if required, recreate. Set to false by default.
        :param bool is_validation_enabled: A boolean flag specifies whether the invoked function must be validated.
        :param Sequence[str] kubernetes_manifest_deploy_artifact_ids: List of Kubernetes manifest artifact OCIDs.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param Sequence['GetDeployStagesDeployStageCollectionItemLoadBalancerConfigArgs'] load_balancer_configs: Specifies config for load balancer traffic shift stages. The Load Balancer specified here should be an Application Load Balancer type. Network Load Balancers are not supported.
        :param int max_history: Limit the maximum number of revisions saved per release. Use 0 for no limit. Set to 10 by default
        :param str max_memory_in_mbs: Maximum usable memory for the Function (in MB).
        :param str namespace: Default Namespace to be used for Kubernetes deployment when not specified in the manifest.
        :param str oke_blue_green_deploy_stage_id: The OCID of the upstream OKE blue-green deployment stage in this pipeline.
        :param str oke_canary_deploy_stage_id: The OCID of an upstream OKE canary deployment stage in this pipeline.
        :param str oke_canary_traffic_shift_deploy_stage_id: The OCID of an upstream OKE canary deployment traffic shift stage in this pipeline.
        :param str oke_cluster_deploy_environment_id: Kubernetes cluster environment OCID for deployment.
        :param Sequence['GetDeployStagesDeployStageCollectionItemProductionLoadBalancerConfigArgs'] production_load_balancer_configs: Specifies config for load balancer traffic shift stages. The Load Balancer specified here should be an Application Load Balancer type. Network Load Balancers are not supported.
        :param str project_id: The OCID of a project.
        :param str release_name: Release name of the Helm chart.
        :param Sequence['GetDeployStagesDeployStageCollectionItemRollbackPolicyArgs'] rollback_policies: Specifies the rollback policy. This is initiated on the failure of certain stage types.
        :param Sequence['GetDeployStagesDeployStageCollectionItemRolloutPolicyArgs'] rollout_policies: Description of rollout policy for load balancer traffic shift stage.
        :param Sequence['GetDeployStagesDeployStageCollectionItemSetStringArgs'] set_strings: Specifies the name and value pairs to set helm values.
        :param Sequence['GetDeployStagesDeployStageCollectionItemSetValueArgs'] set_values: Specifies the name and value pairs to set helm values.
        :param bool should_cleanup_on_fail: Allow deletion of new resources created during when an upgrade fails. Set to false by default.
        :param bool should_not_wait: Waits until all the resources are in a ready state to mark the release as successful. Set to false by default.
        :param bool should_reset_values: During upgrade, reset the values to the ones built into the chart. It overrides shouldReuseValues. Set to false by default.
        :param bool should_reuse_values: During upgrade, reuse the values of the last release and merge overrides from the command line. Set to false by default.
        :param bool should_skip_crds: If set, no CRDs are installed. By default, CRDs are installed only if they are not present already. Set to false by default.
        :param bool should_skip_render_subchart_notes: If set, renders subchart notes along with the parent. Set to false by default.
        :param str state: A filter to return only deployment stages that matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param Sequence['GetDeployStagesDeployStageCollectionItemTestLoadBalancerConfigArgs'] test_load_balancer_configs: Specifies config for load balancer traffic shift stages. The Load Balancer specified here should be an Application Load Balancer type. Network Load Balancers are not supported.
        :param str time_created: Time the deployment stage was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: Time the deployment stage was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param int timeout_in_seconds: Time to wait for execution of a Shell/Helm stage. Defaults to 36000 seconds for Shell and 300 seconds for Helm Stage
        :param str traffic_shift_target: Specifies the target or destination backend set.
        :param Sequence[str] values_artifact_ids: List of values.yaml file artifact OCIDs.
        :param Sequence['GetDeployStagesDeployStageCollectionItemWaitCriteriaArgs'] wait_criterias: Specifies wait criteria for the Wait stage.
        """
        pulumi.set(__self__, "approval_policies", approval_policies)
        pulumi.set(__self__, "are_hooks_enabled", are_hooks_enabled)
        pulumi.set(__self__, "blue_backend_ips", blue_backend_ips)
        pulumi.set(__self__, "blue_green_strategies", blue_green_strategies)
        pulumi.set(__self__, "canary_strategies", canary_strategies)
        pulumi.set(__self__, "command_spec_deploy_artifact_id", command_spec_deploy_artifact_id)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "compute_instance_group_blue_green_deployment_deploy_stage_id", compute_instance_group_blue_green_deployment_deploy_stage_id)
        pulumi.set(__self__, "compute_instance_group_canary_deploy_stage_id", compute_instance_group_canary_deploy_stage_id)
        pulumi.set(__self__, "compute_instance_group_canary_traffic_shift_deploy_stage_id", compute_instance_group_canary_traffic_shift_deploy_stage_id)
        pulumi.set(__self__, "compute_instance_group_deploy_environment_id", compute_instance_group_deploy_environment_id)
        pulumi.set(__self__, "config", config)
        pulumi.set(__self__, "container_configs", container_configs)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "deploy_artifact_ids", deploy_artifact_ids)
        pulumi.set(__self__, "deploy_environment_id_a", deploy_environment_id_a)
        pulumi.set(__self__, "deploy_environment_id_b", deploy_environment_id_b)
        pulumi.set(__self__, "deploy_pipeline_id", deploy_pipeline_id)
        pulumi.set(__self__, "deploy_stage_predecessor_collections", deploy_stage_predecessor_collections)
        pulumi.set(__self__, "deploy_stage_type", deploy_stage_type)
        pulumi.set(__self__, "deployment_spec_deploy_artifact_id", deployment_spec_deploy_artifact_id)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "docker_image_deploy_artifact_id", docker_image_deploy_artifact_id)
        pulumi.set(__self__, "failure_policies", failure_policies)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "function_deploy_environment_id", function_deploy_environment_id)
        pulumi.set(__self__, "function_timeout_in_seconds", function_timeout_in_seconds)
        pulumi.set(__self__, "green_backend_ips", green_backend_ips)
        pulumi.set(__self__, "helm_chart_deploy_artifact_id", helm_chart_deploy_artifact_id)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "is_async", is_async)
        pulumi.set(__self__, "is_debug_enabled", is_debug_enabled)
        pulumi.set(__self__, "is_force_enabled", is_force_enabled)
        pulumi.set(__self__, "is_validation_enabled", is_validation_enabled)
        pulumi.set(__self__, "kubernetes_manifest_deploy_artifact_ids", kubernetes_manifest_deploy_artifact_ids)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "load_balancer_configs", load_balancer_configs)
        pulumi.set(__self__, "max_history", max_history)
        pulumi.set(__self__, "max_memory_in_mbs", max_memory_in_mbs)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "oke_blue_green_deploy_stage_id", oke_blue_green_deploy_stage_id)
        pulumi.set(__self__, "oke_canary_deploy_stage_id", oke_canary_deploy_stage_id)
        pulumi.set(__self__, "oke_canary_traffic_shift_deploy_stage_id", oke_canary_traffic_shift_deploy_stage_id)
        pulumi.set(__self__, "oke_cluster_deploy_environment_id", oke_cluster_deploy_environment_id)
        pulumi.set(__self__, "production_load_balancer_configs", production_load_balancer_configs)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "release_name", release_name)
        pulumi.set(__self__, "rollback_policies", rollback_policies)
        pulumi.set(__self__, "rollout_policies", rollout_policies)
        pulumi.set(__self__, "set_strings", set_strings)
        pulumi.set(__self__, "set_values", set_values)
        pulumi.set(__self__, "should_cleanup_on_fail", should_cleanup_on_fail)
        pulumi.set(__self__, "should_not_wait", should_not_wait)
        pulumi.set(__self__, "should_reset_values", should_reset_values)
        pulumi.set(__self__, "should_reuse_values", should_reuse_values)
        pulumi.set(__self__, "should_skip_crds", should_skip_crds)
        pulumi.set(__self__, "should_skip_render_subchart_notes", should_skip_render_subchart_notes)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "test_load_balancer_configs", test_load_balancer_configs)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)
        pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds)
        pulumi.set(__self__, "traffic_shift_target", traffic_shift_target)
        pulumi.set(__self__, "values_artifact_ids", values_artifact_ids)
        pulumi.set(__self__, "wait_criterias", wait_criterias)

    @property
    @pulumi.getter(name="approvalPolicies")
    def approval_policies(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemApprovalPolicyResult']:
        """
        Specifies the approval policy.
        """
        return pulumi.get(self, "approval_policies")

    @property
    @pulumi.getter(name="areHooksEnabled")
    def are_hooks_enabled(self) -> bool:
        """
        Disable pre/post upgrade hooks. Set to false by default.
        """
        return pulumi.get(self, "are_hooks_enabled")

    @property
    @pulumi.getter(name="blueBackendIps")
    def blue_backend_ips(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemBlueBackendIpResult']:
        """
        Collection of backend environment IP addresses.
        """
        return pulumi.get(self, "blue_backend_ips")

    @property
    @pulumi.getter(name="blueGreenStrategies")
    def blue_green_strategies(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemBlueGreenStrategyResult']:
        """
        Specifies the required blue green release strategy for OKE deployment.
        """
        return pulumi.get(self, "blue_green_strategies")

    @property
    @pulumi.getter(name="canaryStrategies")
    def canary_strategies(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemCanaryStrategyResult']:
        """
        Specifies the required canary release strategy for OKE deployment.
        """
        return pulumi.get(self, "canary_strategies")

    @property
    @pulumi.getter(name="commandSpecDeployArtifactId")
    def command_spec_deploy_artifact_id(self) -> str:
        """
        The OCID of the artifact that contains the command specification.
        """
        return pulumi.get(self, "command_spec_deploy_artifact_id")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="computeInstanceGroupBlueGreenDeploymentDeployStageId")
    def compute_instance_group_blue_green_deployment_deploy_stage_id(self) -> str:
        """
        The OCID of the upstream compute instance group blue-green deployment stage in this pipeline.
        """
        return pulumi.get(self, "compute_instance_group_blue_green_deployment_deploy_stage_id")

    @property
    @pulumi.getter(name="computeInstanceGroupCanaryDeployStageId")
    def compute_instance_group_canary_deploy_stage_id(self) -> str:
        """
        The OCID of an upstream compute instance group canary deployment stage ID in this pipeline.
        """
        return pulumi.get(self, "compute_instance_group_canary_deploy_stage_id")

    @property
    @pulumi.getter(name="computeInstanceGroupCanaryTrafficShiftDeployStageId")
    def compute_instance_group_canary_traffic_shift_deploy_stage_id(self) -> str:
        """
        A compute instance group canary traffic shift stage OCID for load balancer.
        """
        return pulumi.get(self, "compute_instance_group_canary_traffic_shift_deploy_stage_id")

    @property
    @pulumi.getter(name="computeInstanceGroupDeployEnvironmentId")
    def compute_instance_group_deploy_environment_id(self) -> str:
        """
        A compute instance group environment OCID for rolling deployment.
        """
        return pulumi.get(self, "compute_instance_group_deploy_environment_id")

    @property
    @pulumi.getter
    def config(self) -> Mapping[str, Any]:
        """
        User provided key and value pair configuration, which is assigned through constants or parameter.
        """
        return pulumi.get(self, "config")

    @property
    @pulumi.getter(name="containerConfigs")
    def container_configs(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemContainerConfigResult']:
        """
        Specifies the container configuration.
        """
        return pulumi.get(self, "container_configs")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        Optional artifact OCID. The artifact will be included in the body for the function invocation during the stage's execution. If the DeployArtifact.argumentSubstituitionMode is set to SUBSTITUTE_PLACEHOLDERS, then the pipeline parameter values will be used to replace the placeholders in the artifact content.
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployArtifactIds")
    def deploy_artifact_ids(self) -> Sequence[str]:
        """
        The list of file artifact OCIDs to deploy.
        """
        return pulumi.get(self, "deploy_artifact_ids")

    @property
    @pulumi.getter(name="deployEnvironmentIdA")
    def deploy_environment_id_a(self) -> str:
        """
        First compute instance group environment OCID for deployment.
        """
        return pulumi.get(self, "deploy_environment_id_a")

    @property
    @pulumi.getter(name="deployEnvironmentIdB")
    def deploy_environment_id_b(self) -> str:
        """
        Second compute instance group environment OCID for deployment.
        """
        return pulumi.get(self, "deploy_environment_id_b")

    @property
    @pulumi.getter(name="deployPipelineId")
    def deploy_pipeline_id(self) -> str:
        """
        The ID of the parent pipeline.
        """
        return pulumi.get(self, "deploy_pipeline_id")

    @property
    @pulumi.getter(name="deployStagePredecessorCollections")
    def deploy_stage_predecessor_collections(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionResult']:
        """
        Collection containing the predecessors of a stage.
        """
        return pulumi.get(self, "deploy_stage_predecessor_collections")

    @property
    @pulumi.getter(name="deployStageType")
    def deploy_stage_type(self) -> str:
        """
        Deployment stage type.
        """
        return pulumi.get(self, "deploy_stage_type")

    @property
    @pulumi.getter(name="deploymentSpecDeployArtifactId")
    def deployment_spec_deploy_artifact_id(self) -> str:
        """
        The OCID of the artifact that contains the deployment specification.
        """
        return pulumi.get(self, "deployment_spec_deploy_artifact_id")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Optional description about the deployment stage.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="dockerImageDeployArtifactId")
    def docker_image_deploy_artifact_id(self) -> str:
        """
        A Docker image artifact OCID.
        """
        return pulumi.get(self, "docker_image_deploy_artifact_id")

    @property
    @pulumi.getter(name="failurePolicies")
    def failure_policies(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemFailurePolicyResult']:
        """
        Specifies a failure policy for a compute instance group rolling deployment stage.
        """
        return pulumi.get(self, "failure_policies")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="functionDeployEnvironmentId")
    def function_deploy_environment_id(self) -> str:
        """
        Function environment OCID.
        """
        return pulumi.get(self, "function_deploy_environment_id")

    @property
    @pulumi.getter(name="functionTimeoutInSeconds")
    def function_timeout_in_seconds(self) -> int:
        """
        Timeout for execution of the Function. Value in seconds.
        """
        return pulumi.get(self, "function_timeout_in_seconds")

    @property
    @pulumi.getter(name="greenBackendIps")
    def green_backend_ips(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemGreenBackendIpResult']:
        """
        Collection of backend environment IP addresses.
        """
        return pulumi.get(self, "green_backend_ips")

    @property
    @pulumi.getter(name="helmChartDeployArtifactId")
    def helm_chart_deploy_artifact_id(self) -> str:
        """
        Helm chart artifact OCID.
        """
        return pulumi.get(self, "helm_chart_deploy_artifact_id")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="isAsync")
    def is_async(self) -> bool:
        """
        A boolean flag specifies whether this stage executes asynchronously.
        """
        return pulumi.get(self, "is_async")

    @property
    @pulumi.getter(name="isDebugEnabled")
    def is_debug_enabled(self) -> bool:
        """
        Enables helm --debug option to stream output to tf stdout. Set to false by default.
        """
        return pulumi.get(self, "is_debug_enabled")

    @property
    @pulumi.getter(name="isForceEnabled")
    def is_force_enabled(self) -> bool:
        """
        Force resource update through delete; or if required, recreate. Set to false by default.
        """
        return pulumi.get(self, "is_force_enabled")

    @property
    @pulumi.getter(name="isValidationEnabled")
    def is_validation_enabled(self) -> bool:
        """
        A boolean flag specifies whether the invoked function must be validated.
        """
        return pulumi.get(self, "is_validation_enabled")

    @property
    @pulumi.getter(name="kubernetesManifestDeployArtifactIds")
    def kubernetes_manifest_deploy_artifact_ids(self) -> Sequence[str]:
        """
        List of Kubernetes manifest artifact OCIDs.
        """
        return pulumi.get(self, "kubernetes_manifest_deploy_artifact_ids")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="loadBalancerConfigs")
    def load_balancer_configs(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemLoadBalancerConfigResult']:
        """
        Specifies config for load balancer traffic shift stages. The Load Balancer specified here should be an Application Load Balancer type. Network Load Balancers are not supported.
        """
        return pulumi.get(self, "load_balancer_configs")

    @property
    @pulumi.getter(name="maxHistory")
    def max_history(self) -> int:
        """
        Limit the maximum number of revisions saved per release. Use 0 for no limit. Set to 10 by default
        """
        return pulumi.get(self, "max_history")

    @property
    @pulumi.getter(name="maxMemoryInMbs")
    def max_memory_in_mbs(self) -> str:
        """
        Maximum usable memory for the Function (in MB).
        """
        return pulumi.get(self, "max_memory_in_mbs")

    @property
    @pulumi.getter
    def namespace(self) -> str:
        """
        Default Namespace to be used for Kubernetes deployment when not specified in the manifest.
        """
        return pulumi.get(self, "namespace")

    @property
    @pulumi.getter(name="okeBlueGreenDeployStageId")
    def oke_blue_green_deploy_stage_id(self) -> str:
        """
        The OCID of the upstream OKE blue-green deployment stage in this pipeline.
        """
        return pulumi.get(self, "oke_blue_green_deploy_stage_id")

    @property
    @pulumi.getter(name="okeCanaryDeployStageId")
    def oke_canary_deploy_stage_id(self) -> str:
        """
        The OCID of an upstream OKE canary deployment stage in this pipeline.
        """
        return pulumi.get(self, "oke_canary_deploy_stage_id")

    @property
    @pulumi.getter(name="okeCanaryTrafficShiftDeployStageId")
    def oke_canary_traffic_shift_deploy_stage_id(self) -> str:
        """
        The OCID of an upstream OKE canary deployment traffic shift stage in this pipeline.
        """
        return pulumi.get(self, "oke_canary_traffic_shift_deploy_stage_id")

    @property
    @pulumi.getter(name="okeClusterDeployEnvironmentId")
    def oke_cluster_deploy_environment_id(self) -> str:
        """
        Kubernetes cluster environment OCID for deployment.
        """
        return pulumi.get(self, "oke_cluster_deploy_environment_id")

    @property
    @pulumi.getter(name="productionLoadBalancerConfigs")
    def production_load_balancer_configs(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemProductionLoadBalancerConfigResult']:
        """
        Specifies config for load balancer traffic shift stages. The Load Balancer specified here should be an Application Load Balancer type. Network Load Balancers are not supported.
        """
        return pulumi.get(self, "production_load_balancer_configs")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        The OCID of a project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> str:
        """
        Release name of the Helm chart.
        """
        return pulumi.get(self, "release_name")

    @property
    @pulumi.getter(name="rollbackPolicies")
    def rollback_policies(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemRollbackPolicyResult']:
        """
        Specifies the rollback policy. This is initiated on the failure of certain stage types.
        """
        return pulumi.get(self, "rollback_policies")

    @property
    @pulumi.getter(name="rolloutPolicies")
    def rollout_policies(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemRolloutPolicyResult']:
        """
        Description of rollout policy for load balancer traffic shift stage.
        """
        return pulumi.get(self, "rollout_policies")

    @property
    @pulumi.getter(name="setStrings")
    def set_strings(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetStringResult']:
        """
        Specifies the name and value pairs to set helm values.
        """
        return pulumi.get(self, "set_strings")

    @property
    @pulumi.getter(name="setValues")
    def set_values(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetValueResult']:
        """
        Specifies the name and value pairs to set helm values.
        """
        return pulumi.get(self, "set_values")

    @property
    @pulumi.getter(name="shouldCleanupOnFail")
    def should_cleanup_on_fail(self) -> bool:
        """
        Allow deletion of new resources created during when an upgrade fails. Set to false by default.
        """
        return pulumi.get(self, "should_cleanup_on_fail")

    @property
    @pulumi.getter(name="shouldNotWait")
    def should_not_wait(self) -> bool:
        """
        Waits until all the resources are in a ready state to mark the release as successful. Set to false by default.
        """
        return pulumi.get(self, "should_not_wait")

    @property
    @pulumi.getter(name="shouldResetValues")
    def should_reset_values(self) -> bool:
        """
        During upgrade, reset the values to the ones built into the chart. It overrides shouldReuseValues. Set to false by default.
        """
        return pulumi.get(self, "should_reset_values")

    @property
    @pulumi.getter(name="shouldReuseValues")
    def should_reuse_values(self) -> bool:
        """
        During upgrade, reuse the values of the last release and merge overrides from the command line. Set to false by default.
        """
        return pulumi.get(self, "should_reuse_values")

    @property
    @pulumi.getter(name="shouldSkipCrds")
    def should_skip_crds(self) -> bool:
        """
        If set, no CRDs are installed. By default, CRDs are installed only if they are not present already. Set to false by default.
        """
        return pulumi.get(self, "should_skip_crds")

    @property
    @pulumi.getter(name="shouldSkipRenderSubchartNotes")
    def should_skip_render_subchart_notes(self) -> bool:
        """
        If set, renders subchart notes along with the parent. Set to false by default.
        """
        return pulumi.get(self, "should_skip_render_subchart_notes")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only deployment stages that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="testLoadBalancerConfigs")
    def test_load_balancer_configs(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemTestLoadBalancerConfigResult']:
        """
        Specifies config for load balancer traffic shift stages. The Load Balancer specified here should be an Application Load Balancer type. Network Load Balancers are not supported.
        """
        return pulumi.get(self, "test_load_balancer_configs")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Time the deployment stage was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Time the deployment stage was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="timeoutInSeconds")
    def timeout_in_seconds(self) -> int:
        """
        Time to wait for execution of a Shell/Helm stage. Defaults to 36000 seconds for Shell and 300 seconds for Helm Stage
        """
        return pulumi.get(self, "timeout_in_seconds")

    @property
    @pulumi.getter(name="trafficShiftTarget")
    def traffic_shift_target(self) -> str:
        """
        Specifies the target or destination backend set.
        """
        return pulumi.get(self, "traffic_shift_target")

    @property
    @pulumi.getter(name="valuesArtifactIds")
    def values_artifact_ids(self) -> Sequence[str]:
        """
        List of values.yaml file artifact OCIDs.
        """
        return pulumi.get(self, "values_artifact_ids")

    @property
    @pulumi.getter(name="waitCriterias")
    def wait_criterias(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemWaitCriteriaResult']:
        """
        Specifies wait criteria for the Wait stage.
        """
        return pulumi.get(self, "wait_criterias")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemApprovalPolicyResult(dict):
    def __init__(__self__, *,
                 approval_policy_type: str,
                 number_of_approvals_required: int):
        """
        :param str approval_policy_type: Approval policy type.
        :param int number_of_approvals_required: A minimum number of approvals required for stage to proceed.
        """
        pulumi.set(__self__, "approval_policy_type", approval_policy_type)
        pulumi.set(__self__, "number_of_approvals_required", number_of_approvals_required)

    @property
    @pulumi.getter(name="approvalPolicyType")
    def approval_policy_type(self) -> str:
        """
        Approval policy type.
        """
        return pulumi.get(self, "approval_policy_type")

    @property
    @pulumi.getter(name="numberOfApprovalsRequired")
    def number_of_approvals_required(self) -> int:
        """
        A minimum number of approvals required for stage to proceed.
        """
        return pulumi.get(self, "number_of_approvals_required")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemBlueBackendIpResult(dict):
    def __init__(__self__, *,
                 items: Sequence[str]):
        """
        :param Sequence[str] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence[str]:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemBlueGreenStrategyResult(dict):
    def __init__(__self__, *,
                 ingress_name: str,
                 namespace_a: str,
                 namespace_b: str,
                 strategy_type: str):
        """
        :param str ingress_name: Name of the Ingress resource.
        :param str namespace_a: First Namespace for deployment.
        :param str namespace_b: Second Namespace for deployment.
        :param str strategy_type: Canary strategy type.
        """
        pulumi.set(__self__, "ingress_name", ingress_name)
        pulumi.set(__self__, "namespace_a", namespace_a)
        pulumi.set(__self__, "namespace_b", namespace_b)
        pulumi.set(__self__, "strategy_type", strategy_type)

    @property
    @pulumi.getter(name="ingressName")
    def ingress_name(self) -> str:
        """
        Name of the Ingress resource.
        """
        return pulumi.get(self, "ingress_name")

    @property
    @pulumi.getter(name="namespaceA")
    def namespace_a(self) -> str:
        """
        First Namespace for deployment.
        """
        return pulumi.get(self, "namespace_a")

    @property
    @pulumi.getter(name="namespaceB")
    def namespace_b(self) -> str:
        """
        Second Namespace for deployment.
        """
        return pulumi.get(self, "namespace_b")

    @property
    @pulumi.getter(name="strategyType")
    def strategy_type(self) -> str:
        """
        Canary strategy type.
        """
        return pulumi.get(self, "strategy_type")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemCanaryStrategyResult(dict):
    def __init__(__self__, *,
                 ingress_name: str,
                 namespace: str,
                 strategy_type: str):
        """
        :param str ingress_name: Name of the Ingress resource.
        :param str namespace: Default Namespace to be used for Kubernetes deployment when not specified in the manifest.
        :param str strategy_type: Canary strategy type.
        """
        pulumi.set(__self__, "ingress_name", ingress_name)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "strategy_type", strategy_type)

    @property
    @pulumi.getter(name="ingressName")
    def ingress_name(self) -> str:
        """
        Name of the Ingress resource.
        """
        return pulumi.get(self, "ingress_name")

    @property
    @pulumi.getter
    def namespace(self) -> str:
        """
        Default Namespace to be used for Kubernetes deployment when not specified in the manifest.
        """
        return pulumi.get(self, "namespace")

    @property
    @pulumi.getter(name="strategyType")
    def strategy_type(self) -> str:
        """
        Canary strategy type.
        """
        return pulumi.get(self, "strategy_type")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemContainerConfigResult(dict):
    def __init__(__self__, *,
                 availability_domain: str,
                 compartment_id: str,
                 container_config_type: str,
                 network_channels: Sequence['outputs.GetDeployStagesDeployStageCollectionItemContainerConfigNetworkChannelResult'],
                 shape_configs: Sequence['outputs.GetDeployStagesDeployStageCollectionItemContainerConfigShapeConfigResult'],
                 shape_name: str):
        """
        :param str availability_domain: Availability domain where the ContainerInstance will be created.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param str container_config_type: Container configuration type.
        :param Sequence['GetDeployStagesDeployStageCollectionItemContainerConfigNetworkChannelArgs'] network_channels: Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        :param Sequence['GetDeployStagesDeployStageCollectionItemContainerConfigShapeConfigArgs'] shape_configs: Determines the size and amount of resources available to the instance.
        :param str shape_name: The shape of the ContainerInstance. The shape determines the resources available to the ContainerInstance.
        """
        pulumi.set(__self__, "availability_domain", availability_domain)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "container_config_type", container_config_type)
        pulumi.set(__self__, "network_channels", network_channels)
        pulumi.set(__self__, "shape_configs", shape_configs)
        pulumi.set(__self__, "shape_name", shape_name)

    @property
    @pulumi.getter(name="availabilityDomain")
    def availability_domain(self) -> str:
        """
        Availability domain where the ContainerInstance will be created.
        """
        return pulumi.get(self, "availability_domain")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="containerConfigType")
    def container_config_type(self) -> str:
        """
        Container configuration type.
        """
        return pulumi.get(self, "container_config_type")

    @property
    @pulumi.getter(name="networkChannels")
    def network_channels(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemContainerConfigNetworkChannelResult']:
        """
        Specifies the configuration needed when the target Oracle Cloud Infrastructure resource, i.e., OKE cluster, resides in customer's private network.
        """
        return pulumi.get(self, "network_channels")

    @property
    @pulumi.getter(name="shapeConfigs")
    def shape_configs(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemContainerConfigShapeConfigResult']:
        """
        Determines the size and amount of resources available to the instance.
        """
        return pulumi.get(self, "shape_configs")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape of the ContainerInstance. The shape determines the resources available to the ContainerInstance.
        """
        return pulumi.get(self, "shape_name")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemContainerConfigNetworkChannelResult(dict):
    def __init__(__self__, *,
                 network_channel_type: str,
                 nsg_ids: Sequence[str],
                 subnet_id: str):
        """
        :param str network_channel_type: Network channel type.
        :param Sequence[str] nsg_ids: An array of network security group OCIDs.
        :param str subnet_id: The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        pulumi.set(__self__, "network_channel_type", network_channel_type)
        pulumi.set(__self__, "nsg_ids", nsg_ids)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="networkChannelType")
    def network_channel_type(self) -> str:
        """
        Network channel type.
        """
        return pulumi.get(self, "network_channel_type")

    @property
    @pulumi.getter(name="nsgIds")
    def nsg_ids(self) -> Sequence[str]:
        """
        An array of network security group OCIDs.
        """
        return pulumi.get(self, "nsg_ids")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The OCID of the subnet where VNIC resources will be created for private endpoint.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemContainerConfigShapeConfigResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the instance.
        """
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "ocpus", ocpus)

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> float:
        """
        The total amount of memory available to the instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        The total number of OCPUs available to the instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionItemResult']):
        """
        :param Sequence['GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemDeployStagePredecessorCollectionItemResult(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemFailurePolicyResult(dict):
    def __init__(__self__, *,
                 failure_count: int,
                 failure_percentage: int,
                 policy_type: str):
        """
        :param int failure_count: The threshold count of failed instances in the group, which when reached or exceeded sets the stage as FAILED.
        :param int failure_percentage: The failure percentage threshold, which when reached or exceeded sets the stage as FAILED. Percentage is computed as the ceiling value of the number of failed instances over the total count of the instances in the group.
        :param str policy_type: The type of policy used for rolling out a deployment stage.
        """
        pulumi.set(__self__, "failure_count", failure_count)
        pulumi.set(__self__, "failure_percentage", failure_percentage)
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="failureCount")
    def failure_count(self) -> int:
        """
        The threshold count of failed instances in the group, which when reached or exceeded sets the stage as FAILED.
        """
        return pulumi.get(self, "failure_count")

    @property
    @pulumi.getter(name="failurePercentage")
    def failure_percentage(self) -> int:
        """
        The failure percentage threshold, which when reached or exceeded sets the stage as FAILED. Percentage is computed as the ceiling value of the number of failed instances over the total count of the instances in the group.
        """
        return pulumi.get(self, "failure_percentage")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemGreenBackendIpResult(dict):
    def __init__(__self__, *,
                 items: Sequence[str]):
        """
        :param Sequence[str] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence[str]:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemLoadBalancerConfigResult(dict):
    def __init__(__self__, *,
                 backend_port: int,
                 listener_name: str,
                 load_balancer_id: str,
                 state: str):
        """
        :param int backend_port: Listen port for the backend server.
        :param str listener_name: Name of the load balancer listener.
        :param str load_balancer_id: The OCID of the load balancer.
        :param str state: A filter to return only deployment stages that matches the given lifecycle state.
        """
        pulumi.set(__self__, "backend_port", backend_port)
        pulumi.set(__self__, "listener_name", listener_name)
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> int:
        """
        Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> str:
        """
        Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> str:
        """
        The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only deployment stages that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemProductionLoadBalancerConfigResult(dict):
    def __init__(__self__, *,
                 backend_port: int,
                 listener_name: str,
                 load_balancer_id: str,
                 state: str):
        """
        :param int backend_port: Listen port for the backend server.
        :param str listener_name: Name of the load balancer listener.
        :param str load_balancer_id: The OCID of the load balancer.
        :param str state: A filter to return only deployment stages that matches the given lifecycle state.
        """
        pulumi.set(__self__, "backend_port", backend_port)
        pulumi.set(__self__, "listener_name", listener_name)
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> int:
        """
        Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> str:
        """
        Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> str:
        """
        The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only deployment stages that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemRollbackPolicyResult(dict):
    def __init__(__self__, *,
                 policy_type: str):
        """
        :param str policy_type: The type of policy used for rolling out a deployment stage.
        """
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemRolloutPolicyResult(dict):
    def __init__(__self__, *,
                 batch_count: int,
                 batch_delay_in_seconds: int,
                 batch_percentage: int,
                 policy_type: str,
                 ramp_limit_percent: float):
        """
        :param int batch_count: The number that will be used to determine how many instances will be deployed concurrently.
        :param int batch_delay_in_seconds: The duration of delay between batch rollout. The default delay is 1 minute.
        :param int batch_percentage: The percentage that will be used to determine how many instances will be deployed concurrently.
        :param str policy_type: The type of policy used for rolling out a deployment stage.
        :param float ramp_limit_percent: Indicates the criteria to stop.
        """
        pulumi.set(__self__, "batch_count", batch_count)
        pulumi.set(__self__, "batch_delay_in_seconds", batch_delay_in_seconds)
        pulumi.set(__self__, "batch_percentage", batch_percentage)
        pulumi.set(__self__, "policy_type", policy_type)
        pulumi.set(__self__, "ramp_limit_percent", ramp_limit_percent)

    @property
    @pulumi.getter(name="batchCount")
    def batch_count(self) -> int:
        """
        The number that will be used to determine how many instances will be deployed concurrently.
        """
        return pulumi.get(self, "batch_count")

    @property
    @pulumi.getter(name="batchDelayInSeconds")
    def batch_delay_in_seconds(self) -> int:
        """
        The duration of delay between batch rollout. The default delay is 1 minute.
        """
        return pulumi.get(self, "batch_delay_in_seconds")

    @property
    @pulumi.getter(name="batchPercentage")
    def batch_percentage(self) -> int:
        """
        The percentage that will be used to determine how many instances will be deployed concurrently.
        """
        return pulumi.get(self, "batch_percentage")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of policy used for rolling out a deployment stage.
        """
        return pulumi.get(self, "policy_type")

    @property
    @pulumi.getter(name="rampLimitPercent")
    def ramp_limit_percent(self) -> float:
        """
        Indicates the criteria to stop.
        """
        return pulumi.get(self, "ramp_limit_percent")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemSetStringResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetStringItemResult']):
        """
        :param Sequence['GetDeployStagesDeployStageCollectionItemSetStringItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetStringItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemSetStringItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the parameter (case-sensitive).
        :param str value: Value of the parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemSetValueResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetValueItemResult']):
        """
        :param Sequence['GetDeployStagesDeployStageCollectionItemSetValueItemArgs'] items: List of parameters defined to set helm value.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeployStagesDeployStageCollectionItemSetValueItemResult']:
        """
        List of parameters defined to set helm value.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemSetValueItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the parameter (case-sensitive).
        :param str value: Value of the parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Value of the parameter.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemTestLoadBalancerConfigResult(dict):
    def __init__(__self__, *,
                 backend_port: int,
                 listener_name: str,
                 load_balancer_id: str,
                 state: str):
        """
        :param int backend_port: Listen port for the backend server.
        :param str listener_name: Name of the load balancer listener.
        :param str load_balancer_id: The OCID of the load balancer.
        :param str state: A filter to return only deployment stages that matches the given lifecycle state.
        """
        pulumi.set(__self__, "backend_port", backend_port)
        pulumi.set(__self__, "listener_name", listener_name)
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="backendPort")
    def backend_port(self) -> int:
        """
        Listen port for the backend server.
        """
        return pulumi.get(self, "backend_port")

    @property
    @pulumi.getter(name="listenerName")
    def listener_name(self) -> str:
        """
        Name of the load balancer listener.
        """
        return pulumi.get(self, "listener_name")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> str:
        """
        The OCID of the load balancer.
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only deployment stages that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")


@pulumi.output_type
class GetDeployStagesDeployStageCollectionItemWaitCriteriaResult(dict):
    def __init__(__self__, *,
                 wait_duration: str,
                 wait_type: str):
        """
        :param str wait_duration: The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        :param str wait_type: Wait criteria type.
        """
        pulumi.set(__self__, "wait_duration", wait_duration)
        pulumi.set(__self__, "wait_type", wait_type)

    @property
    @pulumi.getter(name="waitDuration")
    def wait_duration(self) -> str:
        """
        The absolute wait duration. An ISO 8601 formatted duration string. Minimum waitDuration should be 5 seconds. Maximum waitDuration can be up to 2 days.
        """
        return pulumi.get(self, "wait_duration")

    @property
    @pulumi.getter(name="waitType")
    def wait_type(self) -> str:
        """
        Wait criteria type.
        """
        return pulumi.get(self, "wait_type")


@pulumi.output_type
class GetDeployStagesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of the parameter (case-sensitive).
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the parameter (case-sensitive).
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetDeploymentDeployArtifactOverrideArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeployArtifactOverrideArgumentItemResult']):
        """
        :param Sequence['GetDeploymentDeployArtifactOverrideArgumentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeployArtifactOverrideArgumentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeployArtifactOverrideArgumentItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 name: str,
                 value: str):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param str name: Name of the step.
        :param str value: value of the argument.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeploymentDeployPipelineArtifactResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeployPipelineArtifactItemResult']):
        """
        :param Sequence['GetDeploymentDeployPipelineArtifactItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeployPipelineArtifactItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeployPipelineArtifactItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeploymentDeployPipelineArtifactItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param Sequence['GetDeploymentDeployPipelineArtifactItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeploymentDeployPipelineArtifactItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentDeployPipelineArtifactItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeployPipelineArtifactItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeploymentDeployPipelineArtifactItemDeployPipelineStageItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeployPipelineArtifactItemDeployPipelineStageItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeployPipelineArtifactItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str display_name: Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentDeployPipelineEnvironmentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeployPipelineEnvironmentItemResult']):
        """
        :param Sequence['GetDeploymentDeployPipelineEnvironmentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeployPipelineEnvironmentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeployPipelineEnvironmentItemResult(dict):
    def __init__(__self__, *,
                 deploy_environment_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_environment_id: The OCID of an Environment
        :param Sequence['GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_environment_id", deploy_environment_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployEnvironmentId")
    def deploy_environment_id(self) -> str:
        """
        The OCID of an Environment
        """
        return pulumi.get(self, "deploy_environment_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeployPipelineEnvironmentItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str display_name: Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        Deployment identifier which can be renamed and is not necessarily unique. Avoid entering confidential information.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentDeployStageOverrideArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeployStageOverrideArgumentItemResult']):
        """
        :param Sequence['GetDeploymentDeployStageOverrideArgumentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeployStageOverrideArgumentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeployStageOverrideArgumentItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 name: str,
                 value: str):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str name: Name of the step.
        :param str value: value of the argument.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeploymentDeploymentArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentDeploymentArgumentItemResult']):
        """
        :param Sequence['GetDeploymentDeploymentArgumentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentDeploymentArgumentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentDeploymentArgumentItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the step.
        :param str value: value of the argument.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeploymentDeploymentExecutionProgressResult(dict):
    def __init__(__self__, *,
                 deploy_stage_execution_progress: Mapping[str, Any],
                 time_finished: str,
                 time_started: str):
        """
        :param Mapping[str, Any] deploy_stage_execution_progress: Map of stage OCIDs to deploy stage execution progress model.
        :param str time_finished: Time the deployment is finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_started: Time the deployment is started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "deploy_stage_execution_progress", deploy_stage_execution_progress)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="deployStageExecutionProgress")
    def deploy_stage_execution_progress(self) -> Mapping[str, Any]:
        """
        Map of stage OCIDs to deploy stage execution progress model.
        """
        return pulumi.get(self, "deploy_stage_execution_progress")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        Time the deployment is finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        Time the deployment is started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 defined_tags: Mapping[str, Any],
                 deploy_artifact_override_arguments: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentResult'],
                 deploy_pipeline_artifacts: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactResult'],
                 deploy_pipeline_environments: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentResult'],
                 deploy_pipeline_id: str,
                 deploy_stage_id: str,
                 deploy_stage_override_arguments: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentResult'],
                 deployment_arguments: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeploymentArgumentResult'],
                 deployment_execution_progresses: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeploymentExecutionProgressResult'],
                 deployment_type: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 previous_deployment_id: str,
                 project_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str,
                 trigger_new_devops_deployment: bool):
        """
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentArgs'] deploy_artifact_override_arguments: Specifies the list of artifact override arguments at the time of deployment.
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactArgs'] deploy_pipeline_artifacts: List of all artifacts used in the pipeline.
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentArgs'] deploy_pipeline_environments: List of all environments used in the pipeline.
        :param str deploy_pipeline_id: The ID of the parent pipeline.
        :param str deploy_stage_id: The OCID of the stage.
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentArgs'] deploy_stage_override_arguments: Specifies the list of arguments to be overriden per Stage at the time of deployment.
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeploymentArgumentArgs'] deployment_arguments: Specifies list of arguments passed along with the deployment.
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeploymentExecutionProgressArgs'] deployment_execution_progresses: The execution progress details of a deployment.
        :param str deployment_type: Specifies type of Deployment
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str previous_deployment_id: Specifies the OCID of the previous deployment to be redeployed.
        :param str project_id: unique project identifier
        :param str state: A filter to return only Deployments that matches the given lifecycleState.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: Time the deployment was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: Time the deployment was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "deploy_artifact_override_arguments", deploy_artifact_override_arguments)
        pulumi.set(__self__, "deploy_pipeline_artifacts", deploy_pipeline_artifacts)
        pulumi.set(__self__, "deploy_pipeline_environments", deploy_pipeline_environments)
        pulumi.set(__self__, "deploy_pipeline_id", deploy_pipeline_id)
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "deploy_stage_override_arguments", deploy_stage_override_arguments)
        pulumi.set(__self__, "deployment_arguments", deployment_arguments)
        pulumi.set(__self__, "deployment_execution_progresses", deployment_execution_progresses)
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "previous_deployment_id", previous_deployment_id)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)
        pulumi.set(__self__, "trigger_new_devops_deployment", trigger_new_devops_deployment)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deployArtifactOverrideArguments")
    def deploy_artifact_override_arguments(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentResult']:
        """
        Specifies the list of artifact override arguments at the time of deployment.
        """
        return pulumi.get(self, "deploy_artifact_override_arguments")

    @property
    @pulumi.getter(name="deployPipelineArtifacts")
    def deploy_pipeline_artifacts(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactResult']:
        """
        List of all artifacts used in the pipeline.
        """
        return pulumi.get(self, "deploy_pipeline_artifacts")

    @property
    @pulumi.getter(name="deployPipelineEnvironments")
    def deploy_pipeline_environments(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentResult']:
        """
        List of all environments used in the pipeline.
        """
        return pulumi.get(self, "deploy_pipeline_environments")

    @property
    @pulumi.getter(name="deployPipelineId")
    def deploy_pipeline_id(self) -> str:
        """
        The ID of the parent pipeline.
        """
        return pulumi.get(self, "deploy_pipeline_id")

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="deployStageOverrideArguments")
    def deploy_stage_override_arguments(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentResult']:
        """
        Specifies the list of arguments to be overriden per Stage at the time of deployment.
        """
        return pulumi.get(self, "deploy_stage_override_arguments")

    @property
    @pulumi.getter(name="deploymentArguments")
    def deployment_arguments(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeploymentArgumentResult']:
        """
        Specifies list of arguments passed along with the deployment.
        """
        return pulumi.get(self, "deployment_arguments")

    @property
    @pulumi.getter(name="deploymentExecutionProgresses")
    def deployment_execution_progresses(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeploymentExecutionProgressResult']:
        """
        The execution progress details of a deployment.
        """
        return pulumi.get(self, "deployment_execution_progresses")

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> str:
        """
        Specifies type of Deployment
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="previousDeploymentId")
    def previous_deployment_id(self) -> str:
        """
        Specifies the OCID of the previous deployment to be redeployed.
        """
        return pulumi.get(self, "previous_deployment_id")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only Deployments that matches the given lifecycleState.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Time the deployment was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Time the deployment was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="triggerNewDevopsDeployment")
    def trigger_new_devops_deployment(self) -> bool:
        return pulumi.get(self, "trigger_new_devops_deployment")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployArtifactOverrideArgumentItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 name: str,
                 value: str):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param str name: Name of the step.
        :param str value: value of the argument.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemResult(dict):
    def __init__(__self__, *,
                 deploy_artifact_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_artifact_id: The OCID of an artifact
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_artifact_id", deploy_artifact_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployArtifactId")
    def deploy_artifact_id(self) -> str:
        """
        The OCID of an artifact
        """
        return pulumi.get(self, "deploy_artifact_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineArtifactItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemResult(dict):
    def __init__(__self__, *,
                 deploy_environment_id: str,
                 deploy_pipeline_stages: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult'],
                 display_name: str):
        """
        :param str deploy_environment_id: The OCID of an Environment
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageArgs'] deploy_pipeline_stages: List of stages.
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_environment_id", deploy_environment_id)
        pulumi.set(__self__, "deploy_pipeline_stages", deploy_pipeline_stages)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployEnvironmentId")
    def deploy_environment_id(self) -> str:
        """
        The OCID of an Environment
        """
        return pulumi.get(self, "deploy_environment_id")

    @property
    @pulumi.getter(name="deployPipelineStages")
    def deploy_pipeline_stages(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult']:
        """
        List of stages.
        """
        return pulumi.get(self, "deploy_pipeline_stages")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployPipelineEnvironmentItemDeployPipelineStageItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 display_name: str):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str display_name: A filter to return only resources that match the entire display name given.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeployStageOverrideArgumentItemResult(dict):
    def __init__(__self__, *,
                 deploy_stage_id: str,
                 name: str,
                 value: str):
        """
        :param str deploy_stage_id: The OCID of the stage.
        :param str name: Name of the step.
        :param str value: value of the argument.
        """
        pulumi.set(__self__, "deploy_stage_id", deploy_stage_id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter(name="deployStageId")
    def deploy_stage_id(self) -> str:
        """
        The OCID of the stage.
        """
        return pulumi.get(self, "deploy_stage_id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeploymentArgumentResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeploymentArgumentItemResult']):
        """
        :param Sequence['GetDeploymentsDeploymentCollectionItemDeploymentArgumentItemArgs'] items: A list of stage predecessors for a stage.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetDeploymentsDeploymentCollectionItemDeploymentArgumentItemResult']:
        """
        A list of stage predecessors for a stage.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeploymentArgumentItemResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: Name of the step.
        :param str value: value of the argument.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        value of the argument.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetDeploymentsDeploymentCollectionItemDeploymentExecutionProgressResult(dict):
    def __init__(__self__, *,
                 deploy_stage_execution_progress: Mapping[str, Any],
                 time_finished: str,
                 time_started: str):
        """
        :param Mapping[str, Any] deploy_stage_execution_progress: Map of stage OCIDs to deploy stage execution progress model.
        :param str time_finished: Time the deployment is finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_started: Time the deployment is started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "deploy_stage_execution_progress", deploy_stage_execution_progress)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="deployStageExecutionProgress")
    def deploy_stage_execution_progress(self) -> Mapping[str, Any]:
        """
        Map of stage OCIDs to deploy stage execution progress model.
        """
        return pulumi.get(self, "deploy_stage_execution_progress")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        Time the deployment is finished. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        Time the deployment is started. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetDeploymentsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of the step.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of the step.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetProjectNotificationConfigResult(dict):
    def __init__(__self__, *,
                 topic_id: str):
        """
        :param str topic_id: The topic ID for notifications.
        """
        pulumi.set(__self__, "topic_id", topic_id)

    @property
    @pulumi.getter(name="topicId")
    def topic_id(self) -> str:
        """
        The topic ID for notifications.
        """
        return pulumi.get(self, "topic_id")


@pulumi.output_type
class GetProjectsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: A filter to return only resources that match the entire name given.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        A filter to return only resources that match the entire name given.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetProjectsProjectCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetProjectsProjectCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetProjectsProjectCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetProjectsProjectCollectionItemResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 name: str,
                 namespace: str,
                 notification_configs: Sequence['outputs.GetProjectsProjectCollectionItemNotificationConfigResult'],
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str description: Project description.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique identifier or OCID for listing a single resource by ID.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str name: A filter to return only resources that match the entire name given.
        :param str namespace: Namespace associated with the project.
        :param Sequence['GetProjectsProjectCollectionItemNotificationConfigArgs'] notification_configs: Notification configuration for the project.
        :param str state: A filter to return only Projects that matches the given lifecycleState.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: Time the project was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: Time the project was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "notification_configs", notification_configs)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Project description.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier or OCID for listing a single resource by ID.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        A filter to return only resources that match the entire name given.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def namespace(self) -> str:
        """
        Namespace associated with the project.
        """
        return pulumi.get(self, "namespace")

    @property
    @pulumi.getter(name="notificationConfigs")
    def notification_configs(self) -> Sequence['outputs.GetProjectsProjectCollectionItemNotificationConfigResult']:
        """
        Notification configuration for the project.
        """
        return pulumi.get(self, "notification_configs")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only Projects that matches the given lifecycleState.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Time the project was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Time the project was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetProjectsProjectCollectionItemNotificationConfigResult(dict):
    def __init__(__self__, *,
                 topic_id: str):
        """
        :param str topic_id: The topic ID for notifications.
        """
        pulumi.set(__self__, "topic_id", topic_id)

    @property
    @pulumi.getter(name="topicId")
    def topic_id(self) -> str:
        """
        The topic ID for notifications.
        """
        return pulumi.get(self, "topic_id")


@pulumi.output_type
class GetRepoFileLineLineResult(dict):
    def __init__(__self__, *,
                 line_content: str,
                 line_number: int):
        """
        :param str line_content: The content of the line.
        :param int line_number: The line number.
        """
        pulumi.set(__self__, "line_content", line_content)
        pulumi.set(__self__, "line_number", line_number)

    @property
    @pulumi.getter(name="lineContent")
    def line_content(self) -> str:
        """
        The content of the line.
        """
        return pulumi.get(self, "line_content")

    @property
    @pulumi.getter(name="lineNumber")
    def line_number(self) -> int:
        """
        The line number.
        """
        return pulumi.get(self, "line_number")


@pulumi.output_type
class GetRepositoriesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: A filter to return only resources that match the entire name given.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        A filter to return only resources that match the entire name given.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoriesRepositoryCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoriesRepositoryCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoriesRepositoryCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoriesRepositoryCollectionItemResult(dict):
    def __init__(__self__, *,
                 branch_count: int,
                 commit_count: int,
                 compartment_id: str,
                 default_branch: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 freeform_tags: Mapping[str, Any],
                 http_url: str,
                 id: str,
                 lifecycle_details: str,
                 mirror_repository_config: 'outputs.GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigResult',
                 name: str,
                 namespace: str,
                 project_id: str,
                 project_name: str,
                 repository_type: str,
                 size_in_bytes: str,
                 ssh_url: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str,
                 trigger_build_events: Sequence[str]):
        """
        :param int branch_count: The count of the branches present in the repository.
        :param int commit_count: The count of the commits present in the repository.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param str default_branch: The default branch of the repository.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str description: Details of the repository. Avoid entering confidential information.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str http_url: HTTP URL that you use to git clone, pull and push.
        :param str id: The OCID of the repository. This value is unique and immutable.
        :param 'GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigArgs' mirror_repository_config: Configuration information for mirroring the repository.
        :param str name: A filter to return only resources that match the entire name given.
        :param str namespace: Tenancy unique namespace.
        :param str project_id: unique project identifier
        :param str project_name: Unique project name in a namespace.
        :param str repository_type: Type of repository: MIRRORED - Repository created by mirroring an existing repository. HOSTED - Repository created and hosted using Oracle Cloud Infrastructure DevOps code repository.
        :param str size_in_bytes: The size of the repository in bytes.
        :param str ssh_url: SSH URL that you use to git clone, pull and push.
        :param str state: A filter to return only resources whose lifecycle state matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The time the repository was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: The time the repository was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param Sequence[str] trigger_build_events: Trigger build events supported for this repository: PUSH - Build is triggered when a push event occurs. COMMIT_UPDATES - Build is triggered when new commits are mirrored into a repository.
        """
        pulumi.set(__self__, "branch_count", branch_count)
        pulumi.set(__self__, "commit_count", commit_count)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "default_branch", default_branch)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "http_url", http_url)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "mirror_repository_config", mirror_repository_config)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "project_name", project_name)
        pulumi.set(__self__, "repository_type", repository_type)
        pulumi.set(__self__, "size_in_bytes", size_in_bytes)
        pulumi.set(__self__, "ssh_url", ssh_url)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)
        pulumi.set(__self__, "trigger_build_events", trigger_build_events)

    @property
    @pulumi.getter(name="branchCount")
    def branch_count(self) -> int:
        """
        The count of the branches present in the repository.
        """
        return pulumi.get(self, "branch_count")

    @property
    @pulumi.getter(name="commitCount")
    def commit_count(self) -> int:
        """
        The count of the commits present in the repository.
        """
        return pulumi.get(self, "commit_count")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="defaultBranch")
    def default_branch(self) -> str:
        """
        The default branch of the repository.
        """
        return pulumi.get(self, "default_branch")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Details of the repository. Avoid entering confidential information.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="httpUrl")
    def http_url(self) -> str:
        """
        HTTP URL that you use to git clone, pull and push.
        """
        return pulumi.get(self, "http_url")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The OCID of the repository. This value is unique and immutable.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="mirrorRepositoryConfig")
    def mirror_repository_config(self) -> 'outputs.GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigResult':
        """
        Configuration information for mirroring the repository.
        """
        return pulumi.get(self, "mirror_repository_config")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        A filter to return only resources that match the entire name given.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def namespace(self) -> str:
        """
        Tenancy unique namespace.
        """
        return pulumi.get(self, "namespace")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> str:
        """
        Unique project name in a namespace.
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter(name="repositoryType")
    def repository_type(self) -> str:
        """
        Type of repository: MIRRORED - Repository created by mirroring an existing repository. HOSTED - Repository created and hosted using Oracle Cloud Infrastructure DevOps code repository.
        """
        return pulumi.get(self, "repository_type")

    @property
    @pulumi.getter(name="sizeInBytes")
    def size_in_bytes(self) -> str:
        """
        The size of the repository in bytes.
        """
        return pulumi.get(self, "size_in_bytes")

    @property
    @pulumi.getter(name="sshUrl")
    def ssh_url(self) -> str:
        """
        SSH URL that you use to git clone, pull and push.
        """
        return pulumi.get(self, "ssh_url")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only resources whose lifecycle state matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time the repository was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The time the repository was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="triggerBuildEvents")
    def trigger_build_events(self) -> Sequence[str]:
        """
        Trigger build events supported for this repository: PUSH - Build is triggered when a push event occurs. COMMIT_UPDATES - Build is triggered when new commits are mirrored into a repository.
        """
        return pulumi.get(self, "trigger_build_events")


@pulumi.output_type
class GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigResult(dict):
    def __init__(__self__, *,
                 connector_id: str,
                 repository_url: str,
                 trigger_schedule: 'outputs.GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigTriggerScheduleResult'):
        """
        :param str connector_id: Upstream git repository connection identifer.
        :param str repository_url: URL of external repository you want to mirror.
        :param 'GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigTriggerScheduleArgs' trigger_schedule: Specifies a trigger schedule. Timing information for when to initiate automated syncs.
        """
        pulumi.set(__self__, "connector_id", connector_id)
        pulumi.set(__self__, "repository_url", repository_url)
        pulumi.set(__self__, "trigger_schedule", trigger_schedule)

    @property
    @pulumi.getter(name="connectorId")
    def connector_id(self) -> str:
        """
        Upstream git repository connection identifer.
        """
        return pulumi.get(self, "connector_id")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        URL of external repository you want to mirror.
        """
        return pulumi.get(self, "repository_url")

    @property
    @pulumi.getter(name="triggerSchedule")
    def trigger_schedule(self) -> 'outputs.GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigTriggerScheduleResult':
        """
        Specifies a trigger schedule. Timing information for when to initiate automated syncs.
        """
        return pulumi.get(self, "trigger_schedule")


@pulumi.output_type
class GetRepositoriesRepositoryCollectionItemMirrorRepositoryConfigTriggerScheduleResult(dict):
    def __init__(__self__, *,
                 custom_schedule: str,
                 schedule_type: str):
        """
        :param str custom_schedule: Valid if type is CUSTOM. Following RFC 5545 recurrence rules, we can specify starting time, occurrence frequency, and interval size. Example for frequency could be DAILY/WEEKLY/HOURLY or any RFC 5545 supported frequency, which is followed by start time of this window. You can control the start time with BYHOUR, BYMINUTE and BYSECONDS. It is followed by the interval size.
        :param str schedule_type: Different types of trigger schedule: NONE - No automated synchronization schedule. DEFAULT - Trigger schedule is every 30 minutes. CUSTOM - Custom triggering schedule.
        """
        pulumi.set(__self__, "custom_schedule", custom_schedule)
        pulumi.set(__self__, "schedule_type", schedule_type)

    @property
    @pulumi.getter(name="customSchedule")
    def custom_schedule(self) -> str:
        """
        Valid if type is CUSTOM. Following RFC 5545 recurrence rules, we can specify starting time, occurrence frequency, and interval size. Example for frequency could be DAILY/WEEKLY/HOURLY or any RFC 5545 supported frequency, which is followed by start time of this window. You can control the start time with BYHOUR, BYMINUTE and BYSECONDS. It is followed by the interval size.
        """
        return pulumi.get(self, "custom_schedule")

    @property
    @pulumi.getter(name="scheduleType")
    def schedule_type(self) -> str:
        """
        Different types of trigger schedule: NONE - No automated synchronization schedule. DEFAULT - Trigger schedule is every 30 minutes. CUSTOM - Custom triggering schedule.
        """
        return pulumi.get(self, "schedule_type")


@pulumi.output_type
class GetRepositoryAuthorItemResult(dict):
    def __init__(__self__, *,
                 author_name: str,
                 defined_tags: Mapping[str, Any],
                 freeform_tags: Mapping[str, Any]):
        """
        :param str author_name: Author name.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        pulumi.set(__self__, "author_name", author_name)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "freeform_tags", freeform_tags)

    @property
    @pulumi.getter(name="authorName")
    def author_name(self) -> str:
        """
        Author name.
        """
        return pulumi.get(self, "author_name")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")


@pulumi.output_type
class GetRepositoryAuthorsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoryAuthorsRepositoryAuthorCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoryAuthorsRepositoryAuthorCollectionItemResult']):
        """
        :param Sequence['GetRepositoryAuthorsRepositoryAuthorCollectionItemArgs'] items: List of author objects.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoryAuthorsRepositoryAuthorCollectionItemResult']:
        """
        List of author objects.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoryAuthorsRepositoryAuthorCollectionItemResult(dict):
    def __init__(__self__, *,
                 author_name: str,
                 defined_tags: Mapping[str, Any],
                 freeform_tags: Mapping[str, Any]):
        """
        :param str author_name: Author name.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        pulumi.set(__self__, "author_name", author_name)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "freeform_tags", freeform_tags)

    @property
    @pulumi.getter(name="authorName")
    def author_name(self) -> str:
        """
        Author name.
        """
        return pulumi.get(self, "author_name")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")


@pulumi.output_type
class GetRepositoryCommitsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoryCommitsRepositoryCommitCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoryCommitsRepositoryCommitCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoryCommitsRepositoryCommitCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoryCommitsRepositoryCommitCollectionItemResult(dict):
    def __init__(__self__, *,
                 author_email: str,
                 author_name: str,
                 commit_id: str,
                 commit_message: str,
                 committer_email: str,
                 committer_name: str,
                 defined_tags: Mapping[str, Any],
                 freeform_tags: Mapping[str, Any],
                 parent_commit_ids: Sequence[str],
                 time_created: str,
                 tree_id: str):
        """
        :param str author_email: Email of the author of the repository.
        :param str author_name: A filter to return any commits that are pushed by the requested author.
        :param str commit_id: Commit hash pointed to by reference name.
        :param str commit_message: A filter to return any commits that contains the given message.
        :param str committer_email: Email of who creates the commit.
        :param str committer_name: Name of who creates the commit.
        :param Sequence[str] parent_commit_ids: An array of parent commit IDs of created commit.
        :param str time_created: The time at which commit was created.
        :param str tree_id: Tree information for the specified commit.
        """
        pulumi.set(__self__, "author_email", author_email)
        pulumi.set(__self__, "author_name", author_name)
        pulumi.set(__self__, "commit_id", commit_id)
        pulumi.set(__self__, "commit_message", commit_message)
        pulumi.set(__self__, "committer_email", committer_email)
        pulumi.set(__self__, "committer_name", committer_name)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "parent_commit_ids", parent_commit_ids)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "tree_id", tree_id)

    @property
    @pulumi.getter(name="authorEmail")
    def author_email(self) -> str:
        """
        Email of the author of the repository.
        """
        return pulumi.get(self, "author_email")

    @property
    @pulumi.getter(name="authorName")
    def author_name(self) -> str:
        """
        A filter to return any commits that are pushed by the requested author.
        """
        return pulumi.get(self, "author_name")

    @property
    @pulumi.getter(name="commitId")
    def commit_id(self) -> str:
        """
        Commit hash pointed to by reference name.
        """
        return pulumi.get(self, "commit_id")

    @property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> str:
        """
        A filter to return any commits that contains the given message.
        """
        return pulumi.get(self, "commit_message")

    @property
    @pulumi.getter(name="committerEmail")
    def committer_email(self) -> str:
        """
        Email of who creates the commit.
        """
        return pulumi.get(self, "committer_email")

    @property
    @pulumi.getter(name="committerName")
    def committer_name(self) -> str:
        """
        Name of who creates the commit.
        """
        return pulumi.get(self, "committer_name")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="parentCommitIds")
    def parent_commit_ids(self) -> Sequence[str]:
        """
        An array of parent commit IDs of created commit.
        """
        return pulumi.get(self, "parent_commit_ids")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time at which commit was created.
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="treeId")
    def tree_id(self) -> str:
        """
        Tree information for the specified commit.
        """
        return pulumi.get(self, "tree_id")


@pulumi.output_type
class GetRepositoryDiffChangeResult(dict):
    def __init__(__self__, *,
                 base_line: int,
                 base_span: int,
                 diff_sections: Sequence['outputs.GetRepositoryDiffChangeDiffSectionResult'],
                 target_line: int,
                 target_span: int):
        """
        :param int base_line: The number of a line in the base version.
        :param int base_span: Number of lines chunk spans in base version.
        :param Sequence['GetRepositoryDiffChangeDiffSectionArgs'] diff_sections: List of difference section.
        :param int target_line: Line number in target version where changes begin.
        :param int target_span: Number of lines chunk spans in target version.
        """
        pulumi.set(__self__, "base_line", base_line)
        pulumi.set(__self__, "base_span", base_span)
        pulumi.set(__self__, "diff_sections", diff_sections)
        pulumi.set(__self__, "target_line", target_line)
        pulumi.set(__self__, "target_span", target_span)

    @property
    @pulumi.getter(name="baseLine")
    def base_line(self) -> int:
        """
        The number of a line in the base version.
        """
        return pulumi.get(self, "base_line")

    @property
    @pulumi.getter(name="baseSpan")
    def base_span(self) -> int:
        """
        Number of lines chunk spans in base version.
        """
        return pulumi.get(self, "base_span")

    @property
    @pulumi.getter(name="diffSections")
    def diff_sections(self) -> Sequence['outputs.GetRepositoryDiffChangeDiffSectionResult']:
        """
        List of difference section.
        """
        return pulumi.get(self, "diff_sections")

    @property
    @pulumi.getter(name="targetLine")
    def target_line(self) -> int:
        """
        Line number in target version where changes begin.
        """
        return pulumi.get(self, "target_line")

    @property
    @pulumi.getter(name="targetSpan")
    def target_span(self) -> int:
        """
        Number of lines chunk spans in target version.
        """
        return pulumi.get(self, "target_span")


@pulumi.output_type
class GetRepositoryDiffChangeDiffSectionResult(dict):
    def __init__(__self__, *,
                 lines: Sequence['outputs.GetRepositoryDiffChangeDiffSectionLineResult'],
                 type: str):
        """
        :param Sequence['GetRepositoryDiffChangeDiffSectionLineArgs'] lines: The lines within changed section.
        :param str type: Type of change.
        """
        pulumi.set(__self__, "lines", lines)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def lines(self) -> Sequence['outputs.GetRepositoryDiffChangeDiffSectionLineResult']:
        """
        The lines within changed section.
        """
        return pulumi.get(self, "lines")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of change.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetRepositoryDiffChangeDiffSectionLineResult(dict):
    def __init__(__self__, *,
                 base_line: int,
                 conflict_marker: str,
                 line_content: str,
                 target_line: int):
        """
        :param int base_line: The number of a line in the base version.
        :param str conflict_marker: Indicates whether a line in a conflicted section of the difference is from the base version, the target version, or if its just a marker indicating the beginning, middle, or end of a conflicted section.
        :param str line_content: The contents of a line.
        :param int target_line: Line number in target version where changes begin.
        """
        pulumi.set(__self__, "base_line", base_line)
        pulumi.set(__self__, "conflict_marker", conflict_marker)
        pulumi.set(__self__, "line_content", line_content)
        pulumi.set(__self__, "target_line", target_line)

    @property
    @pulumi.getter(name="baseLine")
    def base_line(self) -> int:
        """
        The number of a line in the base version.
        """
        return pulumi.get(self, "base_line")

    @property
    @pulumi.getter(name="conflictMarker")
    def conflict_marker(self) -> str:
        """
        Indicates whether a line in a conflicted section of the difference is from the base version, the target version, or if its just a marker indicating the beginning, middle, or end of a conflicted section.
        """
        return pulumi.get(self, "conflict_marker")

    @property
    @pulumi.getter(name="lineContent")
    def line_content(self) -> str:
        """
        The contents of a line.
        """
        return pulumi.get(self, "line_content")

    @property
    @pulumi.getter(name="targetLine")
    def target_line(self) -> int:
        """
        Line number in target version where changes begin.
        """
        return pulumi.get(self, "target_line")


@pulumi.output_type
class GetRepositoryDiffsDiffCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoryDiffsDiffCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoryDiffsDiffCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoryDiffsDiffCollectionItemResult(dict):
    def __init__(__self__, *,
                 are_conflicts_in_file: bool,
                 changes: Sequence['outputs.GetRepositoryDiffsDiffCollectionItemChangeResult'],
                 freeform_tags: Mapping[str, Any],
                 is_binary: bool,
                 is_large: bool,
                 new_id: str,
                 new_path: str,
                 old_id: str,
                 old_path: str):
        """
        :param bool are_conflicts_in_file: Indicates whether the changed file contains conflicts.
        :param Sequence['GetRepositoryDiffsDiffCollectionItemChangeArgs'] changes: List of changed section in the file.
        :param bool is_binary: Indicates whether the file is binary.
        :param bool is_large: Indicates whether the file is large.
        :param str new_id: The ID of the changed object on the target version.
        :param str new_path: The path on the target version to the changed object.
        :param str old_id: The ID of the changed object on the base version.
        :param str old_path: The path on the base version to the changed object.
        """
        pulumi.set(__self__, "are_conflicts_in_file", are_conflicts_in_file)
        pulumi.set(__self__, "changes", changes)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "is_binary", is_binary)
        pulumi.set(__self__, "is_large", is_large)
        pulumi.set(__self__, "new_id", new_id)
        pulumi.set(__self__, "new_path", new_path)
        pulumi.set(__self__, "old_id", old_id)
        pulumi.set(__self__, "old_path", old_path)

    @property
    @pulumi.getter(name="areConflictsInFile")
    def are_conflicts_in_file(self) -> bool:
        """
        Indicates whether the changed file contains conflicts.
        """
        return pulumi.get(self, "are_conflicts_in_file")

    @property
    @pulumi.getter
    def changes(self) -> Sequence['outputs.GetRepositoryDiffsDiffCollectionItemChangeResult']:
        """
        List of changed section in the file.
        """
        return pulumi.get(self, "changes")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="isBinary")
    def is_binary(self) -> bool:
        """
        Indicates whether the file is binary.
        """
        return pulumi.get(self, "is_binary")

    @property
    @pulumi.getter(name="isLarge")
    def is_large(self) -> bool:
        """
        Indicates whether the file is large.
        """
        return pulumi.get(self, "is_large")

    @property
    @pulumi.getter(name="newId")
    def new_id(self) -> str:
        """
        The ID of the changed object on the target version.
        """
        return pulumi.get(self, "new_id")

    @property
    @pulumi.getter(name="newPath")
    def new_path(self) -> str:
        """
        The path on the target version to the changed object.
        """
        return pulumi.get(self, "new_path")

    @property
    @pulumi.getter(name="oldId")
    def old_id(self) -> str:
        """
        The ID of the changed object on the base version.
        """
        return pulumi.get(self, "old_id")

    @property
    @pulumi.getter(name="oldPath")
    def old_path(self) -> str:
        """
        The path on the base version to the changed object.
        """
        return pulumi.get(self, "old_path")


@pulumi.output_type
class GetRepositoryDiffsDiffCollectionItemChangeResult(dict):
    def __init__(__self__, *,
                 base_line: int,
                 base_span: int,
                 diff_sections: Sequence['outputs.GetRepositoryDiffsDiffCollectionItemChangeDiffSectionResult'],
                 target_line: int,
                 target_span: int):
        """
        :param int base_line: The number of a line in the base version.
        :param int base_span: Number of lines chunk spans in base version.
        :param Sequence['GetRepositoryDiffsDiffCollectionItemChangeDiffSectionArgs'] diff_sections: List of difference section.
        :param int target_line: Line number in target version where changes begin.
        :param int target_span: Number of lines chunk spans in target version.
        """
        pulumi.set(__self__, "base_line", base_line)
        pulumi.set(__self__, "base_span", base_span)
        pulumi.set(__self__, "diff_sections", diff_sections)
        pulumi.set(__self__, "target_line", target_line)
        pulumi.set(__self__, "target_span", target_span)

    @property
    @pulumi.getter(name="baseLine")
    def base_line(self) -> int:
        """
        The number of a line in the base version.
        """
        return pulumi.get(self, "base_line")

    @property
    @pulumi.getter(name="baseSpan")
    def base_span(self) -> int:
        """
        Number of lines chunk spans in base version.
        """
        return pulumi.get(self, "base_span")

    @property
    @pulumi.getter(name="diffSections")
    def diff_sections(self) -> Sequence['outputs.GetRepositoryDiffsDiffCollectionItemChangeDiffSectionResult']:
        """
        List of difference section.
        """
        return pulumi.get(self, "diff_sections")

    @property
    @pulumi.getter(name="targetLine")
    def target_line(self) -> int:
        """
        Line number in target version where changes begin.
        """
        return pulumi.get(self, "target_line")

    @property
    @pulumi.getter(name="targetSpan")
    def target_span(self) -> int:
        """
        Number of lines chunk spans in target version.
        """
        return pulumi.get(self, "target_span")


@pulumi.output_type
class GetRepositoryDiffsDiffCollectionItemChangeDiffSectionResult(dict):
    def __init__(__self__, *,
                 lines: Sequence['outputs.GetRepositoryDiffsDiffCollectionItemChangeDiffSectionLineResult'],
                 type: str):
        """
        :param Sequence['GetRepositoryDiffsDiffCollectionItemChangeDiffSectionLineArgs'] lines: The lines within changed section.
        :param str type: Type of change.
        """
        pulumi.set(__self__, "lines", lines)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def lines(self) -> Sequence['outputs.GetRepositoryDiffsDiffCollectionItemChangeDiffSectionLineResult']:
        """
        The lines within changed section.
        """
        return pulumi.get(self, "lines")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of change.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetRepositoryDiffsDiffCollectionItemChangeDiffSectionLineResult(dict):
    def __init__(__self__, *,
                 base_line: int,
                 conflict_marker: str,
                 line_content: str,
                 target_line: int):
        """
        :param int base_line: The number of a line in the base version.
        :param str conflict_marker: Indicates whether a line in a conflicted section of the difference is from the base version, the target version, or if its just a marker indicating the beginning, middle, or end of a conflicted section.
        :param str line_content: The contents of a line.
        :param int target_line: Line number in target version where changes begin.
        """
        pulumi.set(__self__, "base_line", base_line)
        pulumi.set(__self__, "conflict_marker", conflict_marker)
        pulumi.set(__self__, "line_content", line_content)
        pulumi.set(__self__, "target_line", target_line)

    @property
    @pulumi.getter(name="baseLine")
    def base_line(self) -> int:
        """
        The number of a line in the base version.
        """
        return pulumi.get(self, "base_line")

    @property
    @pulumi.getter(name="conflictMarker")
    def conflict_marker(self) -> str:
        """
        Indicates whether a line in a conflicted section of the difference is from the base version, the target version, or if its just a marker indicating the beginning, middle, or end of a conflicted section.
        """
        return pulumi.get(self, "conflict_marker")

    @property
    @pulumi.getter(name="lineContent")
    def line_content(self) -> str:
        """
        The contents of a line.
        """
        return pulumi.get(self, "line_content")

    @property
    @pulumi.getter(name="targetLine")
    def target_line(self) -> int:
        """
        Line number in target version where changes begin.
        """
        return pulumi.get(self, "target_line")


@pulumi.output_type
class GetRepositoryDiffsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoryFileDiffChangeResult(dict):
    def __init__(__self__, *,
                 base_line: int,
                 base_span: int,
                 diff_sections: Sequence['outputs.GetRepositoryFileDiffChangeDiffSectionResult'],
                 target_line: int,
                 target_span: int):
        """
        :param int base_line: The number of a line in the base version.
        :param int base_span: Number of lines chunk spans in base version.
        :param Sequence['GetRepositoryFileDiffChangeDiffSectionArgs'] diff_sections: List of difference section.
        :param int target_line: Line number in target version where changes begin.
        :param int target_span: Number of lines chunk spans in target version.
        """
        pulumi.set(__self__, "base_line", base_line)
        pulumi.set(__self__, "base_span", base_span)
        pulumi.set(__self__, "diff_sections", diff_sections)
        pulumi.set(__self__, "target_line", target_line)
        pulumi.set(__self__, "target_span", target_span)

    @property
    @pulumi.getter(name="baseLine")
    def base_line(self) -> int:
        """
        The number of a line in the base version.
        """
        return pulumi.get(self, "base_line")

    @property
    @pulumi.getter(name="baseSpan")
    def base_span(self) -> int:
        """
        Number of lines chunk spans in base version.
        """
        return pulumi.get(self, "base_span")

    @property
    @pulumi.getter(name="diffSections")
    def diff_sections(self) -> Sequence['outputs.GetRepositoryFileDiffChangeDiffSectionResult']:
        """
        List of difference section.
        """
        return pulumi.get(self, "diff_sections")

    @property
    @pulumi.getter(name="targetLine")
    def target_line(self) -> int:
        """
        Line number in target version where changes begin.
        """
        return pulumi.get(self, "target_line")

    @property
    @pulumi.getter(name="targetSpan")
    def target_span(self) -> int:
        """
        Number of lines chunk spans in target version.
        """
        return pulumi.get(self, "target_span")


@pulumi.output_type
class GetRepositoryFileDiffChangeDiffSectionResult(dict):
    def __init__(__self__, *,
                 lines: Sequence['outputs.GetRepositoryFileDiffChangeDiffSectionLineResult'],
                 type: str):
        """
        :param Sequence['GetRepositoryFileDiffChangeDiffSectionLineArgs'] lines: The lines within changed section.
        :param str type: Type of change.
        """
        pulumi.set(__self__, "lines", lines)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def lines(self) -> Sequence['outputs.GetRepositoryFileDiffChangeDiffSectionLineResult']:
        """
        The lines within changed section.
        """
        return pulumi.get(self, "lines")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of change.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetRepositoryFileDiffChangeDiffSectionLineResult(dict):
    def __init__(__self__, *,
                 base_line: int,
                 conflict_marker: str,
                 line_content: str,
                 target_line: int):
        """
        :param int base_line: The number of a line in the base version.
        :param str conflict_marker: Indicates whether a line in a conflicted section of the difference is from the base version, the target version, or if its just a marker indicating the beginning, middle, or end of a conflicted section.
        :param str line_content: The contents of a line.
        :param int target_line: Line number in target version where changes begin.
        """
        pulumi.set(__self__, "base_line", base_line)
        pulumi.set(__self__, "conflict_marker", conflict_marker)
        pulumi.set(__self__, "line_content", line_content)
        pulumi.set(__self__, "target_line", target_line)

    @property
    @pulumi.getter(name="baseLine")
    def base_line(self) -> int:
        """
        The number of a line in the base version.
        """
        return pulumi.get(self, "base_line")

    @property
    @pulumi.getter(name="conflictMarker")
    def conflict_marker(self) -> str:
        """
        Indicates whether a line in a conflicted section of the difference is from the base version, the target version, or if its just a marker indicating the beginning, middle, or end of a conflicted section.
        """
        return pulumi.get(self, "conflict_marker")

    @property
    @pulumi.getter(name="lineContent")
    def line_content(self) -> str:
        """
        The contents of a line.
        """
        return pulumi.get(self, "line_content")

    @property
    @pulumi.getter(name="targetLine")
    def target_line(self) -> int:
        """
        Line number in target version where changes begin.
        """
        return pulumi.get(self, "target_line")


@pulumi.output_type
class GetRepositoryFileLineLineResult(dict):
    def __init__(__self__, *,
                 line_content: str,
                 line_number: int):
        """
        :param str line_content: The content of the line.
        :param int line_number: The line number.
        """
        pulumi.set(__self__, "line_content", line_content)
        pulumi.set(__self__, "line_number", line_number)

    @property
    @pulumi.getter(name="lineContent")
    def line_content(self) -> str:
        """
        The content of the line.
        """
        return pulumi.get(self, "line_content")

    @property
    @pulumi.getter(name="lineNumber")
    def line_number(self) -> int:
        """
        The line number.
        """
        return pulumi.get(self, "line_number")


@pulumi.output_type
class GetRepositoryMirrorRecordsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoryMirrorRecordsRepositoryMirrorRecordCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoryMirrorRecordsRepositoryMirrorRecordCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoryMirrorRecordsRepositoryMirrorRecordCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoryMirrorRecordsRepositoryMirrorRecordCollectionItemResult(dict):
    def __init__(__self__, *,
                 freeform_tags: Mapping[str, Any],
                 mirror_status: str,
                 time_completed: str,
                 time_enqueued: str,
                 time_started: str,
                 work_request_id: str):
        """
        :param str mirror_status: Mirror status of current mirror entry. QUEUED - Mirroring Queued RUNNING - Mirroring is Running PASSED - Mirroring Passed FAILED - Mirroring Failed
        :param str time_enqueued: The time to enqueue a mirror operation.
        :param str time_started: The time to start a mirror operation.
        :param str work_request_id: Workrequest ID to track current mirror operation.
        """
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "mirror_status", mirror_status)
        pulumi.set(__self__, "time_completed", time_completed)
        pulumi.set(__self__, "time_enqueued", time_enqueued)
        pulumi.set(__self__, "time_started", time_started)
        pulumi.set(__self__, "work_request_id", work_request_id)

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="mirrorStatus")
    def mirror_status(self) -> str:
        """
        Mirror status of current mirror entry. QUEUED - Mirroring Queued RUNNING - Mirroring is Running PASSED - Mirroring Passed FAILED - Mirroring Failed
        """
        return pulumi.get(self, "mirror_status")

    @property
    @pulumi.getter(name="timeCompleted")
    def time_completed(self) -> str:
        return pulumi.get(self, "time_completed")

    @property
    @pulumi.getter(name="timeEnqueued")
    def time_enqueued(self) -> str:
        """
        The time to enqueue a mirror operation.
        """
        return pulumi.get(self, "time_enqueued")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The time to start a mirror operation.
        """
        return pulumi.get(self, "time_started")

    @property
    @pulumi.getter(name="workRequestId")
    def work_request_id(self) -> str:
        """
        Workrequest ID to track current mirror operation.
        """
        return pulumi.get(self, "work_request_id")


@pulumi.output_type
class GetRepositoryMirrorRepositoryConfigResult(dict):
    def __init__(__self__, *,
                 connector_id: str,
                 repository_url: str,
                 trigger_schedules: Sequence['outputs.GetRepositoryMirrorRepositoryConfigTriggerScheduleResult']):
        """
        :param str connector_id: Upstream git repository connection identifer.
        :param str repository_url: URL of external repository you want to mirror.
        :param Sequence['GetRepositoryMirrorRepositoryConfigTriggerScheduleArgs'] trigger_schedules: Specifies a trigger schedule. Timing information for when to initiate automated syncs.
        """
        pulumi.set(__self__, "connector_id", connector_id)
        pulumi.set(__self__, "repository_url", repository_url)
        pulumi.set(__self__, "trigger_schedules", trigger_schedules)

    @property
    @pulumi.getter(name="connectorId")
    def connector_id(self) -> str:
        """
        Upstream git repository connection identifer.
        """
        return pulumi.get(self, "connector_id")

    @property
    @pulumi.getter(name="repositoryUrl")
    def repository_url(self) -> str:
        """
        URL of external repository you want to mirror.
        """
        return pulumi.get(self, "repository_url")

    @property
    @pulumi.getter(name="triggerSchedules")
    def trigger_schedules(self) -> Sequence['outputs.GetRepositoryMirrorRepositoryConfigTriggerScheduleResult']:
        """
        Specifies a trigger schedule. Timing information for when to initiate automated syncs.
        """
        return pulumi.get(self, "trigger_schedules")


@pulumi.output_type
class GetRepositoryMirrorRepositoryConfigTriggerScheduleResult(dict):
    def __init__(__self__, *,
                 custom_schedule: str,
                 schedule_type: str):
        """
        :param str custom_schedule: Valid if type is CUSTOM. Following RFC 5545 recurrence rules, we can specify starting time, occurrence frequency, and interval size. Example for frequency could be DAILY/WEEKLY/HOURLY or any RFC 5545 supported frequency, which is followed by start time of this window. You can control the start time with BYHOUR, BYMINUTE and BYSECONDS. It is followed by the interval size.
        :param str schedule_type: Different types of trigger schedule: NONE - No automated synchronization schedule. DEFAULT - Trigger schedule is every 30 minutes. CUSTOM - Custom triggering schedule.
        """
        pulumi.set(__self__, "custom_schedule", custom_schedule)
        pulumi.set(__self__, "schedule_type", schedule_type)

    @property
    @pulumi.getter(name="customSchedule")
    def custom_schedule(self) -> str:
        """
        Valid if type is CUSTOM. Following RFC 5545 recurrence rules, we can specify starting time, occurrence frequency, and interval size. Example for frequency could be DAILY/WEEKLY/HOURLY or any RFC 5545 supported frequency, which is followed by start time of this window. You can control the start time with BYHOUR, BYMINUTE and BYSECONDS. It is followed by the interval size.
        """
        return pulumi.get(self, "custom_schedule")

    @property
    @pulumi.getter(name="scheduleType")
    def schedule_type(self) -> str:
        """
        Different types of trigger schedule: NONE - No automated synchronization schedule. DEFAULT - Trigger schedule is every 30 minutes. CUSTOM - Custom triggering schedule.
        """
        return pulumi.get(self, "schedule_type")


@pulumi.output_type
class GetRepositoryPathItemResult(dict):
    def __init__(__self__, *,
                 defined_tags: Mapping[str, Any],
                 freeform_tags: Mapping[str, Any],
                 name: str,
                 path: str,
                 sha: str,
                 size_in_bytes: str,
                 submodule_git_url: str,
                 type: str):
        """
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str name: Name of file or directory.
        :param str path: Path to file or directory in a repository.
        :param str sha: SHA-1 checksum of blob or tree.
        :param str size_in_bytes: Size of file or directory.
        :param str submodule_git_url: The git URL of the submodule.
        :param str type: File or directory.
        """
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "sha", sha)
        pulumi.set(__self__, "size_in_bytes", size_in_bytes)
        pulumi.set(__self__, "submodule_git_url", submodule_git_url)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of file or directory.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def path(self) -> str:
        """
        Path to file or directory in a repository.
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def sha(self) -> str:
        """
        SHA-1 checksum of blob or tree.
        """
        return pulumi.get(self, "sha")

    @property
    @pulumi.getter(name="sizeInBytes")
    def size_in_bytes(self) -> str:
        """
        Size of file or directory.
        """
        return pulumi.get(self, "size_in_bytes")

    @property
    @pulumi.getter(name="submoduleGitUrl")
    def submodule_git_url(self) -> str:
        """
        The git URL of the submodule.
        """
        return pulumi.get(self, "submodule_git_url")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        File or directory.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetRepositoryPathsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: Name of file or directory.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of file or directory.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoryPathsRepositoryPathCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoryPathsRepositoryPathCollectionItemResult']):
        """
        :param Sequence['GetRepositoryPathsRepositoryPathCollectionItemArgs'] items: List of objects describing files or directories in a repository.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoryPathsRepositoryPathCollectionItemResult']:
        """
        List of objects describing files or directories in a repository.
        """
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoryPathsRepositoryPathCollectionItemResult(dict):
    def __init__(__self__, *,
                 defined_tags: Mapping[str, Any],
                 freeform_tags: Mapping[str, Any],
                 name: str,
                 path: str,
                 sha: str,
                 size_in_bytes: str,
                 submodule_git_url: str,
                 type: str):
        """
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str name: Name of file or directory.
        :param str path: Path to file or directory in a repository.
        :param str sha: SHA-1 checksum of blob or tree.
        :param str size_in_bytes: Size of file or directory.
        :param str submodule_git_url: The git URL of the submodule.
        :param str type: File or directory.
        """
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "sha", sha)
        pulumi.set(__self__, "size_in_bytes", size_in_bytes)
        pulumi.set(__self__, "submodule_git_url", submodule_git_url)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        Name of file or directory.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def path(self) -> str:
        """
        Path to file or directory in a repository.
        """
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def sha(self) -> str:
        """
        SHA-1 checksum of blob or tree.
        """
        return pulumi.get(self, "sha")

    @property
    @pulumi.getter(name="sizeInBytes")
    def size_in_bytes(self) -> str:
        """
        Size of file or directory.
        """
        return pulumi.get(self, "size_in_bytes")

    @property
    @pulumi.getter(name="submoduleGitUrl")
    def submodule_git_url(self) -> str:
        """
        The git URL of the submodule.
        """
        return pulumi.get(self, "submodule_git_url")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        File or directory.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetRepositoryRefsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetRepositoryRefsRepositoryRefCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetRepositoryRefsRepositoryRefCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetRepositoryRefsRepositoryRefCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetRepositoryRefsRepositoryRefCollectionItemResult(dict):
    def __init__(__self__, *,
                 commit_id: str,
                 defined_tags: Mapping[str, Any],
                 freeform_tags: Mapping[str, Any],
                 full_ref_name: str,
                 id: str,
                 object_id: str,
                 ref_name: str,
                 ref_type: str,
                 repository_id: str):
        """
        :param str commit_id: Commit ID in a repository.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str full_ref_name: Unique full reference name inside a repository.
        :param str object_id: SHA-1 hash value of the object pointed to by the tag.
        :param str ref_name: A filter to return only resources that match the given reference name.
        :param str ref_type: Reference type to distinguish between branch and tag. If it is not specified, all references are returned.
        :param str repository_id: Unique repository identifier.
        """
        pulumi.set(__self__, "commit_id", commit_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "full_ref_name", full_ref_name)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "object_id", object_id)
        pulumi.set(__self__, "ref_name", ref_name)
        pulumi.set(__self__, "ref_type", ref_type)
        pulumi.set(__self__, "repository_id", repository_id)

    @property
    @pulumi.getter(name="commitId")
    def commit_id(self) -> str:
        """
        Commit ID in a repository.
        """
        return pulumi.get(self, "commit_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter(name="fullRefName")
    def full_ref_name(self) -> str:
        """
        Unique full reference name inside a repository.
        """
        return pulumi.get(self, "full_ref_name")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="objectId")
    def object_id(self) -> str:
        """
        SHA-1 hash value of the object pointed to by the tag.
        """
        return pulumi.get(self, "object_id")

    @property
    @pulumi.getter(name="refName")
    def ref_name(self) -> str:
        """
        A filter to return only resources that match the given reference name.
        """
        return pulumi.get(self, "ref_name")

    @property
    @pulumi.getter(name="refType")
    def ref_type(self) -> str:
        """
        Reference type to distinguish between branch and tag. If it is not specified, all references are returned.
        """
        return pulumi.get(self, "ref_type")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        Unique repository identifier.
        """
        return pulumi.get(self, "repository_id")


@pulumi.output_type
class GetTriggerActionResult(dict):
    def __init__(__self__, *,
                 build_pipeline_id: str,
                 filters: Sequence['outputs.GetTriggerActionFilterResult'],
                 type: str):
        """
        :param str build_pipeline_id: The OCID of the build pipeline to be triggered.
        :param Sequence['GetTriggerActionFilterArgs'] filters: The filters for the trigger.
        :param str type: The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "filters", filters)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        The OCID of the build pipeline to be triggered.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter
    def filters(self) -> Sequence['outputs.GetTriggerActionFilterResult']:
        """
        The filters for the trigger.
        """
        return pulumi.get(self, "filters")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetTriggerActionFilterResult(dict):
    def __init__(__self__, *,
                 events: Sequence[str],
                 excludes: Sequence['outputs.GetTriggerActionFilterExcludeResult'],
                 includes: Sequence['outputs.GetTriggerActionFilterIncludeResult'],
                 trigger_source: str):
        """
        :param Sequence[str] events: The events, for example, PUSH, PULL_REQUEST_MERGE.
        :param Sequence['GetTriggerActionFilterIncludeArgs'] includes: Attributes to filter GitLab self-hosted server events.
        :param str trigger_source: Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        pulumi.set(__self__, "events", events)
        pulumi.set(__self__, "excludes", excludes)
        pulumi.set(__self__, "includes", includes)
        pulumi.set(__self__, "trigger_source", trigger_source)

    @property
    @pulumi.getter
    def events(self) -> Sequence[str]:
        """
        The events, for example, PUSH, PULL_REQUEST_MERGE.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter
    def excludes(self) -> Sequence['outputs.GetTriggerActionFilterExcludeResult']:
        return pulumi.get(self, "excludes")

    @property
    @pulumi.getter
    def includes(self) -> Sequence['outputs.GetTriggerActionFilterIncludeResult']:
        """
        Attributes to filter GitLab self-hosted server events.
        """
        return pulumi.get(self, "includes")

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> str:
        """
        Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        return pulumi.get(self, "trigger_source")


@pulumi.output_type
class GetTriggerActionFilterExcludeResult(dict):
    def __init__(__self__, *,
                 file_filters: Sequence['outputs.GetTriggerActionFilterExcludeFileFilterResult']):
        pulumi.set(__self__, "file_filters", file_filters)

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Sequence['outputs.GetTriggerActionFilterExcludeFileFilterResult']:
        return pulumi.get(self, "file_filters")


@pulumi.output_type
class GetTriggerActionFilterExcludeFileFilterResult(dict):
    def __init__(__self__, *,
                 file_paths: Sequence[str]):
        pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class GetTriggerActionFilterIncludeResult(dict):
    def __init__(__self__, *,
                 base_ref: str,
                 file_filters: Sequence['outputs.GetTriggerActionFilterIncludeFileFilterResult'],
                 head_ref: str,
                 repository_name: str):
        """
        :param str base_ref: The target branch for pull requests; not applicable for push requests.
        :param str head_ref: Branch for push event; source branch for pull requests.
        :param str repository_name: The repository name for trigger events.
        """
        pulumi.set(__self__, "base_ref", base_ref)
        pulumi.set(__self__, "file_filters", file_filters)
        pulumi.set(__self__, "head_ref", head_ref)
        pulumi.set(__self__, "repository_name", repository_name)

    @property
    @pulumi.getter(name="baseRef")
    def base_ref(self) -> str:
        """
        The target branch for pull requests; not applicable for push requests.
        """
        return pulumi.get(self, "base_ref")

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Sequence['outputs.GetTriggerActionFilterIncludeFileFilterResult']:
        return pulumi.get(self, "file_filters")

    @property
    @pulumi.getter(name="headRef")
    def head_ref(self) -> str:
        """
        Branch for push event; source branch for pull requests.
        """
        return pulumi.get(self, "head_ref")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> str:
        """
        The repository name for trigger events.
        """
        return pulumi.get(self, "repository_name")


@pulumi.output_type
class GetTriggerActionFilterIncludeFileFilterResult(dict):
    def __init__(__self__, *,
                 file_paths: Sequence[str]):
        pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class GetTriggersFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")


@pulumi.output_type
class GetTriggersTriggerCollectionResult(dict):
    def __init__(__self__, *,
                 items: Sequence['outputs.GetTriggersTriggerCollectionItemResult']):
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemResult']:
        return pulumi.get(self, "items")


@pulumi.output_type
class GetTriggersTriggerCollectionItemResult(dict):
    def __init__(__self__, *,
                 actions: Sequence['outputs.GetTriggersTriggerCollectionItemActionResult'],
                 compartment_id: str,
                 connection_id: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 project_id: str,
                 repository_id: str,
                 state: str,
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str,
                 trigger_source: str,
                 trigger_url: str):
        """
        :param Sequence['GetTriggersTriggerCollectionItemActionArgs'] actions: The list of actions that are to be performed for this trigger.
        :param str compartment_id: The OCID of the compartment in which to list resources.
        :param Mapping[str, Any] defined_tags: Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        :param str description: Description about the trigger.
        :param str display_name: A filter to return only resources that match the entire display name given.
        :param Mapping[str, Any] freeform_tags: Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        :param str id: Unique trigger identifier.
        :param str lifecycle_details: A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        :param str project_id: unique project identifier
        :param str repository_id: The OCID of the DevOps code repository.
        :param str state: A filter to return only triggers that matches the given lifecycle state.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The time the trigger was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str time_updated: The time the trigger was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        :param str trigger_source: Source of the trigger. Allowed values are, GITHUB and GITLAB.
        :param str trigger_url: The endpoint that listens to trigger events.
        """
        pulumi.set(__self__, "actions", actions)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "connection_id", connection_id)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "repository_id", repository_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)
        pulumi.set(__self__, "trigger_source", trigger_source)
        pulumi.set(__self__, "trigger_url", trigger_url)

    @property
    @pulumi.getter
    def actions(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemActionResult']:
        """
        The list of actions that are to be performed for this trigger.
        """
        return pulumi.get(self, "actions")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment in which to list resources.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="connectionId")
    def connection_id(self) -> str:
        return pulumi.get(self, "connection_id")

    @property
    @pulumi.getter(name="definedTags")
    def defined_tags(self) -> Mapping[str, Any]:
        """
        Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"foo-namespace.bar-key": "value"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Description about the trigger.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        A filter to return only resources that match the entire display name given.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.  See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"bar-key": "value"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique trigger identifier.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        unique project identifier
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter(name="repositoryId")
    def repository_id(self) -> str:
        """
        The OCID of the DevOps code repository.
        """
        return pulumi.get(self, "repository_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        A filter to return only triggers that matches the given lifecycle state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The time the trigger was created. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The time the trigger was updated. Format defined by [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> str:
        """
        Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        return pulumi.get(self, "trigger_source")

    @property
    @pulumi.getter(name="triggerUrl")
    def trigger_url(self) -> str:
        """
        The endpoint that listens to trigger events.
        """
        return pulumi.get(self, "trigger_url")


@pulumi.output_type
class GetTriggersTriggerCollectionItemActionResult(dict):
    def __init__(__self__, *,
                 build_pipeline_id: str,
                 filters: Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterResult'],
                 type: str):
        """
        :param str build_pipeline_id: The OCID of the build pipeline to be triggered.
        :param Sequence['GetTriggersTriggerCollectionItemActionFilterArgs'] filters: The filters for the trigger.
        :param str type: The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        pulumi.set(__self__, "build_pipeline_id", build_pipeline_id)
        pulumi.set(__self__, "filters", filters)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="buildPipelineId")
    def build_pipeline_id(self) -> str:
        """
        The OCID of the build pipeline to be triggered.
        """
        return pulumi.get(self, "build_pipeline_id")

    @property
    @pulumi.getter
    def filters(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterResult']:
        """
        The filters for the trigger.
        """
        return pulumi.get(self, "filters")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of action that will be taken. Allowed value is TRIGGER_BUILD_PIPELINE.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetTriggersTriggerCollectionItemActionFilterResult(dict):
    def __init__(__self__, *,
                 events: Sequence[str],
                 excludes: Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterExcludeResult'],
                 includes: Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterIncludeResult'],
                 trigger_source: str):
        """
        :param Sequence[str] events: The events, for example, PUSH, PULL_REQUEST_MERGE.
        :param Sequence['GetTriggersTriggerCollectionItemActionFilterIncludeArgs'] includes: Attributes to filter GitLab self-hosted server events.
        :param str trigger_source: Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        pulumi.set(__self__, "events", events)
        pulumi.set(__self__, "excludes", excludes)
        pulumi.set(__self__, "includes", includes)
        pulumi.set(__self__, "trigger_source", trigger_source)

    @property
    @pulumi.getter
    def events(self) -> Sequence[str]:
        """
        The events, for example, PUSH, PULL_REQUEST_MERGE.
        """
        return pulumi.get(self, "events")

    @property
    @pulumi.getter
    def excludes(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterExcludeResult']:
        return pulumi.get(self, "excludes")

    @property
    @pulumi.getter
    def includes(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterIncludeResult']:
        """
        Attributes to filter GitLab self-hosted server events.
        """
        return pulumi.get(self, "includes")

    @property
    @pulumi.getter(name="triggerSource")
    def trigger_source(self) -> str:
        """
        Source of the trigger. Allowed values are, GITHUB and GITLAB.
        """
        return pulumi.get(self, "trigger_source")


@pulumi.output_type
class GetTriggersTriggerCollectionItemActionFilterExcludeResult(dict):
    def __init__(__self__, *,
                 file_filters: Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterExcludeFileFilterResult']):
        pulumi.set(__self__, "file_filters", file_filters)

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterExcludeFileFilterResult']:
        return pulumi.get(self, "file_filters")


@pulumi.output_type
class GetTriggersTriggerCollectionItemActionFilterExcludeFileFilterResult(dict):
    def __init__(__self__, *,
                 file_paths: Sequence[str]):
        pulumi.set(__self__, "file_paths", file_paths)

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


@pulumi.output_type
class GetTriggersTriggerCollectionItemActionFilterIncludeResult(dict):
    def __init__(__self__, *,
                 base_ref: str,
                 file_filters: Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterIncludeFileFilterResult'],
                 head_ref: str,
                 repository_name: str):
        """
        :param str base_ref: The target branch for pull requests; not applicable for push requests.
        :param str head_ref: Branch for push event; source branch for pull requests.
        :param str repository_name: The repository name for trigger events.
        """
        pulumi.set(__self__, "base_ref", base_ref)
        pulumi.set(__self__, "file_filters", file_filters)
        pulumi.set(__self__, "head_ref", head_ref)
        pulumi.set(__self__, "repository_name", repository_name)

    @property
    @pulumi.getter(name="baseRef")
    def base_ref(self) -> str:
        """
        The target branch for pull requests; not applicable for push requests.
        """
        return pulumi.get(self, "base_ref")

    @property
    @pulumi.getter(name="fileFilters")
    def file_filters(self) -> Sequence['outputs.GetTriggersTriggerCollectionItemActionFilterIncludeFileFilterResult']:
        return pulumi.get(self, "file_filters")

    @property
    @pulumi.getter(name="headRef")
    def head_ref(self) -> str:
        """
        Branch for push event; source branch for pull requests.
        """
        return pulumi.get(self, "head_ref")

    @property
    @pulumi.getter(name="repositoryName")
    def repository_name(self) -> str:
        """
        The repository name for trigger events.
        """
        return pulumi.get(self, "repository_name")


@pulumi.output_type
class GetTriggersTriggerCollectionItemActionFilterIncludeFileFilterResult(dict):
    def __init__(__self__, *,
                 file_paths: Sequence[str]):
        pulumi.set(__self__, "file_paths", file_paths)

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


