# 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__ = [
    'JobJobConfigurationDetails',
    'JobJobInfrastructureConfigurationDetails',
    'JobJobInfrastructureConfigurationDetailsJobShapeConfigDetails',
    'JobJobLogConfigurationDetails',
    'JobRunJobConfigurationOverrideDetails',
    'JobRunJobInfrastructureConfigurationDetail',
    'JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetail',
    'JobRunJobLogConfigurationOverrideDetails',
    'JobRunLogDetail',
    'ModelCustomMetadataList',
    'ModelDefinedMetadataList',
    'ModelDeploymentCategoryLogDetails',
    'ModelDeploymentCategoryLogDetailsAccess',
    'ModelDeploymentCategoryLogDetailsPredict',
    'ModelDeploymentModelDeploymentConfigurationDetails',
    'ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetails',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetails',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfiguration',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetails',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicy',
    'NotebookSessionNotebookSessionConfigDetails',
    'NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetails',
    'NotebookSessionNotebookSessionConfigurationDetails',
    'NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetails',
    'NotebookSessionNotebookSessionRuntimeConfigDetails',
    'NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetails',
    'NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollection',
    'PipelineConfigurationDetails',
    'PipelineInfrastructureConfigurationDetails',
    'PipelineInfrastructureConfigurationDetailsShapeConfigDetails',
    'PipelineLogConfigurationDetails',
    'PipelineRunConfigurationDetail',
    'PipelineRunConfigurationOverrideDetails',
    'PipelineRunLogConfigurationOverrideDetails',
    'PipelineRunLogDetail',
    'PipelineRunStepOverrideDetail',
    'PipelineRunStepOverrideDetailStepConfigurationDetails',
    'PipelineRunStepRun',
    'PipelineStepArtifact',
    'PipelineStepDetail',
    'PipelineStepDetailStepConfigurationDetails',
    'PipelineStepDetailStepInfrastructureConfigurationDetails',
    'PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetails',
    'GetFastLaunchJobConfigsFastLaunchJobConfigResult',
    'GetFastLaunchJobConfigsFilterResult',
    'GetJobJobConfigurationDetailResult',
    'GetJobJobInfrastructureConfigurationDetailResult',
    'GetJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult',
    'GetJobJobLogConfigurationDetailResult',
    'GetJobRunJobConfigurationOverrideDetailResult',
    'GetJobRunJobInfrastructureConfigurationDetailResult',
    'GetJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult',
    'GetJobRunJobLogConfigurationOverrideDetailResult',
    'GetJobRunLogDetailResult',
    'GetJobRunsFilterResult',
    'GetJobRunsJobRunResult',
    'GetJobRunsJobRunJobConfigurationOverrideDetailResult',
    'GetJobRunsJobRunJobInfrastructureConfigurationDetailResult',
    'GetJobRunsJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult',
    'GetJobRunsJobRunJobLogConfigurationOverrideDetailResult',
    'GetJobRunsJobRunLogDetailResult',
    'GetJobShapesFilterResult',
    'GetJobShapesJobShapeResult',
    'GetJobsFilterResult',
    'GetJobsJobResult',
    'GetJobsJobJobConfigurationDetailResult',
    'GetJobsJobJobInfrastructureConfigurationDetailResult',
    'GetJobsJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult',
    'GetJobsJobJobLogConfigurationDetailResult',
    'GetModelCustomMetadataListResult',
    'GetModelDefinedMetadataListResult',
    'GetModelDeploymentCategoryLogDetailResult',
    'GetModelDeploymentCategoryLogDetailAccessResult',
    'GetModelDeploymentCategoryLogDetailPredictResult',
    'GetModelDeploymentModelDeploymentConfigurationDetailResult',
    'GetModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult',
    'GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult',
    'GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult',
    'GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult',
    'GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult',
    'GetModelDeploymentShapesFilterResult',
    'GetModelDeploymentShapesModelDeploymentShapeResult',
    'GetModelDeploymentsFilterResult',
    'GetModelDeploymentsModelDeploymentResult',
    'GetModelDeploymentsModelDeploymentCategoryLogDetailResult',
    'GetModelDeploymentsModelDeploymentCategoryLogDetailAccessResult',
    'GetModelDeploymentsModelDeploymentCategoryLogDetailPredictResult',
    'GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailResult',
    'GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult',
    'GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult',
    'GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult',
    'GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult',
    'GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult',
    'GetModelVersionSetsFilterResult',
    'GetModelVersionSetsModelVersionSetResult',
    'GetModelsFilterResult',
    'GetModelsModelResult',
    'GetModelsModelCustomMetadataListResult',
    'GetModelsModelDefinedMetadataListResult',
    'GetNotebookSessionNotebookSessionConfigDetailResult',
    'GetNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult',
    'GetNotebookSessionNotebookSessionConfigurationDetailResult',
    'GetNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult',
    'GetNotebookSessionNotebookSessionRuntimeConfigDetailResult',
    'GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult',
    'GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult',
    'GetNotebookSessionShapesFilterResult',
    'GetNotebookSessionShapesNotebookSessionShapeResult',
    'GetNotebookSessionsFilterResult',
    'GetNotebookSessionsNotebookSessionResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult',
    'GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult',
    'GetPipelineConfigurationDetailResult',
    'GetPipelineInfrastructureConfigurationDetailResult',
    'GetPipelineInfrastructureConfigurationDetailShapeConfigDetailResult',
    'GetPipelineLogConfigurationDetailResult',
    'GetPipelineRunConfigurationDetailResult',
    'GetPipelineRunConfigurationOverrideDetailResult',
    'GetPipelineRunLogConfigurationOverrideDetailResult',
    'GetPipelineRunLogDetailResult',
    'GetPipelineRunStepOverrideDetailResult',
    'GetPipelineRunStepOverrideDetailStepConfigurationDetailResult',
    'GetPipelineRunStepRunResult',
    'GetPipelineRunsFilterResult',
    'GetPipelineRunsPipelineRunResult',
    'GetPipelineRunsPipelineRunConfigurationDetailResult',
    'GetPipelineRunsPipelineRunConfigurationOverrideDetailResult',
    'GetPipelineRunsPipelineRunLogConfigurationOverrideDetailResult',
    'GetPipelineRunsPipelineRunLogDetailResult',
    'GetPipelineRunsPipelineRunStepOverrideDetailResult',
    'GetPipelineRunsPipelineRunStepOverrideDetailStepConfigurationDetailResult',
    'GetPipelineRunsPipelineRunStepRunResult',
    'GetPipelineStepArtifactResult',
    'GetPipelineStepDetailResult',
    'GetPipelineStepDetailStepConfigurationDetailResult',
    'GetPipelineStepDetailStepInfrastructureConfigurationDetailResult',
    'GetPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult',
    'GetPipelinesFilterResult',
    'GetPipelinesPipelineResult',
    'GetPipelinesPipelineConfigurationDetailResult',
    'GetPipelinesPipelineInfrastructureConfigurationDetailResult',
    'GetPipelinesPipelineInfrastructureConfigurationDetailShapeConfigDetailResult',
    'GetPipelinesPipelineLogConfigurationDetailResult',
    'GetPipelinesPipelineStepArtifactResult',
    'GetPipelinesPipelineStepDetailResult',
    'GetPipelinesPipelineStepDetailStepConfigurationDetailResult',
    'GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailResult',
    'GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult',
    'GetProjectsFilterResult',
    'GetProjectsProjectResult',
]

