# 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

__all__ = [
    'JobJobConfigurationDetailsArgs',
    'JobJobInfrastructureConfigurationDetailsArgs',
    'JobJobInfrastructureConfigurationDetailsJobShapeConfigDetailsArgs',
    'JobJobLogConfigurationDetailsArgs',
    'JobRunJobConfigurationOverrideDetailsArgs',
    'JobRunJobInfrastructureConfigurationDetailArgs',
    'JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs',
    'JobRunJobLogConfigurationOverrideDetailsArgs',
    'JobRunLogDetailArgs',
    'ModelCustomMetadataListArgs',
    'ModelDefinedMetadataListArgs',
    'ModelDeploymentCategoryLogDetailsArgs',
    'ModelDeploymentCategoryLogDetailsAccessArgs',
    'ModelDeploymentCategoryLogDetailsPredictArgs',
    'ModelDeploymentModelDeploymentConfigurationDetailsArgs',
    'ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetailsArgs',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsArgs',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationArgs',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetailsArgs',
    'ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicyArgs',
    'NotebookSessionNotebookSessionConfigDetailsArgs',
    'NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetailsArgs',
    'NotebookSessionNotebookSessionConfigurationDetailsArgs',
    'NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetailsArgs',
    'NotebookSessionNotebookSessionRuntimeConfigDetailsArgs',
    'NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsArgs',
    'NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollectionArgs',
    'PipelineConfigurationDetailsArgs',
    'PipelineInfrastructureConfigurationDetailsArgs',
    'PipelineInfrastructureConfigurationDetailsShapeConfigDetailsArgs',
    'PipelineLogConfigurationDetailsArgs',
    'PipelineRunConfigurationDetailArgs',
    'PipelineRunConfigurationOverrideDetailsArgs',
    'PipelineRunLogConfigurationOverrideDetailsArgs',
    'PipelineRunLogDetailArgs',
    'PipelineRunStepOverrideDetailArgs',
    'PipelineRunStepOverrideDetailStepConfigurationDetailsArgs',
    'PipelineRunStepRunArgs',
    'PipelineStepArtifactArgs',
    'PipelineStepDetailArgs',
    'PipelineStepDetailStepConfigurationDetailsArgs',
    'PipelineStepDetailStepInfrastructureConfigurationDetailsArgs',
    'PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetailsArgs',
    'GetFastLaunchJobConfigsFilterArgs',
    'GetJobRunsFilterArgs',
    'GetJobShapesFilterArgs',
    'GetJobsFilterArgs',
    'GetModelDeploymentShapesFilterArgs',
    'GetModelDeploymentsFilterArgs',
    'GetModelVersionSetsFilterArgs',
    'GetModelsFilterArgs',
    'GetNotebookSessionShapesFilterArgs',
    'GetNotebookSessionsFilterArgs',
    'GetPipelineRunsFilterArgs',
    'GetPipelinesFilterArgs',
    'GetProjectsFilterArgs',
]

