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

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

__all__ = [
    'GetManagedDatabaseSqlTuningAdvisorTasksResult',
    'AwaitableGetManagedDatabaseSqlTuningAdvisorTasksResult',
    'get_managed_database_sql_tuning_advisor_tasks',
    'get_managed_database_sql_tuning_advisor_tasks_output',
]

@pulumi.output_type
class GetManagedDatabaseSqlTuningAdvisorTasksResult:
    """
    A collection of values returned by getManagedDatabaseSqlTuningAdvisorTasks.
    """
    def __init__(__self__, filters=None, id=None, managed_database_id=None, name=None, sql_tuning_advisor_task_collections=None, status=None, time_greater_than_or_equal_to=None, time_less_than_or_equal_to=None):
        if filters and not isinstance(filters, list):
            raise TypeError("Expected argument 'filters' to be a list")
        pulumi.set(__self__, "filters", filters)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if managed_database_id and not isinstance(managed_database_id, str):
            raise TypeError("Expected argument 'managed_database_id' to be a str")
        pulumi.set(__self__, "managed_database_id", managed_database_id)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if sql_tuning_advisor_task_collections and not isinstance(sql_tuning_advisor_task_collections, list):
            raise TypeError("Expected argument 'sql_tuning_advisor_task_collections' to be a list")
        pulumi.set(__self__, "sql_tuning_advisor_task_collections", sql_tuning_advisor_task_collections)
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        pulumi.set(__self__, "status", status)
        if time_greater_than_or_equal_to and not isinstance(time_greater_than_or_equal_to, str):
            raise TypeError("Expected argument 'time_greater_than_or_equal_to' to be a str")
        pulumi.set(__self__, "time_greater_than_or_equal_to", time_greater_than_or_equal_to)
        if time_less_than_or_equal_to and not isinstance(time_less_than_or_equal_to, str):
            raise TypeError("Expected argument 'time_less_than_or_equal_to' to be a str")
        pulumi.set(__self__, "time_less_than_or_equal_to", time_less_than_or_equal_to)

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

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        The name of the SQL Tuning Advisor task.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="sqlTuningAdvisorTaskCollections")
    def sql_tuning_advisor_task_collections(self) -> Sequence['outputs.GetManagedDatabaseSqlTuningAdvisorTasksSqlTuningAdvisorTaskCollectionResult']:
        """
        The list of sql_tuning_advisor_task_collection.
        """
        return pulumi.get(self, "sql_tuning_advisor_task_collections")

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

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

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


class AwaitableGetManagedDatabaseSqlTuningAdvisorTasksResult(GetManagedDatabaseSqlTuningAdvisorTasksResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetManagedDatabaseSqlTuningAdvisorTasksResult(
            filters=self.filters,
            id=self.id,
            managed_database_id=self.managed_database_id,
            name=self.name,
            sql_tuning_advisor_task_collections=self.sql_tuning_advisor_task_collections,
            status=self.status,
            time_greater_than_or_equal_to=self.time_greater_than_or_equal_to,
            time_less_than_or_equal_to=self.time_less_than_or_equal_to)


def get_managed_database_sql_tuning_advisor_tasks(filters: Optional[Sequence[pulumi.InputType['GetManagedDatabaseSqlTuningAdvisorTasksFilterArgs']]] = None,
                                                  managed_database_id: Optional[str] = None,
                                                  name: Optional[str] = None,
                                                  status: Optional[str] = None,
                                                  time_greater_than_or_equal_to: Optional[str] = None,
                                                  time_less_than_or_equal_to: Optional[str] = None,
                                                  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetManagedDatabaseSqlTuningAdvisorTasksResult:
    """
    This data source provides the list of Managed Database Sql Tuning Advisor Tasks in Oracle Cloud Infrastructure Database Management service.

    Lists the SQL Tuning Advisor tasks for the specified Managed Database.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_managed_database_sql_tuning_advisor_tasks = oci.DatabaseManagement.get_managed_database_sql_tuning_advisor_tasks(managed_database_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        name=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        status=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        time_greater_than_or_equal_to=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        time_less_than_or_equal_to=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
    ```


    :param str managed_database_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Managed Database.
    :param str name: The optional query parameter to filter the SQL Tuning Advisor task list by name.
    :param str status: The optional query parameter to filter the SQL Tuning Advisor task list by status.
    :param str time_greater_than_or_equal_to: The optional greater than or equal to query parameter to filter the timestamp.
    :param str time_less_than_or_equal_to: The optional less than or equal to query parameter to filter the timestamp.
    """
    __args__ = dict()
    __args__['filters'] = filters
    __args__['managedDatabaseId'] = managed_database_id
    __args__['name'] = name
    __args__['status'] = status
    __args__['timeGreaterThanOrEqualTo'] = time_greater_than_or_equal_to
    __args__['timeLessThanOrEqualTo'] = time_less_than_or_equal_to
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('oci:DatabaseManagement/getManagedDatabaseSqlTuningAdvisorTasks:getManagedDatabaseSqlTuningAdvisorTasks', __args__, opts=opts, typ=GetManagedDatabaseSqlTuningAdvisorTasksResult).value

    return AwaitableGetManagedDatabaseSqlTuningAdvisorTasksResult(
        filters=__ret__.filters,
        id=__ret__.id,
        managed_database_id=__ret__.managed_database_id,
        name=__ret__.name,
        sql_tuning_advisor_task_collections=__ret__.sql_tuning_advisor_task_collections,
        status=__ret__.status,
        time_greater_than_or_equal_to=__ret__.time_greater_than_or_equal_to,
        time_less_than_or_equal_to=__ret__.time_less_than_or_equal_to)


@_utilities.lift_output_func(get_managed_database_sql_tuning_advisor_tasks)
def get_managed_database_sql_tuning_advisor_tasks_output(filters: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetManagedDatabaseSqlTuningAdvisorTasksFilterArgs']]]]] = None,
                                                         managed_database_id: Optional[pulumi.Input[str]] = None,
                                                         name: Optional[pulumi.Input[Optional[str]]] = None,
                                                         status: Optional[pulumi.Input[Optional[str]]] = None,
                                                         time_greater_than_or_equal_to: Optional[pulumi.Input[Optional[str]]] = None,
                                                         time_less_than_or_equal_to: Optional[pulumi.Input[Optional[str]]] = None,
                                                         opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetManagedDatabaseSqlTuningAdvisorTasksResult]:
    """
    This data source provides the list of Managed Database Sql Tuning Advisor Tasks in Oracle Cloud Infrastructure Database Management service.

    Lists the SQL Tuning Advisor tasks for the specified Managed Database.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_managed_database_sql_tuning_advisor_tasks = oci.DatabaseManagement.get_managed_database_sql_tuning_advisor_tasks(managed_database_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        name=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        status=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        time_greater_than_or_equal_to=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        time_less_than_or_equal_to=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
    ```


    :param str managed_database_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Managed Database.
    :param str name: The optional query parameter to filter the SQL Tuning Advisor task list by name.
    :param str status: The optional query parameter to filter the SQL Tuning Advisor task list by status.
    :param str time_greater_than_or_equal_to: The optional greater than or equal to query parameter to filter the timestamp.
    :param str time_less_than_or_equal_to: The optional less than or equal to query parameter to filter the timestamp.
    """
    ...