@pulumi.output_type
class JobJobConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "jobType":
            suggest = "job_type"
        elif key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 job_type: str,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None):
        """
        :param str job_type: The type of job.
        :param str command_line_arguments: The arguments to pass to the job.
        :param Mapping[str, Any] environment_variables: Environment variables to set for the job.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        pulumi.set(__self__, "job_type", job_type)
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="jobType")
    def job_type(self) -> str:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        The arguments to pass to the job.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        Environment variables to set for the job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class JobJobInfrastructureConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockStorageSizeInGbs":
            suggest = "block_storage_size_in_gbs"
        elif key == "jobInfrastructureType":
            suggest = "job_infrastructure_type"
        elif key == "shapeName":
            suggest = "shape_name"
        elif key == "jobShapeConfigDetails":
            suggest = "job_shape_config_details"
        elif key == "subnetId":
            suggest = "subnet_id"

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

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

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

    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 job_infrastructure_type: str,
                 shape_name: str,
                 job_shape_config_details: Optional['outputs.JobJobInfrastructureConfigurationDetailsJobShapeConfigDetails'] = None,
                 subnet_id: Optional[str] = None):
        """
        :param int block_storage_size_in_gbs: (Updatable) The size of the block storage volume to attach to the instance running the job
        :param str job_infrastructure_type: (Updatable) The infrastructure type used for job run.
        :param str shape_name: (Updatable) The shape used to launch the job run instances.
        :param 'JobJobInfrastructureConfigurationDetailsJobShapeConfigDetailsArgs' job_shape_config_details: (Updatable) Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param str subnet_id: (Updatable) The subnet to create a secondary vnic in to attach to the instance running the job
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "job_infrastructure_type", job_infrastructure_type)
        pulumi.set(__self__, "shape_name", shape_name)
        if job_shape_config_details is not None:
            pulumi.set(__self__, "job_shape_config_details", job_shape_config_details)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        (Updatable) The size of the block storage volume to attach to the instance running the job
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="jobInfrastructureType")
    def job_infrastructure_type(self) -> str:
        """
        (Updatable) The infrastructure type used for job run.
        """
        return pulumi.get(self, "job_infrastructure_type")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        (Updatable) The shape used to launch the job run instances.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="jobShapeConfigDetails")
    def job_shape_config_details(self) -> Optional['outputs.JobJobInfrastructureConfigurationDetailsJobShapeConfigDetails']:
        """
        (Updatable) Details for the job run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "job_shape_config_details")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[str]:
        """
        (Updatable) The subnet to create a secondary vnic in to attach to the instance running the job
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class JobJobInfrastructureConfigurationDetailsJobShapeConfigDetails(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 JobJobInfrastructureConfigurationDetailsJobShapeConfigDetails. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: (Updatable) The total amount of memory available to the job run instance, in gigabytes.
        :param float ocpus: (Updatable) The total number of OCPUs available to the job run instance.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        (Updatable) The total amount of memory available to the job run instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

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


@pulumi.output_type
class JobJobLogConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "enableAutoLogCreation":
            suggest = "enable_auto_log_creation"
        elif key == "enableLogging":
            suggest = "enable_logging"
        elif key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[bool] = None,
                 enable_logging: Optional[bool] = None,
                 log_group_id: Optional[str] = None,
                 log_id: Optional[str] = None):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param bool enable_logging: If customer logging is enabled for job runs.
        :param str log_group_id: The log group id for where log objects are for job runs.
        :param str log_id: The log id the job run will push logs too.
        """
        if enable_auto_log_creation is not None:
            pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        if enable_logging is not None:
            pulumi.set(__self__, "enable_logging", enable_logging)
        if log_group_id is not None:
            pulumi.set(__self__, "log_group_id", log_group_id)
        if log_id is not None:
            pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> Optional[bool]:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> Optional[bool]:
        """
        If customer logging is enabled for job runs.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[str]:
        """
        The log group id for where log objects are for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> Optional[str]:
        """
        The log id the job run will push logs too.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class JobRunJobConfigurationOverrideDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "jobType":
            suggest = "job_type"
        elif key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 job_type: str,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None):
        """
        :param str job_type: The type of job.
        :param str command_line_arguments: The arguments to pass to the job.
        :param Mapping[str, Any] environment_variables: Environment variables to set for the job.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        pulumi.set(__self__, "job_type", job_type)
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="jobType")
    def job_type(self) -> str:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        The arguments to pass to the job.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        Environment variables to set for the job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class JobRunJobInfrastructureConfigurationDetail(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockStorageSizeInGbs":
            suggest = "block_storage_size_in_gbs"
        elif key == "jobInfrastructureType":
            suggest = "job_infrastructure_type"
        elif key == "jobShapeConfigDetails":
            suggest = "job_shape_config_details"
        elif key == "shapeName":
            suggest = "shape_name"
        elif key == "subnetId":
            suggest = "subnet_id"

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

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

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

    def __init__(__self__, *,
                 block_storage_size_in_gbs: Optional[int] = None,
                 job_infrastructure_type: Optional[str] = None,
                 job_shape_config_details: Optional[Sequence['outputs.JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetail']] = None,
                 shape_name: Optional[str] = None,
                 subnet_id: Optional[str] = None):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance running the job
        :param str job_infrastructure_type: The infrastructure type used for job run.
        :param Sequence['JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs'] job_shape_config_details: Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the job run instances.
        :param str subnet_id: The subnet to create a secondary vnic in to attach to the instance running the job
        """
        if block_storage_size_in_gbs is not None:
            pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        if job_infrastructure_type is not None:
            pulumi.set(__self__, "job_infrastructure_type", job_infrastructure_type)
        if job_shape_config_details is not None:
            pulumi.set(__self__, "job_shape_config_details", job_shape_config_details)
        if shape_name is not None:
            pulumi.set(__self__, "shape_name", shape_name)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> Optional[int]:
        """
        The size of the block storage volume to attach to the instance running the job
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="jobInfrastructureType")
    def job_infrastructure_type(self) -> Optional[str]:
        """
        The infrastructure type used for job run.
        """
        return pulumi.get(self, "job_infrastructure_type")

    @property
    @pulumi.getter(name="jobShapeConfigDetails")
    def job_shape_config_details(self) -> Optional[Sequence['outputs.JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetail']]:
        """
        Details for the job run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "job_shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> Optional[str]:
        """
        The shape used to launch the job run instances.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[str]:
        """
        The subnet to create a secondary vnic in to attach to the instance running the job
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetail(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 JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetail. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: The total amount of memory available to the job run instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the job run instance.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        The total amount of memory available to the job run instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

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


@pulumi.output_type
class JobRunJobLogConfigurationOverrideDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "enableAutoLogCreation":
            suggest = "enable_auto_log_creation"
        elif key == "enableLogging":
            suggest = "enable_logging"
        elif key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[bool] = None,
                 enable_logging: Optional[bool] = None,
                 log_group_id: Optional[str] = None,
                 log_id: Optional[str] = None):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param bool enable_logging: If customer logging is enabled for job runs.
        :param str log_group_id: The log group id for where log objects are for job runs.
        :param str log_id: The log id the job run will push logs too.
        """
        if enable_auto_log_creation is not None:
            pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        if enable_logging is not None:
            pulumi.set(__self__, "enable_logging", enable_logging)
        if log_group_id is not None:
            pulumi.set(__self__, "log_group_id", log_group_id)
        if log_id is not None:
            pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> Optional[bool]:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> Optional[bool]:
        """
        If customer logging is enabled for job runs.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[str]:
        """
        The log group id for where log objects are for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> Optional[str]:
        """
        The log id the job run will push logs too.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class JobRunLogDetail(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 log_group_id: Optional[str] = None,
                 log_id: Optional[str] = None):
        """
        :param str log_group_id: The log group id for where log objects are for job runs.
        :param str log_id: The log id the job run will push logs too.
        """
        if log_group_id is not None:
            pulumi.set(__self__, "log_group_id", log_group_id)
        if log_id is not None:
            pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[str]:
        """
        The log group id for where log objects are for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> Optional[str]:
        """
        The log id the job run will push logs too.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class ModelCustomMetadataList(dict):
    def __init__(__self__, *,
                 category: Optional[str] = None,
                 description: Optional[str] = None,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str category: (Updatable) Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        :param str description: (Updatable) A short description of the model.
        :param str key: (Updatable) Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
               * useCaseType
               * libraryName
               * libraryVersion
               * estimatorClass
               * hyperParameters
               * testartifactresults
        :param str value: (Updatable) Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
               
               Allowed values for libraryName: scikit-learn, xgboost, tensorflow, pytorch, mxnet, keras, lightGBM, pymc3, pyOD, spacy, prophet, sktime, statsmodels, cuml, oracle_automl, h2o, transformers, nltk, emcee, pystan, bert, gensim, flair, word2vec, ensemble, other
        """
        if category is not None:
            pulumi.set(__self__, "category", category)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def category(self) -> Optional[str]:
        """
        (Updatable) Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        (Updatable) A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        (Updatable) Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
        * useCaseType
        * libraryName
        * libraryVersion
        * estimatorClass
        * hyperParameters
        * testartifactresults
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        (Updatable) Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other

        Allowed values for libraryName: scikit-learn, xgboost, tensorflow, pytorch, mxnet, keras, lightGBM, pymc3, pyOD, spacy, prophet, sktime, statsmodels, cuml, oracle_automl, h2o, transformers, nltk, emcee, pystan, bert, gensim, flair, word2vec, ensemble, other
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class ModelDefinedMetadataList(dict):
    def __init__(__self__, *,
                 category: Optional[str] = None,
                 description: Optional[str] = None,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str category: (Updatable) Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        :param str description: (Updatable) A short description of the model.
        :param str key: (Updatable) Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
               * useCaseType
               * libraryName
               * libraryVersion
               * estimatorClass
               * hyperParameters
               * testartifactresults
        :param str value: (Updatable) Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
               
               Allowed values for libraryName: scikit-learn, xgboost, tensorflow, pytorch, mxnet, keras, lightGBM, pymc3, pyOD, spacy, prophet, sktime, statsmodels, cuml, oracle_automl, h2o, transformers, nltk, emcee, pystan, bert, gensim, flair, word2vec, ensemble, other
        """
        if category is not None:
            pulumi.set(__self__, "category", category)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def category(self) -> Optional[str]:
        """
        (Updatable) Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        (Updatable) A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        (Updatable) Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
        * useCaseType
        * libraryName
        * libraryVersion
        * estimatorClass
        * hyperParameters
        * testartifactresults
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        (Updatable) Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other

        Allowed values for libraryName: scikit-learn, xgboost, tensorflow, pytorch, mxnet, keras, lightGBM, pymc3, pyOD, spacy, prophet, sktime, statsmodels, cuml, oracle_automl, h2o, transformers, nltk, emcee, pystan, bert, gensim, flair, word2vec, ensemble, other
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class ModelDeploymentCategoryLogDetails(dict):
    def __init__(__self__, *,
                 access: Optional['outputs.ModelDeploymentCategoryLogDetailsAccess'] = None,
                 predict: Optional['outputs.ModelDeploymentCategoryLogDetailsPredict'] = None):
        """
        :param 'ModelDeploymentCategoryLogDetailsAccessArgs' access: (Updatable) The log details.
        :param 'ModelDeploymentCategoryLogDetailsPredictArgs' predict: (Updatable) The log details.
        """
        if access is not None:
            pulumi.set(__self__, "access", access)
        if predict is not None:
            pulumi.set(__self__, "predict", predict)

    @property
    @pulumi.getter
    def access(self) -> Optional['outputs.ModelDeploymentCategoryLogDetailsAccess']:
        """
        (Updatable) The log details.
        """
        return pulumi.get(self, "access")

    @property
    @pulumi.getter
    def predict(self) -> Optional['outputs.ModelDeploymentCategoryLogDetailsPredict']:
        """
        (Updatable) The log details.
        """
        return pulumi.get(self, "predict")


@pulumi.output_type
class ModelDeploymentCategoryLogDetailsAccess(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        :param str log_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class ModelDeploymentCategoryLogDetailsPredict(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        :param str log_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class ModelDeploymentModelDeploymentConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "deploymentType":
            suggest = "deployment_type"
        elif key == "modelConfigurationDetails":
            suggest = "model_configuration_details"
        elif key == "environmentConfigurationDetails":
            suggest = "environment_configuration_details"

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

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

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

    def __init__(__self__, *,
                 deployment_type: str,
                 model_configuration_details: 'outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetails',
                 environment_configuration_details: Optional['outputs.ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetails'] = None):
        """
        :param str deployment_type: (Updatable) The type of the model deployment.
        :param 'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsArgs' model_configuration_details: (Updatable) The model configuration details.
        :param 'ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetailsArgs' environment_configuration_details: (Updatable) The configuration to carry the environment details thats used in Model Deployment creation
        """
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "model_configuration_details", model_configuration_details)
        if environment_configuration_details is not None:
            pulumi.set(__self__, "environment_configuration_details", environment_configuration_details)

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> str:
        """
        (Updatable) The type of the model deployment.
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter(name="modelConfigurationDetails")
    def model_configuration_details(self) -> 'outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetails':
        """
        (Updatable) The model configuration details.
        """
        return pulumi.get(self, "model_configuration_details")

    @property
    @pulumi.getter(name="environmentConfigurationDetails")
    def environment_configuration_details(self) -> Optional['outputs.ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetails']:
        """
        (Updatable) The configuration to carry the environment details thats used in Model Deployment creation
        """
        return pulumi.get(self, "environment_configuration_details")


@pulumi.output_type
class ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "environmentConfigurationType":
            suggest = "environment_configuration_type"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "healthCheckPort":
            suggest = "health_check_port"
        elif key == "imageDigest":
            suggest = "image_digest"
        elif key == "serverPort":
            suggest = "server_port"

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

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

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

    def __init__(__self__, *,
                 environment_configuration_type: str,
                 cmds: Optional[Sequence[str]] = None,
                 entrypoints: Optional[Sequence[str]] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 health_check_port: Optional[int] = None,
                 image: Optional[str] = None,
                 image_digest: Optional[str] = None,
                 server_port: Optional[int] = None):
        """
        :param str environment_configuration_type: (Updatable) The environment configuration type
        :param Sequence[str] cmds: (Updatable) The container image run [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.
        :param Sequence[str] entrypoints: (Updatable) The container image run [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
        :param Mapping[str, Any] environment_variables: (Updatable) Environment variables to set for the web server container. The size of envVars must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall environment variables is limited to 2048 bytes. Key can't be reserved Model Deployment environment variables.
        :param int health_check_port: (Updatable) The port on which the container [HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck) would listen. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        :param str image: (Updatable) The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`
        :param str image_digest: (Updatable) The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        :param int server_port: (Updatable) The port on which the web server serving the inference is running. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        pulumi.set(__self__, "environment_configuration_type", environment_configuration_type)
        if cmds is not None:
            pulumi.set(__self__, "cmds", cmds)
        if entrypoints is not None:
            pulumi.set(__self__, "entrypoints", entrypoints)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if health_check_port is not None:
            pulumi.set(__self__, "health_check_port", health_check_port)
        if image is not None:
            pulumi.set(__self__, "image", image)
        if image_digest is not None:
            pulumi.set(__self__, "image_digest", image_digest)
        if server_port is not None:
            pulumi.set(__self__, "server_port", server_port)

    @property
    @pulumi.getter(name="environmentConfigurationType")
    def environment_configuration_type(self) -> str:
        """
        (Updatable) The environment configuration type
        """
        return pulumi.get(self, "environment_configuration_type")

    @property
    @pulumi.getter
    def cmds(self) -> Optional[Sequence[str]]:
        """
        (Updatable) The container image run [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.
        """
        return pulumi.get(self, "cmds")

    @property
    @pulumi.getter
    def entrypoints(self) -> Optional[Sequence[str]]:
        """
        (Updatable) The container image run [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
        """
        return pulumi.get(self, "entrypoints")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        (Updatable) Environment variables to set for the web server container. The size of envVars must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall environment variables is limited to 2048 bytes. Key can't be reserved Model Deployment environment variables.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="healthCheckPort")
    def health_check_port(self) -> Optional[int]:
        """
        (Updatable) The port on which the container [HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck) would listen. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        return pulumi.get(self, "health_check_port")

    @property
    @pulumi.getter
    def image(self) -> Optional[str]:
        """
        (Updatable) The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`
        """
        return pulumi.get(self, "image")

    @property
    @pulumi.getter(name="imageDigest")
    def image_digest(self) -> Optional[str]:
        """
        (Updatable) The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        """
        return pulumi.get(self, "image_digest")

    @property
    @pulumi.getter(name="serverPort")
    def server_port(self) -> Optional[int]:
        """
        (Updatable) The port on which the web server serving the inference is running. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        return pulumi.get(self, "server_port")


@pulumi.output_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "instanceConfiguration":
            suggest = "instance_configuration"
        elif key == "modelId":
            suggest = "model_id"
        elif key == "bandwidthMbps":
            suggest = "bandwidth_mbps"
        elif key == "scalingPolicy":
            suggest = "scaling_policy"

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

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

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

    def __init__(__self__, *,
                 instance_configuration: 'outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfiguration',
                 model_id: str,
                 bandwidth_mbps: Optional[int] = None,
                 scaling_policy: Optional['outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicy'] = None):
        """
        :param 'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationArgs' instance_configuration: (Updatable) The model deployment instance configuration
        :param str model_id: (Updatable) The OCID of the model you want to deploy.
        :param int bandwidth_mbps: (Updatable) The network bandwidth for the model.
        :param 'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicyArgs' scaling_policy: (Updatable) The scaling policy to apply to each model of the deployment.
        """
        pulumi.set(__self__, "instance_configuration", instance_configuration)
        pulumi.set(__self__, "model_id", model_id)
        if bandwidth_mbps is not None:
            pulumi.set(__self__, "bandwidth_mbps", bandwidth_mbps)
        if scaling_policy is not None:
            pulumi.set(__self__, "scaling_policy", scaling_policy)

    @property
    @pulumi.getter(name="instanceConfiguration")
    def instance_configuration(self) -> 'outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfiguration':
        """
        (Updatable) The model deployment instance configuration
        """
        return pulumi.get(self, "instance_configuration")

    @property
    @pulumi.getter(name="modelId")
    def model_id(self) -> str:
        """
        (Updatable) The OCID of the model you want to deploy.
        """
        return pulumi.get(self, "model_id")

    @property
    @pulumi.getter(name="bandwidthMbps")
    def bandwidth_mbps(self) -> Optional[int]:
        """
        (Updatable) The network bandwidth for the model.
        """
        return pulumi.get(self, "bandwidth_mbps")

    @property
    @pulumi.getter(name="scalingPolicy")
    def scaling_policy(self) -> Optional['outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicy']:
        """
        (Updatable) The scaling policy to apply to each model of the deployment.
        """
        return pulumi.get(self, "scaling_policy")


@pulumi.output_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfiguration(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "instanceShapeName":
            suggest = "instance_shape_name"
        elif key == "modelDeploymentInstanceShapeConfigDetails":
            suggest = "model_deployment_instance_shape_config_details"

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

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

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

    def __init__(__self__, *,
                 instance_shape_name: str,
                 model_deployment_instance_shape_config_details: Optional['outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetails'] = None):
        """
        :param str instance_shape_name: (Updatable) The shape used to launch the model deployment instances.
        :param 'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetailsArgs' model_deployment_instance_shape_config_details: (Updatable) Details for the model-deployment instance shape configuration.
        """
        pulumi.set(__self__, "instance_shape_name", instance_shape_name)
        if model_deployment_instance_shape_config_details is not None:
            pulumi.set(__self__, "model_deployment_instance_shape_config_details", model_deployment_instance_shape_config_details)

    @property
    @pulumi.getter(name="instanceShapeName")
    def instance_shape_name(self) -> str:
        """
        (Updatable) The shape used to launch the model deployment instances.
        """
        return pulumi.get(self, "instance_shape_name")

    @property
    @pulumi.getter(name="modelDeploymentInstanceShapeConfigDetails")
    def model_deployment_instance_shape_config_details(self) -> Optional['outputs.ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetails']:
        """
        (Updatable) Details for the model-deployment instance shape configuration.
        """
        return pulumi.get(self, "model_deployment_instance_shape_config_details")


@pulumi.output_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetails(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 ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetails. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: (Updatable) A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the memory to be specified with in the range of 6 to 1024 GB. VM.Standard3.Flex memory range is between 6 to 512 GB and VM.Optimized3.Flex memory range is between 6 to 256 GB.
        :param float ocpus: (Updatable) A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the ocpu count to be specified with in the range of 1 to 64 ocpu. VM.Standard3.Flex OCPU range is between 1 to 32 ocpu and for VM.Optimized3.Flex OCPU range is 1 to 18 ocpu.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        (Updatable) A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the memory to be specified with in the range of 6 to 1024 GB. VM.Standard3.Flex memory range is between 6 to 512 GB and VM.Optimized3.Flex memory range is between 6 to 256 GB.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> Optional[float]:
        """
        (Updatable) A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the ocpu count to be specified with in the range of 1 to 64 ocpu. VM.Standard3.Flex OCPU range is between 1 to 32 ocpu and for VM.Optimized3.Flex OCPU range is 1 to 18 ocpu.
        """
        return pulumi.get(self, "ocpus")


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

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

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

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

    def __init__(__self__, *,
                 instance_count: int,
                 policy_type: str):
        """
        :param int instance_count: (Updatable) The number of instances for the model deployment.
        :param str policy_type: (Updatable) The type of scaling policy.
        """
        pulumi.set(__self__, "instance_count", instance_count)
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="instanceCount")
    def instance_count(self) -> int:
        """
        (Updatable) The number of instances for the model deployment.
        """
        return pulumi.get(self, "instance_count")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        (Updatable) The type of scaling policy.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class NotebookSessionNotebookSessionConfigDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockStorageSizeInGbs":
            suggest = "block_storage_size_in_gbs"
        elif key == "notebookSessionShapeConfigDetails":
            suggest = "notebook_session_shape_config_details"
        elif key == "subnetId":
            suggest = "subnet_id"

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

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

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

    def __init__(__self__, *,
                 shape: str,
                 block_storage_size_in_gbs: Optional[int] = None,
                 notebook_session_shape_config_details: Optional['outputs.NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetails'] = None,
                 subnet_id: Optional[str] = None):
        """
        :param str shape: (Updatable) The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        :param int block_storage_size_in_gbs: (Updatable) A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        :param 'NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetailsArgs' notebook_session_shape_config_details: (Updatable) Details for the notebook session shape configuration.
        :param str subnet_id: (Updatable) A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        pulumi.set(__self__, "shape", shape)
        if block_storage_size_in_gbs is not None:
            pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        if notebook_session_shape_config_details is not None:
            pulumi.set(__self__, "notebook_session_shape_config_details", notebook_session_shape_config_details)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter
    def shape(self) -> str:
        """
        (Updatable) The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        """
        return pulumi.get(self, "shape")

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> Optional[int]:
        """
        (Updatable) A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="notebookSessionShapeConfigDetails")
    def notebook_session_shape_config_details(self) -> Optional['outputs.NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetails']:
        """
        (Updatable) Details for the notebook session shape configuration.
        """
        return pulumi.get(self, "notebook_session_shape_config_details")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[str]:
        """
        (Updatable) A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetails(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 NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetails. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: (Updatable) The total amount of memory available to the notebook session instance, in gigabytes.
        :param float ocpus: (Updatable) The total number of OCPUs available to the notebook session instance.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        (Updatable) The total amount of memory available to the notebook session instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

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


@pulumi.output_type
class NotebookSessionNotebookSessionConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "subnetId":
            suggest = "subnet_id"
        elif key == "blockStorageSizeInGbs":
            suggest = "block_storage_size_in_gbs"
        elif key == "notebookSessionShapeConfigDetails":
            suggest = "notebook_session_shape_config_details"

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

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

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

    def __init__(__self__, *,
                 shape: str,
                 subnet_id: str,
                 block_storage_size_in_gbs: Optional[int] = None,
                 notebook_session_shape_config_details: Optional['outputs.NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetails'] = None):
        """
        :param str shape: (Updatable) The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        :param str subnet_id: (Updatable) A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        :param int block_storage_size_in_gbs: (Updatable) A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        :param 'NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetailsArgs' notebook_session_shape_config_details: (Updatable) Details for the notebook session shape configuration.
        """
        pulumi.set(__self__, "shape", shape)
        pulumi.set(__self__, "subnet_id", subnet_id)
        if block_storage_size_in_gbs is not None:
            pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        if notebook_session_shape_config_details is not None:
            pulumi.set(__self__, "notebook_session_shape_config_details", notebook_session_shape_config_details)

    @property
    @pulumi.getter
    def shape(self) -> str:
        """
        (Updatable) The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        """
        return pulumi.get(self, "shape")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        (Updatable) A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> Optional[int]:
        """
        (Updatable) A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="notebookSessionShapeConfigDetails")
    def notebook_session_shape_config_details(self) -> Optional['outputs.NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetails']:
        """
        (Updatable) Details for the notebook session shape configuration.
        """
        return pulumi.get(self, "notebook_session_shape_config_details")


@pulumi.output_type
class NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetails(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 NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetails. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: (Updatable) The total amount of memory available to the notebook session instance, in gigabytes.
        :param float ocpus: (Updatable) The total number of OCPUs available to the notebook session instance.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        (Updatable) The total amount of memory available to the notebook session instance, in gigabytes.
        """
        return pulumi.get(self, "memory_in_gbs")

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


@pulumi.output_type
class NotebookSessionNotebookSessionRuntimeConfigDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "customEnvironmentVariables":
            suggest = "custom_environment_variables"
        elif key == "notebookSessionGitConfigDetails":
            suggest = "notebook_session_git_config_details"

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

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

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

    def __init__(__self__, *,
                 custom_environment_variables: Optional[Mapping[str, Any]] = None,
                 notebook_session_git_config_details: Optional['outputs.NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetails'] = None):
        """
        :param Mapping[str, Any] custom_environment_variables: (Updatable) Custom environment variables for Notebook Session. These key-value pairs will be available for customers in Notebook Sessions.
        :param 'NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsArgs' notebook_session_git_config_details: (Updatable) Git configuration Details.
        """
        if custom_environment_variables is not None:
            pulumi.set(__self__, "custom_environment_variables", custom_environment_variables)
        if notebook_session_git_config_details is not None:
            pulumi.set(__self__, "notebook_session_git_config_details", notebook_session_git_config_details)

    @property
    @pulumi.getter(name="customEnvironmentVariables")
    def custom_environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        (Updatable) Custom environment variables for Notebook Session. These key-value pairs will be available for customers in Notebook Sessions.
        """
        return pulumi.get(self, "custom_environment_variables")

    @property
    @pulumi.getter(name="notebookSessionGitConfigDetails")
    def notebook_session_git_config_details(self) -> Optional['outputs.NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetails']:
        """
        (Updatable) Git configuration Details.
        """
        return pulumi.get(self, "notebook_session_git_config_details")


@pulumi.output_type
class NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "notebookSessionGitRepoConfigCollections":
            suggest = "notebook_session_git_repo_config_collections"

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

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

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

    def __init__(__self__, *,
                 notebook_session_git_repo_config_collections: Optional[Sequence['outputs.NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollection']] = None):
        """
        :param Sequence['NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollectionArgs'] notebook_session_git_repo_config_collections: (Updatable) A collection of Git repository configurations.
        """
        if notebook_session_git_repo_config_collections is not None:
            pulumi.set(__self__, "notebook_session_git_repo_config_collections", notebook_session_git_repo_config_collections)

    @property
    @pulumi.getter(name="notebookSessionGitRepoConfigCollections")
    def notebook_session_git_repo_config_collections(self) -> Optional[Sequence['outputs.NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollection']]:
        """
        (Updatable) A collection of Git repository configurations.
        """
        return pulumi.get(self, "notebook_session_git_repo_config_collections")


@pulumi.output_type
class NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollection(dict):
    def __init__(__self__, *,
                 url: str):
        """
        :param str url: (Updatable) The repository URL
        """
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def url(self) -> str:
        """
        (Updatable) The repository URL
        """
        return pulumi.get(self, "url")


@pulumi.output_type
class PipelineConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 type: str,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None):
        """
        :param str type: (Updatable) The type of pipeline.
        :param str command_line_arguments: (Updatable) The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: (Updatable) Environment variables to set for step.
        :param str maximum_runtime_in_minutes: (Updatable) A time bound for the execution of the step.
        """
        pulumi.set(__self__, "type", type)
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        (Updatable) The type of pipeline.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        (Updatable) The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        (Updatable) Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        (Updatable) A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class PipelineInfrastructureConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockStorageSizeInGbs":
            suggest = "block_storage_size_in_gbs"
        elif key == "shapeName":
            suggest = "shape_name"
        elif key == "shapeConfigDetails":
            suggest = "shape_config_details"

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

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

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

    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 shape_name: str,
                 shape_config_details: Optional['outputs.PipelineInfrastructureConfigurationDetailsShapeConfigDetails'] = None):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param str shape_name: The shape used to launch the instance for all step runs in the pipeline.
        :param 'PipelineInfrastructureConfigurationDetailsShapeConfigDetailsArgs' shape_config_details: Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "shape_name", shape_name)
        if shape_config_details is not None:
            pulumi.set(__self__, "shape_config_details", shape_config_details)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the instance for all step runs in the pipeline.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="shapeConfigDetails")
    def shape_config_details(self) -> Optional['outputs.PipelineInfrastructureConfigurationDetailsShapeConfigDetails']:
        """
        Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "shape_config_details")


@pulumi.output_type
class PipelineInfrastructureConfigurationDetailsShapeConfigDetails(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 PipelineInfrastructureConfigurationDetailsShapeConfigDetails. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        :param float ocpus: A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> Optional[float]:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class PipelineLogConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "enableAutoLogCreation":
            suggest = "enable_auto_log_creation"
        elif key == "enableLogging":
            suggest = "enable_logging"
        elif key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[bool] = None,
                 enable_logging: Optional[bool] = None,
                 log_group_id: Optional[str] = None,
                 log_id: Optional[str] = None):
        """
        :param bool enable_auto_log_creation: (Updatable) If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param bool enable_logging: (Updatable) If customer logging is enabled for pipeline.
        :param str log_group_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param str log_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        if enable_auto_log_creation is not None:
            pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        if enable_logging is not None:
            pulumi.set(__self__, "enable_logging", enable_logging)
        if log_group_id is not None:
            pulumi.set(__self__, "log_group_id", log_group_id)
        if log_id is not None:
            pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> Optional[bool]:
        """
        (Updatable) If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> Optional[bool]:
        """
        (Updatable) If customer logging is enabled for pipeline.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[str]:
        """
        (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> Optional[str]:
        """
        (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class PipelineRunConfigurationDetail(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None,
                 type: Optional[str] = None):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class PipelineRunConfigurationOverrideDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 type: str,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None):
        """
        :param str type: The type of pipeline.
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        """
        pulumi.set(__self__, "type", type)
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class PipelineRunLogConfigurationOverrideDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "enableAutoLogCreation":
            suggest = "enable_auto_log_creation"
        elif key == "enableLogging":
            suggest = "enable_logging"
        elif key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[bool] = None,
                 enable_logging: Optional[bool] = None,
                 log_group_id: Optional[str] = None,
                 log_id: Optional[str] = None):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param bool enable_logging: If customer logging is enabled for pipeline.
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        if enable_auto_log_creation is not None:
            pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        if enable_logging is not None:
            pulumi.set(__self__, "enable_logging", enable_logging)
        if log_group_id is not None:
            pulumi.set(__self__, "log_group_id", log_group_id)
        if log_id is not None:
            pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> Optional[bool]:
        """
        If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> Optional[bool]:
        """
        If customer logging is enabled for pipeline.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[str]:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> Optional[str]:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class PipelineRunLogDetail(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logGroupId":
            suggest = "log_group_id"
        elif key == "logId":
            suggest = "log_id"

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

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

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

    def __init__(__self__, *,
                 log_group_id: Optional[str] = None,
                 log_id: Optional[str] = None):
        """
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        if log_group_id is not None:
            pulumi.set(__self__, "log_group_id", log_group_id)
        if log_id is not None:
            pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[str]:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> Optional[str]:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class PipelineRunStepOverrideDetail(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "stepConfigurationDetails":
            suggest = "step_configuration_details"
        elif key == "stepName":
            suggest = "step_name"

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

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

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

    def __init__(__self__, *,
                 step_configuration_details: 'outputs.PipelineRunStepOverrideDetailStepConfigurationDetails',
                 step_name: str):
        """
        :param 'PipelineRunStepOverrideDetailStepConfigurationDetailsArgs' step_configuration_details: The configuration details of a step.
        :param str step_name: The name of the step.
        """
        pulumi.set(__self__, "step_configuration_details", step_configuration_details)
        pulumi.set(__self__, "step_name", step_name)

    @property
    @pulumi.getter(name="stepConfigurationDetails")
    def step_configuration_details(self) -> 'outputs.PipelineRunStepOverrideDetailStepConfigurationDetails':
        """
        The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

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


@pulumi.output_type
class PipelineRunStepOverrideDetailStepConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        """
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class PipelineRunStepRun(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "jobRunId":
            suggest = "job_run_id"
        elif key == "lifecycleDetails":
            suggest = "lifecycle_details"
        elif key == "stepName":
            suggest = "step_name"
        elif key == "stepType":
            suggest = "step_type"
        elif key == "timeFinished":
            suggest = "time_finished"
        elif key == "timeStarted":
            suggest = "time_started"

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

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

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

    def __init__(__self__, *,
                 job_run_id: Optional[str] = None,
                 lifecycle_details: Optional[str] = None,
                 state: Optional[str] = None,
                 step_name: Optional[str] = None,
                 step_type: Optional[str] = None,
                 time_finished: Optional[str] = None,
                 time_started: Optional[str] = None):
        """
        :param str job_run_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job run triggered for this step run.
        :param str lifecycle_details: Details of the state of the step run.
        :param str state: The state of the step run.
        :param str step_name: The name of the step.
        :param str step_type: The type of step.
        :param str time_finished: The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_started: The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        if job_run_id is not None:
            pulumi.set(__self__, "job_run_id", job_run_id)
        if lifecycle_details is not None:
            pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        if state is not None:
            pulumi.set(__self__, "state", state)
        if step_name is not None:
            pulumi.set(__self__, "step_name", step_name)
        if step_type is not None:
            pulumi.set(__self__, "step_type", step_type)
        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="jobRunId")
    def job_run_id(self) -> Optional[str]:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job run triggered for this step run.
        """
        return pulumi.get(self, "job_run_id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> Optional[str]:
        """
        Details of the state of the step run.
        """
        return pulumi.get(self, "lifecycle_details")

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

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> Optional[str]:
        """
        The name of the step.
        """
        return pulumi.get(self, "step_name")

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> Optional[str]:
        """
        The type of step.
        """
        return pulumi.get(self, "step_type")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> Optional[str]:
        """
        The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> Optional[str]:
        """
        The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class PipelineStepArtifact(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "artifactContentLength":
            suggest = "artifact_content_length"
        elif key == "pipelineStepArtifact":
            suggest = "pipeline_step_artifact"
        elif key == "stepName":
            suggest = "step_name"
        elif key == "artifactContentDisposition":
            suggest = "artifact_content_disposition"
        elif key == "artifactContentMd5":
            suggest = "artifact_content_md5"
        elif key == "artifactLastModified":
            suggest = "artifact_last_modified"

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

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

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

    def __init__(__self__, *,
                 artifact_content_length: str,
                 pipeline_step_artifact: str,
                 step_name: str,
                 artifact_content_disposition: Optional[str] = None,
                 artifact_content_md5: Optional[str] = None,
                 artifact_last_modified: Optional[str] = None):
        """
        :param str step_name: (Updatable) The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        pulumi.set(__self__, "artifact_content_length", artifact_content_length)
        pulumi.set(__self__, "pipeline_step_artifact", pipeline_step_artifact)
        pulumi.set(__self__, "step_name", step_name)
        if artifact_content_disposition is not None:
            pulumi.set(__self__, "artifact_content_disposition", artifact_content_disposition)
        if artifact_content_md5 is not None:
            pulumi.set(__self__, "artifact_content_md5", artifact_content_md5)
        if artifact_last_modified is not None:
            pulumi.set(__self__, "artifact_last_modified", artifact_last_modified)

    @property
    @pulumi.getter(name="artifactContentLength")
    def artifact_content_length(self) -> str:
        return pulumi.get(self, "artifact_content_length")

    @property
    @pulumi.getter(name="pipelineStepArtifact")
    def pipeline_step_artifact(self) -> str:
        return pulumi.get(self, "pipeline_step_artifact")

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> str:
        """
        (Updatable) The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        return pulumi.get(self, "step_name")

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

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

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


@pulumi.output_type
class PipelineStepDetail(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "stepName":
            suggest = "step_name"
        elif key == "stepType":
            suggest = "step_type"
        elif key == "dependsOns":
            suggest = "depends_ons"
        elif key == "isArtifactUploaded":
            suggest = "is_artifact_uploaded"
        elif key == "jobId":
            suggest = "job_id"
        elif key == "stepConfigurationDetails":
            suggest = "step_configuration_details"
        elif key == "stepInfrastructureConfigurationDetails":
            suggest = "step_infrastructure_configuration_details"

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

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

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

    def __init__(__self__, *,
                 step_name: str,
                 step_type: str,
                 depends_ons: Optional[Sequence[str]] = None,
                 description: Optional[str] = None,
                 is_artifact_uploaded: Optional[bool] = None,
                 job_id: Optional[str] = None,
                 step_configuration_details: Optional['outputs.PipelineStepDetailStepConfigurationDetails'] = None,
                 step_infrastructure_configuration_details: Optional['outputs.PipelineStepDetailStepInfrastructureConfigurationDetails'] = None):
        """
        :param str step_name: (Updatable) The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        :param str step_type: (Updatable) The type of step.
               
               
               ** 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] depends_ons: The list of step names this current step depends on for execution.
        :param str description: (Updatable) A short description of the step.
        :param bool is_artifact_uploaded: A flag to indicate whether the artifact has been uploaded for this step or not.
        :param str job_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job to be used as a step.
        :param 'PipelineStepDetailStepConfigurationDetailsArgs' step_configuration_details: (Updatable) The configuration details of a step.
        :param 'PipelineStepDetailStepInfrastructureConfigurationDetailsArgs' step_infrastructure_configuration_details: The infrastructure configuration details of a pipeline or a step.
        """
        pulumi.set(__self__, "step_name", step_name)
        pulumi.set(__self__, "step_type", step_type)
        if depends_ons is not None:
            pulumi.set(__self__, "depends_ons", depends_ons)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if is_artifact_uploaded is not None:
            pulumi.set(__self__, "is_artifact_uploaded", is_artifact_uploaded)
        if job_id is not None:
            pulumi.set(__self__, "job_id", job_id)
        if step_configuration_details is not None:
            pulumi.set(__self__, "step_configuration_details", step_configuration_details)
        if step_infrastructure_configuration_details is not None:
            pulumi.set(__self__, "step_infrastructure_configuration_details", step_infrastructure_configuration_details)

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> str:
        """
        (Updatable) The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        return pulumi.get(self, "step_name")

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> str:
        """
        (Updatable) The type of step.


        ** 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, "step_type")

    @property
    @pulumi.getter(name="dependsOns")
    def depends_ons(self) -> Optional[Sequence[str]]:
        """
        The list of step names this current step depends on for execution.
        """
        return pulumi.get(self, "depends_ons")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        (Updatable) A short description of the step.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="isArtifactUploaded")
    def is_artifact_uploaded(self) -> Optional[bool]:
        """
        A flag to indicate whether the artifact has been uploaded for this step or not.
        """
        return pulumi.get(self, "is_artifact_uploaded")

    @property
    @pulumi.getter(name="jobId")
    def job_id(self) -> Optional[str]:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job to be used as a step.
        """
        return pulumi.get(self, "job_id")

    @property
    @pulumi.getter(name="stepConfigurationDetails")
    def step_configuration_details(self) -> Optional['outputs.PipelineStepDetailStepConfigurationDetails']:
        """
        (Updatable) The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

    @property
    @pulumi.getter(name="stepInfrastructureConfigurationDetails")
    def step_infrastructure_configuration_details(self) -> Optional['outputs.PipelineStepDetailStepInfrastructureConfigurationDetails']:
        """
        The infrastructure configuration details of a pipeline or a step.
        """
        return pulumi.get(self, "step_infrastructure_configuration_details")


@pulumi.output_type
class PipelineStepDetailStepConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "commandLineArguments":
            suggest = "command_line_arguments"
        elif key == "environmentVariables":
            suggest = "environment_variables"
        elif key == "maximumRuntimeInMinutes":
            suggest = "maximum_runtime_in_minutes"

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

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

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

    def __init__(__self__, *,
                 command_line_arguments: Optional[str] = None,
                 environment_variables: Optional[Mapping[str, Any]] = None,
                 maximum_runtime_in_minutes: Optional[str] = None):
        """
        :param str command_line_arguments: (Updatable) The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: (Updatable) Environment variables to set for step.
        :param str maximum_runtime_in_minutes: (Updatable) A time bound for the execution of the step.
        """
        if command_line_arguments is not None:
            pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if maximum_runtime_in_minutes is not None:
            pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> Optional[str]:
        """
        (Updatable) The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[Mapping[str, Any]]:
        """
        (Updatable) Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[str]:
        """
        (Updatable) A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class PipelineStepDetailStepInfrastructureConfigurationDetails(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "blockStorageSizeInGbs":
            suggest = "block_storage_size_in_gbs"
        elif key == "shapeName":
            suggest = "shape_name"
        elif key == "shapeConfigDetails":
            suggest = "shape_config_details"

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

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

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

    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 shape_name: str,
                 shape_config_details: Optional['outputs.PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetails'] = None):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param str shape_name: The shape used to launch the instance for all step runs in the pipeline.
        :param 'PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetailsArgs' shape_config_details: Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "shape_name", shape_name)
        if shape_config_details is not None:
            pulumi.set(__self__, "shape_config_details", shape_config_details)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the instance for all step runs in the pipeline.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="shapeConfigDetails")
    def shape_config_details(self) -> Optional['outputs.PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetails']:
        """
        Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "shape_config_details")


@pulumi.output_type
class PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetails(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 PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetails. Access the value via the '{suggest}' property getter instead.")

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

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

    def __init__(__self__, *,
                 memory_in_gbs: Optional[float] = None,
                 ocpus: Optional[float] = None):
        """
        :param float memory_in_gbs: A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        :param float ocpus: A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        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="memoryInGbs")
    def memory_in_gbs(self) -> Optional[float]:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> Optional[float]:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetFastLaunchJobConfigsFastLaunchJobConfigResult(dict):
    def __init__(__self__, *,
                 core_count: int,
                 managed_egress_support: str,
                 memory_in_gbs: int,
                 name: str,
                 shape_name: str,
                 shape_series: str):
        """
        :param int core_count: The number of cores associated with this fast launch job shape.
        :param str managed_egress_support: The managed egress support
        :param int memory_in_gbs: The number of cores associated with this fast launch job shape.
        :param str name: The name of the fast launch job config
        :param str shape_name: The name of the fast launch job shape.
        :param str shape_series: The family that the compute shape belongs to.
        """
        pulumi.set(__self__, "core_count", core_count)
        pulumi.set(__self__, "managed_egress_support", managed_egress_support)
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "shape_name", shape_name)
        pulumi.set(__self__, "shape_series", shape_series)

    @property
    @pulumi.getter(name="coreCount")
    def core_count(self) -> int:
        """
        The number of cores associated with this fast launch job shape.
        """
        return pulumi.get(self, "core_count")

    @property
    @pulumi.getter(name="managedEgressSupport")
    def managed_egress_support(self) -> str:
        """
        The managed egress support
        """
        return pulumi.get(self, "managed_egress_support")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> int:
        """
        The number of cores associated with this fast launch job shape.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the fast launch job config
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The name of the fast launch job shape.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="shapeSeries")
    def shape_series(self) -> str:
        """
        The family that the compute shape belongs to.
        """
        return pulumi.get(self, "shape_series")


@pulumi.output_type
class GetFastLaunchJobConfigsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: The name of the fast launch job config
        """
        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:
        """
        The name of the fast launch job config
        """
        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 GetJobJobConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 job_type: str,
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The arguments to pass to the job.
        :param Mapping[str, Any] environment_variables: Environment variables to set for the job.
        :param str job_type: The type of job.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "job_type", job_type)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The arguments to pass to the job.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for the job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="jobType")
    def job_type(self) -> str:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetJobJobInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 job_infrastructure_type: str,
                 job_shape_config_details: Sequence['outputs.GetJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult'],
                 shape_name: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance running the job
        :param str job_infrastructure_type: The infrastructure type used for job run.
        :param Sequence['GetJobJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs'] job_shape_config_details: Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the job run instances.
        :param str subnet_id: The subnet to create a secondary vnic in to attach to the instance running the job
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "job_infrastructure_type", job_infrastructure_type)
        pulumi.set(__self__, "job_shape_config_details", job_shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance running the job
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="jobInfrastructureType")
    def job_infrastructure_type(self) -> str:
        """
        The infrastructure type used for job run.
        """
        return pulumi.get(self, "job_infrastructure_type")

    @property
    @pulumi.getter(name="jobShapeConfigDetails")
    def job_shape_config_details(self) -> Sequence['outputs.GetJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult']:
        """
        Details for the job run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "job_shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the job run instances.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The subnet to create a secondary vnic in to attach to the instance running the job
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the job run instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the job run 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 job run 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 job run instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetJobJobLogConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param bool enable_logging: If customer logging is enabled for job runs.
        :param str log_group_id: The log group id for where log objects are for job runs.
        :param str log_id: The log id the job run will push logs too.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for job runs.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects are for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id the job run will push logs too.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetJobRunJobConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 job_type: str,
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The arguments to pass to the job.
        :param Mapping[str, Any] environment_variables: Environment variables to set for the job.
        :param str job_type: The type of job.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "job_type", job_type)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The arguments to pass to the job.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for the job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="jobType")
    def job_type(self) -> str:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetJobRunJobInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 job_infrastructure_type: str,
                 job_shape_config_details: Sequence['outputs.GetJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult'],
                 shape_name: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance running the job
        :param str job_infrastructure_type: The infrastructure type used for job run.
        :param Sequence['GetJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs'] job_shape_config_details: Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the job run instances.
        :param str subnet_id: The subnet to create a secondary vnic in to attach to the instance running the job
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "job_infrastructure_type", job_infrastructure_type)
        pulumi.set(__self__, "job_shape_config_details", job_shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance running the job
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="jobInfrastructureType")
    def job_infrastructure_type(self) -> str:
        """
        The infrastructure type used for job run.
        """
        return pulumi.get(self, "job_infrastructure_type")

    @property
    @pulumi.getter(name="jobShapeConfigDetails")
    def job_shape_config_details(self) -> Sequence['outputs.GetJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult']:
        """
        Details for the job run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "job_shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the job run instances.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The subnet to create a secondary vnic in to attach to the instance running the job
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the job run instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the job run 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 job run 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 job run instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetJobRunJobLogConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param bool enable_logging: If customer logging is enabled for job runs.
        :param str log_group_id: The log group id for where log objects will be for job runs.
        :param str log_id: The log id of the log object the job run logs will be shipped to.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for job runs.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the job run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetJobRunLogDetailResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The log group id for where log objects will be for job runs.
        :param str log_id: The log id of the log object the job run logs will be shipped to.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the job run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetJobRunsFilterResult(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 GetJobRunsJobRunResult(dict):
    def __init__(__self__, *,
                 asynchronous: bool,
                 compartment_id: str,
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 job_configuration_override_details: Sequence['outputs.GetJobRunsJobRunJobConfigurationOverrideDetailResult'],
                 job_id: str,
                 job_infrastructure_configuration_details: Sequence['outputs.GetJobRunsJobRunJobInfrastructureConfigurationDetailResult'],
                 job_log_configuration_override_details: Sequence['outputs.GetJobRunsJobRunJobLogConfigurationOverrideDetailResult'],
                 lifecycle_details: str,
                 log_details: Sequence['outputs.GetJobRunsJobRunLogDetailResult'],
                 project_id: str,
                 state: str,
                 time_accepted: str,
                 time_finished: str,
                 time_started: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param Sequence['GetJobRunsJobRunJobConfigurationOverrideDetailArgs'] job_configuration_override_details: The job configuration details
        :param str job_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job.
        :param Sequence['GetJobRunsJobRunJobInfrastructureConfigurationDetailArgs'] job_infrastructure_configuration_details: The job infrastructure configuration details (shape, block storage, etc.)
        :param Sequence['GetJobRunsJobRunJobLogConfigurationOverrideDetailArgs'] job_log_configuration_override_details: Logging configuration for resource.
        :param str lifecycle_details: Details of the state of the job run.
        :param Sequence['GetJobRunsJobRunLogDetailArgs'] log_details: Customer logging details for job run.
        :param str project_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project to associate the job with.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_accepted: The date and time the job run was accepted in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_finished: The date and time the job run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_started: The date and time the job run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        pulumi.set(__self__, "asynchronous", asynchronous)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        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__, "job_configuration_override_details", job_configuration_override_details)
        pulumi.set(__self__, "job_id", job_id)
        pulumi.set(__self__, "job_infrastructure_configuration_details", job_infrastructure_configuration_details)
        pulumi.set(__self__, "job_log_configuration_override_details", job_log_configuration_override_details)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "log_details", log_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "time_accepted", time_accepted)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter
    def asynchronous(self) -> bool:
        return pulumi.get(self, "asynchronous")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="jobConfigurationOverrideDetails")
    def job_configuration_override_details(self) -> Sequence['outputs.GetJobRunsJobRunJobConfigurationOverrideDetailResult']:
        """
        The job configuration details
        """
        return pulumi.get(self, "job_configuration_override_details")

    @property
    @pulumi.getter(name="jobId")
    def job_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job.
        """
        return pulumi.get(self, "job_id")

    @property
    @pulumi.getter(name="jobInfrastructureConfigurationDetails")
    def job_infrastructure_configuration_details(self) -> Sequence['outputs.GetJobRunsJobRunJobInfrastructureConfigurationDetailResult']:
        """
        The job infrastructure configuration details (shape, block storage, etc.)
        """
        return pulumi.get(self, "job_infrastructure_configuration_details")

    @property
    @pulumi.getter(name="jobLogConfigurationOverrideDetails")
    def job_log_configuration_override_details(self) -> Sequence['outputs.GetJobRunsJobRunJobLogConfigurationOverrideDetailResult']:
        """
        Logging configuration for resource.
        """
        return pulumi.get(self, "job_log_configuration_override_details")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        Details of the state of the job run.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="logDetails")
    def log_details(self) -> Sequence['outputs.GetJobRunsJobRunLogDetailResult']:
        """
        Customer logging details for job run.
        """
        return pulumi.get(self, "log_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project to associate the job with.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeAccepted")
    def time_accepted(self) -> str:
        """
        The date and time the job run was accepted in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_accepted")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        The date and time the job run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The date and time the job run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetJobRunsJobRunJobConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 job_type: str,
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The arguments to pass to the job.
        :param Mapping[str, Any] environment_variables: Environment variables to set for the job.
        :param str job_type: The type of job.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "job_type", job_type)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The arguments to pass to the job.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for the job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="jobType")
    def job_type(self) -> str:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetJobRunsJobRunJobInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 job_infrastructure_type: str,
                 job_shape_config_details: Sequence['outputs.GetJobRunsJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult'],
                 shape_name: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance running the job
        :param str job_infrastructure_type: The infrastructure type used for job run.
        :param Sequence['GetJobRunsJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs'] job_shape_config_details: Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the job run instances.
        :param str subnet_id: The subnet to create a secondary vnic in to attach to the instance running the job
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "job_infrastructure_type", job_infrastructure_type)
        pulumi.set(__self__, "job_shape_config_details", job_shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance running the job
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="jobInfrastructureType")
    def job_infrastructure_type(self) -> str:
        """
        The infrastructure type used for job run.
        """
        return pulumi.get(self, "job_infrastructure_type")

    @property
    @pulumi.getter(name="jobShapeConfigDetails")
    def job_shape_config_details(self) -> Sequence['outputs.GetJobRunsJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult']:
        """
        Details for the job run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "job_shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the job run instances.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The subnet to create a secondary vnic in to attach to the instance running the job
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetJobRunsJobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the job run instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the job run 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 job run 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 job run instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetJobRunsJobRunJobLogConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param bool enable_logging: If customer logging is enabled for job runs.
        :param str log_group_id: The log group id for where log objects will be for job runs.
        :param str log_id: The log id of the log object the job run logs will be shipped to.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for job runs.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the job run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetJobRunsJobRunLogDetailResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The log group id for where log objects will be for job runs.
        :param str log_id: The log id of the log object the job run logs will be shipped to.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the job run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetJobShapesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: The name of the job shape.
        """
        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:
        """
        The name of the job shape.
        """
        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 GetJobShapesJobShapeResult(dict):
    def __init__(__self__, *,
                 core_count: int,
                 memory_in_gbs: int,
                 name: str,
                 shape_series: str):
        """
        :param int core_count: The number of cores associated with this job run shape.
        :param int memory_in_gbs: The number of cores associated with this job shape.
        :param str name: The name of the job shape.
        :param str shape_series: The family that the compute shape belongs to.
        """
        pulumi.set(__self__, "core_count", core_count)
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "shape_series", shape_series)

    @property
    @pulumi.getter(name="coreCount")
    def core_count(self) -> int:
        """
        The number of cores associated with this job run shape.
        """
        return pulumi.get(self, "core_count")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> int:
        """
        The number of cores associated with this job shape.
        """
        return pulumi.get(self, "memory_in_gbs")

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

    @property
    @pulumi.getter(name="shapeSeries")
    def shape_series(self) -> str:
        """
        The family that the compute shape belongs to.
        """
        return pulumi.get(self, "shape_series")