@pulumi.input_type
class JobJobConfigurationDetailsArgs:
    def __init__(__self__, *,
                 job_type: pulumi.Input[str],
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] job_type: The type of job.
        :param pulumi.Input[str] command_line_arguments: The arguments to pass to the job.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: Environment variables to set for the job.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

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

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

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

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

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

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class JobJobInfrastructureConfigurationDetailsArgs:
    def __init__(__self__, *,
                 block_storage_size_in_gbs: pulumi.Input[int],
                 job_infrastructure_type: pulumi.Input[str],
                 shape_name: pulumi.Input[str],
                 job_shape_config_details: Optional[pulumi.Input['JobJobInfrastructureConfigurationDetailsJobShapeConfigDetailsArgs']] = None,
                 subnet_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[int] block_storage_size_in_gbs: (Updatable) The size of the block storage volume to attach to the instance running the job
        :param pulumi.Input[str] job_infrastructure_type: (Updatable) The infrastructure type used for job run.
        :param pulumi.Input[str] shape_name: (Updatable) The shape used to launch the job run instances.
        :param pulumi.Input['JobJobInfrastructureConfigurationDetailsJobShapeConfigDetailsArgs'] job_shape_config_details: (Updatable) Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param pulumi.Input[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) -> pulumi.Input[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")

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

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

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

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

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

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

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

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

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


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

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

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

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


@pulumi.input_type
class JobJobLogConfigurationDetailsArgs:
    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[pulumi.Input[bool]] = None,
                 enable_logging: Optional[pulumi.Input[bool]] = None,
                 log_group_id: Optional[pulumi.Input[str]] = None,
                 log_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param pulumi.Input[bool] enable_logging: If customer logging is enabled for job runs.
        :param pulumi.Input[str] log_group_id: The log group id for where log objects are for job runs.
        :param pulumi.Input[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[pulumi.Input[bool]]:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

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

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

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

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

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

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

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


@pulumi.input_type
class JobRunJobConfigurationOverrideDetailsArgs:
    def __init__(__self__, *,
                 job_type: pulumi.Input[str],
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] job_type: The type of job.
        :param pulumi.Input[str] command_line_arguments: The arguments to pass to the job.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: Environment variables to set for the job.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The type of job.
        """
        return pulumi.get(self, "job_type")

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

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

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

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

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

    @property
    @pulumi.getter(name="maximumRuntimeInMinutes")
    def maximum_runtime_in_minutes(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class JobRunJobInfrastructureConfigurationDetailArgs:
    def __init__(__self__, *,
                 block_storage_size_in_gbs: Optional[pulumi.Input[int]] = None,
                 job_infrastructure_type: Optional[pulumi.Input[str]] = None,
                 job_shape_config_details: Optional[pulumi.Input[Sequence[pulumi.Input['JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs']]]] = None,
                 shape_name: Optional[pulumi.Input[str]] = None,
                 subnet_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[int] block_storage_size_in_gbs: The size of the block storage volume to attach to the instance running the job
        :param pulumi.Input[str] job_infrastructure_type: The infrastructure type used for job run.
        :param pulumi.Input[Sequence[pulumi.Input['JobRunJobInfrastructureConfigurationDetailJobShapeConfigDetailArgs']]] job_shape_config_details: Details for the job run shape configuration. Specify only when a flex shape is selected.
        :param pulumi.Input[str] shape_name: The shape used to launch the job run instances.
        :param pulumi.Input[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[pulumi.Input[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")

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

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

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

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

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

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

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

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

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


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

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

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

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


@pulumi.input_type
class JobRunJobLogConfigurationOverrideDetailsArgs:
    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[pulumi.Input[bool]] = None,
                 enable_logging: Optional[pulumi.Input[bool]] = None,
                 log_group_id: Optional[pulumi.Input[str]] = None,
                 log_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for job runs.
        :param pulumi.Input[bool] enable_logging: If customer logging is enabled for job runs.
        :param pulumi.Input[str] log_group_id: The log group id for where log objects are for job runs.
        :param pulumi.Input[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[pulumi.Input[bool]]:
        """
        If automatic on-behalf-of log object creation is enabled for job runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

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

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

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

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

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

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

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


@pulumi.input_type
class JobRunLogDetailArgs:
    def __init__(__self__, *,
                 log_group_id: Optional[pulumi.Input[str]] = None,
                 log_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] log_group_id: The log group id for where log objects are for job runs.
        :param pulumi.Input[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[pulumi.Input[str]]:
        """
        The log group id for where log objects are for job runs.
        """
        return pulumi.get(self, "log_group_id")

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

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

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


@pulumi.input_type
class ModelCustomMetadataListArgs:
    def __init__(__self__, *,
                 category: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[str] description: (Updatable) A short description of the model.
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ModelDefinedMetadataListArgs:
    def __init__(__self__, *,
                 category: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[str] description: (Updatable) A short description of the model.
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ModelDeploymentCategoryLogDetailsArgs:
    def __init__(__self__, *,
                 access: Optional[pulumi.Input['ModelDeploymentCategoryLogDetailsAccessArgs']] = None,
                 predict: Optional[pulumi.Input['ModelDeploymentCategoryLogDetailsPredictArgs']] = None):
        """
        :param pulumi.Input['ModelDeploymentCategoryLogDetailsAccessArgs'] access: (Updatable) The log details.
        :param pulumi.Input['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[pulumi.Input['ModelDeploymentCategoryLogDetailsAccessArgs']]:
        """
        (Updatable) The log details.
        """
        return pulumi.get(self, "access")

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

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

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


@pulumi.input_type
class ModelDeploymentCategoryLogDetailsAccessArgs:
    def __init__(__self__, *,
                 log_group_id: pulumi.Input[str],
                 log_id: pulumi.Input[str]):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> pulumi.Input[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")

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


@pulumi.input_type
class ModelDeploymentCategoryLogDetailsPredictArgs:
    def __init__(__self__, *,
                 log_group_id: pulumi.Input[str],
                 log_id: pulumi.Input[str]):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="logId")
    def log_id(self) -> pulumi.Input[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")

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


@pulumi.input_type
class ModelDeploymentModelDeploymentConfigurationDetailsArgs:
    def __init__(__self__, *,
                 deployment_type: pulumi.Input[str],
                 model_configuration_details: pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsArgs'],
                 environment_configuration_details: Optional[pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetailsArgs']] = None):
        """
        :param pulumi.Input[str] deployment_type: (Updatable) The type of the model deployment.
        :param pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsArgs'] model_configuration_details: (Updatable) The model configuration details.
        :param pulumi.Input['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) -> pulumi.Input[str]:
        """
        (Updatable) The type of the model deployment.
        """
        return pulumi.get(self, "deployment_type")

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

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

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

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

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


@pulumi.input_type
class ModelDeploymentModelDeploymentConfigurationDetailsEnvironmentConfigurationDetailsArgs:
    def __init__(__self__, *,
                 environment_configuration_type: pulumi.Input[str],
                 cmds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 entrypoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 health_check_port: Optional[pulumi.Input[int]] = None,
                 image: Optional[pulumi.Input[str]] = None,
                 image_digest: Optional[pulumi.Input[str]] = None,
                 server_port: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] environment_configuration_type: (Updatable) The environment configuration type
        :param pulumi.Input[Sequence[pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[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 pulumi.Input[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 pulumi.Input[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 pulumi.Input[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 pulumi.Input[str] image_digest: (Updatable) The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        (Updatable) The environment configuration type
        """
        return pulumi.get(self, "environment_configuration_type")

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

    @property
    @pulumi.getter
    def cmds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def entrypoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="healthCheckPort")
    def health_check_port(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def image(self) -> Optional[pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter(name="serverPort")
    def server_port(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsArgs:
    def __init__(__self__, *,
                 instance_configuration: pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationArgs'],
                 model_id: pulumi.Input[str],
                 bandwidth_mbps: Optional[pulumi.Input[int]] = None,
                 scaling_policy: Optional[pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicyArgs']] = None):
        """
        :param pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationArgs'] instance_configuration: (Updatable) The model deployment instance configuration
        :param pulumi.Input[str] model_id: (Updatable) The OCID of the model you want to deploy.
        :param pulumi.Input[int] bandwidth_mbps: (Updatable) The network bandwidth for the model.
        :param pulumi.Input['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) -> pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationArgs']:
        """
        (Updatable) The model deployment instance configuration
        """
        return pulumi.get(self, "instance_configuration")

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

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

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

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

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

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

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


@pulumi.input_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationArgs:
    def __init__(__self__, *,
                 instance_shape_name: pulumi.Input[str],
                 model_deployment_instance_shape_config_details: Optional[pulumi.Input['ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetailsArgs']] = None):
        """
        :param pulumi.Input[str] instance_shape_name: (Updatable) The shape used to launch the model deployment instances.
        :param pulumi.Input['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) -> pulumi.Input[str]:
        """
        (Updatable) The shape used to launch the model deployment instances.
        """
        return pulumi.get(self, "instance_shape_name")

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

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

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


@pulumi.input_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsInstanceConfigurationModelDeploymentInstanceShapeConfigDetailsArgs:
    def __init__(__self__, *,
                 memory_in_gbs: Optional[pulumi.Input[float]] = None,
                 ocpus: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def ocpus(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ModelDeploymentModelDeploymentConfigurationDetailsModelConfigurationDetailsScalingPolicyArgs:
    def __init__(__self__, *,
                 instance_count: pulumi.Input[int],
                 policy_type: pulumi.Input[str]):
        """
        :param pulumi.Input[int] instance_count: (Updatable) The number of instances for the model deployment.
        :param pulumi.Input[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) -> pulumi.Input[int]:
        """
        (Updatable) The number of instances for the model deployment.
        """
        return pulumi.get(self, "instance_count")

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

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

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


@pulumi.input_type
class NotebookSessionNotebookSessionConfigDetailsArgs:
    def __init__(__self__, *,
                 shape: pulumi.Input[str],
                 block_storage_size_in_gbs: Optional[pulumi.Input[int]] = None,
                 notebook_session_shape_config_details: Optional[pulumi.Input['NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetailsArgs']] = None,
                 subnet_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input['NotebookSessionNotebookSessionConfigDetailsNotebookSessionShapeConfigDetailsArgs'] notebook_session_shape_config_details: (Updatable) Details for the notebook session shape configuration.
        :param pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> Optional[pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[pulumi.Input[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")

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


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

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

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

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


@pulumi.input_type
class NotebookSessionNotebookSessionConfigurationDetailsArgs:
    def __init__(__self__, *,
                 shape: pulumi.Input[str],
                 subnet_id: pulumi.Input[str],
                 block_storage_size_in_gbs: Optional[pulumi.Input[int]] = None,
                 notebook_session_shape_config_details: Optional[pulumi.Input['NotebookSessionNotebookSessionConfigurationDetailsNotebookSessionShapeConfigDetailsArgs']] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input[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 pulumi.Input['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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="blockStorageSizeInGbs")
    def block_storage_size_in_gbs(self) -> Optional[pulumi.Input[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")

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

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

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


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

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

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

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


@pulumi.input_type
class NotebookSessionNotebookSessionRuntimeConfigDetailsArgs:
    def __init__(__self__, *,
                 custom_environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 notebook_session_git_config_details: Optional[pulumi.Input['NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsArgs']] = None):
        """
        :param pulumi.Input[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 pulumi.Input['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[pulumi.Input[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")

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

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

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


@pulumi.input_type
class NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsArgs:
    def __init__(__self__, *,
                 notebook_session_git_repo_config_collections: Optional[pulumi.Input[Sequence[pulumi.Input['NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollectionArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['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[pulumi.Input[Sequence[pulumi.Input['NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollectionArgs']]]]:
        """
        (Updatable) A collection of Git repository configurations.
        """
        return pulumi.get(self, "notebook_session_git_repo_config_collections")

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


@pulumi.input_type
class NotebookSessionNotebookSessionRuntimeConfigDetailsNotebookSessionGitConfigDetailsNotebookSessionGitRepoConfigCollectionArgs:
    def __init__(__self__, *,
                 url: pulumi.Input[str]):
        """
        :param pulumi.Input[str] url: (Updatable) The repository URL
        """
        pulumi.set(__self__, "url", url)

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

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


@pulumi.input_type
class PipelineConfigurationDetailsArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[str],
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] type: (Updatable) The type of pipeline.
        :param pulumi.Input[str] command_line_arguments: (Updatable) The command line arguments to set for step.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: (Updatable) Environment variables to set for step.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        (Updatable) The type of pipeline.
        """
        return pulumi.get(self, "type")

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

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

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

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

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

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

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


@pulumi.input_type
class PipelineInfrastructureConfigurationDetailsArgs:
    def __init__(__self__, *,
                 block_storage_size_in_gbs: pulumi.Input[int],
                 shape_name: pulumi.Input[str],
                 shape_config_details: Optional[pulumi.Input['PipelineInfrastructureConfigurationDetailsShapeConfigDetailsArgs']] = None):
        """
        :param pulumi.Input[int] block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param pulumi.Input[str] shape_name: The shape used to launch the instance for all step runs in the pipeline.
        :param pulumi.Input['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) -> pulumi.Input[int]:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

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

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

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

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

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


@pulumi.input_type
class PipelineInfrastructureConfigurationDetailsShapeConfigDetailsArgs:
    def __init__(__self__, *,
                 memory_in_gbs: Optional[pulumi.Input[float]] = None,
                 ocpus: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

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

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


@pulumi.input_type
class PipelineLogConfigurationDetailsArgs:
    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[pulumi.Input[bool]] = None,
                 enable_logging: Optional[pulumi.Input[bool]] = None,
                 log_group_id: Optional[pulumi.Input[str]] = None,
                 log_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enable_auto_log_creation: (Updatable) If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param pulumi.Input[bool] enable_logging: (Updatable) If customer logging is enabled for pipeline.
        :param pulumi.Input[str] log_group_id: (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param pulumi.Input[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[pulumi.Input[bool]]:
        """
        (Updatable) If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

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

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

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

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class PipelineRunConfigurationDetailArgs:
    def __init__(__self__, *,
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] command_line_arguments: The command line arguments to set for step.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: Environment variables to set for step.
        :param pulumi.Input[str] maximum_runtime_in_minutes: A time bound for the execution of the step.
        :param pulumi.Input[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[pulumi.Input[str]]:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

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

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

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

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

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

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

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


@pulumi.input_type
class PipelineRunConfigurationOverrideDetailsArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[str],
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] type: The type of pipeline.
        :param pulumi.Input[str] command_line_arguments: The command line arguments to set for step.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: Environment variables to set for step.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The type of pipeline.
        """
        return pulumi.get(self, "type")

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

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

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

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

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

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

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


@pulumi.input_type
class PipelineRunLogConfigurationOverrideDetailsArgs:
    def __init__(__self__, *,
                 enable_auto_log_creation: Optional[pulumi.Input[bool]] = None,
                 enable_logging: Optional[pulumi.Input[bool]] = None,
                 log_group_id: Optional[pulumi.Input[str]] = None,
                 log_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] enable_auto_log_creation: If automatic on-behalf-of log object creation is enabled for pipeline runs.
        :param pulumi.Input[bool] enable_logging: If customer logging is enabled for pipeline.
        :param pulumi.Input[str] log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param pulumi.Input[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[pulumi.Input[bool]]:
        """
        If automatic on-behalf-of log object creation is enabled for pipeline runs.
        """
        return pulumi.get(self, "enable_auto_log_creation")

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

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

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

    @property
    @pulumi.getter(name="logGroupId")
    def log_group_id(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class PipelineRunLogDetailArgs:
    def __init__(__self__, *,
                 log_group_id: Optional[pulumi.Input[str]] = None,
                 log_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] log_group_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the log group.
        :param pulumi.Input[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[pulumi.Input[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")

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

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

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


@pulumi.input_type
class PipelineRunStepOverrideDetailArgs:
    def __init__(__self__, *,
                 step_configuration_details: pulumi.Input['PipelineRunStepOverrideDetailStepConfigurationDetailsArgs'],
                 step_name: pulumi.Input[str]):
        """
        :param pulumi.Input['PipelineRunStepOverrideDetailStepConfigurationDetailsArgs'] step_configuration_details: The configuration details of a step.
        :param pulumi.Input[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) -> pulumi.Input['PipelineRunStepOverrideDetailStepConfigurationDetailsArgs']:
        """
        The configuration details of a step.
        """
        return pulumi.get(self, "step_configuration_details")

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

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

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


@pulumi.input_type
class PipelineRunStepOverrideDetailStepConfigurationDetailsArgs:
    def __init__(__self__, *,
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] command_line_arguments: The command line arguments to set for step.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: Environment variables to set for step.
        :param pulumi.Input[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[pulumi.Input[str]]:
        """
        The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

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

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

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

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

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


@pulumi.input_type
class PipelineRunStepRunArgs:
    def __init__(__self__, *,
                 job_run_id: Optional[pulumi.Input[str]] = None,
                 lifecycle_details: Optional[pulumi.Input[str]] = None,
                 state: Optional[pulumi.Input[str]] = None,
                 step_name: Optional[pulumi.Input[str]] = None,
                 step_type: Optional[pulumi.Input[str]] = None,
                 time_finished: Optional[pulumi.Input[str]] = None,
                 time_started: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[str] lifecycle_details: Details of the state of the step run.
        :param pulumi.Input[str] state: The state of the step run.
        :param pulumi.Input[str] step_name: The name of the step.
        :param pulumi.Input[str] step_type: The type of step.
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="timeFinished")
    def time_finished(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="timeStarted")
    def time_started(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class PipelineStepArtifactArgs:
    def __init__(__self__, *,
                 artifact_content_length: pulumi.Input[str],
                 pipeline_step_artifact: pulumi.Input[str],
                 step_name: pulumi.Input[str],
                 artifact_content_disposition: Optional[pulumi.Input[str]] = None,
                 artifact_content_md5: Optional[pulumi.Input[str]] = None,
                 artifact_last_modified: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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) -> pulumi.Input[str]:
        return pulumi.get(self, "artifact_content_length")

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

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

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

    @property
    @pulumi.getter(name="stepName")
    def step_name(self) -> pulumi.Input[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")

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

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

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

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

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

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

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


@pulumi.input_type
class PipelineStepDetailArgs:
    def __init__(__self__, *,
                 step_name: pulumi.Input[str],
                 step_type: pulumi.Input[str],
                 depends_ons: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 is_artifact_uploaded: Optional[pulumi.Input[bool]] = None,
                 job_id: Optional[pulumi.Input[str]] = None,
                 step_configuration_details: Optional[pulumi.Input['PipelineStepDetailStepConfigurationDetailsArgs']] = None,
                 step_infrastructure_configuration_details: Optional[pulumi.Input['PipelineStepDetailStepInfrastructureConfigurationDetailsArgs']] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[str]]] depends_ons: The list of step names this current step depends on for execution.
        :param pulumi.Input[str] description: (Updatable) A short description of the step.
        :param pulumi.Input[bool] is_artifact_uploaded: A flag to indicate whether the artifact has been uploaded for this step or not.
        :param pulumi.Input[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 pulumi.Input['PipelineStepDetailStepConfigurationDetailsArgs'] step_configuration_details: (Updatable) The configuration details of a step.
        :param pulumi.Input['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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="stepType")
    def step_type(self) -> pulumi.Input[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")

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="jobId")
    def job_id(self) -> Optional[pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class PipelineStepDetailStepConfigurationDetailsArgs:
    def __init__(__self__, *,
                 command_line_arguments: Optional[pulumi.Input[str]] = None,
                 environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 maximum_runtime_in_minutes: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] command_line_arguments: (Updatable) The command line arguments to set for step.
        :param pulumi.Input[Mapping[str, Any]] environment_variables: (Updatable) Environment variables to set for step.
        :param pulumi.Input[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[pulumi.Input[str]]:
        """
        (Updatable) The command line arguments to set for step.
        """
        return pulumi.get(self, "command_line_arguments")

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

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

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

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

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


@pulumi.input_type
class PipelineStepDetailStepInfrastructureConfigurationDetailsArgs:
    def __init__(__self__, *,
                 block_storage_size_in_gbs: pulumi.Input[int],
                 shape_name: pulumi.Input[str],
                 shape_config_details: Optional[pulumi.Input['PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetailsArgs']] = None):
        """
        :param pulumi.Input[int] block_storage_size_in_gbs: The size of the block storage volume to attach to the instance.
        :param pulumi.Input[str] shape_name: The shape used to launch the instance for all step runs in the pipeline.
        :param pulumi.Input['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) -> pulumi.Input[int]:
        """
        The size of the block storage volume to attach to the instance.
        """
        return pulumi.get(self, "block_storage_size_in_gbs")

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

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

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

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

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


@pulumi.input_type
class PipelineStepDetailStepInfrastructureConfigurationDetailsShapeConfigDetailsArgs:
    def __init__(__self__, *,
                 memory_in_gbs: Optional[pulumi.Input[float]] = None,
                 ocpus: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

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

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


@pulumi.input_type
class GetFastLaunchJobConfigsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetJobRunsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetJobShapesFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetJobsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetModelDeploymentShapesFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetModelDeploymentsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetModelVersionSetsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetModelsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetNotebookSessionShapesFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetNotebookSessionsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetPipelineRunsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetPipelinesFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


@pulumi.input_type
class GetProjectsFilterArgs:
    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")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

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

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

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