@pulumi.output_type
class GetJobsFilterResult(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 GetJobsJobResult(dict):
    def __init__(__self__, *,
                 artifact_content_disposition: str,
                 artifact_content_length: str,
                 artifact_content_md5: str,
                 artifact_last_modified: str,
                 compartment_id: str,
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 delete_related_job_runs: bool,
                 description: str,
                 display_name: str,
                 empty_artifact: bool,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 job_artifact: str,
                 job_configuration_details: Sequence['outputs.GetJobsJobJobConfigurationDetailResult'],
                 job_infrastructure_configuration_details: Sequence['outputs.GetJobsJobJobInfrastructureConfigurationDetailResult'],
                 job_log_configuration_details: Sequence['outputs.GetJobsJobJobLogConfigurationDetailResult'],
                 lifecycle_details: str,
                 project_id: str,
                 state: str,
                 time_created: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str description: A short description of the job.
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param Sequence['GetJobsJobJobConfigurationDetailArgs'] job_configuration_details: The job configuration details
        :param Sequence['GetJobsJobJobInfrastructureConfigurationDetailArgs'] job_infrastructure_configuration_details: The job infrastructure configuration details (shape, block storage, etc.)
        :param Sequence['GetJobsJobJobLogConfigurationDetailArgs'] job_log_configuration_details: Logging configuration for resource.
        :param str lifecycle_details: The state of the job.
        :param str project_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_created: The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
        """
        pulumi.set(__self__, "artifact_content_disposition", artifact_content_disposition)
        pulumi.set(__self__, "artifact_content_length", artifact_content_length)
        pulumi.set(__self__, "artifact_content_md5", artifact_content_md5)
        pulumi.set(__self__, "artifact_last_modified", artifact_last_modified)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "delete_related_job_runs", delete_related_job_runs)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "empty_artifact", empty_artifact)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "job_artifact", job_artifact)
        pulumi.set(__self__, "job_configuration_details", job_configuration_details)
        pulumi.set(__self__, "job_infrastructure_configuration_details", job_infrastructure_configuration_details)
        pulumi.set(__self__, "job_log_configuration_details", job_log_configuration_details)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "time_created", time_created)

    @property
    @pulumi.getter(name="artifactContentDisposition")
    def artifact_content_disposition(self) -> str:
        return pulumi.get(self, "artifact_content_disposition")

    @property
    @pulumi.getter(name="artifactContentLength")
    def artifact_content_length(self) -> str:
        return pulumi.get(self, "artifact_content_length")

    @property
    @pulumi.getter(name="artifactContentMd5")
    def artifact_content_md5(self) -> str:
        return pulumi.get(self, "artifact_content_md5")

    @property
    @pulumi.getter(name="artifactLastModified")
    def artifact_last_modified(self) -> str:
        return pulumi.get(self, "artifact_last_modified")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deleteRelatedJobRuns")
    def delete_related_job_runs(self) -> bool:
        return pulumi.get(self, "delete_related_job_runs")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the job.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="emptyArtifact")
    def empty_artifact(self) -> bool:
        return pulumi.get(self, "empty_artifact")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="jobArtifact")
    def job_artifact(self) -> str:
        return pulumi.get(self, "job_artifact")

    @property
    @pulumi.getter(name="jobConfigurationDetails")
    def job_configuration_details(self) -> Sequence['outputs.GetJobsJobJobConfigurationDetailResult']:
        """
        The job configuration details
        """
        return pulumi.get(self, "job_configuration_details")

    @property
    @pulumi.getter(name="jobInfrastructureConfigurationDetails")
    def job_infrastructure_configuration_details(self) -> Sequence['outputs.GetJobsJobJobInfrastructureConfigurationDetailResult']:
        """
        The job infrastructure configuration details (shape, block storage, etc.)
        """
        return pulumi.get(self, "job_infrastructure_configuration_details")

    @property
    @pulumi.getter(name="jobLogConfigurationDetails")
    def job_log_configuration_details(self) -> Sequence['outputs.GetJobsJobJobLogConfigurationDetailResult']:
        """
        Logging configuration for resource.
        """
        return pulumi.get(self, "job_log_configuration_details")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        The state of the job.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")


@pulumi.output_type
class GetJobsJobJobConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 job_type: str,
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The arguments to pass to the job.
        :param Mapping[str, Any] environment_variables: Environment variables to set for the job.
        :param str job_type: The type of job.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "job_type", job_type)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The arguments to pass to the job.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for the job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="jobType")
    def job_type(self) -> str:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the job. Timer starts when the job becomes active.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetJobsJobJobInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 job_infrastructure_type: str,
                 job_shape_config_details: Sequence['outputs.GetJobsJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult'],
                 shape_name: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance running the job
        :param str job_infrastructure_type: The infrastructure type used for job run.
        :param Sequence['GetJobsJobJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs'] job_shape_config_details: Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the job run instances.
        :param str subnet_id: The subnet to create a secondary vnic in to attach to the instance running the job
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "job_infrastructure_type", job_infrastructure_type)
        pulumi.set(__self__, "job_shape_config_details", job_shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance running the job
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="jobInfrastructureType")
    def job_infrastructure_type(self) -> str:
        """
        The infrastructure type used for job run.
        """
        return pulumi.get(self, "job_infrastructure_type")

    @property
    @pulumi.getter(name="jobShapeConfigDetails")
    def job_shape_config_details(self) -> Sequence['outputs.GetJobsJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult']:
        """
        Details for the job run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "job_shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the job run instances.
        """
        return pulumi.get(self, "shape_name")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        The subnet to create a secondary vnic in to attach to the instance running the job
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetJobsJobJobInfrastructureConfigurationDetailJobShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the job run instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the job run 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 job run 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 job run instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetJobsJobJobLogConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param bool enable_logging: If customer logging is enabled for job runs.
        :param str log_group_id: The log group id for where log objects are for job runs.
        :param str log_id: The log id the job run will push logs too.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for job runs.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects are for job runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id the job run will push logs too.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetModelCustomMetadataListResult(dict):
    def __init__(__self__, *,
                 category: str,
                 description: str,
                 key: str,
                 value: str):
        """
        :param str category: Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        :param str description: A short description of the model.
        :param str key: Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
               * useCaseType
               * libraryName
               * libraryVersion
               * estimatorClass
               * hyperParameters
               * testartifactresults
        :param str value: Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def category(self) -> str:
        """
        Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
        * useCaseType
        * libraryName
        * libraryVersion
        * estimatorClass
        * hyperParameters
        * testartifactresults
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetModelDefinedMetadataListResult(dict):
    def __init__(__self__, *,
                 category: str,
                 description: str,
                 key: str,
                 value: str):
        """
        :param str category: Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        :param str description: A short description of the model.
        :param str key: Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
               * useCaseType
               * libraryName
               * libraryVersion
               * estimatorClass
               * hyperParameters
               * testartifactresults
        :param str value: Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def category(self) -> str:
        """
        Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
        * useCaseType
        * libraryName
        * libraryVersion
        * estimatorClass
        * hyperParameters
        * testartifactresults
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetModelDeploymentCategoryLogDetailResult(dict):
    def __init__(__self__, *,
                 accesses: Sequence['outputs.GetModelDeploymentCategoryLogDetailAccessResult'],
                 predicts: Sequence['outputs.GetModelDeploymentCategoryLogDetailPredictResult']):
        """
        :param Sequence['GetModelDeploymentCategoryLogDetailAccessArgs'] accesses: The log details.
        :param Sequence['GetModelDeploymentCategoryLogDetailPredictArgs'] predicts: The log details.
        """
        pulumi.set(__self__, "accesses", accesses)
        pulumi.set(__self__, "predicts", predicts)

    @property
    @pulumi.getter
    def accesses(self) -> Sequence['outputs.GetModelDeploymentCategoryLogDetailAccessResult']:
        """
        The log details.
        """
        return pulumi.get(self, "accesses")

    @property
    @pulumi.getter
    def predicts(self) -> Sequence['outputs.GetModelDeploymentCategoryLogDetailPredictResult']:
        """
        The log details.
        """
        return pulumi.get(self, "predicts")


@pulumi.output_type
class GetModelDeploymentCategoryLogDetailAccessResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetModelDeploymentCategoryLogDetailPredictResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetModelDeploymentModelDeploymentConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 deployment_type: str,
                 environment_configuration_details: Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult'],
                 model_configuration_details: Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult']):
        """
        :param str deployment_type: The type of the model deployment.
        :param Sequence['GetModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailArgs'] environment_configuration_details: The configuration to carry the environment details thats used in Model Deployment creation
        :param Sequence['GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailArgs'] model_configuration_details: The model configuration details.
        """
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "environment_configuration_details", environment_configuration_details)
        pulumi.set(__self__, "model_configuration_details", model_configuration_details)

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> str:
        """
        The type of the model deployment.
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter(name="environmentConfigurationDetails")
    def environment_configuration_details(self) -> Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult']:
        """
        The configuration to carry the environment details thats used in Model Deployment creation
        """
        return pulumi.get(self, "environment_configuration_details")

    @property
    @pulumi.getter(name="modelConfigurationDetails")
    def model_configuration_details(self) -> Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult']:
        """
        The model configuration details.
        """
        return pulumi.get(self, "model_configuration_details")


@pulumi.output_type
class GetModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 cmds: Sequence[str],
                 entrypoints: Sequence[str],
                 environment_configuration_type: str,
                 environment_variables: Mapping[str, Any],
                 health_check_port: int,
                 image: str,
                 image_digest: str,
                 server_port: int):
        """
        :param Sequence[str] cmds: The container image run [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.
        :param Sequence[str] entrypoints: The container image run [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
        :param str environment_configuration_type: The environment configuration type
        :param Mapping[str, Any] environment_variables: Environment variables to set for the web server container. The size of envVars must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall environment variables is limited to 2048 bytes. Key can't be reserved Model Deployment environment variables.
        :param int health_check_port: The port on which the container [HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck) would listen. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        :param str image: The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`
        :param str image_digest: The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        :param int server_port: The port on which the web server serving the inference is running. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        pulumi.set(__self__, "cmds", cmds)
        pulumi.set(__self__, "entrypoints", entrypoints)
        pulumi.set(__self__, "environment_configuration_type", environment_configuration_type)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "health_check_port", health_check_port)
        pulumi.set(__self__, "image", image)
        pulumi.set(__self__, "image_digest", image_digest)
        pulumi.set(__self__, "server_port", server_port)

    @property
    @pulumi.getter
    def cmds(self) -> Sequence[str]:
        """
        The container image run [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.
        """
        return pulumi.get(self, "cmds")

    @property
    @pulumi.getter
    def entrypoints(self) -> Sequence[str]:
        """
        The container image run [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
        """
        return pulumi.get(self, "entrypoints")

    @property
    @pulumi.getter(name="environmentConfigurationType")
    def environment_configuration_type(self) -> str:
        """
        The environment configuration type
        """
        return pulumi.get(self, "environment_configuration_type")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for the web server container. The size of envVars must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall environment variables is limited to 2048 bytes. Key can't be reserved Model Deployment environment variables.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="healthCheckPort")
    def health_check_port(self) -> int:
        """
        The port on which the container [HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck) would listen. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        return pulumi.get(self, "health_check_port")

    @property
    @pulumi.getter
    def image(self) -> str:
        """
        The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`
        """
        return pulumi.get(self, "image")

    @property
    @pulumi.getter(name="imageDigest")
    def image_digest(self) -> str:
        """
        The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        """
        return pulumi.get(self, "image_digest")

    @property
    @pulumi.getter(name="serverPort")
    def server_port(self) -> int:
        """
        The port on which the web server serving the inference is running. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        return pulumi.get(self, "server_port")


@pulumi.output_type
class GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 bandwidth_mbps: int,
                 instance_configurations: Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult'],
                 model_id: str,
                 scaling_policies: Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult']):
        """
        :param int bandwidth_mbps: The network bandwidth for the model.
        :param Sequence['GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationArgs'] instance_configurations: The model deployment instance configuration
        :param str model_id: The OCID of the model you want to deploy.
        :param Sequence['GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyArgs'] scaling_policies: The scaling policy to apply to each model of the deployment.
        """
        pulumi.set(__self__, "bandwidth_mbps", bandwidth_mbps)
        pulumi.set(__self__, "instance_configurations", instance_configurations)
        pulumi.set(__self__, "model_id", model_id)
        pulumi.set(__self__, "scaling_policies", scaling_policies)

    @property
    @pulumi.getter(name="bandwidthMbps")
    def bandwidth_mbps(self) -> int:
        """
        The network bandwidth for the model.
        """
        return pulumi.get(self, "bandwidth_mbps")

    @property
    @pulumi.getter(name="instanceConfigurations")
    def instance_configurations(self) -> Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult']:
        """
        The model deployment instance configuration
        """
        return pulumi.get(self, "instance_configurations")

    @property
    @pulumi.getter(name="modelId")
    def model_id(self) -> str:
        """
        The OCID of the model you want to deploy.
        """
        return pulumi.get(self, "model_id")

    @property
    @pulumi.getter(name="scalingPolicies")
    def scaling_policies(self) -> Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult']:
        """
        The scaling policy to apply to each model of the deployment.
        """
        return pulumi.get(self, "scaling_policies")


@pulumi.output_type
class GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult(dict):
    def __init__(__self__, *,
                 instance_shape_name: str,
                 model_deployment_instance_shape_config_details: Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult']):
        """
        :param str instance_shape_name: The shape used to launch the model deployment instances.
        :param Sequence['GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailArgs'] model_deployment_instance_shape_config_details: Details for the model-deployment instance shape configuration.
        """
        pulumi.set(__self__, "instance_shape_name", instance_shape_name)
        pulumi.set(__self__, "model_deployment_instance_shape_config_details", model_deployment_instance_shape_config_details)

    @property
    @pulumi.getter(name="instanceShapeName")
    def instance_shape_name(self) -> str:
        """
        The shape used to launch the model deployment instances.
        """
        return pulumi.get(self, "instance_shape_name")

    @property
    @pulumi.getter(name="modelDeploymentInstanceShapeConfigDetails")
    def model_deployment_instance_shape_config_details(self) -> Sequence['outputs.GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult']:
        """
        Details for the model-deployment instance shape configuration.
        """
        return pulumi.get(self, "model_deployment_instance_shape_config_details")


@pulumi.output_type
class GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the memory to be specified with in the range of 6 to 1024 GB. VM.Standard3.Flex memory range is between 6 and 512 GB and VM.Optimized3.Flex memory range is between 6 and 256 GB.
        :param float ocpus: A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the ocpu count to be specified with in the range of 1 to 64 ocpu. VM.Standard3.Flex OCPU range is between 1 and 32 ocpu and for VM.Optimized3.Flex OCPU range is 1 to 18 ocpu.
        """
        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:
        """
        A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the memory to be specified with in the range of 6 to 1024 GB. VM.Standard3.Flex memory range is between 6 and 512 GB and VM.Optimized3.Flex memory range is between 6 and 256 GB.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the ocpu count to be specified with in the range of 1 to 64 ocpu. VM.Standard3.Flex OCPU range is between 1 and 32 ocpu and for VM.Optimized3.Flex OCPU range is 1 to 18 ocpu.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult(dict):
    def __init__(__self__, *,
                 instance_count: int,
                 policy_type: str):
        """
        :param int instance_count: The number of instances for the model deployment.
        :param str policy_type: The type of scaling policy.
        """
        pulumi.set(__self__, "instance_count", instance_count)
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="instanceCount")
    def instance_count(self) -> int:
        """
        The number of instances for the model deployment.
        """
        return pulumi.get(self, "instance_count")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of scaling policy.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class GetModelDeploymentShapesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: The name of the model deployment shape.
        """
        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:
        """
        The name of the model deployment shape.
        """
        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 GetModelDeploymentShapesModelDeploymentShapeResult(dict):
    def __init__(__self__, *,
                 core_count: int,
                 memory_in_gbs: int,
                 name: str,
                 shape_series: str):
        """
        :param int core_count: The number of cores associated with this model deployment shape.
        :param int memory_in_gbs: The amount of memory in GBs associated with this model deployment shape.
        :param str name: The name of the model deployment shape.
        :param str shape_series: The family that the compute shape belongs to.
        """
        pulumi.set(__self__, "core_count", core_count)
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "shape_series", shape_series)

    @property
    @pulumi.getter(name="coreCount")
    def core_count(self) -> int:
        """
        The number of cores associated with this model deployment shape.
        """
        return pulumi.get(self, "core_count")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> int:
        """
        The amount of memory in GBs associated with this model deployment shape.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the model deployment shape.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="shapeSeries")
    def shape_series(self) -> str:
        """
        The family that the compute shape belongs to.
        """
        return pulumi.get(self, "shape_series")


@pulumi.output_type
class GetModelDeploymentsFilterResult(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 GetModelDeploymentsModelDeploymentResult(dict):
    def __init__(__self__, *,
                 category_log_details: Sequence['outputs.GetModelDeploymentsModelDeploymentCategoryLogDetailResult'],
                 compartment_id: str,
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 model_deployment_configuration_details: Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailResult'],
                 model_deployment_url: str,
                 project_id: str,
                 state: str,
                 time_created: str):
        """
        :param Sequence['GetModelDeploymentsModelDeploymentCategoryLogDetailArgs'] category_log_details: The log details for each category.
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str description: A short description of the model deployment.
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param str lifecycle_details: Details about the state of the model deployment.
        :param Sequence['GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailArgs'] model_deployment_configuration_details: The model deployment configuration details.
        :param str model_deployment_url: The URL to interact with the model deployment.
        :param str project_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_created: The date and time the resource was created, in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        pulumi.set(__self__, "category_log_details", category_log_details)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        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__, "model_deployment_configuration_details", model_deployment_configuration_details)
        pulumi.set(__self__, "model_deployment_url", model_deployment_url)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "time_created", time_created)

    @property
    @pulumi.getter(name="categoryLogDetails")
    def category_log_details(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentCategoryLogDetailResult']:
        """
        The log details for each category.
        """
        return pulumi.get(self, "category_log_details")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model deployment.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        Details about the state of the model deployment.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="modelDeploymentConfigurationDetails")
    def model_deployment_configuration_details(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailResult']:
        """
        The model deployment configuration details.
        """
        return pulumi.get(self, "model_deployment_configuration_details")

    @property
    @pulumi.getter(name="modelDeploymentUrl")
    def model_deployment_url(self) -> str:
        """
        The URL to interact with the model deployment.
        """
        return pulumi.get(self, "model_deployment_url")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the resource was created, in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentCategoryLogDetailResult(dict):
    def __init__(__self__, *,
                 accesses: Sequence['outputs.GetModelDeploymentsModelDeploymentCategoryLogDetailAccessResult'],
                 predicts: Sequence['outputs.GetModelDeploymentsModelDeploymentCategoryLogDetailPredictResult']):
        """
        :param Sequence['GetModelDeploymentsModelDeploymentCategoryLogDetailAccessArgs'] accesses: The log details.
        :param Sequence['GetModelDeploymentsModelDeploymentCategoryLogDetailPredictArgs'] predicts: The log details.
        """
        pulumi.set(__self__, "accesses", accesses)
        pulumi.set(__self__, "predicts", predicts)

    @property
    @pulumi.getter
    def accesses(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentCategoryLogDetailAccessResult']:
        """
        The log details.
        """
        return pulumi.get(self, "accesses")

    @property
    @pulumi.getter
    def predicts(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentCategoryLogDetailPredictResult']:
        """
        The log details.
        """
        return pulumi.get(self, "predicts")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentCategoryLogDetailAccessResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentCategoryLogDetailPredictResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log group to work with.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a log to work with.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 deployment_type: str,
                 environment_configuration_details: Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult'],
                 model_configuration_details: Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult']):
        """
        :param str deployment_type: The type of the model deployment.
        :param Sequence['GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailArgs'] environment_configuration_details: The configuration to carry the environment details thats used in Model Deployment creation
        :param Sequence['GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailArgs'] model_configuration_details: The model configuration details.
        """
        pulumi.set(__self__, "deployment_type", deployment_type)
        pulumi.set(__self__, "environment_configuration_details", environment_configuration_details)
        pulumi.set(__self__, "model_configuration_details", model_configuration_details)

    @property
    @pulumi.getter(name="deploymentType")
    def deployment_type(self) -> str:
        """
        The type of the model deployment.
        """
        return pulumi.get(self, "deployment_type")

    @property
    @pulumi.getter(name="environmentConfigurationDetails")
    def environment_configuration_details(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult']:
        """
        The configuration to carry the environment details thats used in Model Deployment creation
        """
        return pulumi.get(self, "environment_configuration_details")

    @property
    @pulumi.getter(name="modelConfigurationDetails")
    def model_configuration_details(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult']:
        """
        The model configuration details.
        """
        return pulumi.get(self, "model_configuration_details")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailEnvironmentConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 cmds: Sequence[str],
                 entrypoints: Sequence[str],
                 environment_configuration_type: str,
                 environment_variables: Mapping[str, Any],
                 health_check_port: int,
                 image: str,
                 image_digest: str,
                 server_port: int):
        """
        :param Sequence[str] cmds: The container image run [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.
        :param Sequence[str] entrypoints: The container image run [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
        :param str environment_configuration_type: The environment configuration type
        :param Mapping[str, Any] environment_variables: Environment variables to set for the web server container. The size of envVars must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall environment variables is limited to 2048 bytes. Key can't be reserved Model Deployment environment variables.
        :param int health_check_port: The port on which the container [HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck) would listen. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        :param str image: The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`
        :param str image_digest: The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        :param int server_port: The port on which the web server serving the inference is running. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        pulumi.set(__self__, "cmds", cmds)
        pulumi.set(__self__, "entrypoints", entrypoints)
        pulumi.set(__self__, "environment_configuration_type", environment_configuration_type)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "health_check_port", health_check_port)
        pulumi.set(__self__, "image", image)
        pulumi.set(__self__, "image_digest", image_digest)
        pulumi.set(__self__, "server_port", server_port)

    @property
    @pulumi.getter
    def cmds(self) -> Sequence[str]:
        """
        The container image run [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.
        """
        return pulumi.get(self, "cmds")

    @property
    @pulumi.getter
    def entrypoints(self) -> Sequence[str]:
        """
        The container image run [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
        """
        return pulumi.get(self, "entrypoints")

    @property
    @pulumi.getter(name="environmentConfigurationType")
    def environment_configuration_type(self) -> str:
        """
        The environment configuration type
        """
        return pulumi.get(self, "environment_configuration_type")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for the web server container. The size of envVars must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall environment variables is limited to 2048 bytes. Key can't be reserved Model Deployment environment variables.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="healthCheckPort")
    def health_check_port(self) -> int:
        """
        The port on which the container [HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck) would listen. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        return pulumi.get(self, "health_check_port")

    @property
    @pulumi.getter
    def image(self) -> str:
        """
        The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`
        """
        return pulumi.get(self, "image")

    @property
    @pulumi.getter(name="imageDigest")
    def image_digest(self) -> str:
        """
        The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        """
        return pulumi.get(self, "image_digest")

    @property
    @pulumi.getter(name="serverPort")
    def server_port(self) -> int:
        """
        The port on which the web server serving the inference is running. The port can be anything between `1024` and `65535`. The following ports cannot be used `24224`, `8446`, `8447`.
        """
        return pulumi.get(self, "server_port")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 bandwidth_mbps: int,
                 instance_configurations: Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult'],
                 model_id: str,
                 scaling_policies: Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult']):
        """
        :param int bandwidth_mbps: The network bandwidth for the model.
        :param Sequence['GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationArgs'] instance_configurations: The model deployment instance configuration
        :param str model_id: The OCID of the model you want to deploy.
        :param Sequence['GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyArgs'] scaling_policies: The scaling policy to apply to each model of the deployment.
        """
        pulumi.set(__self__, "bandwidth_mbps", bandwidth_mbps)
        pulumi.set(__self__, "instance_configurations", instance_configurations)
        pulumi.set(__self__, "model_id", model_id)
        pulumi.set(__self__, "scaling_policies", scaling_policies)

    @property
    @pulumi.getter(name="bandwidthMbps")
    def bandwidth_mbps(self) -> int:
        """
        The network bandwidth for the model.
        """
        return pulumi.get(self, "bandwidth_mbps")

    @property
    @pulumi.getter(name="instanceConfigurations")
    def instance_configurations(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult']:
        """
        The model deployment instance configuration
        """
        return pulumi.get(self, "instance_configurations")

    @property
    @pulumi.getter(name="modelId")
    def model_id(self) -> str:
        """
        The OCID of the model you want to deploy.
        """
        return pulumi.get(self, "model_id")

    @property
    @pulumi.getter(name="scalingPolicies")
    def scaling_policies(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult']:
        """
        The scaling policy to apply to each model of the deployment.
        """
        return pulumi.get(self, "scaling_policies")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationResult(dict):
    def __init__(__self__, *,
                 instance_shape_name: str,
                 model_deployment_instance_shape_config_details: Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult']):
        """
        :param str instance_shape_name: The shape used to launch the model deployment instances.
        :param Sequence['GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailArgs'] model_deployment_instance_shape_config_details: Details for the model-deployment instance shape configuration.
        """
        pulumi.set(__self__, "instance_shape_name", instance_shape_name)
        pulumi.set(__self__, "model_deployment_instance_shape_config_details", model_deployment_instance_shape_config_details)

    @property
    @pulumi.getter(name="instanceShapeName")
    def instance_shape_name(self) -> str:
        """
        The shape used to launch the model deployment instances.
        """
        return pulumi.get(self, "instance_shape_name")

    @property
    @pulumi.getter(name="modelDeploymentInstanceShapeConfigDetails")
    def model_deployment_instance_shape_config_details(self) -> Sequence['outputs.GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult']:
        """
        Details for the model-deployment instance shape configuration.
        """
        return pulumi.get(self, "model_deployment_instance_shape_config_details")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailInstanceConfigurationModelDeploymentInstanceShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the memory to be specified with in the range of 6 to 1024 GB. VM.Standard3.Flex memory range is between 6 and 512 GB and VM.Optimized3.Flex memory range is between 6 and 256 GB.
        :param float ocpus: A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the ocpu count to be specified with in the range of 1 to 64 ocpu. VM.Standard3.Flex OCPU range is between 1 and 32 ocpu and for VM.Optimized3.Flex OCPU range is 1 to 18 ocpu.
        """
        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:
        """
        A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the memory to be specified with in the range of 6 to 1024 GB. VM.Standard3.Flex memory range is between 6 and 512 GB and VM.Optimized3.Flex memory range is between 6 and 256 GB.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        A model-deployment instance of type VM.Standard.E3.Flex or VM.Standard.E4.Flex allows the ocpu count to be specified with in the range of 1 to 64 ocpu. VM.Standard3.Flex OCPU range is between 1 and 32 ocpu and for VM.Optimized3.Flex OCPU range is 1 to 18 ocpu.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetModelDeploymentsModelDeploymentModelDeploymentConfigurationDetailModelConfigurationDetailScalingPolicyResult(dict):
    def __init__(__self__, *,
                 instance_count: int,
                 policy_type: str):
        """
        :param int instance_count: The number of instances for the model deployment.
        :param str policy_type: The type of scaling policy.
        """
        pulumi.set(__self__, "instance_count", instance_count)
        pulumi.set(__self__, "policy_type", policy_type)

    @property
    @pulumi.getter(name="instanceCount")
    def instance_count(self) -> int:
        """
        The number of instances for the model deployment.
        """
        return pulumi.get(self, "instance_count")

    @property
    @pulumi.getter(name="policyType")
    def policy_type(self) -> str:
        """
        The type of scaling policy.
        """
        return pulumi.get(self, "policy_type")


@pulumi.output_type
class GetModelVersionSetsFilterResult(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 GetModelVersionSetsModelVersionSetResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 name: str,
                 project_id: str,
                 state: str,
                 time_created: str,
                 time_updated: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str description: A short description of the model version set.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param str name: A filter to return only resources that match the entire name given.
        :param str project_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_created: The date and time that the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        :param str time_updated: The date and time that the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        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__, "name", name)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "time_created", time_created)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model version set.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @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(name="projectId")
    def project_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time that the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The date and time that the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetModelsFilterResult(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 GetModelsModelResult(dict):
    def __init__(__self__, *,
                 artifact_content_disposition: str,
                 artifact_content_length: str,
                 artifact_content_md5: str,
                 artifact_last_modified: str,
                 compartment_id: str,
                 created_by: str,
                 custom_metadata_lists: Sequence['outputs.GetModelsModelCustomMetadataListResult'],
                 defined_metadata_lists: Sequence['outputs.GetModelsModelDefinedMetadataListResult'],
                 defined_tags: Mapping[str, Any],
                 description: str,
                 display_name: str,
                 empty_model: bool,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 input_schema: str,
                 model_artifact: str,
                 output_schema: str,
                 project_id: str,
                 state: str,
                 time_created: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :param Sequence['GetModelsModelCustomMetadataListArgs'] custom_metadata_lists: An array of custom metadata details for the model.
        :param Sequence['GetModelsModelDefinedMetadataListArgs'] defined_metadata_lists: An array of defined metadata details for the model.
        :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: `{"Operations.CostCenter": "42"}`
        :param str description: A short description of the model.
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param str input_schema: Input schema file content in String format
        :param str output_schema: Output schema file content in String format
        :param str project_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_created: The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        pulumi.set(__self__, "artifact_content_disposition", artifact_content_disposition)
        pulumi.set(__self__, "artifact_content_length", artifact_content_length)
        pulumi.set(__self__, "artifact_content_md5", artifact_content_md5)
        pulumi.set(__self__, "artifact_last_modified", artifact_last_modified)
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        pulumi.set(__self__, "custom_metadata_lists", custom_metadata_lists)
        pulumi.set(__self__, "defined_metadata_lists", defined_metadata_lists)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "empty_model", empty_model)
        pulumi.set(__self__, "freeform_tags", freeform_tags)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "input_schema", input_schema)
        pulumi.set(__self__, "model_artifact", model_artifact)
        pulumi.set(__self__, "output_schema", output_schema)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "time_created", time_created)

    @property
    @pulumi.getter(name="artifactContentDisposition")
    def artifact_content_disposition(self) -> str:
        return pulumi.get(self, "artifact_content_disposition")

    @property
    @pulumi.getter(name="artifactContentLength")
    def artifact_content_length(self) -> str:
        return pulumi.get(self, "artifact_content_length")

    @property
    @pulumi.getter(name="artifactContentMd5")
    def artifact_content_md5(self) -> str:
        return pulumi.get(self, "artifact_content_md5")

    @property
    @pulumi.getter(name="artifactLastModified")
    def artifact_last_modified(self) -> str:
        return pulumi.get(self, "artifact_last_modified")

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @property
    @pulumi.getter(name="customMetadataLists")
    def custom_metadata_lists(self) -> Sequence['outputs.GetModelsModelCustomMetadataListResult']:
        """
        An array of custom metadata details for the model.
        """
        return pulumi.get(self, "custom_metadata_lists")

    @property
    @pulumi.getter(name="definedMetadataLists")
    def defined_metadata_lists(self) -> Sequence['outputs.GetModelsModelDefinedMetadataListResult']:
        """
        An array of defined metadata details for the model.
        """
        return pulumi.get(self, "defined_metadata_lists")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="emptyModel")
    def empty_model(self) -> bool:
        return pulumi.get(self, "empty_model")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="inputSchema")
    def input_schema(self) -> str:
        """
        Input schema file content in String format
        """
        return pulumi.get(self, "input_schema")

    @property
    @pulumi.getter(name="modelArtifact")
    def model_artifact(self) -> str:
        return pulumi.get(self, "model_artifact")

    @property
    @pulumi.getter(name="outputSchema")
    def output_schema(self) -> str:
        """
        Output schema file content in String format
        """
        return pulumi.get(self, "output_schema")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")


@pulumi.output_type
class GetModelsModelCustomMetadataListResult(dict):
    def __init__(__self__, *,
                 category: str,
                 description: str,
                 key: str,
                 value: str):
        """
        :param str category: Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        :param str description: A short description of the model.
        :param str key: Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
               * useCaseType
               * libraryName
               * libraryVersion
               * estimatorClass
               * hyperParameters
               * testartifactresults
        :param str value: Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def category(self) -> str:
        """
        Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
        * useCaseType
        * libraryName
        * libraryVersion
        * estimatorClass
        * hyperParameters
        * testartifactresults
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetModelsModelDefinedMetadataListResult(dict):
    def __init__(__self__, *,
                 category: str,
                 description: str,
                 key: str,
                 value: str):
        """
        :param str category: Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        :param str description: A short description of the model.
        :param str key: Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
               * useCaseType
               * libraryName
               * libraryVersion
               * estimatorClass
               * hyperParameters
               * testartifactresults
        :param str value: Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def category(self) -> str:
        """
        Category of model metadata which should be null for defined metadata.For custom metadata is should be one of the following values "Performance,Training Profile,Training and Validation Datasets,Training Environment,other".
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the model.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        Key of the model Metadata. The key can either be user defined or Oracle Cloud Infrastructure defined. List of Oracle Cloud Infrastructure defined keys:
        * useCaseType
        * libraryName
        * libraryVersion
        * estimatorClass
        * hyperParameters
        * testartifactresults
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        Allowed values for useCaseType: binary_classification, regression, multinomial_classification, clustering, recommender, dimensionality_reduction/representation, time_series_forecasting, anomaly_detection, topic_modeling, ner, sentiment_analysis, image_classification, object_localization, other
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetNotebookSessionNotebookSessionConfigDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 notebook_session_shape_config_details: Sequence['outputs.GetNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult'],
                 shape: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        :param Sequence['GetNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailArgs'] notebook_session_shape_config_details: Details for the notebook session shape configuration.
        :param str shape: The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        :param str subnet_id: A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "notebook_session_shape_config_details", notebook_session_shape_config_details)
        pulumi.set(__self__, "shape", shape)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="notebookSessionShapeConfigDetails")
    def notebook_session_shape_config_details(self) -> Sequence['outputs.GetNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult']:
        """
        Details for the notebook session shape configuration.
        """
        return pulumi.get(self, "notebook_session_shape_config_details")

    @property
    @pulumi.getter
    def shape(self) -> str:
        """
        The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        """
        return pulumi.get(self, "shape")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the notebook session instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the notebook session 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 notebook session 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 notebook session instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetNotebookSessionNotebookSessionConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 notebook_session_shape_config_details: Sequence['outputs.GetNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult'],
                 shape: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        :param Sequence['GetNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailArgs'] notebook_session_shape_config_details: Details for the notebook session shape configuration.
        :param str shape: The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        :param str subnet_id: A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "notebook_session_shape_config_details", notebook_session_shape_config_details)
        pulumi.set(__self__, "shape", shape)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="notebookSessionShapeConfigDetails")
    def notebook_session_shape_config_details(self) -> Sequence['outputs.GetNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult']:
        """
        Details for the notebook session shape configuration.
        """
        return pulumi.get(self, "notebook_session_shape_config_details")

    @property
    @pulumi.getter
    def shape(self) -> str:
        """
        The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        """
        return pulumi.get(self, "shape")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the notebook session instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the notebook session 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 notebook session 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 notebook session instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetNotebookSessionNotebookSessionRuntimeConfigDetailResult(dict):
    def __init__(__self__, *,
                 custom_environment_variables: Mapping[str, Any],
                 notebook_session_git_config_details: Sequence['outputs.GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult']):
        """
        :param Mapping[str, Any] custom_environment_variables: Custom environment variables for Notebook Session. These key-value pairs will be available for customers in Notebook Sessions.
        :param Sequence['GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailArgs'] notebook_session_git_config_details: Git configuration Details.
        """
        pulumi.set(__self__, "custom_environment_variables", custom_environment_variables)
        pulumi.set(__self__, "notebook_session_git_config_details", notebook_session_git_config_details)

    @property
    @pulumi.getter(name="customEnvironmentVariables")
    def custom_environment_variables(self) -> Mapping[str, Any]:
        """
        Custom environment variables for Notebook Session. These key-value pairs will be available for customers in Notebook Sessions.
        """
        return pulumi.get(self, "custom_environment_variables")

    @property
    @pulumi.getter(name="notebookSessionGitConfigDetails")
    def notebook_session_git_config_details(self) -> Sequence['outputs.GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult']:
        """
        Git configuration Details.
        """
        return pulumi.get(self, "notebook_session_git_config_details")


@pulumi.output_type
class GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult(dict):
    def __init__(__self__, *,
                 notebook_session_git_repo_config_collections: Sequence['outputs.GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult']):
        """
        :param Sequence['GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionArgs'] notebook_session_git_repo_config_collections: A collection of Git repository configurations.
        """
        pulumi.set(__self__, "notebook_session_git_repo_config_collections", notebook_session_git_repo_config_collections)

    @property
    @pulumi.getter(name="notebookSessionGitRepoConfigCollections")
    def notebook_session_git_repo_config_collections(self) -> Sequence['outputs.GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult']:
        """
        A collection of Git repository configurations.
        """
        return pulumi.get(self, "notebook_session_git_repo_config_collections")


@pulumi.output_type
class GetNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult(dict):
    def __init__(__self__, *,
                 url: str):
        """
        :param str url: The repository URL
        """
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def url(self) -> str:
        """
        The repository URL
        """
        return pulumi.get(self, "url")


@pulumi.output_type
class GetNotebookSessionShapesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: The name of the notebook session shape.
        """
        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:
        """
        The name of the notebook session shape.
        """
        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 GetNotebookSessionShapesNotebookSessionShapeResult(dict):
    def __init__(__self__, *,
                 core_count: int,
                 memory_in_gbs: int,
                 name: str,
                 shape_series: str):
        """
        :param int core_count: The number of cores associated with this notebook session shape.
        :param int memory_in_gbs: The amount of memory in GBs associated with this notebook session shape.
        :param str name: The name of the notebook session shape.
        :param str shape_series: The family that the compute shape belongs to.
        """
        pulumi.set(__self__, "core_count", core_count)
        pulumi.set(__self__, "memory_in_gbs", memory_in_gbs)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "shape_series", shape_series)

    @property
    @pulumi.getter(name="coreCount")
    def core_count(self) -> int:
        """
        The number of cores associated with this notebook session shape.
        """
        return pulumi.get(self, "core_count")

    @property
    @pulumi.getter(name="memoryInGbs")
    def memory_in_gbs(self) -> int:
        """
        The amount of memory in GBs associated with this notebook session shape.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the notebook session shape.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="shapeSeries")
    def shape_series(self) -> str:
        """
        The family that the compute shape belongs to.
        """
        return pulumi.get(self, "shape_series")


@pulumi.output_type
class GetNotebookSessionsFilterResult(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 GetNotebookSessionsNotebookSessionResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 notebook_session_config_details: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailResult'],
                 notebook_session_configuration_details: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailResult'],
                 notebook_session_runtime_config_details: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailResult'],
                 notebook_session_url: str,
                 project_id: str,
                 state: str,
                 time_created: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param str lifecycle_details: Details about the state of the notebook session.
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailArgs'] notebook_session_config_details: Details for the notebook session configuration.
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailArgs'] notebook_session_configuration_details: Details for the notebook session configuration.
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailArgs'] notebook_session_runtime_config_details: Notebook Session runtime configuration details.
        :param str notebook_session_url: The URL to interact with the notebook session.
        :param str project_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_created: The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        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__, "notebook_session_config_details", notebook_session_config_details)
        pulumi.set(__self__, "notebook_session_configuration_details", notebook_session_configuration_details)
        pulumi.set(__self__, "notebook_session_runtime_config_details", notebook_session_runtime_config_details)
        pulumi.set(__self__, "notebook_session_url", notebook_session_url)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "time_created", time_created)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        Details about the state of the notebook session.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="notebookSessionConfigDetails")
    def notebook_session_config_details(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailResult']:
        """
        Details for the notebook session configuration.
        """
        return pulumi.get(self, "notebook_session_config_details")

    @property
    @pulumi.getter(name="notebookSessionConfigurationDetails")
    def notebook_session_configuration_details(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailResult']:
        """
        Details for the notebook session configuration.
        """
        return pulumi.get(self, "notebook_session_configuration_details")

    @property
    @pulumi.getter(name="notebookSessionRuntimeConfigDetails")
    def notebook_session_runtime_config_details(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailResult']:
        """
        Notebook Session runtime configuration details.
        """
        return pulumi.get(self, "notebook_session_runtime_config_details")

    @property
    @pulumi.getter(name="notebookSessionUrl")
    def notebook_session_url(self) -> str:
        """
        The URL to interact with the notebook session.
        """
        return pulumi.get(self, "notebook_session_url")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 notebook_session_shape_config_details: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult'],
                 shape: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailArgs'] notebook_session_shape_config_details: Details for the notebook session shape configuration.
        :param str shape: The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        :param str subnet_id: A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "notebook_session_shape_config_details", notebook_session_shape_config_details)
        pulumi.set(__self__, "shape", shape)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="notebookSessionShapeConfigDetails")
    def notebook_session_shape_config_details(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult']:
        """
        Details for the notebook session shape configuration.
        """
        return pulumi.get(self, "notebook_session_shape_config_details")

    @property
    @pulumi.getter
    def shape(self) -> str:
        """
        The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        """
        return pulumi.get(self, "shape")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionConfigDetailNotebookSessionShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the notebook session instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the notebook session 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 notebook session 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 notebook session instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 notebook_session_shape_config_details: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult'],
                 shape: str,
                 subnet_id: str):
        """
        :param int block_storage_size_in_gbs: A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailArgs'] notebook_session_shape_config_details: Details for the notebook session shape configuration.
        :param str shape: The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        :param str subnet_id: A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "notebook_session_shape_config_details", notebook_session_shape_config_details)
        pulumi.set(__self__, "shape", shape)
        pulumi.set(__self__, "subnet_id", subnet_id)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="notebookSessionShapeConfigDetails")
    def notebook_session_shape_config_details(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult']:
        """
        Details for the notebook session shape configuration.
        """
        return pulumi.get(self, "notebook_session_shape_config_details")

    @property
    @pulumi.getter
    def shape(self) -> str:
        """
        The shape used to launch the notebook session compute instance.  The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint.
        """
        return pulumi.get(self, "shape")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> str:
        """
        A notebook session instance is provided with a VNIC for network access.  This specifies the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create a VNIC in.  The subnet should be in a VCN with a NAT gateway for egress to the internet.
        """
        return pulumi.get(self, "subnet_id")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionConfigurationDetailNotebookSessionShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: The total amount of memory available to the notebook session instance, in gigabytes.
        :param float ocpus: The total number of OCPUs available to the notebook session 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 notebook session 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 notebook session instance.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailResult(dict):
    def __init__(__self__, *,
                 custom_environment_variables: Mapping[str, Any],
                 notebook_session_git_config_details: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult']):
        """
        :param Mapping[str, Any] custom_environment_variables: Custom environment variables for Notebook Session. These key-value pairs will be available for customers in Notebook Sessions.
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailArgs'] notebook_session_git_config_details: Git configuration Details.
        """
        pulumi.set(__self__, "custom_environment_variables", custom_environment_variables)
        pulumi.set(__self__, "notebook_session_git_config_details", notebook_session_git_config_details)

    @property
    @pulumi.getter(name="customEnvironmentVariables")
    def custom_environment_variables(self) -> Mapping[str, Any]:
        """
        Custom environment variables for Notebook Session. These key-value pairs will be available for customers in Notebook Sessions.
        """
        return pulumi.get(self, "custom_environment_variables")

    @property
    @pulumi.getter(name="notebookSessionGitConfigDetails")
    def notebook_session_git_config_details(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult']:
        """
        Git configuration Details.
        """
        return pulumi.get(self, "notebook_session_git_config_details")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailResult(dict):
    def __init__(__self__, *,
                 notebook_session_git_repo_config_collections: Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult']):
        """
        :param Sequence['GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionArgs'] notebook_session_git_repo_config_collections: A collection of Git repository configurations.
        """
        pulumi.set(__self__, "notebook_session_git_repo_config_collections", notebook_session_git_repo_config_collections)

    @property
    @pulumi.getter(name="notebookSessionGitRepoConfigCollections")
    def notebook_session_git_repo_config_collections(self) -> Sequence['outputs.GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult']:
        """
        A collection of Git repository configurations.
        """
        return pulumi.get(self, "notebook_session_git_repo_config_collections")


@pulumi.output_type
class GetNotebookSessionsNotebookSessionNotebookSessionRuntimeConfigDetailNotebookSessionGitConfigDetailNotebookSessionGitRepoConfigCollectionResult(dict):
    def __init__(__self__, *,
                 url: str):
        """
        :param str url: The repository URL
        """
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def url(self) -> str:
        """
        The repository URL
        """
        return pulumi.get(self, "url")


@pulumi.output_type
class GetPipelineConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str,
                 type: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetPipelineInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 shape_config_details: Sequence['outputs.GetPipelineInfrastructureConfigurationDetailShapeConfigDetailResult'],
                 shape_name: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param Sequence['GetPipelineInfrastructureConfigurationDetailShapeConfigDetailArgs'] shape_config_details: Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the instance for all step runs in the pipeline.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "shape_config_details", shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="shapeConfigDetails")
    def shape_config_details(self) -> Sequence['outputs.GetPipelineInfrastructureConfigurationDetailShapeConfigDetailResult']:
        """
        Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the instance for all step runs in the pipeline.
        """
        return pulumi.get(self, "shape_name")


@pulumi.output_type
class GetPipelineInfrastructureConfigurationDetailShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        :param float ocpus: A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        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:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetPipelineLogConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param bool enable_logging: If customer logging is enabled for pipeline.
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for pipeline.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetPipelineRunConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str,
                 type: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetPipelineRunConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str,
                 type: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetPipelineRunLogConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param bool enable_logging: If customer logging is enabled for pipeline.
        :param str log_group_id: The log group id for where log objects will be for pipeline runs.
        :param str log_id: The log id of the log object the pipeline run logs will be shipped to.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for pipeline.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for pipeline runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the pipeline run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetPipelineRunLogDetailResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The log group id for where log objects will be for pipeline runs.
        :param str log_id: The log id of the log object the pipeline run logs will be shipped to.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for pipeline runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the pipeline run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetPipelineRunStepOverrideDetailResult(dict):
    def __init__(__self__, *,
                 step_configuration_details: Sequence['outputs.GetPipelineRunStepOverrideDetailStepConfigurationDetailResult'],
                 step_name: str):
        """
        :param Sequence['GetPipelineRunStepOverrideDetailStepConfigurationDetailArgs'] step_configuration_details: The configuration details of a step.
        :param str step_name: The name of the step.
        """
        pulumi.set(__self__, "step_configuration_details", step_configuration_details)
        pulumi.set(__self__, "step_name", step_name)

    @property
    @pulumi.getter(name="stepConfigurationDetails")
    def step_configuration_details(self) -> Sequence['outputs.GetPipelineRunStepOverrideDetailStepConfigurationDetailResult']:
        """
        The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

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


@pulumi.output_type
class GetPipelineRunStepOverrideDetailStepConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetPipelineRunStepRunResult(dict):
    def __init__(__self__, *,
                 job_run_id: str,
                 lifecycle_details: str,
                 state: str,
                 step_name: str,
                 step_type: str,
                 time_finished: str,
                 time_started: str):
        """
        :param str job_run_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job run triggered for this step run.
        :param str lifecycle_details: Details of the state of the step run.
        :param str state: The state of the step run.
        :param str step_name: The name of the step.
        :param str step_type: The type of step.
        :param str time_finished: The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_started: The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        pulumi.set(__self__, "job_run_id", job_run_id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "step_name", step_name)
        pulumi.set(__self__, "step_type", step_type)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="jobRunId")
    def job_run_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job run triggered for this step run.
        """
        return pulumi.get(self, "job_run_id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        Details of the state of the step run.
        """
        return pulumi.get(self, "lifecycle_details")

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

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

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> str:
        """
        The type of step.
        """
        return pulumi.get(self, "step_type")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetPipelineRunsFilterResult(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 GetPipelineRunsPipelineRunResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 configuration_details: Sequence['outputs.GetPipelineRunsPipelineRunConfigurationDetailResult'],
                 configuration_override_details: Sequence['outputs.GetPipelineRunsPipelineRunConfigurationOverrideDetailResult'],
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 delete_related_job_runs: bool,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 lifecycle_details: str,
                 log_configuration_override_details: Sequence['outputs.GetPipelineRunsPipelineRunLogConfigurationOverrideDetailResult'],
                 log_details: Sequence['outputs.GetPipelineRunsPipelineRunLogDetailResult'],
                 pipeline_id: str,
                 project_id: str,
                 state: str,
                 step_override_details: Sequence['outputs.GetPipelineRunsPipelineRunStepOverrideDetailResult'],
                 step_runs: Sequence['outputs.GetPipelineRunsPipelineRunStepRunResult'],
                 system_tags: Mapping[str, Any],
                 time_accepted: str,
                 time_finished: str,
                 time_started: str,
                 time_updated: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param Sequence['GetPipelineRunsPipelineRunConfigurationDetailArgs'] configuration_details: The configuration details of a pipeline.
        :param Sequence['GetPipelineRunsPipelineRunConfigurationOverrideDetailArgs'] configuration_override_details: The configuration details of a pipeline.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param str lifecycle_details: Details of the state of the step run.
        :param Sequence['GetPipelineRunsPipelineRunLogConfigurationOverrideDetailArgs'] log_configuration_override_details: The pipeline log configuration details.
        :param Sequence['GetPipelineRunsPipelineRunLogDetailArgs'] log_details: Customer logging details for pipeline run.
        :param str pipeline_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pipeline.
        :param str project_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project to associate the pipeline run with.
        :param str state: The current state of the PipelineRun.
        :param Sequence['GetPipelineRunsPipelineRunStepOverrideDetailArgs'] step_override_details: Array of step override details. Only Step Configuration is allowed to be overridden.
        :param Sequence['GetPipelineRunsPipelineRunStepRunArgs'] step_runs: Array of StepRun object for each step.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_accepted: The date and time the pipeline run was accepted in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_finished: The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_started: The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_updated: The date and time the pipeline run was updated in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "configuration_details", configuration_details)
        pulumi.set(__self__, "configuration_override_details", configuration_override_details)
        pulumi.set(__self__, "created_by", created_by)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "delete_related_job_runs", delete_related_job_runs)
        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__, "log_configuration_override_details", log_configuration_override_details)
        pulumi.set(__self__, "log_details", log_details)
        pulumi.set(__self__, "pipeline_id", pipeline_id)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "step_override_details", step_override_details)
        pulumi.set(__self__, "step_runs", step_runs)
        pulumi.set(__self__, "system_tags", system_tags)
        pulumi.set(__self__, "time_accepted", time_accepted)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="configurationDetails")
    def configuration_details(self) -> Sequence['outputs.GetPipelineRunsPipelineRunConfigurationDetailResult']:
        """
        The configuration details of a pipeline.
        """
        return pulumi.get(self, "configuration_details")

    @property
    @pulumi.getter(name="configurationOverrideDetails")
    def configuration_override_details(self) -> Sequence['outputs.GetPipelineRunsPipelineRunConfigurationOverrideDetailResult']:
        """
        The configuration details of a pipeline.
        """
        return pulumi.get(self, "configuration_override_details")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deleteRelatedJobRuns")
    def delete_related_job_runs(self) -> bool:
        return pulumi.get(self, "delete_related_job_runs")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        Details of the state of the step run.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter(name="logConfigurationOverrideDetails")
    def log_configuration_override_details(self) -> Sequence['outputs.GetPipelineRunsPipelineRunLogConfigurationOverrideDetailResult']:
        """
        The pipeline log configuration details.
        """
        return pulumi.get(self, "log_configuration_override_details")

    @property
    @pulumi.getter(name="logDetails")
    def log_details(self) -> Sequence['outputs.GetPipelineRunsPipelineRunLogDetailResult']:
        """
        Customer logging details for pipeline run.
        """
        return pulumi.get(self, "log_details")

    @property
    @pulumi.getter(name="pipelineId")
    def pipeline_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pipeline.
        """
        return pulumi.get(self, "pipeline_id")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project to associate the pipeline run with.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The current state of the PipelineRun.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="stepOverrideDetails")
    def step_override_details(self) -> Sequence['outputs.GetPipelineRunsPipelineRunStepOverrideDetailResult']:
        """
        Array of step override details. Only Step Configuration is allowed to be overridden.
        """
        return pulumi.get(self, "step_override_details")

    @property
    @pulumi.getter(name="stepRuns")
    def step_runs(self) -> Sequence['outputs.GetPipelineRunsPipelineRunStepRunResult']:
        """
        Array of StepRun object for each step.
        """
        return pulumi.get(self, "step_runs")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeAccepted")
    def time_accepted(self) -> str:
        """
        The date and time the pipeline run was accepted in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_accepted")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_started")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The date and time the pipeline run was updated in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetPipelineRunsPipelineRunConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str,
                 type: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetPipelineRunsPipelineRunConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str,
                 type: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetPipelineRunsPipelineRunLogConfigurationOverrideDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param bool enable_logging: If customer logging is enabled for pipeline.
        :param str log_group_id: The log group id for where log objects will be for pipeline runs.
        :param str log_id: The log id of the log object the pipeline run logs will be shipped to.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for pipeline.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for pipeline runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the pipeline run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetPipelineRunsPipelineRunLogDetailResult(dict):
    def __init__(__self__, *,
                 log_group_id: str,
                 log_id: str):
        """
        :param str log_group_id: The log group id for where log objects will be for pipeline runs.
        :param str log_id: The log id of the log object the pipeline run logs will be shipped to.
        """
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The log group id for where log objects will be for pipeline runs.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The log id of the log object the pipeline run logs will be shipped to.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetPipelineRunsPipelineRunStepOverrideDetailResult(dict):
    def __init__(__self__, *,
                 step_configuration_details: Sequence['outputs.GetPipelineRunsPipelineRunStepOverrideDetailStepConfigurationDetailResult'],
                 step_name: str):
        """
        :param Sequence['GetPipelineRunsPipelineRunStepOverrideDetailStepConfigurationDetailArgs'] step_configuration_details: The configuration details of a step.
        :param str step_name: The name of the step.
        """
        pulumi.set(__self__, "step_configuration_details", step_configuration_details)
        pulumi.set(__self__, "step_name", step_name)

    @property
    @pulumi.getter(name="stepConfigurationDetails")
    def step_configuration_details(self) -> Sequence['outputs.GetPipelineRunsPipelineRunStepOverrideDetailStepConfigurationDetailResult']:
        """
        The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

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


@pulumi.output_type
class GetPipelineRunsPipelineRunStepOverrideDetailStepConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetPipelineRunsPipelineRunStepRunResult(dict):
    def __init__(__self__, *,
                 job_run_id: str,
                 lifecycle_details: str,
                 state: str,
                 step_name: str,
                 step_type: str,
                 time_finished: str,
                 time_started: str):
        """
        :param str job_run_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job run triggered for this step run.
        :param str lifecycle_details: Details of the state of the step run.
        :param str state: The current state of the PipelineRun.
        :param str step_name: The name of the step.
        :param str step_type: The type of step.
        :param str time_finished: The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        :param str time_started: The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        pulumi.set(__self__, "job_run_id", job_run_id)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "step_name", step_name)
        pulumi.set(__self__, "step_type", step_type)
        pulumi.set(__self__, "time_finished", time_finished)
        pulumi.set(__self__, "time_started", time_started)

    @property
    @pulumi.getter(name="jobRunId")
    def job_run_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job run triggered for this step run.
        """
        return pulumi.get(self, "job_run_id")

    @property
    @pulumi.getter(name="lifecycleDetails")
    def lifecycle_details(self) -> str:
        """
        Details of the state of the step run.
        """
        return pulumi.get(self, "lifecycle_details")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The current state of the PipelineRun.
        """
        return pulumi.get(self, "state")

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

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> str:
        """
        The type of step.
        """
        return pulumi.get(self, "step_type")

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> str:
        """
        The date and time the pipeline run request was finished in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_finished")

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> str:
        """
        The date and time the pipeline run request was started in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
        """
        return pulumi.get(self, "time_started")


@pulumi.output_type
class GetPipelineStepArtifactResult(dict):
    def __init__(__self__, *,
                 artifact_content_disposition: str,
                 artifact_content_length: str,
                 artifact_content_md5: str,
                 artifact_last_modified: str,
                 pipeline_step_artifact: str,
                 step_name: str):
        """
        :param str step_name: The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        pulumi.set(__self__, "artifact_content_disposition", artifact_content_disposition)
        pulumi.set(__self__, "artifact_content_length", artifact_content_length)
        pulumi.set(__self__, "artifact_content_md5", artifact_content_md5)
        pulumi.set(__self__, "artifact_last_modified", artifact_last_modified)
        pulumi.set(__self__, "pipeline_step_artifact", pipeline_step_artifact)
        pulumi.set(__self__, "step_name", step_name)

    @property
    @pulumi.getter(name="artifactContentDisposition")
    def artifact_content_disposition(self) -> str:
        return pulumi.get(self, "artifact_content_disposition")

    @property
    @pulumi.getter(name="artifactContentLength")
    def artifact_content_length(self) -> str:
        return pulumi.get(self, "artifact_content_length")

    @property
    @pulumi.getter(name="artifactContentMd5")
    def artifact_content_md5(self) -> str:
        return pulumi.get(self, "artifact_content_md5")

    @property
    @pulumi.getter(name="artifactLastModified")
    def artifact_last_modified(self) -> str:
        return pulumi.get(self, "artifact_last_modified")

    @property
    @pulumi.getter(name="pipelineStepArtifact")
    def pipeline_step_artifact(self) -> str:
        return pulumi.get(self, "pipeline_step_artifact")

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> str:
        """
        The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        return pulumi.get(self, "step_name")


@pulumi.output_type
class GetPipelineStepDetailResult(dict):
    def __init__(__self__, *,
                 depends_ons: Sequence[str],
                 description: str,
                 is_artifact_uploaded: bool,
                 job_id: str,
                 step_configuration_details: Sequence['outputs.GetPipelineStepDetailStepConfigurationDetailResult'],
                 step_infrastructure_configuration_details: Sequence['outputs.GetPipelineStepDetailStepInfrastructureConfigurationDetailResult'],
                 step_name: str,
                 step_type: str):
        """
        :param Sequence[str] depends_ons: The list of step names this current step depends on for execution.
        :param str description: A short description of the step.
        :param bool is_artifact_uploaded: A flag to indicate whether the artifact has been uploaded for this step or not.
        :param str job_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job to be used as a step.
        :param Sequence['GetPipelineStepDetailStepConfigurationDetailArgs'] step_configuration_details: The configuration details of a step.
        :param Sequence['GetPipelineStepDetailStepInfrastructureConfigurationDetailArgs'] step_infrastructure_configuration_details: The infrastructure configuration details of a pipeline or a step.
        :param str step_name: The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        :param str step_type: The type of step.
        """
        pulumi.set(__self__, "depends_ons", depends_ons)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "is_artifact_uploaded", is_artifact_uploaded)
        pulumi.set(__self__, "job_id", job_id)
        pulumi.set(__self__, "step_configuration_details", step_configuration_details)
        pulumi.set(__self__, "step_infrastructure_configuration_details", step_infrastructure_configuration_details)
        pulumi.set(__self__, "step_name", step_name)
        pulumi.set(__self__, "step_type", step_type)

    @property
    @pulumi.getter(name="dependsOns")
    def depends_ons(self) -> Sequence[str]:
        """
        The list of step names this current step depends on for execution.
        """
        return pulumi.get(self, "depends_ons")

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

    @property
    @pulumi.getter(name="isArtifactUploaded")
    def is_artifact_uploaded(self) -> bool:
        """
        A flag to indicate whether the artifact has been uploaded for this step or not.
        """
        return pulumi.get(self, "is_artifact_uploaded")

    @property
    @pulumi.getter(name="jobId")
    def job_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job to be used as a step.
        """
        return pulumi.get(self, "job_id")

    @property
    @pulumi.getter(name="stepConfigurationDetails")
    def step_configuration_details(self) -> Sequence['outputs.GetPipelineStepDetailStepConfigurationDetailResult']:
        """
        The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

    @property
    @pulumi.getter(name="stepInfrastructureConfigurationDetails")
    def step_infrastructure_configuration_details(self) -> Sequence['outputs.GetPipelineStepDetailStepInfrastructureConfigurationDetailResult']:
        """
        The infrastructure configuration details of a pipeline or a step.
        """
        return pulumi.get(self, "step_infrastructure_configuration_details")

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> str:
        """
        The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        return pulumi.get(self, "step_name")

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> str:
        """
        The type of step.
        """
        return pulumi.get(self, "step_type")


@pulumi.output_type
class GetPipelineStepDetailStepConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetPipelineStepDetailStepInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 shape_config_details: Sequence['outputs.GetPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult'],
                 shape_name: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param Sequence['GetPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailArgs'] shape_config_details: Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the instance for all step runs in the pipeline.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "shape_config_details", shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="shapeConfigDetails")
    def shape_config_details(self) -> Sequence['outputs.GetPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult']:
        """
        Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the instance for all step runs in the pipeline.
        """
        return pulumi.get(self, "shape_name")


@pulumi.output_type
class GetPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        :param float ocpus: A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        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:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetPipelinesFilterResult(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 GetPipelinesPipelineResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 configuration_details: Sequence['outputs.GetPipelinesPipelineConfigurationDetailResult'],
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 delete_related_pipeline_runs: bool,
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 infrastructure_configuration_details: Sequence['outputs.GetPipelinesPipelineInfrastructureConfigurationDetailResult'],
                 lifecycle_details: str,
                 log_configuration_details: Sequence['outputs.GetPipelinesPipelineLogConfigurationDetailResult'],
                 project_id: str,
                 state: str,
                 step_artifacts: Sequence['outputs.GetPipelinesPipelineStepArtifactResult'],
                 step_details: Sequence['outputs.GetPipelinesPipelineStepDetailResult'],
                 system_tags: Mapping[str, Any],
                 time_created: str,
                 time_updated: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param Sequence['GetPipelinesPipelineConfigurationDetailArgs'] configuration_details: The configuration details of a pipeline.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str description: A short description of the step.
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param Sequence['GetPipelinesPipelineInfrastructureConfigurationDetailArgs'] infrastructure_configuration_details: The infrastructure configuration details of a pipeline or a step.
        :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['GetPipelinesPipelineLogConfigurationDetailArgs'] log_configuration_details: The pipeline log configuration details.
        :param str project_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        :param str state: The current state of the Pipeline.
        :param Sequence['GetPipelinesPipelineStepDetailArgs'] step_details: Array of step details for each step.
        :param Mapping[str, Any] system_tags: Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
        :param str time_created: The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
        :param str time_updated: The date and time the resource was updated in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "configuration_details", configuration_details)
        pulumi.set(__self__, "created_by", created_by)
        pulumi.set(__self__, "defined_tags", defined_tags)
        pulumi.set(__self__, "delete_related_pipeline_runs", delete_related_pipeline_runs)
        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__, "infrastructure_configuration_details", infrastructure_configuration_details)
        pulumi.set(__self__, "lifecycle_details", lifecycle_details)
        pulumi.set(__self__, "log_configuration_details", log_configuration_details)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "step_artifacts", step_artifacts)
        pulumi.set(__self__, "step_details", step_details)
        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:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="configurationDetails")
    def configuration_details(self) -> Sequence['outputs.GetPipelinesPipelineConfigurationDetailResult']:
        """
        The configuration details of a pipeline.
        """
        return pulumi.get(self, "configuration_details")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter(name="deleteRelatedPipelineRuns")
    def delete_related_pipeline_runs(self) -> bool:
        return pulumi.get(self, "delete_related_pipeline_runs")

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

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="infrastructureConfigurationDetails")
    def infrastructure_configuration_details(self) -> Sequence['outputs.GetPipelinesPipelineInfrastructureConfigurationDetailResult']:
        """
        The infrastructure configuration details of a pipeline or a step.
        """
        return pulumi.get(self, "infrastructure_configuration_details")

    @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="logConfigurationDetails")
    def log_configuration_details(self) -> Sequence['outputs.GetPipelinesPipelineLogConfigurationDetailResult']:
        """
        The pipeline log configuration details.
        """
        return pulumi.get(self, "log_configuration_details")

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The current state of the Pipeline.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="stepArtifacts")
    def step_artifacts(self) -> Sequence['outputs.GetPipelinesPipelineStepArtifactResult']:
        return pulumi.get(self, "step_artifacts")

    @property
    @pulumi.getter(name="stepDetails")
    def step_details(self) -> Sequence['outputs.GetPipelinesPipelineStepDetailResult']:
        """
        Array of step details for each step.
        """
        return pulumi.get(self, "step_details")

    @property
    @pulumi.getter(name="systemTags")
    def system_tags(self) -> Mapping[str, Any]:
        """
        Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
        """
        return pulumi.get(self, "system_tags")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The date and time the resource was updated in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
        """
        return pulumi.get(self, "time_updated")


@pulumi.output_type
class GetPipelinesPipelineConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str,
                 type: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param str type: The type of pipeline.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class GetPipelinesPipelineInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 shape_config_details: Sequence['outputs.GetPipelinesPipelineInfrastructureConfigurationDetailShapeConfigDetailResult'],
                 shape_name: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param Sequence['GetPipelinesPipelineInfrastructureConfigurationDetailShapeConfigDetailArgs'] shape_config_details: Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the instance for all step runs in the pipeline.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "shape_config_details", shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="shapeConfigDetails")
    def shape_config_details(self) -> Sequence['outputs.GetPipelinesPipelineInfrastructureConfigurationDetailShapeConfigDetailResult']:
        """
        Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the instance for all step runs in the pipeline.
        """
        return pulumi.get(self, "shape_name")


@pulumi.output_type
class GetPipelinesPipelineInfrastructureConfigurationDetailShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        :param float ocpus: A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        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:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetPipelinesPipelineLogConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 enable_auto_log_creation: bool,
                 enable_logging: bool,
                 log_group_id: str,
                 log_id: str):
        """
        :param bool enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param bool enable_logging: If customer logging is enabled for pipeline.
        :param str log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param str log_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        pulumi.set(__self__, "enable_auto_log_creation", enable_auto_log_creation)
        pulumi.set(__self__, "enable_logging", enable_logging)
        pulumi.set(__self__, "log_group_id", log_group_id)
        pulumi.set(__self__, "log_id", log_id)

    @property
    @pulumi.getter(name="enableAutoLogCreation")
    def enable_auto_log_creation(self) -> bool:
        """
        If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

    @property
    @pulumi.getter(name="enableLogging")
    def enable_logging(self) -> bool:
        """
        If customer logging is enabled for pipeline.
        """
        return pulumi.get(self, "enable_logging")

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        """
        return pulumi.get(self, "log_group_id")

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log.
        """
        return pulumi.get(self, "log_id")


@pulumi.output_type
class GetPipelinesPipelineStepArtifactResult(dict):
    def __init__(__self__, *,
                 artifact_content_disposition: str,
                 artifact_content_length: str,
                 artifact_content_md5: str,
                 artifact_last_modified: str,
                 pipeline_step_artifact: str,
                 step_name: str):
        """
        :param str step_name: The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        pulumi.set(__self__, "artifact_content_disposition", artifact_content_disposition)
        pulumi.set(__self__, "artifact_content_length", artifact_content_length)
        pulumi.set(__self__, "artifact_content_md5", artifact_content_md5)
        pulumi.set(__self__, "artifact_last_modified", artifact_last_modified)
        pulumi.set(__self__, "pipeline_step_artifact", pipeline_step_artifact)
        pulumi.set(__self__, "step_name", step_name)

    @property
    @pulumi.getter(name="artifactContentDisposition")
    def artifact_content_disposition(self) -> str:
        return pulumi.get(self, "artifact_content_disposition")

    @property
    @pulumi.getter(name="artifactContentLength")
    def artifact_content_length(self) -> str:
        return pulumi.get(self, "artifact_content_length")

    @property
    @pulumi.getter(name="artifactContentMd5")
    def artifact_content_md5(self) -> str:
        return pulumi.get(self, "artifact_content_md5")

    @property
    @pulumi.getter(name="artifactLastModified")
    def artifact_last_modified(self) -> str:
        return pulumi.get(self, "artifact_last_modified")

    @property
    @pulumi.getter(name="pipelineStepArtifact")
    def pipeline_step_artifact(self) -> str:
        return pulumi.get(self, "pipeline_step_artifact")

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> str:
        """
        The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        return pulumi.get(self, "step_name")


@pulumi.output_type
class GetPipelinesPipelineStepDetailResult(dict):
    def __init__(__self__, *,
                 depends_ons: Sequence[str],
                 description: str,
                 is_artifact_uploaded: bool,
                 job_id: str,
                 step_configuration_details: Sequence['outputs.GetPipelinesPipelineStepDetailStepConfigurationDetailResult'],
                 step_infrastructure_configuration_details: Sequence['outputs.GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailResult'],
                 step_name: str,
                 step_type: str):
        """
        :param Sequence[str] depends_ons: The list of step names this current step depends on for execution.
        :param str description: A short description of the step.
        :param bool is_artifact_uploaded: A flag to indicate whether the artifact has been uploaded for this step or not.
        :param str job_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job to be used as a step.
        :param Sequence['GetPipelinesPipelineStepDetailStepConfigurationDetailArgs'] step_configuration_details: The configuration details of a step.
        :param Sequence['GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailArgs'] step_infrastructure_configuration_details: The infrastructure configuration details of a pipeline or a step.
        :param str step_name: The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        :param str step_type: The type of step.
        """
        pulumi.set(__self__, "depends_ons", depends_ons)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "is_artifact_uploaded", is_artifact_uploaded)
        pulumi.set(__self__, "job_id", job_id)
        pulumi.set(__self__, "step_configuration_details", step_configuration_details)
        pulumi.set(__self__, "step_infrastructure_configuration_details", step_infrastructure_configuration_details)
        pulumi.set(__self__, "step_name", step_name)
        pulumi.set(__self__, "step_type", step_type)

    @property
    @pulumi.getter(name="dependsOns")
    def depends_ons(self) -> Sequence[str]:
        """
        The list of step names this current step depends on for execution.
        """
        return pulumi.get(self, "depends_ons")

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

    @property
    @pulumi.getter(name="isArtifactUploaded")
    def is_artifact_uploaded(self) -> bool:
        """
        A flag to indicate whether the artifact has been uploaded for this step or not.
        """
        return pulumi.get(self, "is_artifact_uploaded")

    @property
    @pulumi.getter(name="jobId")
    def job_id(self) -> str:
        """
        The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the job to be used as a step.
        """
        return pulumi.get(self, "job_id")

    @property
    @pulumi.getter(name="stepConfigurationDetails")
    def step_configuration_details(self) -> Sequence['outputs.GetPipelinesPipelineStepDetailStepConfigurationDetailResult']:
        """
        The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

    @property
    @pulumi.getter(name="stepInfrastructureConfigurationDetails")
    def step_infrastructure_configuration_details(self) -> Sequence['outputs.GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailResult']:
        """
        The infrastructure configuration details of a pipeline or a step.
        """
        return pulumi.get(self, "step_infrastructure_configuration_details")

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> str:
        """
        The name of the step. It must be unique within the pipeline. This is used to create the pipeline DAG.
        """
        return pulumi.get(self, "step_name")

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> str:
        """
        The type of step.
        """
        return pulumi.get(self, "step_type")


@pulumi.output_type
class GetPipelinesPipelineStepDetailStepConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 command_line_arguments: str,
                 environment_variables: Mapping[str, Any],
                 maximum_runtime_in_minutes: str):
        """
        :param str command_line_arguments: The command line arguments to set for step.
        :param Mapping[str, Any] environment_variables: Environment variables to set for step.
        :param str maximum_runtime_in_minutes: A time bound for the execution of the step.
        """
        pulumi.set(__self__, "command_line_arguments", command_line_arguments)
        pulumi.set(__self__, "environment_variables", environment_variables)
        pulumi.set(__self__, "maximum_runtime_in_minutes", maximum_runtime_in_minutes)

    @property
    @pulumi.getter(name="commandLineArguments")
    def command_line_arguments(self) -> str:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Mapping[str, Any]:
        """
        Environment variables to set for step.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> str:
        """
        A time bound for the execution of the step.
        """
        return pulumi.get(self, "maximum_runtime_in_minutes")


@pulumi.output_type
class GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailResult(dict):
    def __init__(__self__, *,
                 block_storage_size_in_gbs: int,
                 shape_config_details: Sequence['outputs.GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult'],
                 shape_name: str):
        """
        :param int block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param Sequence['GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailArgs'] shape_config_details: Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        :param str shape_name: The shape used to launch the instance for all step runs in the pipeline.
        """
        pulumi.set(__self__, "block_storage_size_in_gbs", block_storage_size_in_gbs)
        pulumi.set(__self__, "shape_config_details", shape_config_details)
        pulumi.set(__self__, "shape_name", shape_name)

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> int:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

    @property
    @pulumi.getter(name="shapeConfigDetails")
    def shape_config_details(self) -> Sequence['outputs.GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult']:
        """
        Details for the pipeline step run shape configuration. Specify only when a flex shape is selected.
        """
        return pulumi.get(self, "shape_config_details")

    @property
    @pulumi.getter(name="shapeName")
    def shape_name(self) -> str:
        """
        The shape used to launch the instance for all step runs in the pipeline.
        """
        return pulumi.get(self, "shape_name")


@pulumi.output_type
class GetPipelinesPipelineStepDetailStepInfrastructureConfigurationDetailShapeConfigDetailResult(dict):
    def __init__(__self__, *,
                 memory_in_gbs: float,
                 ocpus: float):
        """
        :param float memory_in_gbs: A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        :param float ocpus: A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        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:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows memory to be specified. This specifies the size of the memory in GBs.
        """
        return pulumi.get(self, "memory_in_gbs")

    @property
    @pulumi.getter
    def ocpus(self) -> float:
        """
        A pipeline step run instance of type VM.Standard.E3.Flex allows the ocpu count to be specified.
        """
        return pulumi.get(self, "ocpus")


@pulumi.output_type
class GetProjectsFilterResult(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 GetProjectsProjectResult(dict):
    def __init__(__self__, *,
                 compartment_id: str,
                 created_by: str,
                 defined_tags: Mapping[str, Any],
                 description: str,
                 display_name: str,
                 freeform_tags: Mapping[str, Any],
                 id: str,
                 state: str,
                 time_created: str):
        """
        :param str compartment_id: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        :param str created_by: <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        :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: `{"Operations.CostCenter": "42"}`
        :param str description: A short description of the project.
        :param str display_name: <b>Filter</b> results by its user-friendly name.
        :param Mapping[str, Any] freeform_tags: Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        :param str id: <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        :param str state: <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        :param str time_created: The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        pulumi.set(__self__, "compartment_id", compartment_id)
        pulumi.set(__self__, "created_by", created_by)
        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__, "state", state)
        pulumi.set(__self__, "time_created", time_created)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
        """
        return pulumi.get(self, "compartment_id")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
        """
        return pulumi.get(self, "created_by")

    @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: `{"Operations.CostCenter": "42"}`
        """
        return pulumi.get(self, "defined_tags")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        A short description of the project.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        <b>Filter</b> results by its user-friendly name.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="freeformTags")
    def freeform_tags(self) -> Mapping[str, Any]:
        """
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
        """
        return pulumi.get(self, "freeform_tags")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
        """
        return pulumi.get(self, "time_created")


